A mon avis ça vient de ta sélection du nom de la cote. Si tu as essayé plusieurs fois, SW incrémente les numéros d'esquisse donc du coup si ça ne s'appelle pas D1@Esquisse1 le contenu de mydimension est vide.
1 « J'aime »
Du coup essayes plutôt ça:
Dim swApp As Object
Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim value As Boolean
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
value = swApp.GetUserPreferenceToggle(swUserPreferenceToggle_e.swInputDimValOnCreate)
If value = True Then
boolstatus = swApp.SetUserPreferenceToggle(swUserPreferenceToggle_e.swInputDimValOnCreate, False)
End If
boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Dim skSegment As Object
Set skSegment = Part.SketchManager.CreateLine(0#, 0#, 0#, 0.051925, 0#, 0#)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 1.97416243507319E-02, -1.20689440993789E-03, 0, False, 0, Nothing, 0)
Dim myDisplayDim As SldWorks.DisplayDimension
Set myDisplayDim = Part.AddDimension2(2.59101957793034E-02, -1.59578260869565E-02, 0)
Dim myDimension As SldWorks.Dimension
Set myDimension = myDisplayDim.GetDimension
myDimension.SystemValue = 0.05
Part.SketchManager.InsertSketch True
boolstatus = swApp.SetUserPreferenceToggle(swUserPreferenceToggle_e.swInputDimValOnCreate, value)
End Sub
2 « J'aime »
Sinon essayez la macro dans une nouvelle pièce!? les esquisses et les noms des cotes seront de retours à zéro!?
1 « J'aime »
Oui @Cyril.f, cela a l'air de marcher !!!
J'analyse le code, merci!
C'est bon, c'est bien ce que je voulais.
Merci à vous tous pour votre aide !!!
1 « J'aime »