Activer l'option PROMOUVOIR via une macro

Pour faire suite à la question : http://www.lynkoa.com/forum/3d/famille-de-piece-promouvoir

Je ne maitrise pas les MACROS, quelqu'un pourrait me faire une macro pour activer l'option Promouvoir dans toutes les configurations d'une pièce.

Merci d'avance.


2015-02-06-famille_de_piece_-_promouvoir.jpg

Bonjour,

En relisant les deux bouts de codes que j'ai posté dans la question précédente, c'est plus facile que je ne pensais, mais je n’ai pas eu le temps de tester.

A mettre dans une nouvelle macro dans SolidWorks depuis le menu « Outils > Macro > Nouvelle ».

'Edit : nettoyage du code et ajout de commentaires

Option Explicit
Sub main()
    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim vConfNameArr            As Variant
    Dim sConfigName             As String
    Dim i                       As Long

   
    Set swApp = CreateObject("SldWorks.Application")
        'active SolidWorks dans VBA
    Set swModel = swApp.ActiveDoc
       'récupère le document actif
    vConfNameArr = swModel.GetConfigurationNames
       'récupère toutes les configurations dans un tableau
    For i = 0 To UBound(vConfNameArr)
       'boucle sur toutes les configurations
        sConfigName = vConfNameArr(i)
       sConfigName.ChildComponentDisplayInBOM = swChildComponentInBOMOption_e.swChildComponent_Promote
       'Active la fonction promouvoir sur chacune des configurations
    Next i
End Sub

 

2 « J'aime »

A priori il y a une erreur (voir fichier joint)


2015-02-06-macro_-_promouvoir.jpg

Il ne peut y avoir 2 main dans le même programme et il y a eu une erreur de correction automatique avec les apostrophes.

 

Le code doit être comme sur le PDF de ce tutoriel que je viens de mettre en ligne :

http://www.lynkoa.com/tutos/solidworks/macro-pour-toutes-les-configurations-d-un-assemblage-pour-activer-l-option-%E2%80%9Cpromouv

 

Et j'ai remis à jour le code ci-dessus, il devrait marcher.

 

J'ai exécuté la macro corrigée mais il me met un nouveau message d'erreur

(voir pièce jointe).

 


2015-02-09-erreur_macro_promouvoir.png

J'essaye de tester la macro ce soir.

J'ai un collègue qui connait les macros, voici cequ'il a écrit.

Après un test ou deux, ça a l'air de marcher.

 

Option Explicit
Sub main()
    Dim swApp                   As SldWorks.SldWorks
    Dim swModel                 As SldWorks.ModelDoc2
    Dim swConfig                As SldWorks.Configuration
    Dim vConfNameArr            As Variant
    Dim sConfigName             As String
    Dim i                       As Long

  
    Set swApp = Application.SldWorks
        'active SolidWorks dans VBA
    Set swModel = swApp.ActiveDoc
       'récupère le document actif
    vConfNameArr = swModel.GetConfigurationNames
       'récupère toutes les configurations dans un tableau
    For i = 0 To UBound(vConfNameArr)
       'boucle sur toutes les configurations
        Set swConfig = swModel.GetConfigurationByName(vConfNameArr(i))
        'sConfigName = vConfNameArr(i)
        swConfig.ChildComponentDisplayInBOM = swChildComponentInBOMOption_e.swChildComponent_Promote
       'Active la fonction promouvoir sur chacune des configurations
      
    Next i
End Sub


ficap_macro_promouvoir.swp

La macro en pièce jointe fonctionne.


ficap_macro_promouvoir.swp