SwAnn.Select+EditDelete→Solidworks is fail.

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