Create a Callout Independent of a Selection (VBA)
This example shows how to create a callout that is independent of a
selection.
'---------------------------------------------------------------
'
' Preconditions: Document
is open in SolidWorks
'
' Postconditions: A callout is created with two leaders.
'
'
'----------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swExt As ModelDocExtension
Dim swSelMgr As SelectionMgr
Dim mathUtil As MathUtility
Sub main()
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swExt = swModel.Extension
Set
swSelMgr = swModel.SelectionManager
Set
mathUtil = swApp.GetMathUtility
Dim
handle As New calloutHandler
Dim
mp As MathPoint
Dim
vPnt(2) As Double
vPnt(0)
= 0#
vPnt(1)
= 0#
vPnt(2)
= 0#
Set
mp = mathUtil.CreatePoint(vPnt)
Dim
myCallout As Callout
Set
myCallout = swExt.CreateCallout(2,
handle)
myCallout.Value(1)
= "test"
myCallout.Label2(1)
= "SldWorks API"
Call
myCallout.SetLeader(True, True)
Call
myCallout.SetTargetPoint(1, 0.001,
0.001, 0)
Call
myCallout.SetTargetPoint(2, -0.001,
0.001, 0)
myCallout.Position = mp
myCallout.ValueInactive(0) = True
myCallout.TextBox = False
myCallout.Display (True)
End Sub
'
' calloutHandler
'
Implements SwCalloutHandler
Private Sub Class_Initialize()
End Sub
Private Function SwCalloutHandler_OnStringValueChanged(ByVal
pManipulator As Object, ByVal RowID As Long, ByVal Text As String) As
Boolean
Debug.Print
("Text: " & Text)
Debug.Print
("Row: " & RowID)
SwCalloutHandler_OnStringValueChanged
= True
End Function