Insert BOM Table and Stacked Balloon Example (VBA)
This example shows how to insert a BOM table and stacked balloon in
an assembly document.
'------------------------------------------------
' Preconditions: Open:
' <SolidWorks_install_dir>\samples\tutorial\cosmosfloxpress\ball valve\ball_valve.sldasm
'
' Postconditions:
' 1. Parts-only BOM table is inserted.
' 2. Split-circle stacked balloon, which uses the
' BOM
table item number for its upper text, is inserted
' for
the selected face.
' 3. Examine both the BOM table and stacked balloon to verify
' the
results.
'
' NOTE: Because this assembly document is used by a SolidWorks
' online
tutorial, do not save any changes when
' closing
the document.
'-------------------------------------------------
Option Explicit
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swModelDocExt As
SldWorks.ModelDocExtension
Dim
swBOMAnnotation As
SldWorks.BomTableAnnotation
Dim
swBOMFeature As
SldWorks.BomFeature
Dim
swNote As
SldWorks.Note
Dim
boolstatus As
Boolean
Dim
BomType As
Long
Dim
Configuration As
String
Dim
TemplateName As
String
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swModelDocExt = swModel.Extension
'
Insert BOM table
TemplateName
= "C:\Program Files\SolidWorks Corp\SolidWorks\lang\english\bom-standard.sldbomtbt"
BomType
= swBomType_PartsOnly
Configuration
= "Default"
Set
swBOMAnnotation = swModelDocExt.InsertBomTable(TemplateName,
0.4, 0.3, BomType, Configuration)
Set
swBOMFeature = swBOMAnnotation.BomFeature
'
Print the name of the configuration used for the BOM table
Debug.Print
"Name of configuration used for BOM table: " & swBOMFeature.Configuration
'
Insert BOM balloon for the selected face, which
'
belongs to the part Side
boolstatus
= swModelDocExt.SelectByID2("",
"FACE", -0.02268677135385, 0.0082159933431, 0.01133567172189,
False, 0, Nothing, 0)
Set
swNote = swModelDocExt.InsertStackedBalloon(swBS_SplitCirc,
swBF_Tightest, swBalloonTextItemNumber, "", swBalloonTextCustom,
"Lower text", swBF_UserDef, True, 2, "Denotation Text")
swModel.ViewZoomtofit2
'
Get whether balloon is a stacked balloon;
'
if so, print the name of the balloon
If
swNote.IsStackedBalloon Then
Debug.Print
("Name of stacked balloon: " & swNote.GetName)
End
If
End Sub