Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Catia VBA Achsenkreuz erstellen

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
Autor Thema:  Catia VBA Achsenkreuz erstellen (2698 mal gelesen)
Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 27. Aug. 2015 13:53    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 versuche anhand einer Exceldatei meine Achsenkreuze in Catia zu importieren. Ich habe mir dementsprechend vorerst ein Makro aufgenommen und Achsenkreuz erstellt um zu verstehen wie ein solches erstellt wird. Das ganze dann nach Excel zu importieren wird das geringste Problem.

Hier der Code:
Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set axisSystems1 = part1.AxisSystems
Set axisSystem1 = axisSystems1.Add()
axisSystem1.OriginType = catAxisSystemOriginByCoordinates
Dim arrayOfVariantOfDouble1(2)
arrayOfVariantOfDouble1(0) = 10.000000
arrayOfVariantOfDouble1(1) = 10.000000
arrayOfVariantOfDouble1(2) = 10.000000
axisSystem1.PutOrigin arrayOfVariantOfDouble1
axisSystem1.XAxisType = catAxisSystemAxisByCoordinates
Dim arrayOfVariantOfDouble2(2)
arrayOfVariantOfDouble2(0) = 0.969846
arrayOfVariantOfDouble2(1) = 0.200706
arrayOfVariantOfDouble2(2) = -0.138258
axisSystem1.PutXAxis arrayOfVariantOfDouble2
axisSystem1.YAxisType = catAxisSystemAxisByCoordinates
Dim arrayOfVariantOfDouble3(2)
arrayOfVariantOfDouble3(0) = -0.171010
arrayOfVariantOfDouble3(1) = 0.964610
arrayOfVariantOfDouble3(2) = 0.200706
axisSystem1.PutYAxis arrayOfVariantOfDouble3
axisSystem1.ZAxisType = catAxisSystemAxisByCoordinates
Dim arrayOfVariantOfDouble4(2)
arrayOfVariantOfDouble4(0) = 0.173648
arrayOfVariantOfDouble4(1) = -0.171010
arrayOfVariantOfDouble4(2) = 0.969846
axisSystem1.PutZAxis arrayOfVariantOfDouble4
part1.UpdateObject axisSystem1
axisSystem1.IsCurrent = True
part1.UpdateObject axisSystem1
Set settingControllers1 = CATIA.SettingControllers
Set visualizationSettingAtt1 = settingControllers1.Item("CATVizVisualizationSettingCtrl")
visualizationSettingAtt1.SaveRepository
End Sub

Meine Frage ist:
Gibt es eine andere Möglichkeit ein Achsenkreuz zu erstellen?
Wie werden die Raumkoordinaten X/X,X/Y,X/Z,Y/X,Y/Y,Y/Z,Z/X,Z/Y,Z/Z berechnet? Kann ich nicht direkt eine Verdrehung in Beispielsweiße X = 10°, Y = 15° eingeben?

Vielen Dank für eure Hilfe

Gruß Azazel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 27. Aug. 2015 14:09    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Gemäß Doku kann leider nicht die Winkel vorgeben, es geht nur über Vektoren (Methoden PutVectors, PutXAxis, PutYAxis, PutZAxis). Dabei geben die Vektoren die Richtung der Achse an (Einheitsvektor ist scheinbar nicht erforderlich). (siehe auch Doku)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 27. Aug. 2015 14:12    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 Azazel1 10 Unities + Antwort hilfreich

Hallo Azazel,

ich mach's so:

Code:

Function CreateNewAxisSp(oParent As Part, strAxisName As String, Optional iCurr As Boolean = True, Optional iAxType As CATAxisSystemMainType = catAxisSystemStandard) As AxisSystem
  Dim oAxSyst As AxisSystem
     
  Set oAxSyst = oParent.AxisSystems.Add()
  oParent.UpdateObject oAxSyst
  oAxSyst.Type = iAxType
  oAxSyst.IsCurrent = iCurr
  oAxSyst.Name = strAxisName
  oParent.Update
  Set CreateNewAxisSp = oAxSyst
End Function


Wenn die Normalausrichtung nicht reicht, bekommt das Achseensystem noch einen Dreh:
Code:

Sub SetAxisComp(oAxis As Object, arrComp)                'modify axis components
'  Dim oAxis As Object 'AxisSystem                      'Dest Ax Sys for catpart Ax2Ax translation
  Dim arrOrg(2)                                        'PutOrigin - array
  Dim arrVX(2)                                          'PutXAxis - array
  Dim arrVY(2)                                          'PutYAxis - array
  Dim arrVZ(2)                                          'PutZAxis - array
 
 
  arrOrg(0) = arrComp(9)
  arrOrg(1) = arrComp(10)
  arrOrg(2) = arrComp(11)
  oAxis.PutOrigin arrOrg
 
  arrVX(0) = arrComp(0)
  arrVX(1) = arrComp(1)
  arrVX(2) = arrComp(2)
  oAxis.PutXAxis arrVX
 
  arrVY(0) = arrComp(3)
  arrVY(1) = arrComp(4)
  arrVY(2) = arrComp(5)
  oAxis.PutYAxis arrVY
 
  arrVZ(0) = arrComp(6)
  arrVZ(1) = arrComp(7)
  arrVZ(2) = arrComp(8)
  oAxis.PutZAxis arrVZ

End Sub


