Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Ursprungspunkt beziehen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Lima an!   Senden Sie eine Private Message an Lima  Schreiben Sie einen Gästebucheintrag für Lima

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Sehen Sie sich das Profil von Gilga210 an!   Senden Sie eine Private Message an Gilga210  Schreiben Sie einen Gästebucheintrag für Gilga210

Beiträge: 9
Registriert: 10.12.2003

erstellt am: 23. Jan. 2004 08:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lima 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Lima an!   Senden Sie eine Private Message an Lima  Schreiben Sie einen Gästebucheintrag für Lima

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Sehen Sie sich das Profil von Gilga210 an!   Senden Sie eine Private Message an Gilga210  Schreiben Sie einen Gästebucheintrag für Gilga210

Beiträge: 9
Registriert: 10.12.2003

erstellt am: 23. Jan. 2004 10:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lima 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Lima an!   Senden Sie eine Private Message an Lima  Schreiben Sie einen Gästebucheintrag für Lima

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von JanF an!   Senden Sie eine Private Message an JanF  Schreiben Sie einen Gästebucheintrag für JanF

Beiträge: 35
Registriert: 12.09.2002

erstellt am: 13. Feb. 2004 13:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lima 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz