Ich erhalte die Meldung Ausführungsfehler 91 Objektvariable nicht definiert für Zeile swDispDim.MarkedForDrawing = False
Dim swApp als SldWorks.SldWorks Dim swmodel As SldWorks.ModelDoc2 Dim swdraw As SldWorks.DrawingDoc Dim Reponse As Integer Dim swDispDim As SldWorks.DisplayDimension
Sub main()
Legen Sie swApp = Application.SldWorks fest Legen Sie swmodel = swApp.ActiveDoc fest.
Legen Sie swApp = Application.SldWorks fest Legen Sie swmodel = swApp.ActiveDoc fest. Wenn swmodel nichts ist, dann swApp.SendMsgToUser2 "Keine Dokumente geöffnet", swMbWarning, swMbOk Sub beenden Ende, wenn
Wenn swmodel. GetType <> dann 1 swApp.SendMsgToUser2 "Teiledatei öffnen", swMbWarning, swMbOk Sub beenden Ende, wenn
Antwort = MsgBox("Haben Sie Ihre Skizze bearbeitet?", vbJaNein)
Bevor Sie darauf zugreifen können, müssen Sie swDispDim definieren, z. B. mit GetSelectedObject6, wenn die Dimensionen bereits ausgewählt sind
For n = 1 to swModel.SelectionManager.GetSelectedObjectCount2
Set swDispDim = swModel.SelectionManager.GetSelectedObject6(n, -1)
swDispDim.MarkedForDrawing = False
Next n
oder eine schnellere Methode, bei der die Dimensionen nicht vorher ausgewählt werden müssen:
Dim swDispDim As DisplayDimension
set swDispDim = swView.GetFirstDisplayDimension5
While not swDispDim Is Nothing
swDispDim.MarkedForDrawing = False
set swDispDim = swDispDim.GetNext5
Wend
Dies funktioniert mit einer Skizze, die im Baum geöffnet oder ausgewählt ist
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