Macro pour délier des propriétés de configuration (parent/enfant)

Bonjour,

Dans notre fonctionnement, on est très souvent amenés à utiliser la fonction « insérer une pièce », de manière à avoir une pièce dans pièce.

Lors de l’import de la pièce, pour des besoins qualité, on va avoir besoin de lier certaines propriétés (Parent/enfant).

Il existe bien la possibilité, lors de l’import de lier les propriétés. Le hic là dedans c’est que ça les lie toutes.

J’ai deux options donc :
1- je lie tous les propriétés à l’import, puis je délie celles que je ne veux pas
2- je ne lie rien, puis je lie uniquement, les propriétés dont j’ai besoin.

Là où je veux en venir, c’est que j’aurais besoin de le faire via une macro qui se déclencherait au démarrage du SmartProperties.
En gros, je souhaite agir sur ces coches :

Mon problème, c’est que moi et le VBA, on n’est pas super potes, enfin si… lui il est super pote, il n’a aucun problème avec moi. Moi en revanche… ! :sweat_smile:

Est-ce qu’une âme charitable saurait me dépanner ou au moins m’aiguiller sur ce sujet ?
Merci d’avance !! :blush:

1 « J'aime »

Question un peu bêta … pourquoi faire une macro pour faire ça ?

Manifestement, tu as défois besoin de le faire et défois non. La macro automatisant ça, elle ferra l’action à chaque démarrage de SmartProperties

Bonjour;

Même si je ne cautionne pas l’utilisation de pièces imbriquées dans d’autres pièces: (Beurk)
L’aide Solidworks nous dit:
https://help.solidworks.com/2021/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ICustomPropertyManager~LinkAll.html

Donc il en possible d’en déduire (à tester) :

Option Explicit

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2

swmodel.LinkAll = False

End Sub

En theorie cela brise tous les liens de toutes les propriétés… mais cela me parait presque trop simple…

Sinon, mais c’est beaucoup plus compliqué, il semble exister la possibilité de briser les liens entre quelques propriétés…(encore faut-il connaitre tous leurs noms et savoir qui doit être lié avec qui…ou non.)
https://help.solidworks.com/2021/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ICustomPropertyManager~LinkProperty.html

Je pense que la technique de ne pas choisir de lier les propriétés à l’import d’une nouvelle pièce reste la plus simple.(Même si faire un assemblage c’est mieux :shushing_face:)

Cordialement.

1 « J'aime »

Pour le coup, non, j’ai tout le temps besoin de le faire.

Dans la quasi totalité de nos conceptions, on a une pièce dans pièce.
J’ai vu qu’il y avait moyen de conditionner le SmartProperties, c’est à dire de modifier les propriétés qu’il écrit selon des conditions.

En gros :

  • si je sélectionne l’option 1, j’ai le SmartProperties 1 et ça me donne une pièce 1,
  • si je sélectionne l’option 2, j’ai le SmartProperties 2 et ça me donne une pièce 2.

J’ai toujours une pièce 2 qui utilise une pièce 1.

Moi, ce que j’aimerais, c’est que le SmarProperties 2 déclenche cette macro pour délier tout seul certaines propriétés pour ensuite écrire par dessus.
Entre la pièce 1 et la pièce 2, on a toujours des propriétés communes que l’on doit garder liées.

Clairement, c’est du « confort », effectivement on peut le faire à la main, mais c’était si jamais il y avait une manière « simple » de faire une macro…

1 « J'aime »

Merci ! :slight_smile:
Je vais creuser ça !

« Même si faire un assemblage c’est mieux :shushing_face: »,
je suis d’accord… :face_with_peeking_eye: mais c’est le fonctionnement de ma boite

1 « J'aime »