| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Auswahl mit Polylinie (11556 mal gelesen)
|
ThorstenPB Mitglied
Beiträge: 40 Registriert: 26.01.2006 AutoCad 2012, Win 7 - 64 bit
|
erstellt am: 23. Okt. 2007 13:32 <-- editieren / zitieren --> Unities abgeben:
Hi, nachdem ich jetzt lange Zeit versucht habe das Prob mit Hilfe der Suchfunktion (und Hilfefunktion) zu lokalisieren, bleibt mir nur noch die Möglichkeit mein Problem zu schildern: Also, ich habe eine Katastergrundlage. Darauf befinden sich also Gebäude, Hausnummern usw... Diese Karte ist mir Hilfe von geschlossenen Polylinien in verschiedene Bereiche (Gemarkungen) geteilt. Nun möchte ich, das ich mit Hilfe der Polylinie die Gebäude, Hausnummern usw. auswählen kann, um die Schnellauswahl nutzen zu können. Da die Bereiche nicht quadratisch sondern unförmig eingeteilt sind, ist eine "händische" Markierung meistens sehr aufwendig, was ich mir gerne ersparen möchte. Kennt jemand eine Lösung für das Problem???? gruß Thorsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 23. Okt. 2007 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für ThorstenPB
Hallo Thorsten, mit der folgenden Funktion sollte es klappen: Code: (defun c:vox-sel-obj-in-poly ( / ) (sssetfirst nil (ssget "_WP" (vox-get-lwp-points (car (entsel "\nLWPOLYLINE wählen:"))))) )(defun vox-get-lwp-points (ele) (mapcar 'cdr (vl-remove-if '(lambda(x) (/= (car x) 10)) (entget ele))) )
Die wählt alle Elemente mit "Fensterpolygon". Wenn Du "_WP" mit "_CP" austauschst, werden die Elemente mit "Kreuzenpolygon" gewählt. Aufruf mit vox-sel-obj-in-poly. Weisst Du wie man Lisp-Dateien einbindet?Grüsse, Henning EDIT: Geht nur mit LW-Polylinien! ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de [Diese Nachricht wurde von wronzky am 23. Okt. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThorstenPB Mitglied
Beiträge: 40 Registriert: 26.01.2006 AutoCad 2012, Win 7 - 64 bit
|
erstellt am: 23. Okt. 2007 15:16 <-- editieren / zitieren --> Unities abgeben:
hi wronzky, danke für die schnelle Antwort!! Das mit der lisp hab ich hingekriegt. War kein Problem. Aber was bitte ist eine lw-polylinie?? Habe die Suche im forum schon durchsucht, leider werde ich da nicht wirklich schlau raus. Habe eine ganz normale pl erstellt. Aber mit der funzt es nicht. Wie convertiere ich die in eine lw-poly?? Hab schon verschiedenes getestet, leider ohne Erfolg. gruß Thorsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 23. Okt. 2007 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für ThorstenPB
Hallo Thorsten, ein LW (= Lightweight) - Polylinie ist ein 2D-Polylinie. (sozusagen das Fliegengewicht unter den Polylinien). Vorausgesetzt Du hast 2D gezeichnet, kannst Du mit dem Befehl KONVERT die Polylinien in 2D-Polylinien umwandeln. Grüsse, Henning PS: schau Dir dazu mal die Sysvar PLINETYPE an. ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de [Diese Nachricht wurde von wronzky am 23. Okt. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThorstenPB Mitglied
Beiträge: 40 Registriert: 26.01.2006 AutoCad 2012, Win 7 - 64 bit
|
erstellt am: 23. Okt. 2007 15:40 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 23. Okt. 2007 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für ThorstenPB
...Zu beachten ist außerdem , dass die Polylinie keine zusammenfallenden Punkte haben darf und Objekte innerhalb von Bögen innerhalb von Polylinien auch nicht berücksichtigt werden... ...zu den LW (= Lightweight) - Polylinien.. diese sind wie die 2D-Polylinien planare Kurven, speichern ihre Koordinaten aber dierekt im OBJEKT, -> im Gegensatz zu den 2D-Pls, die ihre Koordinaten in extra Objekten , den nachfolgenden VERTEXes speichern. Für 2D-Polylinien hat man auch die Möglichkeit des glättens usw. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 23. Okt. 2007 15:52 <-- editieren / zitieren --> Unities abgeben: Nur für ThorstenPB
Hab mal auf meiner Platte noch was universelleres gefunden ( als Umgrenzung können auch Kreise , Ellipsen usw. genommen werden), doppelte Punkte werden ausgefiltert usw. ... ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 23. Okt. 2007 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für ThorstenPB
Hi Thorsten, wenn das Umwandeln nicht funktioniert, dann kannst Du es noch damit versuchen: Code: (defun c:vox-sel-obj-in-poly2 ( / ) (sssetfirst nil (ssget "_WP" (vox-get-pl-points (car (entsel "\nPOLYLINE wählen:"))))) ) (defun vox-get-pl-points (ele / vx ret) (while (= (cdr (assoc 0 (setq vx (entget (setq ele (entnext ele)))))) "VERTEX") (setq ret (cons (cdr (assoc 10 vx)) ret)) ) (reverse ret) )
Läuft im Prinzip genauso wie vox-sel-obj-in-poly, ermittelt jedoch die Kontrollpunkte einer "nicht LW-" Polylinie.Grüsse, Henning ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThorstenPB Mitglied
Beiträge: 40 Registriert: 26.01.2006 AutoCad 2012, Win 7 - 64 bit
|
erstellt am: 24. Okt. 2007 10:37 <-- editieren / zitieren --> Unities abgeben:
|