Ik denk dat het daar ook vandaan komt, maar ik zie niets abnormaals in de selectie van gezichten.
Ik denk meer aan de CreateDefinition-regel voor de lineaire engine
@PL.: Zelfs als u een object selecteert voordat u de macro start, wil het dat niet.
Dit is de macro die werkt:
Sub hoofd()
Dim swApp als SldWorks.SldWorks
Dim swModel als SldWorks.ModelDoc2
Dim swModelDocExt als SldWorks.ModelDocExtension
Zon swSelMgr As SldWorks.SelectionMgr
Zon swMotionMgr Als SwMotionStudy.MotionStudyManager
Dim swMotionStudy1 als SwMotionStudy.MotionStudy
Dim swMotorFeat As SldWorks.SimulationMotorFeatureData
Dim swGravityFeat als object
Dim boolstatus als Booleaanse
Dim swFeat als SldWorks.Feature
Stel swApp = Toepassing.SldWorks in
Stel swModel = swApp.ActiveDoc in
Stel swModelDocExt = swModel.Extension in
Stel swSelMgr = swModel.SelectionManager in
'---------
'Pallet aan de voorkant
boolstatus = Part.Extension.SelectByID2("", "GEZICHT", 0.116975825107659, 9.86277918692053E-02, -2.07497793580842E-02, Onwaar, 0, Niets, 0)
Herkomst van de pallet
boolstatus = Part.Extension.SelectByID2("Point1@Origine@Part 1-2@toto-2", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Niets, 0)
Oorsprong
boolstatus = Part.Extension.SelectByID2("Point1@Origine", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
'-------------------
' Verkrijg de MotionManager
Stel swMotionMgr in = swModelDocExt.GetMotionStudyManager()
Als (swMotionMgr niets is) dan
Einde
Einde als
' Krijg bewegingsstudie 1
Stel swMotionStudy1 in = swMotionMgr.GetMotionStudy("Bewegingsstudie 3")
' De bewegingsstudie inschakelen Tab 1
swMotionStudy1.Activeren
' Het creëren van de lineaire motorfunctie als dataobject
Stel swMotorFeat in = swMotionStudy1.CreateDefinition(swFmAEMLinearMotor)
' Geïnterpoleerde toewijzing van verplaatsingsmotoren
swMotorFeat.InterpolatedMotor swSimulationMotorDrive_Displacement, 0
' Management opdracht
boolstatus = swModelDocExt.SelectByID2("", "FACE", 0.195285205513159, 4.90124177502054E-02, -3.98286386705422E-02, Onwaar, 0, Niets, 0)
swMotorFeat.DirectionReference = swSelMgr.GetSelectedObject6(1, -1)
' Toewijzing van het toepassingspunt van de motor
boolstatus = swModelDocExt.SelectByID2("Point1@Origine@Part 1-2@toto-2", "EXTSKETCHPOINT", 0, 0, 0, Onwaar, 0, Niets, 0)
swMotorFeat.Location = swSelMgr.GetSelectedObject6(1, -1)
' Toewijzing van het referentieobject
boolstatus = swModelDocExt.SelectByID2("Deel 1-1@toto-2", "COMPONENT", 0, 0, 0, Onwaar, 0, Niets, 0)
Dim RelObj As SldWorks.Component2
Set RelObj = swSelMgr.GetSelectedObjectsComponent3(1, -1)
swMotorFeat.RelativeComponent = RelObj
'Het bestand met verplaatsingsgegevens wordt geladen'
boolstatus = swMotorFeat.LoadSplineData("C:\CoordMX1.txt")
' Druk het motortype af
Foutopsporing.Print swMotorFeat.MotorType
' Creëer de lineaire motorfunctie
Stel swFeat in = swMotionStudy1.CreateFeature(swMotorFeat)
Als swFeat niets is, dan
Debug.Print "FOUT: Het maken van de motorfunctie is mislukt."
Anders
Debug.Print "Naam van de toegevoegde functie : " & swFeat.Name
Einde als
Einde Sub
Bedankt voor de hulp om het te laten werken