Naar mijn mening komt het door uw selectie van de naam van de beoordeling. Als je het meerdere keren hebt geprobeerd, verhoogt SW de schetsnummers, dus als het niet wordt aangeroepen D1@Esquisse1 is de inhoud van mydimension leeg.
1 like
Dus probeer in plaats daarvan dit:
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 likes
Zo niet, probeer macro in een nieuwe kamer!? De schetsen en de namen van de dimensies komen weer terug op nul!?
1 like
Ja @Cyril.f, het lijkt te werken!!
Ik ben de code aan het analyseren, bedankt!
Het is oké, het is wat ik wilde.
Bedankt allemaal voor jullie hulp!!
1 like