Code:
Dim TempAxis1 As Object = CATIA.ActiveDocument.Selection.Item(1).Value
Dim TempAxis2 As Object = CATIA.ActiveDocument.Selection.Item(2).Value
'TempAxis1 und TempAxis2 sind meine beiden Test-Achsensysteme Dim oAxis As AxisSystem = TempAxis1
Dim i As Integer
Dim Coord_a(2) 'Array der Ursprungskoordinaten des aktiven Achsensystems
Dim Coord_b(2)
Dim Vx_A(2), Vy_A(2), Vz_A(2) 'Richtungsvektoren des aktiven Achsensystems
Dim x, y, z As Double 'absolute Koordinaten des Punktes
Dim xa, ya, za As Double 'Ursprungskoordinaten des aktiven Achsensystems
Dim xp, yp, zp As Double 'relative Koordinaten des Punktes zum aktuellen Achsensystem
'Ermitteln der Punktkoordinaten
TempAxis2.GetOrigin(Coord_b)
x = Coord_b(0)
y = Coord_b(1)
z = Coord_b(2)
'For i = 1 To CATIA.ActiveDocument.Part.AxisSystems.Count
' oAxis = CATIA.ActiveDocument.Part.AxisSystems.Item(i)
' If oAxis.IsCurrent Then
oAxis.GetOrigin(Coord_a)
oAxis.GetXAxis(Vx_A)
oAxis.GetYAxis(Vy_A)
oAxis.GetZAxis(Vz_A)
' Exit For
' End If
'Next i
xa = Coord_a(0) : ya = Coord_a(1) : za = Coord_a(2)
xp = Vx_A(0) * (x - xa) + Vx_A(1) * (y - ya) + Vx_A(2) * (z - za)
yp = Vy_A(0) * (x - xa) + Vy_A(1) * (y - ya) + Vy_A(2) * (z - za)
zp = Vz_A(0) * (x - xa) + Vz_A(1) * (y - ya) + Vz_A(2) * (z - za)
MsgBox("" + xp.ToString + " " + yp.ToString + " " + zp.ToString + " ")