Sub Achs_aus_Auswahl() Set oPart = CATIA.ActiveDocument.Part Set oAuswahl = CATIA.ActiveDocument.Selection ' Hier wählt der Nutzer eine Kante aus, die später die X-Richtung des Achsesystems vorgeben soll Dim WasE(0) WasE(0) = "Edge" oAuswahl.clear Eingabe = oAuswahl.SelectElement2(WasE, "Bitte Richtung selektieren", True) 'Hier wird der Text der Auswahl ' von z.B "Selection_BorderREdge:(BEdge:(Brp:(GSMBiDim.3;%1);None:(Limits1:();Limits2:();-1);Cf11:());GSMBiDim.3;Z0;G2198)" ' in z.B. "BorderREdge:(BEdge:(Brp:(GSMBiDim.3;%1);None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)" 'umgewandelt oText1 = oAuswahl.Item(1).Value.Name oText2 = Right(oText1, Len(oText1) - Len("Selection_")) oTeilstring = Split(oText2, ";") oText3 = oTeilstring(0) & ";" & oTeilstring(1) & ";None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)" 'Erzeugung des Achsensystem Set oAchs = oPart.AxisSystems.Add() Set oUrsprung = oPart.Parameters.Item("Startpunkt") Set oZ_Richt = oPart.Parameters.Item("Linie-normal") Set oFlaeche = oPart.Parameters.Item("Fläche.3") oAchs.OriginType = catAxisSystemOriginByPoint oAchs.XAxisType = catAxisSystemAxisSameDirection oAchs.YAxisType = catAxisSystemAxisSameDirection oAchs.ZAxisType = catAxisSystemAxisSameDirection oAchs.OriginPoint = oPart.CreateReferenceFromObject(oUrsprung) oAchs.ZAxisDirection = oPart.CreateReferenceFromObject(oZ_Richt) oAchs.XAxisDirection = oPart.CreateReferenceFromBRepName("BorderREdge:(BEdge:(Brp:(GSMBiDim.3;%1);None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", oFlaeche) ' statt der obigen Zeile hätte ich gerne ' oAchs.XAxisDirection = oPart.CreateReferenceFromBRepName(oKante, oTraeger) ' stehen haben, wobei sich oKante und oTraeger aus der UserSelection von vorhin (z.b. oText3 bzw dem Teilstring GSMBiDim.3)definieren sollen' ' ' am Schönsten wäre es natürlich, wenn ich bei der Auswahl nicht auf Flächenkanten beschränkt wäre, sondern auch Kanten von Körpern, Linie; Achs-Richtungen wählen könnte. oPart.UpdateObject oAchs oAchs.IsCurrent = False oPart.Update End Sub