Skip to content

Instantly share code, notes, and snippets.

@AmenJlili
Last active November 21, 2020 21:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save AmenJlili/73a8a6d2d5c48c4d7d5b5e80e138a889 to your computer and use it in GitHub Desktop.
Save AmenJlili/73a8a6d2d5c48c4d7d5b5e80e138a889 to your computer and use it in GitHub Desktop.
Delete all dangling dimensions from active drawing document
' Delete all dangling dimensions
' Conditions = Active document must be drawing
' Results = Dangling dimensions deleted
' www.bluebyte.biz
Dim swApp As Object
Dim swModel As Object
Dim swDraw As Object
Dim swSheet As Object
Dim swView As Object
Dim boolstatus As Boolean
Dim swAnn As Object
Dim swDispDim As Object
Dim vSheetNames As Variant
Public Enum swDocumentTypes_e
swDocNONE = 0 ' Used to be TYPE_NONE
swDocPART = 1 ' Used to be TYPE_PART
swDocASSEMBLY = 2 ' Used to be TYPE_ASSEMBLY
swDocDRAWING = 3 ' Used to be TYPE_DRAWING
End Enum
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
swApp.SendMsgToUser ("Macro failed because there is no active drawing document.")
ElseIf swModel.GetType <> swDocumentTypes_e.swDocDRAWING Then
swApp.SendMsgToUser ("Macro failed because active document is not a drawing.")
Else
Set swDraw = swModel
swModel.ClearSelection2 (True)
vSheetNames = swDraw.GetSheetNames
For i = 0 To UBound(vSheetNames)
swDraw.ActivateSheet vSheetNames(i)
Set swSheet = swDraw.Sheet(vSheetNames(i))
Set swView = swDraw.GetFirstView
Do While Not swView Is Nothing
Set swAnn = swView.GetFirstAnnotation3
Do While Not swAnn Is Nothing
If swAnn.IsDangling Then
swAnn.Select2 True, -1
End If
Set swAnn = swAnn.GetNext3
Loop
Set swView = swView.GetNextView
Loop
boolstatus = swModel.DeleteSelection(True)
If boolstatus Then
swModel.ClearSelection2 (True)
End If
Next i
End If
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment