Insert AutoBalloons Example (VBA)
This example shows how to insert autoballoons in a drawing document
using IDrawingDoc::AutoBalloon3.
'-------------------------------------
'
' Precoonditions: Drawing document is open with a view
selected.
'
' Postconditions: Autoballoon inserted for the selected
drawing view.
'
'--------------------------------------
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swDraw As
SldWorks.DrawingDoc
Dim
swView As
SldWorks.View
Dim
vNoteArr As
Variant
Dim
vNote As
Variant
Dim
swNote As
SldWorks.Note
Dim
swAnn As
SldWorks.Annotation
Dim
vAttachPos As
Variant
Dim
vAnnPos As
Variant
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swDraw = swModel
Set
swSelMgr = swModel.SelectionManager
Set
swView = swSelMgr.GetSelectedObject6(1,
-1)
bRet
= swDraw.ActivateView(swView.GetName2):
Debug.Assert bRet
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" "
& swView.GetName2
'
Insert a split-circle autoballoon. Set the custom property for upper text
to the model's
'
custom property SW-Author and the model's lower text to the model's custom
property SW-Comments
'
(Assuming that both these custom properties have been set for the model
vNoteArr
= swDraw.AutoBalloon3(swDetailingBalloonLayout_Square,
False, swBS_SplitCirc, swBF_5Chars, swBalloonTextCustomProperties, "SW-Author",
swBalloonTextCustomProperties, "SW-Comments", "FORMAT")
'
Returns an empty array if:
'
* Balloons
already exist in any drawing view on any on sheet in
'
the
drawing document.
'
* Drawing
document is lightweight.
'
Returns a note for each resolved component in the selected drawing view.
If
IsEmpty(vNoteArr) Then
Debug.Print
" No
balloons added."
Exit
Sub
End
If
For
Each vNote In vNoteArr
Set
swNote = vNote
Set
swAnn = swNote.GetAnnotation
vAttachPos
= swNote.GetAttachPos
vAnnPos
= swAnn.GetPosition
Debug.Print
" Text
= " & swNote.GetText
Debug.Print
" Layer
=
" & swAnn.Layer
Debug.Print
" AttachPos
=
(" & vAttachPos(0) * 1000# & ", " & vAttachPos(1)
* 1000# & ", " & vAttachPos(2) * 1000# & ")
mm"
Debug.Print
" AnnPos
=
(" & vAnnPos(0) * 1000# & ", " & vAnnPos(1)
* 1000# & ", " & vAnnPos(2) * 1000# & ") mm"
Next
End Sub