Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Polygon - Überlagerungen herausfiltern

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:  Polygon - Überlagerungen herausfiltern (1652 mal gelesen)
steinemann09
Mitglied
Dipl. Ing.


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

Beiträge: 47
Registriert: 27.08.2008

AutoCAD 2005, AutoCAD 2009, Windows XP

erstellt am: 16. Sep. 2008 07:43    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 User,

da bei großen Zeichnungen mit über 1000 Flächen (incl. Inselerkennung) fehlerhafte Polygonüberschneidungen der Schraffurbefehl nicht mehr ausreicht, suche ich in AutoLisp eine Möglichkeit Überschneidungsflächen zu ermitteln. Die Möglichkeit, jweils 2 benachbarte Stützpunkte nach sich schneidenden Polygonen zu untersuchen scheint mir zu aufwendig und beansprucht viel Rechenzeit.
Hat jemand von Euch eine Idee?

Gruß Volker

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 16. Sep. 2008 07:56    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 steinemann09 10 Unities + Antwort hilfreich

wie wäre denn die Möglichkeit, die Stützpunkte eines jeden Polygons zu ermitteln, dem ssget _CP zu übergeben mit der Auswahl beschränkt auf Polygone.
Wenn ein Auswahlsatz gebildet wurde kannst du prüfen, ob siche eine Überschneidung ergibt.

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

steinemann09
Mitglied
Dipl. Ing.


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

Beiträge: 47
Registriert: 27.08.2008

AutoCAD 2005, AutoCAD 2009, Windows XP

erstellt am: 16. Sep. 2008 08:27    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

danke für Deine schnelle Reaktion, Dein Vorschlag ist mir auch schon in den Sinn gekommen, aber
da beachbarte Polygone mit identischen Grenzpolygonen vorhanden sind, muss man ja zusätlich für die Fensterdefinition ermitteln, in welcher Richtung sich der "Polygoninnenpunkt" befindet. Über Minimum- BTWBy the way (So nebenbei bemerkt). Maximumabfragen die Richtung zu errechnen, die ins Polygonnnere zeigt, ist nicht sehr oprimal. Gibt es eine andere Möglichkeit? Eigentlich ist mein Problem eine GIS- Funktionalität, Gibt es dafür in Lisp schon eine Standardlösung, die man ausbauen könnte ?

Gruß Volker

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 16. Sep. 2008 08:49    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 steinemann09 10 Unities + Antwort hilfreich

Hallo Volker,
ich würde es mit der Methode vla-intersectwith über alle Objekte (paarweise) probieren. Bei mehr als einem Schnittpunkt gibt es wohl eine Überschneidung. Zum Thema war auch HIER schon mal was.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 16. Sep. 2008 09:13    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 steinemann09 10 Unities + Antwort hilfreich

Hallo Volker,

augenscheinlich würde man mit der GetIntersectWith-Methode recht schnell zum Ergebnis kommen. Allerdings werden durch diese Herangehensweise auch Schnittpunkte für angrenzende Polygone ausgeworfen - so müsste jeder Schnittpunkt dahingehend geprüft werden.
Deshalb ein anderer Ansatz, der sicher auch sinnvoll mit obigen Gedanken kombiniert werden kann.

1. Auswahlsatz aller Polygone
2. für jedes Polygon(->PRÜFpolygon) einen Auswahlsatz bilden(wie CADwiesel das beschrieben hat)-> AWSPolygon
3. Die Stützpunkte der AWSPolygone darauf prüfen, ob diese sich im innerern des PRÜFpolygons befinden. Ist dies der Fall, überschneidet sich was. Sind alle AWSPolygon-Stützpunkte innerhalb, wird es wohl eine Insel darstellen.

