1 Reply Latest reply on Sep 18, 2017 9:27 AM by Vincent Li

    Why use this code to set text content of balloon incorrecttly ?

    Vincent Li

      Hi All,

       

      when I use these code the set the text content of the balloons to be the component name where it attached, it could not set the component name one to one, but set all the text of balloons to be 1 same component.

       

      Any guys can point out what 's wrong about it ?

       

      pls check my code and video to know the detal.

       

      thanks a lot

       

      Sub main()

       

       

          Dim swApp                   As SldWorks.SldWorks

          Dim swModel                 As SldWorks.ModelDoc2

          Dim swSelMgr                As SldWorks.SelectionMgr

          Dim swSelObj                As Object

          Dim swAnn                   As SldWorks.Annotation

          Dim vAttEntTypeArr          As Variant

          Dim vAttEntArr              As Variant

          Dim i                       As Long

          Dim swEnt As SldWorks.Entity

          Dim swComp As SldWorks.Component2

          Dim bRet As Boolean

                         

         

          Set swApp = Application.SldWorks

          Set swModel = swApp.ActiveDoc

          Set swSelMgr = swModel.SelectionManager

         

          Debug.Print swSelMgr.GetSelectedObjectCount

         

          Dim j As Integer

         

          For j = 1 To swSelMgr.GetSelectedObjectCount

              

         

              If swSelMgr.GetSelectedObjectType3(j, -1) = swSelNOTES Then

       

       

                  Set swSelObj = swSelMgr.GetSelectedObject6(j, -1)

       

       

                  Set swAnn = swSelObj.GetAnnotation

       

       

                  Debug.Print "AnnName              = " & swAnn.GetName

       

       

                  vAttEntArr = swAnn.GetAttachedEntities3

       

       

                  Dim CompName As String

                  Dim SetAnnName As Boolean

                  Dim swModelDocExt As SldWorks.ModelDocExtension

                  Dim swNote As SldWorks.Note

                 

                  Set swEnt = vAttEntArr(0)

                  Set swComp = swEnt.GetComponent

                  CompName = swComp.Name2

                 

                  Set swModelDocExt = swModel.Extension

                  Set swNote = swSelObj

                 

                'why this code set all the balloons to be 1 same Component name ?

                  Set swNote = swModelDocExt.EditBalloonProperties2(swBalloonStyle_e.swBS_Circular, swBF_3Chars, swBalloonTextContent_e.swBalloonTextCustom, CompName, swBalloonTextCustom, " ", 0, True, 1, "X", 0.001)

                 

              End If

             

          Next j

       

       

      End Sub

       

       

       

       

      Regards

      Vincent