Macro composition à emporter

Bonjour,

J'ai une macro qui me permet d'exécuter plusieurs commandes sur Solidworks à partir d'un fichier Excel.

Je souhaite développer cette macro en effectuant une "Composition à emporter" d'un assemblage que la macro ouvre auparavant.

Cependant, je voudrais exclure certaines pièces de la composition à emporter en fonction de leur nom (celles qui se trouvent dans une bibliothèque d'éléments standards) mais je n'arrive pas à trouver le code correspondant.

Voici le lien vers le code utilisé pour la composition à emporter : http://help.solidworks.com/2012/English/api/sldworksapi/Pack_and_Go_an_Assembly_Example_vb.htm

Savez-vous comment exclure des pièces à partir d"une ligne de code ?

Merci

Bonjour,

Voir cette réponse en VB.NET :

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

Ou ici en VBA :

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

https://cloud.centralinnovation.com.au/sharpcode/index?article=Exclude-files-from-Pack-n-Go

 

.PL,

Merci pour votre réponse qui à l'air de correspondre à ce que je cherche.

Lors de la composition à emporter, je souhaite exclure les pièces dont le nom contient "Bride".

Cependant, je souhaite enregistrer les pièces dans un nouveau répertoire.

Il faut donc que je fasse un mélange des deux codes mais je n'y arrive pas.

Pouvez-vous m'aider ?

Merci.

J'ai essayé avec le code en pièce jointe mais toutes les pièces (même celles dont le nom contient "Bride") sont créées dans le nouveau dossier.


compo.txt

Je voudrais faire comme dans cette vidéo mais à l'aide de la macro :

https://youtu.be/vJgcFBKF49E

Pensez-vous que c'est possible ?

Joint ton code à ton message en expliquant quelle est l'erreur ou à quelle ligne plante la macro.

Le code est dans le fichier texte du message précédent.

Et comme dit dans le message, la macro s'exécute correctement mais aucune pièce n'est exclue de la composition à emporter.

Désolé, je n'avais pas vu.

Je regarde ça.

Tu peux me préciser dans quelle partie de ton code tu as fait l'exclusion stp ?

C'est dans cette partie que l'exclusion devrait se faire :

Dim swModel As SldWorks.ModelDoc2
Dim swPackAndGo As SldWorks.PackAndGo
Set swApp = Application.SldWorks
    
    Set swModel = swApp.ActiveDoc
    
    If swModel.GetPathName() <> "*Bride*" Then

Avec à la fin

    Else
        
        MsgBox "Please save the document"
        
    End If

Dans quel lien as-tu vu que l'exclusion se faisait comme ça ?

Bonjour,

 

Dans ce lien : https://cloud.centralinnovation.com.au/sharpcode/index?article=Exclude-files-from-Pack-n-Go

Mais je ne pense pas l'utiliser de la bonne manière car, comme je comprends, les composants exclus sont ceux qui contiennent dans leur nom une partie du nom de l'assemblage. Or, je voudrais exclure les composants qui contiennent un texte spécifique.

Dans le lien que tu as mis, l'exclusion se fait comme ça :

 

Const SEARCH_TEXT As String = "BRIDE"

If InStr(1, name, SEARCH_TEXT, vbTextCompare) > 0 Then

newDocNames(i) = ""

Else

newDocNames(i) = name

End If

 

Donc ça n'est pas la même chose que ce que tu as écrit !

1 « J'aime »

Effectivement ça fonctionne mieux comme ça !

Je travaille encore sur le code pour exclure une deuxième chaîne de caractères avant de l'intégrer au code de l'API Solidworks pour pourvoir choisir le dossier de destination de la compostion à emporter.

Merci pour ton aide .PL

1 « J'aime »