Bonjour,
pour un projet je dois réaliser une macro SolidWorks afin d'automatiser une certaine tache. Jusqu'à présent j'ai réussi à créer les pièces automatiquement, et a les rassembler dans une assemblage.
Néanmoins, je suis maintenant confronté à un problème: je dois lier les pièces entre-elles avec des contraintes. J'essaye donc de le faire de façon automatique. Voici le code:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
' Mate
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Enlèv. mat.-Extru.1@disque1-1@Assemblage1", "BODYFEATURE", 0, 0, 0, False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Boss.-Extru.6@Pièce1-1@Assemblage1", "BODYFEATURE", 0, 0, 0, True, 1, Nothing, 0)
Dim swMate As Mate2
Set swMate = Part.AddMate5(1, 0, False, 3.90150366882658E-02, 0.001, 0.001, 0.001, 0.001, 0, 0.5235987755983, 0.5235987755983, False, False, 0, longstatus)
Part.ClearSelection2 True
Part.EditRebuild3
End Sub
(sur deux pièces.)
Le problème est le suivant:
Lorsque j'essaye de faire la contrainte manuellement ( donc en enlevant la ligne associée dans le code ci-dessus), j'ai deux choix en fonction des markers que le mets dans mon code ( les arguments des méthode SelectID2)
- -Si J'utilise le marker 0, les pièces ne sont pas réellement selectionnées dans le menu contraintes (capture d'écran 1)
- - Si j'utilise le marker 1, je n'ai qu'un chois de contrainte!
Je pense donc qu'il doit y avoir un paramètre des mes méthodes qui n'est pas la bon, mais malgré de longues recherches je n'ai pas trouvé. Je viens donc vous poser la question: comment réaliser cette contrainte automatiqueement?
Merci d'avance pour l'aide que vous pourrez m'apporter.
captures_ecran.rar