Hope it helps,
Joe

------------------
The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence.
~Charles Bukowski

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 27. Aug. 2015 14:12    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 Bernd,

leider komme ich mit deiner Antwort nicht viel weiter  ...
Könntest du mir etwas genauer weiter helfen?

Trotzdem Vielen Dank!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 27. Aug. 2015 14:34    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 Azazel1 10 Unities + Antwort hilfreich

die erste Funktion erzeugt ein Achsensystem,
die zweite definiert sie im Raum.

An der Stelle würde ich jetzt auch sagen. Siehe Doku.

Stichworte: AxisSystems, PutOrigin, PutXAxis;

Tschau,
Joe

------------------
The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence.
~Charles Bukowski

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 27. Aug. 2015 14:45    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

Leider wird bei uns nicht die Catia Doku mit installiert...

Trotzdem vielen Dank an euch!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 27. Aug. 2015 14:50    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Schau mal im CATIA-Installationsverzeichnis nach "V5Automation.chm"

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 27. Aug. 2015 15:42    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,

habe mir jetzt die Hilfe angesehen und bin schon etwas weiter.
Jetzt ist nur noch meine Frage ich bekomme aus der Simulation ein Excel Tabelle mit den Werten
X  Y  Z    Rx    Ry  Rz
10  10  10  10    10  10

davon soll ich jetzt ein Koordiantenkreuz in Catia anlegen. Wenn ich es von händisch mache kommen folgende Werte raus.

X/X 0,9698
X/Y 0,2007
X/Z -0,138
Y/X -0,171
Y/Y 0,9646
Y/Z 0,2007
Z/X 0,1736
Z/Y -0,171
Z/Z 0,9698

Wie sieht der Code aus, wenn ich dieses Koordinatenkreuz per VBA erstelle?

Mein Code:
Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set axisSystems1 = part1.AxisSystems
Set axisSystem1 = axisSystems1.Add()

Dim originCoord(2)
originCoord ( 0 )  = 10.000000
originCoord ( 1 )  = 10.000000
originCoord ( 2 )  = 10.000000
axisSystem1.PutOrigin originCoord

Dim XAxis(2)
XAxis ( 0 )  = 10.000000
XAxis ( 1 )  = 10.000000
XAxis ( 2 )  = 10.000000
axisSystem1.PutXAxis XAxis

Dim YAxis(2)
YAxis ( 0 )  = 10.000000
YAxis ( 1 )  = 10.000000
YAxis ( 2 )  = 10.000000
axisSystem1.PutYAxis YAxis
End Sub

So hat das Achsenkreuz jedoch eine andere Ausrichtung.

Hoffe ihr habt noch etwas geduld mit mir :P

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 27. Aug. 2015 15:45    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Was ist Rx, Ry und Rz?
Sind das Euler'sche Winkel?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 27. Aug. 2015 16:03    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

Rx ist die Rotation um 10° in der X-Achse.
Ry ist die Rotation um 10° in der Y-Achse.
Rz ist die Rotation um 10° in der Z-Achse.

Dementsprechend geb ich auch die Rotation in Catia an, wenn ich rechtsklick auf x axis klicke und Rotation auswähle.

Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 27. Aug. 2015 16:04    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 Azazel1 10 Unities + Antwort hilfreich

Servus
Dann musst du wohl umrechnen (siehe hier oder hier)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 31. Aug. 2015 09:40    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

Guten Morgen zusammen,

habe mir jetzt einiges darüber durchgelesen, nur leider komme ich da alleine nicht ganz weiter.
Könnte mir jemand bei der Umrechnung helfen?

Vielen Dank

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 31. Aug. 2015 12:39    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 Azazel1 10 Unities + Antwort hilfreich

Hallo azazel,

wenn ich mich recht entsinne, sind die Winkel im Bogenmass anzugeben.
Die Werte selbst bewegen sich zwischen 0 und +/- 1(für sin(x) oder cos(x).
Ein Wert von '10' für die Achsenrichtung kann nicht vorkommen.
Vielleicht wär's geschickt, mit einem einfachen Winkel anzufangen, zB 30°?

Nur so als Idee.

Tschau,
Joe

------------------
The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence.
~Charles Bukowski

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Azazel1
Mitglied



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

Beiträge: 32
Registriert: 08.09.2014

X5450; 16GB
Win 7 SP1
CATIA V5R19 SP9

erstellt am: 31. Aug. 2015 12:50    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,

ich denke ich bin mittlerweile zu einem korrekten Ergebnis gekommen. Jedoch bin ich mir nicht ganz sicher, worin der Unterschied zwischen Eulerischen Winkel und Kardesischen Winkel besteht. Da ich in der Automobilindustrie unterwegs bin, wird unser Achsenkreuz zuerst um Z gedreht, anschließend um Y und als letztes um X. Es wird immer um die daraus resultierende Achse gedreht.

[URL=https://de.wikipedia.org/wiki/Eulersche_Winkel][/URL]. In diesem Beitrag gibt es unter der "Gier-Nick-Roll: z, y′, x″-Konvention" eine Matrix.
Die daraus resultierende Matrix stimmt mit meinen Werten in Catia überein, wenn ich dort zuerst um Z,Y,X mein Achsenkreuz drehe.

Vielen Dank für die Hilfe.

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)2023 CAD.de | Impressum | Datenschutz