Cotation dans une macro

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 »