Kwotowanie w makrze

Moim zdaniem wynika to z Twojego wyboru nazwy oceny. Jeśli próbowałeś kilka razy, SW zwiększa numery szkicu, więc jeśli nie zostanie wywołany D1@Esquisse1 zawartość mydimension jest pusta.

1 polubienie

Więc spróbuj tego zamiast tego:

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 polubienia

Jeśli nie, wypróbuj makro w nowym pokoju!? Szkice i nazwy wymiarów wrócą do zera!?

1 polubienie

Tak @Cyril.f, wydaje się, że to działa!!

Analizuję kod, dziękuję!

W porządku, to jest to, czego chciałem.

Dziękuję wszystkim za pomoc!!

1 polubienie