Editer tous les parts d'un assemblage un à un pour appliquer une macro?

Bonjour,

J'ai une macro permettant de remplir des informations de chaque pièce en fonction du nom du fichier. Le soucis c'est qu'il fauit pour le moment lancer cette macro pièce par pièce et j'aimerais juste connaître l afonction permettant de répéter cette tâche pour toutes les pièces de l'assemblage.

Merci!

Bonjour,

1. Pourriez-vous nous faire partager votre macro au cas où d'autres membres aient cette problématique ?

2. SI je comprends bien, vous voulez lancer la macro depuis l'assemblage ?

1 « J'aime »

Bonjour,

j'ai réalisé ce type de macro il y a qq temps, voir l'exemple joint.

Elle est certainement à modifier, peaufiner pour vos besoins, mais pourra peut-être aider.

A+


remplprop.swp

Oui c'est possible si tu as la suite MycadTools.

Tu peux utiliser l'utilitaire INTEGRATION pour lancer ta macro sur une série de fichiers.

1 « J'aime »

Bonjour,

Afin de récupérer les liste des composants d'un assemblage, il faut utiliser la fonction GetDocumentDependencies2.

Plus d'infos ici : http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getdocumentdependencies2.html

Par exemple dans une appli en VB.net, je procède comme suit

Déclarations :

    Dim Application_SW As SldWorks.SldWorks
    Dim Model_SW As SldWorks.ModelDoc2
    Dim Component_SW As SldWorks.Component2
    Dim Nom_fichier_SW As String
    Dim Liste_dependances As Object

 

Code de la fonction :

    Function Acquisition_dependences(ByRef Chemin_assemblage_SW As String) As Object
        Dim Type_fichier_SW As Integer = 2
        Application_SW.OpenDoc6(Chemin_assemblage_SW, Type_fichier_SW, 0, "", longstatus, longwarnings)
        Model_SW = Application_SW.ActiveDoc
        Nom_fichier_SW = Model_SW.GetPathName
        Return Application_SW.GetDocumentDependencies2(Nom_fichier_SW, True, True, False)
    End Function

 

Ensuite tu utilises le code suivant pour executer la fonction :

Liste_dependances = Acquisition_dependences(Chemin_de_ton_fichier_ASM)

Cela te renvoie une Tableau de string sous la forme suivante :

"If you use this method with an assembly that contains two documents, Part1 and SubAssem1, an example of what might be returned is:

 [ "Part1", "C:\temp\Part1.SLDPRT", "SubAssem1", "c:\temp\SubAssem1.SLDASM" ]

 

En espérant t'avoir aider

1 « J'aime »

Merci beaucoup pour vos réponses!

Je vous joins la macro en pj!


custom-properties-automatic-naming-v3_description.swp

Si ton problème est résolu, merci de sélectionner la meilleure réponse.

@ remem : Cette fonction retourne seulement la liste des parts dépendants n'est ce pas? Est-il possible d'appliquer un macro au tableau retourné? 

Je t'avoue que je galère un petit peu:  il faut remplacer "Nom_fichier_SW" par le nom du fichier que je veux traiter c'est juste?

un message d'erreur apparaît pour l'avant dernière ligne, le return, je te joins un screenshot.

Désolé ca fait un paquet de questions, j'espère que tu auras le temps de m'aider


capture.png
1 « J'aime »

@julien.boni :

Tu as modifié la fonction alors que tu ne dois pas le faire comme je le voit sur ta capture d'ecran.

Copie le code des déclarations ainsi que le code de la fonction sans les modifiier.

Ensuite dans la ligne d'appel de la fonction : Liste_dependances = Acquisition_dependences(Chemin_de_ton_fichier_ASM)

Ne modifie que la partie en italique en y indiquant le chemin de ton assemblage.

1 « J'aime »