| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | |  | KISTERS 3DViewStation: Schnelligkeit und Präzision in dem neuen JT-Importer, eine Pressemitteilung
|
Autor
|
Thema: Ursprungspunkt beziehen (1551 mal gelesen)
|
Lima Mitglied CAD Konstrukteur

 Beiträge: 17 Registriert: 02.10.2001 CATIA V5 R10 SP5 (win2K SP4) Z Pro / Xeon 3,06 / 1,5GB / Quadro4 XGL 980
|
erstellt am: 22. Jan. 2004 16:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Ich habe folgendes Problem: Ich muss die absoluten Positions- und Lagekoordinaten eines beliebigen Koordinatensystems ermitteln. Das Koordinatensystem befindet sich an einer beliebigen Stelle in einem Part, das wiederrum eine beliebige Position im Raum der Baugruppe habe kann. Das Koordinatensystem wird während der Laufzeit des Makros vom Benutzer selektiert. Die Koordinaten sollen als absolute Koordinaten (zum absoluten Ursprung des System) ermittelt werden. Den Ansatz den ich dazu ausgesucht habe, ist die OriginPoint-Eigenschaft des AxisSystem Objekts. Die Syntax, die ich dazu verwenden will ist folgende: ... Dim oUrsprungspunkt As AnyObject Dim oReference1 As Reference Set oReference1 = oPart1.CreateReferenceFromObject(oKoordinatensystem) Set oUrsprungspunkt = oReference1.OriginPoint ... Leider funzt das ganze nicht so, wie es soll. :-( Ich habe schon alle möglichen Varianten der Syntax ausprobiert, komme aber leider zu keiner Lösung. Die OriginPoint Eigenschaft will einfach nicht funktionieren. Die Fehlermeldung, die ich erhalte lautet folgendermaßen: "Laufzeitfehler.... Das Objekt Objekt unterstützt diese Eigenschaft oder Methode nicht: Reference1.PointOrigin" In der Dokumentation kann ich leider keine weiteren Hinweise finden. Weiß jemand, wie man sowas hinbekommen könnte? Hat vielleicht jemand schon mal ein ähnliches Problem gehabt? Oder kann mir jemand sagen, ob die OriginPoint Eigenschaft (angewendet in einer Baugruppe), die Koordinaten zum Ursprungsachsensystem des Parts oder zum absoluten Ursprung des Systems liefert? Wäre für jeden Hinweis dankbar! Grüße, Mark Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gilga210 Mitglied Diplomingenieur Maschinenbau
 Beiträge: 9 Registriert: 10.12.2003
|
erstellt am: 23. Jan. 2004 08:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Lima
Wenn ich dich richtig verstehe willst du den Ursprung eines Koordinatensystems auslesen. Ich würde das über die Klasse Measurable machen. Hier mein Vorschlag: Dim Bench as Workbench Set Bench = Catia.ActiveDocumentGetWorkbench("SPAWorkbench") Dim Koord as AxisSystem Set Koord = Apart.AxisSytems.Item(x) 'Variable x wird bei deiner Selektion der Koordinatensystem zugewiesen 'oder den direkten Namen angeben ("Absolute Axis System") Dim ref as Reference Set ref = Apart.CreateReferenceFromObject(Koord) Dim mess as Measurable Set mess = Bench.GetMeasurable(ref) Dim sys (11) mess.GetAxisSystem sys Dim a,b,c as Double a = sys(0) b = sys(1) c = sys(2) Die Variablen a,b,c enthalten nun die Koordinaten des Ursprungs. Die restlichen Arrays ( sys(3) bis sys(11)) enhalten die Richtungsvektoren der einzelnen Achsen (z.B. x-Achse hat den Richtungsvektor sys(3),sys(4),sys(5)). Ich hoffe das hilft dir weiter. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lima Mitglied CAD Konstrukteur

 Beiträge: 17 Registriert: 02.10.2001 CATIA V5 R10 SP5 (win2K SP4) Z Pro / Xeon 3,06 / 1,5GB / Quadro4 XGL 980
|
erstellt am: 23. Jan. 2004 09:51 <-- editieren / zitieren --> Unities abgeben:         
Vielen Dank für Deine Antwort. Ich hatte es auch bereits über die Measurable-Klasse versucht, allerdings hatte es bei mir nie geklappt, weil ich das Reference-Objekt nicht richtig zugewiesen bekam. Anhand Deines Beispiels hat es funktioniert. Leider liefert es aber nicht das Ergebnis, das ich brauche. Auf diese Art und Weise werden die Koordinaten des selektierten Achsensystemursprungs im absoluten KS des PARTs ermittelt. Was ich jedoch bräuchte, sind die Koordinaten des selektierten KS im absoluten System der BAUGRUPPE. In meinem Fall liegt das Part welches das zu selektierende KS enthält nämlich nicht am Ursprung der Baugruppe, sondern an beliebiger Position im Raum. Was ich also ermitteln muss ist die relative Position zwischen dem selektierten KS und dem absoluten KS der Baugruppe. Mir würde auch schon eine Methode ausreichen, wie ich die Position des Part-Ursprungssystems zu dem der Baugruppe ermitteln kann. Dann kann ich über die Vektoraddition beider Positionen die Position des selektierten KS im abs. der BG "rekonstruieren". Wie das Auslesen der Position eines Part in einer BG funktioniert, weiß ich allerdings nicht. Ich habe in der Hilfe zwar die Möglichkeit gefunden, die Position einer Baugruppe zu bestimmen (product.Position), aber eine entsprechende Property für das Part scheint es nciht zu geben. Jedenfalls habe ich leider keine gefunden (R10 SP5). Kennst Du vielleicht eine Möglichkeit, dieses Problem zu lösen? Vielen Dank nochmal für Deine Antwort. Es hat mir trotz allem schon ein gutes Stück weiter geholfen. Grüße, Mark
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gilga210 Mitglied Diplomingenieur Maschinenbau
 Beiträge: 9 Registriert: 10.12.2003
|
erstellt am: 23. Jan. 2004 10:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Lima
Wenn ich dich richtig verstehe, bist du in der Product Umgebung und hast z.B. zwei Parts. In dem einen Part befindet sich dein Absolutes Koordinatensystem der Baugruppe und in dem zweiten Part ein Koordinatensystem, von welchem du den Ursprung in Bezug auf das Absolute Koordinatensystem der Baugruppe (Part eins) erhalten willst. Wenn es so ist, kannst du das Problem vielleicht umgehen. Ich würde im Ursprung des zu messenden Koordinatensystems (hier Part zwei) einen Punkt erzeugen. Diesen Punkt copieren und mit Paste Special (asResultWithLink) in das erste Part einfügen und dann dort die Koordinaten des Punktes messen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lima Mitglied CAD Konstrukteur

 Beiträge: 17 Registriert: 02.10.2001 CATIA V5 R10 SP5 (win2K SP4) Z Pro / Xeon 3,06 / 1,5GB / Quadro4 XGL 980
|
erstellt am: 23. Jan. 2004 11:14 <-- editieren / zitieren --> Unities abgeben:         
Ja, so stellt sich die Situation dar. Ich werde es mal mit dem Kopieren des Punktes versuchen, obwohl mir eigentlich ein Verfahren besser gefallen würde, bei dem ich das auszuwertende Modell nicht verändern muss... Vielleicht fällt ja doch noch jemandem etwas dazu ein....? Trotzdem nochmal vielen Dank, Gilga! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JanF Mitglied Student

 Beiträge: 35 Registriert: 12.09.2002
|
erstellt am: 13. Feb. 2004 13:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Lima
Hallo Mark! Es gibt in der Onlinedoku ein Bsp. in dem die Position eines Partursprungs innerhalb eine Baugruppe berechnet wird. Im wesentlichen läuft das über die Funktion: oProduct.Position.GetComponents und Matrizenrechnung (Stand R10 SP4 in R11 und R12 habe ich mir das noch nicht angesehen). Leider steht mir im Moment die Onlinehilfe nicht zur Verfügung um genaueres sagen zu können. Gruß Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |