Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Koordinate innerhalb Polylinie

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Koordinate innerhalb Polylinie (1082 mal gelesen)
Gerd_Ecke
Mitglied
Bergbauingenieur


Sehen Sie sich das Profil von Gerd_Ecke an!   Senden Sie eine Private Message an Gerd_Ecke  Schreiben Sie einen Gästebucheintrag für Gerd_Ecke

Beiträge: 141
Registriert: 28.08.2002

Civil 3D 2020, GeoCAD
BricsCAD 18

erstellt am: 24. Jul. 2017 08:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

ich muss viele Punkte aus einer ASCII-Datei einlesen. Diese sollen dann als Blockeinfügungen dargestellt werden. Da es aber über 'Read-Line' und 'command insert' 8 min dauert um 17000 Punkte einzulesen, will ich nur die Punkte darstellen die innerhalb einer vorhandenen geschlossenen PL liegen.
Wie kann ich am schnellsten abfragen, ob die einzufügende Koordinate innerhalb der PL liegt ?

MfG
GE

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 24. Jul. 2017 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Gerd_Ecke 10 Unities + Antwort hilfreich

Dies ist keine Lispfrage (es gibt keine Funktion dafür), sondern eine Mathematikfrage.
Suche nach ähnlichen Phrasen: point inside polyline

Für den Anfang ein Direktlink, das Thema ist/kann jedoch deutlich umfangreicher betrachtet werden:
https://de.wikipedia.org/wiki/Punkt-in-Polygon-Test_nach_Jordan

Anmerkung: 8min dauert es nicht wegen readline, die AutoCAD-Befehl Verwendung dauert so lange (du steuerst über Command die Befehlszeile)

Ändere deine Routine mal auf die Erstellung der Blockreferenzen via ENTMAKE.
https://ww3.cad.de/foren/ubb/Forum145/HTML/002605.shtml
oder über VisualLisp  und vla-add

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Gerd_Ecke
Mitglied
Bergbauingenieur


Sehen Sie sich das Profil von Gerd_Ecke an!   Senden Sie eine Private Message an Gerd_Ecke  Schreiben Sie einen Gästebucheintrag für Gerd_Ecke

Beiträge: 141
Registriert: 28.08.2002

Civil 3D 2020, GeoCAD
BricsCAD 18

erstellt am: 24. Jul. 2017 09:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo cadffm,

danke für die schnelle Antwort.

Habe meine Vorgehensweise geändert. Da das Einlesen und Darstellen der 17550 über (entmake Point) nur 5 sek. dauert, werde ich nicht vorm Darstellen filtern, sondern erstmal alle als Punkt einlesen und auf die, die innerhalb der PL liegen (über ssget ermittelt) dann den Block setzten.

Aber die Lösung über Jordan werde ich im Hinterkopf halten 

Vielen Dank
GE

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 24. Jul. 2017 10:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Gerd_Ecke 10 Unities + Antwort hilfreich

Ob Punkt oder Insert(entmake/vla-add) sollte imho keine große Rolle spielen,
aber dennoch eine weitere Idee: Erstellen doch einen ganz einfachen Filter:
Liegt die Koordinaten auf oder innerhalb minX,minY und maxX,maxY, also ein umspannendes Rechteck.

<Wenn die Polylinien nur gerade Segemente enthalten>

Somit hat meine keine komplizierte Berechnung auf alle Koordinaten, aber bereits eine Vorauswahl.

Wie sinnvoll dies ist hängt natürlich von den Daten ab, sollte sich nur 2% der Punkte in diesem
Bereich befinden, so könnte es sich durchaus rechnen, liegen fast alle innerhalb, so würde es den
Ablauf verlangsamen.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

gmk
Mitglied
Dipl.-Ing.(FH) Vermessung


Sehen Sie sich das Profil von gmk an!   Senden Sie eine Private Message an gmk  Schreiben Sie einen Gästebucheintrag für gmk

Beiträge: 667
Registriert: 23.10.2002

Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM

erstellt am: 26. Jul. 2017 11:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Gerd_Ecke 10 Unities + Antwort hilfreich

Servus!

Du könntest auch die Koordinaten vorab in eine Liste einlesen, beim Einlesen oder anschließend die relevanten Punkte rausfiltern und dann die Blöcke einlesen.
Hier ein sehr guter thread zu Punkt innerhalb Polylinie: http://ww3.cad.de/foren/ubb/Forum145/HTML/000602.shtml

Ciao Georg

------------------
http://www.xxx-tausend.info

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz