; --- PKTL KOORDINATEN UND EVTL TEXT IN DATEI LISTE.TXT (defun c:pktl (/ osmodealt dimzinalt wahl1 wahl11 wahl12 wahl21 wahl22 wahl23 wahl24 f pkt1 pktlist1 pktlist2 wa wa1 txt1 txt2 vh vh1 vh2) (setq osmodealt (getvar "osmode")) (setvar "osmode" 8) (setq dimzinalt (getvar "dimzin")) (setvar "dimzin" 0) (prompt "\nErstellt eine Liste in Datei liste.txt - x-Koord;y-Koord oder x-Koord;y-Koord;Text oder Text1;x-Koord;y-Koord;Text2") (prompt "\nBei Auswahl <1> darf der Text nur aus Zahlen bestehen, bei <2> darf Text2 nur aus Zahlen bestehen") ; --- ABFRAGEN --- (setq wahl1 (getint "\nNur Punkt <0> und ein Text <1> und zwei Texte <2> ?")) (if (= wahl1 nil) (setq wahl1 0)) (if (= wahl1 1) (progn (setq wahl11 (getint "\nErster oder zweiter Punkt des Textes identisch mit Punkt <1> <2> ?")) (if (= wahl11 nil) (setq wahl11 1)) (setq wahl12 (getstring "\nName des Layers von Text:")) ) ;end progn ) ;end if (if (= wahl1 2) (progn (setq wahl21 (getint "\nErster oder zweiter Punkt von Text1 identisch mit Punkt <1> <2> ?")) (if (= wahl21 nil) (setq wahl21 1)) (setq wahl22 (getint "\nErster oder zweiter Punkt von Text2 identisch mit Punkt <1> <2> ?")) (if (= wahl22 nil) (setq wahl22 1)) (setq wahl23 (getstring "\nName des Layers von Text1:")) (setq wahl24 (getstring "\nName des Layers von Text2:")) ) ;end progn ) ;end if (setq wa (getint "\nEvtl. exist. Datei überschreiben <0> oder Daten anhängen <1> ?")) (if (= wa 0) (setq wa1 "w") (setq wa1 "a") ) (setq f (open (strcat (getvar "DWGPREFIX")"liste.txt") wa1)) (if (= wa 0) (prompt "\nEvtl. vorhandene Daten werden überschrieben.") (prompt "\nFalls Datei existiert, werden neue Daten angehängt.") ) ; --- NUR PUNKT GEWÄHLT --- (if (= wahl1 0) (progn (prompt "\nEs werden Punktkoordinaten in Datei geschrieben.") (while (setq pkt1 (getpoint "\nPunkt wählen: ")) /= NULL (setq pktlist1 (strcat (rtos (car pkt1) 2 3) ";" (rtos (cadr pkt1) 2 3) ";" ) ;end strcat ) ;end setq (write-line pktlist1 f) ) ;end while (close f) ) ;end progn ) ;end if ; --- PUNKT UND EIN TEXT GEWÄHLT --- (if (= wahl1 1) (progn (prompt "\nEs werden Punktkoordinaten und ein Text in Datei geschrieben.") (while (setq pkt1 (getpoint "\nPunkt wählen: ")) /= NULL (setq pktlist1 (strcat (rtos (car pkt1) 2 3) ";" (rtos (cadr pkt1) 2 3) ";" ) ;end strcat ) ;end setq (if (= wahl11 1) (setq vh 10) ) (if (= wahl11 2) (setq vh 11) ) (setq txt1 (cdr (assoc 1 (entget (ssname (ssget "X"(list (cons 0 "TEXT") (cons 8 wahl12) (cons vh pkt1))) 0))))) (setq txt1 (atof txt1)) (setq txt1 (rtos txt1 2 3)) (setq pktlist2 (strcat pktlist1 txt1 ";")) (write-line pktlist2 f) ) ;end while (close f) ) ;end progn ) ;end if ; --- PUNKT UND ZWEI TEXTE GEWÄHLT --- (if (= wahl1 2) (progn (prompt "\nEs werden Punktkoordinaten und zwei Texte in Datei geschrieben.") (while (setq pkt1 (getpoint "\nPunkt wählen")) /= NULL (setq pktlist1 (strcat (rtos (car pkt1) 2 3) ";" (rtos (cadr pkt1) 2 3) ";" ) ;end strcat ) ;end setq (if (= wahl21 1) (setq vh1 10) ) (if (= wahl21 2) (setq vh1 11) ) (if (= wahl22 1) (setq vh2 10) ) (if (= wahl22 2) (setq vh2 11) ) (setq txt1 (cdr (assoc 1 (entget (ssname (ssget "X"(list (cons 0 "TEXT") (cons 8 wahl23) (cons vh1 pkt1))) 0))))) (setq txt2 (cdr (assoc 1 (entget (ssname (ssget "X"(list (cons 0 "TEXT") (cons 8 wahl24) (cons vh2 pkt1))) 0))))) (setq txt2 (atof txt2)) (setq txt2 (rtos txt2 2 3)) (setq pktlist2 (strcat txt1 ";" pktlist1 txt2 ";")) (write-line pktlist2 f) ) ;end while (close f) ) ;end progn ) ;end if ; --- UMSTELLEN AUF URSPRÜNGLICHE SYSVARS --- (prompt "\nEnde! ") (setvar "osmode" osmodealt) (setvar "dimzin" dimzinalt) ) ;end defun