J’ai créer hier 2 macro pour me simplifier la vie en mise en plan, ajout du (2x) ou (4x) sur une cote.
Ca marche très bien quand la cote est nu c’est a dire juste 95.
Par contre quand j’ai un M6 ou Ø12 alors ça me remplace ma cote par 6 (2x) et 12 (2x), je perds a chaque fois le préfixe. Comment faire, y a t il une solution? Sur Créo je mettais cette variable (2x) dans la case suffixe mais celle ci n’existe pas sur solidworks.
Merci d’avance
Bon courage à toi pour le passage de Créo à Solidworks. Je pestais beaucoup après le 1er en regrettant Sldw … et maintenant je fais l’inverse
Sinon, peux-tu partager ton code VBA pour que les experts puissent t’aider avec plus de personnalisations que du cas général ?
Mais, comme ça vu de loin, j’ai l’impression que tu écrases ce qui est écrit pour remplacer par la dimension (x2) ou la dimension (x4)
Pour bien faire, il faudrait plutôt lui dire de compter le nombre de caractères dans ta dimension, et du coup de rajouter ton (x2) ou (x4) à la fin de ton compteur
Effectivement j’écrase ce qui est écrit…
Mais faire une macro pour compter le nb de caractère et d’ajouter mon (2x) ca je ne maitrise pas…
ci joint ma macro de novice: 2x.swp (23,5 Ko)
Bravo pour le changement de logiciel après tant de temps. C’est tout une logique à remettre en cause !
Ton code, tu peux grandement l’alléger
Les 4 premières ligne de boolstatus ne sont que le pas à pas de l’écriture (2x). Tu peux donc simplement garder la dernière ligne.
Ce qui donnerait
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
boolstatus = Part.EditDimensionProperties2(0, 0, 0, « », « », False, 1, 2, True, 12, 12, « », " (2x)", True, « », « », True)
Part.ClearSelection2 True
End Sub
Et ensuite, je sèche un peu.
Ton code Part.EditDimensionProperties2 rappel les paramètres de la dimension sur laquelle tu as enregistré ta dimension.
Il faudrait donc trouver comment sauvegarder tes paramètres actuel et les rappeler quand tu ajoutes (2x) … ou alors comment simplement modifier le 13eme paramètre de ta fonction
Tiens, après avoir cherché un peu sur le net, une solution qui devrait marché
Je me suis permit de la « pimper » un peu. Lorsque tu clic sur la macro il va te demander de combien de fois tu veux répéter et il ajoute à la fin avec le (x)
Sub QteRepetition()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swDispDim As SldWorks.DisplayDimension
Dim swDim As SldWorks.Dimension
Dim SuffixActuel As String
Dim NeoSuffix As String
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swDispDim = swSelMgr.GetSelectedObject6(1, 0)
Set swDim = swDispDim.GetDimension
'Implemente le suffixe actuel
SuffixActuel = swDispDim.GetText(swDimensionTextSuffix)
'texte à remplir
NeoSuffix = InputBox(« Nbr de répétition »)
NeoSuffix = " (" & NeoSuffix & « x) »
'change le suffixe de la dimension
swDispDim.SetText swDimensionTextSuffix, NeoSuffix
'attribu le suffixe à la dimension sélectionnée"
swDispDim.SetText swDimensionTextSuffix, SuffixActuel & NeoSuffix
swModel.GraphicsRedraw2
End Sub
Si tu ne veux pas la boite de question, il suffit de remplacer