Bonjour,
J'ai une macro qui remplace tous les composants d'un assemblage modele par l'ensemble des assemblages selectionnes par l'utilisateur via un fichier Excel, ca nous permet de contruire une machine composee d'elements standards tres rapidement.
Pour une de ces elements (une piece), seule une cote va changer dependant de quelques options selectionnees par l'utilisateur.
J'aurai pu faire une piece solidworks specifique a chaque possibilite mais vue que cette piece sera propre a chaque machine, j'ai prefere faire un model generique de cette piece puis:
- l'importer dans mon assemblage model de machine
- ouvrire cette piece generique
- modifier cette cote
- enregistrer la piece ainsi que sa mise en plan sous un nouveau nom (mise en plan generique deja faite)
- et refermer cette piece pour revenir a l'assemblage en contruction.
De toute les etapes citees ci-dessus je n'arrive qu'a importer ma piece generique (nom de la piece TEST.SLDPRT), la selectionner, l'ouvrir puis selectionner la cote en question qui porte le nom "DIAM", pour le reste des etapes je pensais utiliser l’enregistrement de macro pour modifier la valeur de la cote selectionnee, enregistrer la pieces sous un nouveau nom (ainsi que sa mise en plan en l’ouvrant avant l’enregistrement du fichier piece), malheureusement l’enregistrement n’enregistre rien pour ces actions…
Je copie/colle le code que j’ai pour selectionner ma piece, l’ouvrir et la selection de la cote dont je veux changer la valeur:
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
boolstatus = Part.Extension.SelectByID2("TEST-1@ASSY TEST", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.OpenCompFile
' Open the part TEST.SLDPRT
Set Part = swApp.OpenDoc6("PATCH\TEST.SLDPRT", 1, 0, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
' Select dimension "DIAM"
boolstatus = Part.Extension.SelectByID2("DIAM@Sketch1@TEST.SLDPRT", "DIMENSION", 0, 0, 0, True, 0, Nothing, 0)
End Sub
Ma question est donc plutot evidente, est ce que quelqu’un a une idee pour :
- Modifier la valeur d’une cote selectionnee
- Ouvrir la mise en plan d’une piece selectionnee
- Enregistrer une piece sous un nouveau nom
- Enregistrer la mise en plans sous un nouveau nom
- Refermer tout ca pour retourner sur l’assemblage
J’ai deja essaye de chercher, de manipuler les selection mais je dois avouer que je me perds tres facilement dans le VBA solidworks comparer au VBA Excel et j’ai donc des difficultees a manipuler les selections etc…
Merci d’avance pour votre aide
P.S : desole pour le manqué d’accents, j’utilise un clavier Anglais …
Yves