| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | | |  | KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
|
|
Autor
|
Thema: Messen innerhalb einer Drawing (2183 mal gelesen)
|
MarcDe Mitglied
 
 Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 13. Feb. 2013 19:03 <-- editieren / zitieren --> Unities abgeben:         
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 |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12117 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 13. Feb. 2013 20:38 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Servus Musst du unbedingt messen? Du könntest doch direkt über "GetCoordinates" die 2D-Koordinaten auszulesen: Code: Dim geometricElements1 As GeometricElements Set geometricElements1 = drawingView1.GeometricElementsDim point2D1 As Object 'As Point2D Set point2D1 = geometricElements1.Item("Punkt.1") Dim coord(1) As Variant point2D1.GetCoordinates coord
Der Punkt muss allerdings als Objekt deklariert sein (restricted methode), zumindest in VBA.Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcDe Mitglied
 
 Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 13. Feb. 2013 21:47 <-- editieren / zitieren --> Unities abgeben:         
Hallo Bernd, wie in meinem Beitrag bereits geschrieben bringen mir diese Koordinaten nichts, da es Blattkoordinaten sind von dem View-Ursprung (Ecke der Viewbox) und nicht von dem Achsenkreuzursprung des Parts. Es sind also völlig andere Koordinaten, die ich von dieser Funktion zurückbekomme. Demnach kann ich mit diesen Koordinaten keine Assoziation zu den ursprünglichen Punkten im 3D herstellen. Lediglich das Messen im 2D der Drawing-Points zum Origin-Point der View liefert mir die richtigen Koordinaten wie auch im 3D und das muss ich leider messen! Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12117 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 13. Feb. 2013 21:59 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Servus Ich kann die unterschiedlichen Werte wischen Messung und Eigenschaften des Punktes nicht nachvollziehen. AFAIK liegt der Ursprung einer Ansicht im projizierten Ursprung des entsprechenden Achsensystems im Part. Wenn bei der Ansichtserstellung das falsche Referenz-Achsensystem gewählt wurde kann das auch im Nachhinein neu zugewiesen werden. (siehe hier) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 13. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcDe Mitglied
 
 Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 14. Feb. 2013 10:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo zurück, ich bin der Sache jetzt mal etwas auf den Grund gegangen. Es stimmt tatsächlich, dass im Normalfall der Projektion diese Koordinaten übereinstimmen, es sei denn man dreht die Ansicht auf der Blattebene um die Achse, die aus dem Bildschirm herauskommt. Und dies ist bei der View, die ich untersuche, der Fall. Man könnte jetzt überlegen, ob man die Koordinaten mathematisch wieder zurücktransformiert, aber ich glaube das mit dem Messen - wenn es denn funktioniert - wäre einfacher. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |