[Frage] Schnittpunkte an Polygon mit ClosestIntersectionPoint [Gelöst]

Schlagworte:
  • ClosestIntersectionPoint; Schnittpunkte

Ich habe eine Reihe paralleler Linien und ein geschlossenes Polygon (Rectangle3D).
Das Polygon kann beliebig verschoben und gedreht werden. Alles nur in der XY-Ebene, alle Z-Werte bei 0.

Ich möchte mit dem Node ClosestIntersectionPoint alle möglichen Schnittpunkte zwischen den parallelen Linien und dem Polygon ermitteln, die dem jeweiligen Startpunkt der Linien an nächsten liegen. Also alle „südlichen“ Schnittpunkte am Polygon.

Wenn ich das Polygon direkt an das ClosestIntersectionPoint übergebe, erhalte ich nie ein Ergebnis. Egal welche Listenoperationen ich einstelle. (ClosestIntersectionPoint_w_Polygon.pyp)

Übergebe ich die einzelnen Linien des Polygons durch GetEdges an das ClosestIntersectionPoint, erhalte ich die Schnittpunkte, wenn die Listenoperationen entsprechend eingestellt sind. (ClosestIntersectionPoint_w_GetEdges.pyp)

Müsste es nicht auch ohne GetEdges funktionieren?

Gruß Felix
Allplan 2024-0-1

Anhänge (2)

Typ: image/png
56-mal heruntergeladen
Größe: 105,06 KiB
Typ: application/zip
623-mal heruntergeladen
Größe: 3,84 KiB

Lösung anzeigen Lösung verbergen

Wenn Du wirklich nur einen Schnittpunkt (den nächsten zum Referenzpunkt) für den Test "einer Linie gegen ein Polygon" haben möchtest, mußt Du das Polygon3D in eine Polylinie3D umwandeln.
Dafür gibt es keinen Node, der das dirket kann, sondern Du muss die Punkte aus dem Polygon "extrahieren", und dann mit diesen Punkten eine Polyline3D erzeugen.

Anhänge (1)

Typ: image/png
61-mal heruntergeladen
Größe: 119,49 KiB

Wenn Du wirklich nur einen Schnittpunkt (den nächsten zum Referenzpunkt) für den Test "einer Linie gegen ein Polygon" haben möchtest, mußt Du das Polygon3D in eine Polylinie3D umwandeln.
Dafür gibt es keinen Node, der das dirket kann, sondern Du muss die Punkte aus dem Polygon "extrahieren", und dann mit diesen Punkten eine Polyline3D erzeugen.

Anhänge (1)

Typ: image/png
61-mal heruntergeladen
Größe: 119,49 KiB

Besten Dank für die Lösung!
Wenn ich das Ploygon durch eine Polyline ersetze und alle Inputs im ClosestIntersectionPoint als "One list with single elements" definiere, dann erhalte ich auch eine saubere Ergebnisliste.

Gruß Felix
Allplan 2024-0-1