Macro solidworks renommer une cote

Bonjour la communauté.

 

Toujours dans l'élaboration de mes macros, je recherche le moyen de renommer mes lignes de cotes.

En lieu et place du traditionnel D..@EsquisseX, je souhaiterais avoir "texte de mon choix"@nom de l'esquisse

J'arrive bien à mettre un préfixe ou un suffixe dans le texte de la cote mais pas à la renommer

 

Ci dessous le code utilisé mais qui ne fonctionne pas pour renommer la cote.


Dim myDisplayDim As Object
Set myDisplayDim = swmodel.AddDimension2(-0.15, hauteur / 2, 0) 'ajout d'une cote de l'objet sélectionné au point x-.05 y0.1 z0)
Dim myDimension As Object
Set myDimension = swmodel.Parameter("H@Esquisse2")
boolstatus = swmodel.EditDimensionProperties2(0, 0, 0, "", "", True, 9, 2, True, 12, 12, "H = ", "", True, "", "", False)

 

Avez vous une idée du pourquoi du comment???

 

Par avance merci

 

Happydad

Bonjour,

J'imagine que tu as enregistré une macro pour avoir ce résultat ?

Il faut plutôt utiliser une fonction "For Each" qui va parcourir toutes les dimensions de la pièce, un exemple (qui va récupérer les valeurs de toutes les cotes pour toutes les configurations), voir cette rubrique de l'aide API :

http://help.solidworks.com/2012/English/api/sldworksapi/Get_Dimension_Values_in_All_Configurations_Example_VB.htm

En adaptant cette macro, ça ne doit pas être très difficile de récupérer le nom de chaque cote.

 

Edit : une macro qui sera probablement encore plus utile :

http://help.solidworks.com/2012/English/api/sldworksapi/Get_Display_Dimension_Properties_Example_VB.htm

Edit 2 : la macro précédente est juste un bout de code, celle-là est complète et sera très utile aussi :

http://help.solidworks.com/2012/English/api/sldworksapi/Iterate_Through_Dimensions_in_Model_Example_VB.htm

 

2 « J'aime »

Si tu peux poster la macro fonctionnelle par la suite que cela puisse profiter à tous, ça serait génial !

Merci !

Merci pour cette réponse.

 

Je ne suis pas passé par une fonction for each mais lors de la création de ma cote je lui ai donné le nom que je voulait au passge.

 

ci dessous le code modifié et qui fonctionne.

Dim myDisplayDim As Object
Set myDisplayDim = swmodel.AddDimension2(-0.15, hauteur / 2, 0) 'ajout d'une cote de l'objet sélectionné au point x-.05 y0.1 z0)
Dim myDimension As Object
Set myDimension = swmodel.Parameter("H@Esquisse2")
Set swSelMgr = swmodel.SelectionManager
Set swDispDim = swSelMgr.GetSelectedObject5(1)
Dim swDim As SldWorks.Dimension
Set swDim = swDispDim.GetDimension
Dim nom_cote As String


boolstatus = swmodel.EditDimensionProperties2(0, 0, 0, "", "", True, 9, 2, True, 12, 12, "H = ", "", True, "", "", False)
nom_cote = "H"
swDim.Name = nom_cote

1 « J'aime »

Ah en effet, c'est lors de la création, je n'avais pas fait attention !