je pense que cela vient de là également, mais je ne vois rien d'anormal dans la sélection des faces.
je pense plus à la ligne CreateDefinition pour le moteur lineaire
@PL.: même en sélectionnant un objet avant de lancer la macro, cela ne veut pas.
Voila la macro qui fonctionne:
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim swMotionMgr As SwMotionStudy.MotionStudyManager
Dim swMotionStudy1 As SwMotionStudy.MotionStudy
Dim swMotorFeat As SldWorks.SimulationMotorFeatureData
Dim swGravityFeat As Object
Dim boolstatus As Boolean
Dim swFeat As SldWorks.Feature
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swSelMgr = swModel.SelectionManager
'---------
'face avant palette
boolstatus = Part.Extension.SelectByID2("", "FACE", 0.116975825107659, 9.86277918692053E-02, -2.07497793580842E-02, False, 0, Nothing, 0)
'origine palette
boolstatus = Part.Extension.SelectByID2("Point1@Origine@Part 1-2@toto-2", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
'origine repère
boolstatus = Part.Extension.SelectByID2("Point1@Origine", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
'-------------------
' Get the MotionManager
Set swMotionMgr = swModelDocExt.GetMotionStudyManager()
If (swMotionMgr Is Nothing) Then
End
End If
' Get Motion Study 1
Set swMotionStudy1 = swMotionMgr.GetMotionStudy("Motion Study 3")
' Activation de l'onglet Etude de mouvement 1
swMotionStudy1.Activate
' Création de la fonction moteur linéaire en objet data
Set swMotorFeat = swMotionStudy1.CreateDefinition(swFmAEMLinearMotor)
' Affectation moteur déplacement interpolé
swMotorFeat.InterpolatedMotor swSimulationMotorDrive_Displacement, 0
' Affectation direction
boolstatus = swModelDocExt.SelectByID2("", "FACE", 0.195285205513159, 4.90124177502054E-02, -3.98286386705422E-02, False, 0, Nothing, 0)
swMotorFeat.DirectionReference = swSelMgr.GetSelectedObject6(1, -1)
' Affectation du point d'application du moteur
boolstatus = swModelDocExt.SelectByID2("Point1@Origine@Part 1-2@toto-2", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
swMotorFeat.Location = swSelMgr.GetSelectedObject6(1, -1)
' Affectation de l'objet de référence
boolstatus = swModelDocExt.SelectByID2("Part 1-1@toto-2", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Dim RelObj As SldWorks.Component2
Set RelObj = swSelMgr.GetSelectedObjectsComponent3(1, -1)
swMotorFeat.RelativeComponent = RelObj
'Chargement du fichier de données de déplacement
boolstatus = swMotorFeat.LoadSplineData("C:\CoordMX1.txt")
' Print the motor type
Debug.Print swMotorFeat.MotorType
' Create the linear motor feature
Set swFeat = swMotionStudy1.CreateFeature(swMotorFeat)
If swFeat Is Nothing Then
Debug.Print " ERROR: Creation of the motor feature failed."
Else
Debug.Print "Name of the feature added : " & swFeat.Name
End If
End Sub
Merci pour l'aide pour la faire fonctionner