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