Hallo Scipio,
wie "MICHLICK" schon angedeutet hat, ist das 'nur' Mathematik.
Ich habe das hier mal mit der "Determinante" versucht, wo der Wert "1" bzw. "-1" ergeben muss und man daraus auf ein rechts- oder linksseitiges Achsensystem schließen kann.
Code:
Option ExplicitSub CATMain()
Dim iDoc As Document
Dim iSel 'As Selection
Dim iFilter()
Dim iAxis 'As AxisSystem
Dim iString As String
Dim iAxisX()
Dim iAxisY()
Dim iAxisZ()
Dim iDbl As Double
Dim iInt As Integer
Set iDoc = CATIA.ActiveDocument
Set iSel = iDoc.Selection
ReDim iFilter(0)
iFilter(0) = "AxisSystem"
iString = iSel.SelectElement2(iFilter, "Select Axis System", False)
If iString = "" Then
Exit Sub
End If
Set iAxis = iSel.Item2(1).Value
ReDim iAxisX(2)
ReDim iAxisY(2)
ReDim iAxisZ(2)
iAxis.GetXAxis iAxisX
iAxis.GetYAxis iAxisY
iAxis.GetZAxis iAxisZ
iDbl = ((iAxisX(0) * iAxisY(1) * iAxisZ(2)) _
+ (iAxisX(1) * iAxisY(2) * iAxisZ(0)) _
+ (iAxisX(2) * iAxisY(0) * iAxisZ(1)) _
- (iAxisX(2) * iAxisY(1) * iAxisZ(0)) _
- (iAxisX(1) * iAxisY(0) * iAxisZ(2)) _
- (iAxisX(0) * iAxisY(2) * iAxisZ(1)))
iInt = Round(iDbl, 0)
If iInt = 1 Then
MsgBox "Achsensystem '" & iAxis.Name & "' ist rechtsgerichtet."
ElseIf iInt = -1 Then
MsgBox "Achsensystem '" & iAxis.Name & "' ist linksgerichtet."
Else
MsgBox "Achsensystem '" & iAxis.Name & "': Ausrichtung nicht ermittelbar."
End If
iSel.Clear
End Sub
mfg,
Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!
frei nach größeren Geistern
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP