Ik krijg het bericht uitvoeringsfout 91 objectvariabele niet gedefinieerd voor regel swDispDim.MarkedForDrawing = Onwaar
Dim swApp als SldWorks.SldWorks Dim swmodel als SldWorks.ModelDoc2 Dim swdraw als SldWorks.DrawingDoc Dim Reponse als geheel getal Dim swDispDim als SldWorks.DisplayDimension
Sub hoofd()
Stel swApp = Toepassing.SldWorks in Stel swmodel = swApp.ActiveDoc in
Stel swApp = Toepassing.SldWorks in Stel swmodel = swApp.ActiveDoc in Als swmodel niets is, dan swApp.SendMsgToUser2 "Geen documenten open", swMbWarning, swMbOk Sub afsluiten Einde als
Als swmodel. GetType <> dan 1 swApp.SendMsgToUser2 "Open onderdeelbestand", swMbWarning, swMbOk Sub afsluiten Einde als
Antwoord = MsgBox("Heb je je schets bewerkt", vbJaNee)
U moet swDispDim definiëren voordat u er toegang toe krijgt, bijvoorbeeld met GetSelectedObject6 als de dimensies al zijn geselecteerd
For n = 1 to swModel.SelectionManager.GetSelectedObjectCount2
Set swDispDim = swModel.SelectionManager.GetSelectedObject6(n, -1)
swDispDim.MarkedForDrawing = False
Next n
Of een snellere methode waarbij u niet vooraf afmetingen hoeft te selecteren:
Dim swDispDim As DisplayDimension
set swDispDim = swView.GetFirstDisplayDimension5
While not swDispDim Is Nothing
swDispDim.MarkedForDrawing = False
set swDispDim = swDispDim.GetNext5
Wend
Hiermee wordt gewerkt aan een schets die is geopend of geselecteerd in de boom
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeat As SldWorks.Feature
Dim swSketch As SldWorks.Sketch
Dim swSelMgr As SldWorks.SelectionMgr
Dim swDispDim As SldWorks.DisplayDimension
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
If swModel Is Nothing Then
swApp.SendMsgToUser2 "Pas de documents ouvert", swMbWarning, swMbOk
Exit Sub
End If
If swModel.GetType <> swDocumentTypes_e.swDocPART Then
swApp.SendMsgToUser2 "Ouvrir un fichier pièce", swMbWarning, swMbOk
Exit Sub
End If
If swSelMgr.GetSelectedObjectType3(1, -1) = swSelectType_e.swSelSKETCHES Then
Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
Else
Set swSketch = swModel.SketchManager.ActiveSketch
Set swFeat = swSketch
End If
If swFeat Is Nothing Then
swApp.SendMsgToUser2 "Ouvrir ou sélectionner une esquisse", swMbWarning, swMbOk
Exit Sub
End If
Set swDispDim = swFeat.GetFirstDisplayDimension
While Not swDispDim Is Nothing
swDispDim.MarkedForDrawing = False
Set swDispDim = swFeat.GetNextDisplayDimension(swDispDim)
Wend
End Sub