Ik wil alle regels selecteren die aan een weergave zijn toegevoegd om ze later te verwijderen.
Op dit moment kan ik verwijderen als ik het nummer van de regel weet (hier van 1 tot 99), maar kunnen we ervoor zorgen dat we alle bestaande regels vermelden om ze later te verwijderen?
Hieronder vindt u het stukje code dat de beginner die ik probeer te wijzigen om het vervolgens in een iets complexere macro in te voegen.
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Numberline As Integer
Sub main()
Numberline = 0
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
boolstatus = Part.ActivateView("Vue de mise en plan1")
Do
Numberline = Numberline + 1
'boolstatus = Part.Extension.SelectByID2("Line", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line" & Numberline, "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete
Loop While Numberline < 100
End Sub
Probeer met de volgende code of dit voor jou werkt:
Option Explicit
Dim swApp As Object
Dim Part As Object
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swSketch As SldWorks.Sketch
Dim vSkSegArr As Variant
Dim vSkSeg As Variant
Dim swSkSeg As SldWorks.SketchSegment
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Numberline As Integer
Dim lNumSegments As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swDraw = Part
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
boolstatus = Part.ActivateView("Vue de mise en plan1")
Set swView = swDraw.ActiveDrawingView
lNumSegments = swView.GetLineCount2(1)
If lNumSegments > 0 Then
Set swSketch = swView.GetSketch
vSkSegArr = swSketch.GetSketchSegments
For Each vSkSeg In vSkSegArr
Set swSkSeg = vSkSeg
boolstatus = Part.Extension.SelectByID2(swSkSeg.GetName, "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete
Next vSkSeg
End If
End Sub
Ik heb de regel in kwestie in de code gelaten omdat deze al deel uitmaakte van uw code, maar het is nutteloos voor de functie voor het verwijderen van regels, het stelt u in staat om het SW-venster van het plan in te stellen op maximale afmeting (of op minimale afmeting als u "swWindowMaximized" vervangt door "swWindowMinimized").