Hallo Leute,
ich habe im Cad Forum heute schon mal einen Beitrag erstellt, in dem mir geholfen wurde. Folgende Lisp ist genau das was ich brauche, eigentlich perfekt! Allerdings soll ich für meinen Chef jetzt das gleich in einem 3D Modell machen und daher bräuchte ich zusätzlich zu der xy Koordinaten und dem Text noch die z Koordinate. Ich bin in lisp leider überhaupt nicht fit und wäre froh, wenn ihr mir helfen könntet.
(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 ";"))
(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 für Eure Hilfe
------------------
gruß aus waldbrunn
werner
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP