Why Run "SwAnn.Select True + SwDraw.EditDelete" code,Result is fail → Solidworks quit
Why Run ".Extension.SelectByID2 + SwDraw.EditDelete" code, Result is currend.
******************************
Code is
Private Sub tDelDim()
''
Dim Arr, Str
Str = "凸台@JB4721Sketch,h1@JB4721Sketch,Delta1@JB4721Sketch,Delta2@JB4721Sketch,R@JB4721Sketch,D2@JB4721Sketch,D4@JB4721Sketch,D1@Alfa基准面"
''
Dim SwApp As SldWorks.SldWorks, SwDraw As DrawingDoc
Dim SwView As View, SwAnn As Annotation
Dim SwDim As Dimension, DispDim As DisplayDimension
Set SwApp = Application.SldWorks
Set SwDraw = SwApp.ActiveDoc
Set SwView = SwDraw.GetFirstView
Do While Not SwView Is Nothing
Set DispDim = SwView.GetFirstDisplayDimension
Do While Not DispDim Is Nothing
Set SwDim = DispDim.GetDimension
oStr = SwDim.FullName
oStr = Left(oStr, InStrRev(oStr, "@") - 1)
Debug.Print oStr
If InStr(Str, oStr) > 0 Then
Set SwAnn = DispDim.GetAnnotation
SwAnn.Select True
SwDraw.EditDelete
End If
Set DispDim = DispDim.GetNext
Loop
Set SwView = SwView.GetNextView
Loop
''
End Sub
*****************************************
Follow code is current,don't fail.
SwDraw.Extension.SelectByID2 Str, "DIMENSION", 0, 0, 0, False, 0, Nothing, 0
SwDraw.EditDelete
''
Function DelDim(SwApp As SldWorks.SldWorks, SwDraw As DrawingDoc, SwView As View, Arr)
Dim SwModel As ModelDoc2, Str
Set SwModel = SwApp.GetOpenDocumentByName(SwView.GetReferencedModelName)
Str = SwModel.GetTitle
oStr = Left(Str, Len(Str) - 7)
''
For ii = 0 To UBound(Arr)
Str = Arr(ii) & "@" & oStr & "@" & SwView.GetName2
SwDraw.Extension.SelectByID2 Str, "DIMENSION", 0, 0, 0, False, 0, Nothing, 0
SwDraw.EditDelete
Next ii
End Function
Private Sub DelDim0502()
''
Dim Arr, Str
Arr = Array("凸台@JB4721Sketch", "h1@JB4721Sketch", "Delta1@JB4721Sketch", "Delta2@JB4721Sketch", "R@JB4721Sketch", "D2@JB4721Sketch", "D4@JB4721Sketch")
''
Dim SwApp As SldWorks.SldWorks, SwDraw As DrawingDoc
Dim SwView As View, SwAnn As Annotation
Dim SwDim As Dimension, DispDim As DisplayDimension
Set SwApp = Application.SldWorks
Set SwDraw = SwApp.ActiveDoc
Set SwView = SwDraw.GetFirstView
Set SwView = SwView.GetNextView
DelDim SwApp, SwDraw, SwView, Arr
''
Set SwView = SwView.GetNextView
DelDim SwApp, SwDraw, SwView, Arr
End Sub
SolidworksApi macros