Hinweise:
1) Ist ein Punkt innerhalb eines Polygons?
Du zeichnest einen Strahl von diesem Punkt ausgehend und prüfst die Anzahl der Schnittpunkte mit dem PRÜFpolygon. Ist die Anzahl ungerade, dann ist der punkt innerhalb.
2) Punkt auf dem Polygon
kannst du mit vlax-curve-GetParamAtPoint einen Parameter des PRÜFPolygons ermitteln, dann ist der Punkt auf dem PRÜFpolygon.
3) Auch ohne, dass ein AWSPolygon-Stützpunkt im inneren des PRÜFpolygons vorhanden ist, kann es sein, dass die Polygone sich schneiden. Dieser Fall würde dann jedoch auftauchen, wenn das AWSPolygon als Prüfpolygon dran ist und in diesem Zusammenhang dann das jetztige PRÜFpolygon zum AWSPolygon wird.

Alles klar?

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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

steinemann09
Mitglied
Dipl. Ing.


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

Beiträge: 47
Registriert: 27.08.2008

AutoCAD 2005, AutoCAD 2009, Windows XP

erstellt am: 17. Sep. 2008 17:20    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 Holger,

danke für Deinen Ansatz, der Fehler lag nicht bei Polygonüberlagerungen sondern bei den Inselflächen. In Abhängigkeit von der Richtung des Außenpolygons muss die Inselfläche in entgegengesetzter Richtung gezeichnet sein, ansonsonsten wird aus der Abzugsfläche eine Zuzugsfläche. In beiligender DWG habe ich schematisch an Fallbeispielen die Inselflächen-problematik anschaulich(so hoffe ich)dargestellt und erläutert.(DWG - werde ich Dir mailen)
Als nächstes will ich eine Lisp - Routine schreiben, die bei einer ausgewählten PL zwischen den einzelnen Stützpunkten die Richtung angibt( in Form von Pfeilen), um herauszufinden, wo Zuzugsflächen statt Abzugsflächen definiert sind. Gibt es eventulell schon so eine Funktion
oder eine elegantere Möglickeit, die Richtung von Stützpunkt zu Stützpunkt auf einmal für die ganze PL sich anzeigen zu lassen? Danke im vorraus für Deine Mühe,

Gruß Volker

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 17. Sep. 2008 22:36    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 steinemann09 10 Unities + Antwort hilfreich


richt.zip

 
Hallo Volker,

Ja, da gibt es etwas.
Du musst es noch für Dich anpassen, da _Purge bei ACAD und ICAD unterschiedlich aufgerufen werden muss, kannst Du diesen Teil bereinigen. Wenn die Symbolgröße fest steht, brauchst Du auch die Ini-Datei nicht.

Gruß
Theodor Schönwald

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

steinemann09
Mitglied
Dipl. Ing.


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

Beiträge: 47
Registriert: 27.08.2008

AutoCAD 2005, AutoCAD 2009, Windows XP

erstellt am: 18. Sep. 2008 12:43    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 Theodor,

habe soeben Deine Routine getestet. Echt super, das hilft mir schon sehr viel weiter bei meinem Problem. Schade nur, dass man keine Möglickeit zum zoomen hat, anderseits hat es den Vorteil eines übersichtlichen Handlings. Vielleciht findes ich es heraus, obwohl mit der DCL - Problematik habe ich mich schon lange nicht mehr beschäftigt.
Nochmals tausend Dank,

Gruß Volker

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



Systemkonstrukteur (m/w/d)

Sie sind auf der Suche nach einer neuen Herausforderung in einem kreativen und innovativen Umfeld? - Dann sind Sie bei uns genau richtig!

Als Systemkonstrukteur (m/w/d) übernehmen Sie die fachliche Führung von Entwicklern im elektromechanischen Subsystemkontext. Sie entwickeln elektromechanische Subsysteme und präsentieren die zu verantwortenden Entwicklungsteile,

Ihre Aufgaben:

...
Anzeige ansehenMaschinenbau
Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 19. Sep. 2008 18:12    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 steinemann09 10 Unities + Antwort hilfreich

Hallo Volker,

es freut mich wenn mein Tool Dir weiter hilft.

Die Möglichkeit zum Zoomen, hast Du immer, Du kannst den Zoom-Befehl aufrufen, während ein anderer Befehl aktiv ist, wenn Du Zoom so 'Zoom eingibst.

Gruß
Theodor

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