Guten Morgen Leute
ich habe da eine Lisp, die funktioniert einwandfrei! Mit dieser Lisp kann ich xyz Koordinaten von Punkten welche auf dem Layer Höhe liegen in Excel exportieren. Jetzt meine Frage, funktioniert das auch mit imperialen Einheiten? Ich habe es versucht, bekomme es aber leider nicht hin. Wenn ich die Punkte mit id Punkt abfrage, zeigt er mir die genauen Fuß und inch Maße, allerdings liest er sie mir nicht in Excel aus. Vielleicht wisst ihr ja wie das geht.
Ich kopiere die Lisp auch mal rein, falls der Fehler daran liegt.
(defun c:zkoord (/)
(setq dimzinalt (getvar "dimzin"))
(setvar "DIMZIN" 0)
(princ "\nACHTUNG: Höhentexte müssen auf Layer Höhe liegen!!! ")
(setq za 0)
(princ "\nHöhentexte wählen (einzeln oder Auswahlfenster) ")
(setq auswahl (ssget))
(setq anzahl (sslength auswahl))
(prompt "gewählt: ")
(princ)
(princ "\nDaten werden in Datei liste.txt geschrieben. ")
(setq wa (getint "\nEvtl. exist. Datei überschreiben <0> oder Daten anhängen <1> ? <1> "))
(if (= wa 0)
(setq wa1 "w")
(setq wa1 "a")
)
(setq f (open (strcat (getvar "DWGPREFIX")"liste.txt") wa1))
(while (< za anzahl)
(setq liste (entget (ssname auswahl za)))
(setq alayer (substr (cdr(assoc 8 liste))1 4))
(setq atext (cdr(assoc 0 liste)))
(if (and(= atext "TEXT") (= alayer "Höhe"))
(progn
(setq auswahl1 (assoc 10 liste))
(setq auswahl2 (cdr(assoc 1 liste)))
(setq pktlst1 (rtos (cadr auswahl1)2 3))
(setq pktlst2 (rtos (caddr auswahl1)2 3))
(setq pktlst3 (rtos (atof auswahl2) 2 3))
(setq pktlst (strcat pktlst1 ";" pktlst2 ";" pktlst3 ";" (rtos (cadddr auswahl1)2 3)))
(princ za)
(princ "\nPKTLst: ") (princ pktlst)
(write-line pktlst f)
)
)
(setq za (+ 1 za))
) ;end while
(close f)
(setvar "dimzin" dimzinalt)
) ;end defun
Danke schon mal im vorraus!
------------------
gruß aus waldbrunn
werner
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP