Hallo allerseits,
ich versuch mich gerade ein wenig in AutoLisp einzuarbeiten. Ich hangel mich an einm Tutorial ("Tailoring AutoCAD") entlang und hab da einen kleinen Hänger.
Ich bin gerade dabei mir den Beispielcode der Website ein wenig anzupassen. Nun möchte ich den Text vom "Punkt" ein wenig in X und Y verschieben. Sagen wir mal in X+100, in Y+100 und in Z+0.
Wie stell ich das an?
Meine Überlegung war: (setq xyz2(+ ptx 100)(+ pty 100)(ptz)) --> wie bekomm ich ptx/pty/ptz jetzt im Format x,y,z in die neue Variable "xyz2"?
Hier ist noch der Beispielcode der auch nach meinen Änderungen bis jetzt noch funktioniert
(defun c unktid ( / xyz xyz1 uprec ptx pty ptz)
(command "-layer" "machen" "Punkt-ID" "farbe" "rot" "" "")
(setq uprec (getint "Nachkommastellen: "))
(setq lname (getstring "Layername: ")) (setvar "CLAYER" lname)
(setq xyz (getpoint "Punkt wählen: "))
(setq ptx (car xyz)
pty (cadr xyz)
ptz (caddr xyz)
)
; Format the x,y,z coordinates:
(setq ptx (rtos ptx 2 uprec)
pty (rtos pty 2 uprec)
ptz (rtos ptz 2 uprec)
)
; Kommas und "X=,Y=,Z=" für die Textausgabe hinzufügen:
(setq xyz1 (strcat "X=" ptx ", " "Y=" pty ", " "Z=" ptz))
; Koordinaten als Text in die Zeichnung schreiben:
(command "text" xyz2 200 0 xyz1)
;Koordinatenpunkt zeichnen
(command "ring" 0 20 xyz "")
; .txt-file für Extraction öffnen:
(setq fil (open "xyzdata.txt" "a"))
; Variable XYZ1 in Datei schreiben:
(write-line xyz1 fil)
; Datei schließen: (close fil)
(close fil)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP