| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| CIDEON und Flottweg: mit ECTR unter die Top 3 , ein Anwenderbericht
|
Autor
|
Thema: (3D-)Polylinien in LW-Polylinien (396 mal gelesen)
|
AB Mitglied
Beiträge: 255 Registriert: 24.05.2002 Mechanical Desktop 6 AutoCAD 2002
|
erstellt am: 14. Feb. 2003 09:17 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, ich habe mit dem Skript pedit3D von (Jochen Schulz) einzelne Segmente (Linien und Splines) zu einer 3D-Polylinie verbunden. Jetzt würde ich gerne die Vertex dieser Polylinie auslesen. Dafür muss diese jedoch zunächst in eine LW-Polylinie umgewandelt werden. Wie mache ich das denn? Von www.cadwiesel.de habe ich mir schon Convpoly.lsp heruntergeladen. Es konvertiert aber nur Linien in LWPolylinien. Liebe Grüße Andrea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 14. Feb. 2003 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Hallo Andrea, ich wüsste nicht, weshalb Du die Polyline in eine LWPolyline umwandeln solltest. Die Vertex-Punkte sind als Folgeelemente der Polylinie zugeordnet, deshalb kannst du dir mit (entnext ENAME_Polyline) das erste Vertex-Element ziehen, ein weiteres (entnext ENAME_VERTEX) liefert dir den nächsten Stützpunkt. Im Gruppencode 10 sind dann dort wiederum die Punktkoordinaten zu finden. Ich hoffe, ich habe mich einiegermaßen verständlich ausgedrückt, wenn nicht ... Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night! Wieder 2 neue Tool's im FreeDownload Wissen wie es gemacht wird? Jetzt Quellcode für die Hälfte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AB Mitglied
Beiträge: 255 Registriert: 24.05.2002 Mechanical Desktop 6 AutoCAD 2002
|
erstellt am: 14. Feb. 2003 10:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, das Problem ist aber, dass bei dieser Art von Linie der Gruppencode 10 (10 0.0 0.0 0.0)ist, wenn ich mit entget die Gruppencodes aufrufe. Bei den LWPolylinien, sind da mehrere (Vertex) aufgeführt, die ich dann herausfiltern kann. Wo liegt bloß mein Denkfehler. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 14. Feb. 2003 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Hallo Andrea, wo dein Denkfehler liegt kann ich dir nicht sagen. Nachfolgend ein Baustein, der die Stützpunkte der (LW)Polylinien ausliest.
Code:
(defun f:get_Vertex (kel / kelt kpt plspt) (setq kelt (cdr (assoc 0 (entget(car kel))))) (cond ((= kelt "LWPOLYLINE") (setq plspt (subpl (entget (car kel)))) ) ((= kelt "POLYLINE") (setq plspt (apl (car kel))) ) ) plspt ) (defun apl ( kel / el eli elt geli) (setq el (entnext kel) eli (entget el) elt (cdr(assoc 0 eli)) ) (while (= elt "VERTEX") (setq el (entnext el) geli (append geli eli) eli(entget el) elt(cdr(assoc 0 eli)) ) ) (setq plspt (subpl geli)) ) (defun subpl (geli / plptli) (apply 'append (mapcar '(lambda (X) (if (= 10 (car X)) (list (cdr X)) ) ) geli ) ) ) ;;;Aufruf z.B. so ... (setq pkte (f:get_Vertex (entsel "\n(LW)PolyLinie wählen:")))
Bei Fragen ... Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night! Wieder 2 neue Tool's im FreeDownload Wissen wie es gemacht wird? Jetzt Quellcode für die Hälfte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Cuder Mitglied Selbständig
Beiträge: 692 Registriert: 10.07.2002 AutoCAD 2002/2004/2005 unter Windows 2000 Professional SP3 PIV 3.4GHz 1024MB NVIDIA GeForce FX Go5700
|
erstellt am: 14. Feb. 2003 14:10 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Andrea hat schon recht, bei der 3DPoly gibts nur einen Gruppencode 10 retour, Gruppencode 330 verweist dann auf ein weiteres Objekt: (330 . <Objektname: 40254cf8> ) 330 - Soft-Zeiger-ID/Referenz auf das Besitzerobjekt BLOCK_RECORD dort stehen dann die eigentlichen Daten ------------------ Bernd Cuder Cad&Co makes CAD easy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |