Je me suis fait une petite macro pour exclure toutes les pièces sélectionnées de la nomenclature. (via le mode enregistrer)
Seul problème la macro agis sur toutes les autres options du même groupe (groupe5 en rouge ci-dessous).
Voici le code (si je me souviens bien j'ai dû virer une ligne avec un nom de pièce)
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.CompConfigProperties5(2, 0, True, True, "Défaut<Brut d'usinage>", True, False)
boolstatus = Part.EditRebuild3()
End Sub
Donc vous voulez sélectionner des pièces et lancer la macro pour que ces pièces soient exclues de la nomenclature?
"Donc question: peut-agir uniquement sur exclure de la nomenclature??"
-> Vous voulez savoir si on peut modifier les propriétés du composant sans modifier les autres paramètres?
Si c'est le cas, je vous propose la modification suivante, qui récupère les informations de l'entitée sélectionnée et qui ajoute dans la fonction CompConfigProperties ces informations afin de ne modifier que l'exclusion de la nomenclature.
A vous de voir si ça marche comme vous le voulez.
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelectionMgr As SldWorks.SelectionMgr
Dim swEntity As SldWorks.Entity
Dim swComponent As SldWorks.Component2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelectionMgr = swModel.SelectionManager
Set swEntity = swSelectionMgr.GetSelectedObject6(1, -1)
Set swComponent = swEntity.GetComponent
boolstatus = swModel.CompConfigProperties5(swComponent.GetSuppression, swComponent.Solving, swComponent.Visible, True, swComponent.ReferencedConfiguration, True, swComponent.IsEnvelope)
boolstatus = swModel.EditRebuild3()
End Sub
Logiquement la 2eme solution serait la bonne à voir comment l'utiliser dans la macro comme il faut. Même si la 1ere est une autre solution viable.
Disons que ma macro actuelle fonctionne vue qu'à 90% mes pièces sont conçu de la même façon.
Mais dans le cas où pour les pièces où j'ai mis plusieurs configurations, ca me change dans mon assemblage ces pièces là dans la 1ere configuration (défaut) et du coup casse l'assemblage (suffit de re-sélectionner la bonne config).
Sinon l'autre solution s'est de sélectionner dans la table de nomenclature les lignes à exclure.
Tu peux aussi essayer un programme que j'ai mis à dispo dans les tutos, c'est ICI, il est écrit en C# mais c'est aussi faisable en VBA et j'utilise la fonction "ExcludeFromBOM" dedans.