• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Problem mit Schreiben lisp Koordinaten-ID Punkt

  • Ersteller Ersteller micheledag
  • Erstellt am Erstellt am

micheledag

Guest
guten Nachmittag für alle Freunde des Forums.
Ich habe ein Problem, in der Tat mehrere Probleme, mit der folgenden lisp Ich schreibe Ihnen ( fragen Sie mich nicht, wo ich sie gefunden habe, ich erinnere mich nicht mehr daran!).
praktisch, einen Punkt gewählt, gibt mir die x- und y-Koordinaten dieses (es ist wie das Schreiben id und das Anzeigen der x- und y-Koordinaten direkt auf dem Design statt in der Befehlszeile).
Es passiert, dass:
1) sobald ich die Lispe belade, verliere ich alle Einstellungen des Schnapps, stattdessen möchte ich sie behalten, um nicht die Zeit zu vergeuden, was ich brauche (z.B. ich möchte an den Punkten an der Kreuzung von zwei Linien klicken, etc.);
2) die Texte, die mit den Koordinaten zurückkehren, überlappen;
3) die Koordinaten an der dritten Dezimalstelle halten, wäre es schön, wählen zu können, welche Anzahl zu drücken;
Anfrage:
4) wählt einen Punkt zu einem Zeitpunkt aus: Es wäre nützlich, auf mehrere Punkte zu klicken und die Koordinaten zu schreiben, bevor Sie den Deckel verlassen.
Ich bitte einige Seelen, die Probleme zu lösen, die ausgesetzt sind; autocad 2007, 2011, 2014.
Vielen Dank, nächstes!

(defunc c:xy (/ os pt1 pt pt)
(setq os (getvar "osmode")
(setvar "osmode" 8)
(setq pt1 (getpoint "\nselect the point: ")
(Sectq pt)
(setq ptt)
(setq pnord (strcat "x: "(rtos pt 2 3)))
(setq pest (strcat "\y: "(rtos ptt 2 3)))

(Setvar "osmode" 0)
(Progn)
(setq pt2 (getpoint "point of insert of x and y koordinates: ")
(Befehl "_text" pt2 "" pnord)
(Befehl "_text" pt2 "" pest)
(setvar "osmode" os)
(princ)
)
 
2 Versionen:
die erste bittet Sie eine x Anzahl von Punkten zu zitieren, kam am Ende kommt heraus und Sie müssen es neu

(Defun c:xy (/ os pt1 pt2 pt2 pt2y pt2y pt2est)
(setq dec (getint "Anzahl der Präzisionsdezimals: ")
(setq rep (getint "Anzahl der Punkte zu wählen: ")
(Repeat rep)
(setq os (getvar "osmode")
(Setvar "osmode" 111)
(Einleitung 1)
(setq pt1 (getpoint "\nselect the point: ")
(Sectq pt)
(setq ptt)
(setq pnord (strcat "x: "(rtos pt 2 Dec)))
(setq pest (strcat "\y: "(rtos ptt 2 dec))))

(Setvar "osmode" 0)
(Progn)
(Einleitung 1)
(setq pt2 (getpoint "point of insert of x and y koordinates: ")
(setq pt2y (nth 1 pt2))
(setq pt2nord (nth 0 pt2) (+ pt2y (/ (getvar "textsize") 1.5 ) (nth 2 pt2))
(setq pt2est (nth 0 pt2) (- pt2y (/ (getvar "textsize") 1.5 ) (nth 2 pt2))
(Befehl "_text" pt2nord "" pnord)
(Befehl "_text" pt2est "" pest)
(setvar "osmode" os)
(princ)
)
)
(princ "\ sniff xy zu starten Routine)






die zweite (xy2) fragt Sie nicht die Anzahl der Punkte und geht auf Unendlichkeit. Er bittet Sie, zu gehen oder nicht.
Wenn Sie antworten, kommt es raus, wenn Sie es senden.





(Defunct) c)xy2 (/ os pt1 pt pt2 pt2y pt2nord pt2est xit rep)
(setq dec (geting "numero dei decimali di Precisione: ")))))
(setq rep 1)

(while (= rep 1)
(setq os (getvar "osmode")
(setvar "osmode" 111)
(Initget 1)
(setq pt1 (getpoint "\nselezionare il punto: "))
(setq pt)
(setq ptt)
(setq pnord (strcat "x: "(rtos pt 2 dec))))))))
(setq pest))

(setvar "osmode" 0)
(Progn)
(Initget 1)
(setq pt2 (getpoint "punto di inserimento delle koordinate x ed y: ")))
(setq pt2y)
(setq pt2nord (list (nth 0 pt2) (+ pt2y (/ (getvar "textize") 1.5 ) (nth 2 pt2)))
(setq pt2est (list (nth 0 pt2) (- pt2y (/ (getvar "textize") 1.5 ) (nth 2 pt2))
(Befehl "_text" pt2nord "" pnord)
(Befehl "_text" pt2est """ Pest)
(Set "osmode" Knochen)
(princ)
(initget 0 "s n")
(setq xit (getkword "\nuscire (si/no): <no>"
(wenn (= xit "s") (setq erhält 0)
)
)
(princ "\nusare xy2 for lanciare routine")</no>
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben