| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Skript um Punkte in AutoCAD einzulesen (950 mal gelesen)
|
patch Mitglied
Beiträge: 71 Registriert: 06.01.2005
|
erstellt am: 27. Jan. 2006 15:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, hab ne Frage: Ich will Punkte in AutCAD einlesen. Als Skript. Also: _multiple _point X,Y,Z und was als Trennung, also hier am Zeilenende? Das weiss ich leider nicht mehr, bräuchte ich aber dringend! Schon Mal Vielen Dank, Patch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
charlieBV Ehrenmitglied V.I.P. h.c. Bauzeichnerin
Beiträge: 9318 Registriert: 28.08.2003 Win 10 Pro
|
erstellt am: 27. Jan. 2006 15:30 <-- editieren / zitieren --> Unities abgeben: Nur für patch
Hi, such mal im Rund um AutoCAD Forum hier auf cad.de. Das ist da (hab ich das Gefühl) fast wöchentlich Thema. ------------------ Gruß Yvonne ADT-Help-Site "Die Erinnerung ist das einzige Paradies, woraus wir nicht vertrieben werden können." Jean Paul (1763-1825) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sleepless Mitglied Architekt
Beiträge: 947 Registriert: 30.05.2004
|
erstellt am: 27. Jan. 2006 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für patch
|
patch Mitglied
Beiträge: 71 Registriert: 06.01.2005
|
erstellt am: 27. Jan. 2006 16:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, okay, da haben sich bei mir doch nur ein paar Leerzeichen eingeschlichen. Dachte aber ich hätte was vergessen. Aber: Wie kann man sich eigentlich umgekehrt Punkt in eine Datei exportieren lassen? Ciao Patch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 KEIN ADT<P> ;)
|
erstellt am: 27. Jan. 2006 16:49 <-- editieren / zitieren --> Unities abgeben: Nur für patch
Code:
(defun vert (/ filterlist vla-obj-list lwlist 2dlist ptlist vlist1 vlist2 vlist3 ) (vl-load-com) (setq filterlist (make-filter) vla-obj-list (get-objects filterlist) lwlist (nth 0 vla-obj-list) 2dlist (nth 1 vla-obj-list) ptlist (nth 2 vla-obj-list) vlist1 nil vlist2 nil vlist3 nil ) ;_ end-of setq (if lwlist (setq vlist1 (make-list lwlist 2)) ) ;_ end of if (if 2dlist (setq vlist2 (make-list 2dlist 3)) ) ;_ end of if (if ptlist (setq vlist3 (make-list ptlist 3)) ) ;_ end of if (write-text vlist1 vlist2 vlist3) (princ) ) ;_ end of vert(defun make-list (p-list n / i vlist obj coords ca j x y z xy) (setq i (- 1) vlist nil ) ;_ end of setq (repeat (length p-list) (setq obj (nth (setq i (1+ i)) p-list) coords (vlax-get-property obj "coordinates") ca (vlax-variant-value coords) j (- 1) ) ;_ end-of setq (repeat (/ (length (vlax-safearray->list ca)) n) (setq x (vlax-safearray-get-element ca (setq j (1+ j)))) (setq y (vlax-safearray-get-element ca (setq j (1+ j)))) (if (= n 2) (setq xy (list x y)) (progn (setq z (vlax-safearray-get-element ca (setq j (1+ j)))) (setq xy (list x y z)) ) ;_ end of progn ) ;_ end of if (setq vlist (append vlist (list xy))) ) ;_ end-of repeat ) ;_ end-of repeat ) ;_ end-of make-list (defun make-filter (/ filter) (setq filter '((-4 . "<OR") (0 . "LWPOLYLINE") (0 . "POLYLINE") (0 . "POINT") (-4 . "OR>") ) ) ;_ end of setq ) ;_ end of make-filter (defun get-objects (filter / ss k lwp-list 2dp-list pt-list no-ent obj pl 2d pt ) (setq no-ent 1) (while no-ent (setq ss (ssget filter) k (- 1) lwp-list nil 2dp-list nil pt-list nil obj nil pl "AcDbPolyline" 2d "AcDb2dPolyline" pt "AcDbPoint" ) ;_ end-of setq (if ss (progn (setq no-ent nil) (repeat (sslength ss) (setq ent (ssname ss (setq k (1+ k))) obj (vlax-ename->vla-object ent) ) ;_ end-of setq (cond ((= (vlax-get-property obj "ObjectName") pl) (setq lwp-list (append lwp-list (list obj))) ) ((= (vlax-get-property obj "ObjectName") 2d) (setq 2dp-list (append 2dp-list (list obj))) ) ((= (vlax-get-property obj "ObjectName") pt) (setq pt-list (append pt-list (list obj))) ) ) ;_ end-of cond ) ;_ end-of repeat ) ;_ end-of progn (prompt "\nKeine Polylinien oder Punkte in der Auswahl gefunden !.") ) ;_ end-of if ) ;_ end-of while (list lwp-list 2dp-list pt-list) ) ;_ end-of get-objects (defun write-text (vl1 vl2 vl3) (setq fn (getfiled "Text File" "" "txt" 1)) (setq f (close (open fn "w"))) (setq msg "Punkte aus LW-Polylinien-Objekten") (do-points fn vl1 msg 2) (setq msg "Punkte aus 2D-Polylinien-Objekten") (do-points fn vl2 msg 3) (setq msg "Punkte aus Punkt-Objekten") (do-points fn vl3 msg 3) (princ) ) ;_ end of write-text (defun do-points (fn vl msg n) (setq f (open fn "a")) (write-line msg f) (write-line " x, y, z" f) (write-line "" f) (foreach point vl (setq x (nth 0 point) y (nth 1 point) ) ;_ end of setq (if (= n 2) (setq str (strcat (rtos x) "," (rtos y))) (progn (setq z (nth 2 point)) (setq str (strcat (rtos x) "," (rtos y) "," (rtos z))) ) ;_ end of progn ) ;_ end of if (write-line str f) ) ;_ end of foreach (setq f (close f)) (princ) ) ;_ end of defun (defun c:points2file () (vert) (princ) ) ;_ end-of defun
------------------ MfG Proxy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
patch Mitglied
Beiträge: 71 Registriert: 06.01.2005
|
erstellt am: 27. Jan. 2006 17:03 <-- editieren / zitieren --> Unities abgeben:
|
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 KEIN ADT<P> ;)
|
erstellt am: 27. Jan. 2006 17:08 <-- editieren / zitieren --> Unities abgeben: Nur für patch
|
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2006 Autocad 2006LT + Extender ADT 2006 ArchiCAD
|
erstellt am: 27. Jan. 2006 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für patch
Editor öffnen Code hinein kopieren unter "irgendein Name".lsp speichern in die autoCAD Befehlszeile _appload eingeben *.lsp suchen und dazuladen fertig Befehl: points2file ------------------ ...so long and thanx for all the fish! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |