Commande VBA pour Mise à Jour liste Articles Mécanosoudés

J'ai fais une macro pour lancer le SmartProperties automatiquement sur chaque Article Mécanosoudé.

Ca marche bien.
 

Par contre, il est nécéssaire de mettre à jour la liste des Article Mécanosoudés avant sinon ca ne marche pas...

Quelqu'un connait la commande (ou macro) VBA pour effectuer cette mise à jour ?

 

(j'ai déjà essayé d'enregistrer une macro et de cliquer sur la commande, mais ca ne laisse rien dans la macro crée...)

 

Merci pour votre aide

 

PS : je suis sur SolidWorks 2013

Bonjour,

 

Il y a un exemple VBA dans l'aide de SolidWorks !

 

http://help.solidworks.com/2013/English/api/sldworksapi/Update_Weldment_Cut_List_and_Fire_Post-Notify_Event_Example_VB.htm

En fait, on dirait que le 1er lien concerne "Fire Post-Notify Event Example".

 

Ce forum parle de la mise à jour :

https://forum.solidworks.com/thread/47038

Merci pour ton aide.

J'ai trouvé ça : https://forum.solidworks.com/thread/69294

 

Un peu plus précis que le tient.

Mais je bloque sur le "selMgr"... ca correspond à quoi ?

La ligne Set selMgr = Part.SelectionManager permet simplement "d'obtenir" (en quelque sorte sélectionner) la pièce dans l'objet selMgr.

C'est nécessaire pour le bon déroulement de la macro.

Ca, ça na marche pas...

 

 

Dim Part As ModelDoc2
Dim myPart As PartDoc
Dim myCutlist As BodyFolder
Dim myFeature As Feature

    Set swapp = Application.SldWorks
    Set Part = swapp.ActiveDoc
    If Part Is Nothing Then Exit Sub
    If Part.GetType <> 1 Then Exit Sub
  
    Set myPart = Part
    Set selMgr = Part.SelectionManager
    If myPart.IsWeldment = False Then Exit Sub
    Set myFeature = myPart.FeatureByName("Solid Bodies")
    Set myCutlist = myFeature.GetSpecificFeature2
    myCutlist.UpdateCutList

"Solid Bodies" est le nom du dossier en anglais !

http://help.solidworks.com/2012/English/SolidWorks/sldworks/Organizing_Solid_Bodies.htm

As-tu remplacé "Solid Bodies" par le nom de ton dossier (du style "liste des corps" ou "liste des pièces soudées") ?

 

 

Non, même avec le nom français, ca ne marche pas.
Du coup j'ai refais une macro de recherche du dossier CutList avec ton premier lien.

Là ca marche au top, merci

____________________________________

Sub maj()
    While Not swFeat Is Nothing
        If swFeat.GetTypeName2 = "SolidBodyFolder" Then
                    Dim swBodyFolder As SldWorks.BodyFolder
                    Set swBodyFolder = swFeat.GetSpecificFeature2
                    swBodyFolder.UpdateCutList
        End If
            Set swFeat = swFeat.GetNextFeature
    Wend
End Sub

1 « J'aime »

-