Autor
|
Thema: AxisRotation (1056 mal gelesen)
|
IAmTheFabian Mitglied Konstrukteur
Beiträge: 58 Registriert: 17.10.2013 CATIA V5 R19 Windows 7 Professionel Intel Core 2 Duo8GB RAM 64Bit System
|
erstellt am: 28. Okt. 2013 09:31 <-- editieren / zitieren --> Unities abgeben:
Habe gerade ein Makro von jemandem erhalten: Die Sub CreateAxis (Name,Aucrichtung) funktioniert leider nicht ganz. Bei dem Punkt DoAxisRotation meckert CATIA. Wenn ich die Zeile lösche funktioniert es selbstverständlich, aber die Achsensyteme rotieren dann nicht so wie sie sollten. Wo ist da der Fehler Sub CreateAxis(Name, Ausrichtung) Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Set part1 = partDocument1.Part Dim axisSystems1 As AxisSystems Set axisSystems1 = part1.AxisSystems Dim axisSystem1 Set axisSystem1 = axisSystems1.Add() axisSystem1.Name = Name 'Frameursprung setzen axisSystem1.OriginType = catAxisSystemOriginByCoordinates Dim arrayOfVariantOfDouble1(2) arrayOfVariantOfDouble1(0) = CDbl(CStr(Ausrichtung(1))) arrayOfVariantOfDouble1(1) = CDbl(CStr(Ausrichtung(2))) arrayOfVariantOfDouble1(2) = CDbl(CStr(Ausrichtung(3))) axisSystem1.PutOrigin arrayOfVariantOfDouble1 'Frame im Raum ausrichten DoAxisRotation CDbl(Ausrichtung(4)), CDbl(Ausrichtung(5)), CDbl(Ausrichtung(6)), axisSystem1 part1.UpdateObject axisSystem1 axisSystem1.IsCurrent = False part1.Update End Sub ------------------ Anfänger! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Okt. 2013 09:33 <-- editieren / zitieren --> Unities abgeben: Nur für IAmTheFabian
Servus Welche Fehlermeldung kommt? Wie schaut der Code von DoAxisRotation aus? Welche Inputs verlangt diese Sub/Funktion? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
IAmTheFabian Mitglied Konstrukteur
Beiträge: 58 Registriert: 17.10.2013 CATIA V5 R19 Windows 7 Professionel Intel Core 2 Duo8GB RAM 64Bit System
|
erstellt am: 28. Okt. 2013 10:04 <-- editieren / zitieren --> Unities abgeben:
Sub or function not defined. Der Code steht in dem Makro nicht drin. Das wundert mich auch. Was müsste ich denn tun um die Achsensysteme zu rotieren? Die Ursprungskoordinaten des Achsensystems werden jedenfalls ausgerichtet. ------------------ Anfänger! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Okt. 2013 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für IAmTheFabian
Servus Wo hast du en Ursprungscode her? Ist dort die "DoAxisRotation" drin? Wie würdest du manuell vorgehen? Wie soll das Achsensystem erstellt werden (mit welchem Input)? (ggf hilft dabei der Makrorecorder) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
IAmTheFabian Mitglied Konstrukteur
Beiträge: 58 Registriert: 17.10.2013 CATIA V5 R19 Windows 7 Professionel Intel Core 2 Duo8GB RAM 64Bit System
|
erstellt am: 28. Okt. 2013 11:19 <-- editieren / zitieren --> Unities abgeben:
Also ich bekomme drei Koordinaten und drei Rotationen um die jeweiligen Ursprungsachsen. Bsp: -14843.129883,-16659.269531,0.000000,0.000000,0.000000,180.000006 x , y , z , Rot um x,Rot um y, Rot um z Jetzt weiß ich nicht wie ich mit den letzten drei Parameter mein neues Achsensystem gedreht bekomme. ------------------ Anfänger! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Okt. 2013 11:27 <-- editieren / zitieren --> Unities abgeben: Nur für IAmTheFabian
Servus Dann Schau dir mal in der Doku die Methoden zu den Axissystems an. (PutOrgiin, PutVectors Ich befürchte aber dass du die Rotation in Richtungsvektoren der Achsen umrechnen muss (vielleicht findest du auch hier was im Forum). Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 28. Okt. 2013 14:06 <-- editieren / zitieren --> Unities abgeben: Nur für IAmTheFabian
Es ist wahrscheinlich nicht ganz das ,was Du suchst, aber vielleicht spart Dir das schon den Entwicklungsaufwand im Gegensatz es jetzt zich Wochen hinzufrickeln: http://hoblila.wordpress.com/download/------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
IAmTheFabian Mitglied Konstrukteur
Beiträge: 58 Registriert: 17.10.2013 CATIA V5 R19 Windows 7 Professionel Intel Core 2 Duo8GB RAM 64Bit System
|
erstellt am: 30. Okt. 2013 10:30 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 30. Okt. 2013 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für IAmTheFabian
|
IAmTheFabian Mitglied Konstrukteur
Beiträge: 58 Registriert: 17.10.2013 CATIA V5 R19 Windows 7 Professionel Intel Core 2 Duo8GB RAM 64Bit System
|
erstellt am: 30. Okt. 2013 15:33 <-- editieren / zitieren --> Unities abgeben:
Ich musste die DoAxisRotation löschen. Ich weiß nicht wo die definiert wurde. Hab das so gemacht: 'Frame im Raum ausrichten DoAxisRotation axisSystem1.Type = catAxisSystemEulerAngles Dim arrayOfVariantOfDouble2(6) arrayOfVariantOfDouble2(2) = CDbl(CStr(Ausrichtung(6))) arrayOfVariantOfDouble2(0) = CDbl(CStr(Ausrichtung(4))) arrayOfVariantOfDouble2(1) = CDbl(CStr(Ausrichtung(5))) Dim partDocument2 As PartDocument Set partDocument2 = CATIA.ActiveDocument Dim part2 As Part Set part2 = partDocument2.Part Dim parameters1 As Parameters Set parameters1 = part1.Parameters Dim angle1 As Angle Set angle1 = parameters1.Item(CATIA.ActiveDocument.Part.Name + "\" + Name + "\EulerAngle1") angle1.Value = arrayOfVariantOfDouble2(2) Dim parameters2 As Parameters Set parameters2 = part1.Parameters Dim angle2 As Angle Set angle2 = parameters2.Item(CATIA.ActiveDocument.Part.Name + "\" + Name + "\EulerAngle2") angle2.Value = arrayOfVariantOfDouble2(0) Dim parameters3 As Parameters Set parameters3 = part1.Parameters Dim angle3 As Angle Set angle3 = parameters3.Item(CATIA.ActiveDocument.Part.Name + "\" + Name + "\EulerAngle3") angle3.Value = -(arrayOfVariantOfDouble2(1)) axisSystem1.IsCurrent = False ------------------ Anfänger! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |