Hallo,
ich versuche gerade verzweifelt innerhalb einer Drawing "Point.1" (beliebiger Punkt) zu dem Origin-Point der View (Axis-System) zu messen, um die originalen Koordinaten (wie sie im 3D vorhanden sind mit dem Point2D der Drawing-View zu assoziieren). Manuell funktioniert das, also die Messfunktion innerhalb der Drawing zeigt die korrekten 3D-Koordinaten an, wenn man zum Origin-Point des View-Axis-System mist (gemeinsames Achsensystem der DrawingView und des 3D). Die anderen Koordinaten, welche die Klasse Point2D liefert, liefern ja leider nur die Koordinaten zurück in Bezug zur Ecke der View (roter Rahmen, wenn eingeschaltet).
Hat sowas schon mal jmd. gemacht? Es wird denke ich mit der SPA-Workbench gehen, aber ich scheitere bei der Erzeugung der Referenz im 2D. Im grunde genommen ist meine abstrakte Aufgabenstellung folgende: Ordne die projizierten (generierten) Points aus einer View den ursprünglichen 3D-Punkten zu! Daher ist meine Idee, die Koordinaten im 3D auf die Drawing-Reference-Plane zu projizieren, dann die Koordinaten des projizierten Punktes auszulesen und alle Punkte in der Drawing mit den Koordinaten zu vergleichen.
Habe schon folgendes getestet:
- CreateReferenceFromName, wobei mir da der Parameter nicht so klar ist, habe da einfach einiges durchprobiert, leider ohne Erfolg
- Selection.Add, dann von dem Item 1 die "Reference" Property aufgerufen => Exception, teilweise auch die Komplette DrawingView selbst enthalten statt das selektierte Objekt
Ich habe das ganze auch mal spaßeshalber in C# (.NET) probiert, weil man da ganz einfach fast jedes AnyObject auf Reference casten kann, aber auch das verweigert er mir, da kein passendes Interface dafür existiert.
Code:
Sub catmain()Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument
Dim drawingSheets1 As DrawingSheets
Set drawingSheets1 = drawingDocument1.Sheets
Dim drawingSheet1 As DrawingSheet
Set drawingSheet1 = drawingSheets1.Item("Sheet.1")
Dim drawingViews1 As DrawingViews
Set drawingViews1 = drawingSheet1.Views
Dim drawingView1 As DrawingView
Set drawingView1 = drawingViews1.Item("Front view")
Dim geometricElements1 As GeometricElements
Set geometricElements1 = drawingView1.GeometricElements
Dim p1 As Point2D
Set p1 = geometricElements1.Item("Point.1")
Dim axis2D1 As Axis2D
Set axis2D1 = geometricElements1.Item("AbsoluteAxis")
Dim op As Point2D
Set op = axis2D1.GetItem("Origin")
Dim spa As SPAWorkbench
Set spa = drawingDocument1.GetWorkbench("SPAWorkbench")
'=======================================================================
'spa.GetMeasurable ( 'hier wird natürlich die Referenz benötigt' )
'usw.
'=======================================================================
End Sub
Mal schauen, ob jmd. was weiß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP