Récupérer propriété solidworks

Comment récuperer la valeur d'une propriété dans Solidworks ?

 

(la commande pour en ajouter une est : swModel.AddCustomInfo3("", "Essai", swCustomInfoText, "1") )

 

Pour ensuite mettre une condition :

- Si la valeur de "Essai" = 1

    Alors nouvelle propriété : swModel.AddCustomInfo3("", "Reponse1", swCustomInfoText, "OK")

- Si la valeur de "Essai" = 2

    Alors nouvelle propriété : swModel.AddCustomInfo3("", "Reponse2", swCustomInfoText, "OK")

Je ne sais pas à quoi corresponde tes propriétés SolidWorks mais:

Tu peux gérer les conditions via l'utilitaire "Smarpropertie" tu utilises les commandes "option" et/ou "conditionnel"


smarproperties.png

Ouai, je connais SmartProperties.

Mais là, c'est particulier... je dois passer par une macro avant de faire un Smart.

Donc je cherche le code "brut" VBA pour lire la propriété.

Bonjour,

Effectivement comme le dit flegendre l'utilitaire "SmartProperties" fait cela très bien.

Vous pouvez également arriver à un traitement de ce genre en utilisant la fonctionnalité SolidWorks "Propriétés personnalisées" que vous trouverez dans le volet des tâches. mais c'est un peu plus compliqué que "SmartProperties" !

Cordialement


proprietes_perso_sw.png

Zut ! Réponse croisée.

Oui, merci, mais comme dit juste avant, c'est vraiment le code VBA (idem swModel.AddCustomInfo3) que je cherche

Zut, re-croisée...

1 « J'aime »

J'ai essayé :

 

If swCustomPropertyNames("Essai") = "1" Then
bRet = swModel.AddCustomInfo3("", "Reponse1", swCustomInfoText, "OK")
 
Mais ça ne marche pas...

Bonjour,

 

Je suppose que cette demande est liée à celle là :

 

http://www.lynkoa.com/forum/emplacement-fichiers-xml?page=1

 

La dernière réponse que j'avais faites ne vous a pas aidée?

J'ai vraiment du mal à comprendre pourquoi vous voulez absolument passer par une macro?

 

Je sais cela fait beaucoup de questions mais si cela peut faire avancer le chmimblick...

 

@+

 

1 « J'aime »

Oui, c'est lié.

 

Mon constat est simple : le lien du SmartProperties n'est géré QUE en fonction du type de pièce.

 

Du coup, je fais une macro qui en fonction d'une propriété va changer la propriété "XmlPath" et donc le chemin direct du SmartPorperties :)

 

J'y suis presque, il me manque qu'a créer cette condition (lire la prop puis nouvelle prop)
Si tu peux m'aider

Bonjour,

 

 

Pour récupérer une propriété, l'instruction est :

                CODE = SWmoddoc.GetCustomInfoValue("", "code")


On récupère la propriété "code" dans la variable VBA "CODE", où SWmoddoc représente ton document actif (Set SWmoddoc = swApp.ActiveDoc).

 

Pour les instructions de base des macros, je te conseille de lire attentivement le tutoriel que j'ai fait et qui est commenté pour chaque ligne :

 

http://www.lynkoa.com/tutos/3d/macro-enregistrer-sous-avec-solidworks

 

Re ,

 

Mais justement ce n'est pas lié que au type de pièce, (dans mon exemple c'est le cas) mais je parle bien d'une propriété qui pilote un XMl et me semble que c'est ce que tu veux!

Cette propriétée peut être n'importe laquelle pas QUE le type de pièce...

 

Ou alors je n'est vraiment RIEN compris à la question!

 

@+

Avec une image..


smartproperties2.jpg

@Coyote : oui, actuellement, j'utilise ta méthode de liste déroulante pour choisir le xml.
Mais ce n'est pas clair pour les utilisateurs...

Par exemple, quand tu fais une piece, dans cette liste tu peux mettre "PieceCommerce" et "PieceFabriquée". Et c'est lors du lancement du Smart que tu fais ton choix. Et ca à chaque fois que tu le relance...

 

Alors qu'en passant par un Gabarit (ou la propriété "PieceCommerce" est rentrée définitivement), le bon Smart est lancé automatiquement et à chaque fois. Et en plus, c'est en aveugle pour l'utilisateur. 

Ha Ok c'est clair je comprends bien mieux le besoin.

 

Bon j'essaye de regarder si je trouve la bonne solution.

 

@+

A priori, ca marche au top

 

CODE = SWmoddoc.GetCustomInfoValue("", "code")

 

Une fois finalisé, j'essai de mettre le résultat dans l'autre sujet si ca interesse du monde

1 « J'aime »

Oui, je suis intéressé par ta macro thewarner !

Merci de me faire signe quand elle est disponible.

Dispo

 

(mais c'est tout bête en fait...)