0 Replies Latest reply on Jun 13, 2017 11:36 AM by Tim Hattrell

    Callout generated using API does not point to selected entity

    Tim Hattrell

      I have a small routine, part of a larger macro. The intent of the routine is to mark an entity with a call out on the screen. When the callout is displayed, it doesn't point to the selected entity. Do I have to specify the coordinates of the callout leader? If yes, what is the best way to get the relevant coordinates for an entity, ie an edge, vertex or surface?


      Private Sub selectEntityAndAddCallout(swEntity As SldWorks.Entity, ByVal sCalloutText As String)

              Dim swModel As SldWorks.ModelDoc2

              Dim swSelMgr As SldWorks.SelectionMgr

              Dim swSelData As SldWorks.SelectData

              Dim swCallout As SldWorks.Callout

              Dim callH As New SwCalloutHandlerClass

              Dim boolstatus As Boolean


              Set swModel = <code deleted>

              Set swSelMgr = swModel.SelectionManager

              Set swSelData = swSelMgr.CreateSelectData


              'Select entity

              Call swModel.ClearSelection2(True)

              boolstatus = swEntity.Select4(False, swSelData)


              'Display callout

              Set swCallout = swSelMgr.CreateCallout2(1, callH)

              boolstatus = swSelMgr.SetCallout(1, swCallout) 'TODO: need to make callout point to selected entity.

              swCallout.Label2(0) = sCalloutText

              swCallout.Value(0) = ""

              swCallout.MultipleLeaders = False

              swCallout.ValueInactive(0) = True


      End Sub