Solidworks, macro pour echelle

Bonjour,

Pour faire suite à ma 1ere question :

http://www.lynkoa.com/forum/2d/solidworks-macro-qui-pointe-vers-une-propriete#answer-641585

La macro proposé par .PL fonctionne mais avec quelque "limite" que je voudrai améliorer.

1) Cette macro ne comprend que des valeurs à chiffre entier, ce qui est compliqué pour faire des échelle 1:2 par exemple. Je souhaiterai pouvoir rentrer une échelle 0.5 et quelle soit prise en compte par la macro.

2) La macro va chercher la valeur de l'échelle dans les propriétés fichier de la pièce dans l'onglet "Personnaliser" avec comme type "Nombre". Je n'arrive donc pas à créer de relation entre ma propriété $PROPRIETE@ECHELLE qui se génère dans "Spécifique à la configuration" et non dans "Personnaliser". Est ce possible de faire pointer la source de l'échelle de la macro vers un type "Texte" ? Comme ça je pourrai créer une relation entre les deux onglets.

Merci

Hello,

 

J'utilise un petit bout de code pour de la modification d'echelle. Je penses que ça doit pouvoir se modifier pour ton cas (je fais tout en auto, mais avec une boite à question sur l'échelle, tu dois pouvoir modifier ça)

 

'Obtention echelle actuelle en format fraction (a:b)
Dim swView As SldWorks.View
Set swView = swdoc.GetFirstView
Dim ech As Variant
ech = swView.ScaleRatio

'On règle à l'échelle 1:1
ech1 = swSheet.SetScale(1, 1, True, True)

'on retourne à l'echelle initial ech(0) pour numerateur et ech(1) pour denomitateur
ech1 = swSheet.SetScale(ech(0), ech(1), True, True)

1 « J'aime »

Bonjour coin37coin

Peux tu me faire passer ta macro en fichier texte?

Je n'arrive pas à modifier le bout de code que tu m'as donné avec ma macro... (je ne suis pas très doué en macro)

Le copier-coller ne fonctionne pas ? Enfin tu la trouveras dans le fichier texte joint :)

 

Edit : tant qu'à la modification pour ta macro, je n'ai absolument pas suivit la construction de celle-ci. Je ne sais donc pas trop de quoi vous êtes partit pour allez où. C'était juste un bout de code pour que tu vois comment faire les fractions en echelle et l'intercaller dans ton VBA

Mais je suis sur que @.PL saura te guider dans les meandres dangereux de sa macro


obtention_echelle_actuelle_en_format_fraction.doc
1 « J'aime »

Salut,

Voilà un exemple pour les propriétés spécifiques à la configuration :

http://help.solidworks.com/2014/English/api/sldworksapi/Get_Custom_Properties_for_Configuration_Example_VB.htm

Les instructions à utiliser sont :

 Set config = swModel.GetActiveConfiguration
 Set cusPropMgr = config.CustomPropertyManager

Et ensuite, je crois que c'est :

    lRetVal = cusPropMgr.Get5("ADATE", False, ValOut, ResolvedValOut, wasResolved)
 

Voir ici :

http://help.solidworks.com/2014/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ICustomPropertyManager~Get5.html

Et pour ton problème d'entier ajoute ceci au début :

Dim Echelle As Double

1 « J'aime »

.PL

Je suis désolé mais rien ni fait... Mon manque de connaissance en programmation en est surement pour quelque chose.

Le problème reste toujours le même...

C'est bon ça fonctionne,

En utilisant une esquisse comme échelle qui sert de référence dans mes propriétés fichier que je peux piloter.