Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] PointLocal (Path2D, Point3D, eps) liefert fehlerhafte Werte

Schlagworte:
  • Python
  • 2021
  • TransformCoord
  • PointLocal
  • PointGlobal
  • Path2D

Hallo

Ich verwende die Funktion TransformCoord.PointLocal mit den Parametern Path2D, Point3D und eps um Punkte auf eine Achse zu projizieren.
Das Ziel ist es eine Art Längenprofil zu erhalten (X-Wert des PointLocal, Z-Wert des Point3D). Leider erhalte ich in der Regel extrem ungenauer oder sogar total falsche Werte.

Die Elementverbindung (Path2D) besteht bei meinem Test nur aus 2 Geraden und einem Bogen und ist nahe dem Nullpunkt. Ebenso sind die Y-Werte der 3D-Punkte klein (5 bis 10 m). Mit Geraden und Bogen als einzelne Elemente funktioniert die Funktion.

Ist dies ein bekanntes Problem?. Gibt es einen komfortablen Workaround?

Gruss
Hansruedi

Testdaten oder ein Screenshot zum Verdeutlichen fehlen!

Aber auch ohne diese, kann ich bestätigen, dass TransformCoord.PointLocal mit zusammengesetzten Kurven nicht zuverlässig arbeitet. Mit Kreisbögen wird auch schon mal der Abstand zum verlängerten Kreisbogen genommen. (s. pointlocal.png obere Darstellung) Auch wird die Richtung der Kurven manchmal nicht normalisiert!

Ausserdem ermittelt die Funktion den "LocalPoint" zu einer der im Pfad enthaltenen Kurven, nicht zu der, mit dem kleinsten Abstand zum Punkt (LocalPoint.Y). Genau das wird aber in der Dokumentation der Funktion "versprochen":

PointLocal
Overloaded. Map a point into the coordinate system of an object. The x value of the resulting point is the distance of the perpendicular point from the start point on the object. The y value marks the length of the perpendicular (shortest distance between the object and the given point)

Bei Kurven mit nicht tangentialen Übergängen (s. poinlocal.png untere Darstellung) wird das zum Problem!

Fazit:
Ich musste mir diese Funktion komplett neu schreiben, wie auch einige andere aus der Geometrie-Bibliothek.

Anhänge (1)

Typ: image/png
100-mal heruntergeladen
Größe: 12,16 KiB

Vielen Dank für das Feedback.

Ich werde mir wohl notgedrungen einen Workaround basteln müssen.
Es ist zu hoffen, dass die fehlerhaften Funktionen zeitnah überarbeitet werden.

Hallo,

vielen Dank für die Informationen. Wir versuchen, das Problem zu Version 2022-1-1 zu beheben.

Viele Grüße
Horst

Bei der Verwendung von Klothoiden in Path2D liefern die Methoden AllplanGeo.TransformCoord.PointLocal(), AllplanGeo.TransformCoord.PointGlobal() oder AllplanGeo.CalcLength() teilweise noch falsche Werte.

Ebenso findet die Methode AllplanGeo.IntersectionCalculus() bei Path2D/Line2D/Arc2D (auch ohne Klothoiden) keine Schnittpunkte.

Ich wünsche mir, dass die Python-Methoden genauso robust sind wie die internen Funktionen "Element stationieren" oder "Lot durch Station".