Insert and Show BOM Table and BOM Balloon Example (VBA)
This example shows how to insert a bill of materials table and balloon
in a drawing document.
'----------------------------------------------------------------------------
' Preconditions: Specified file to open and template exist.
'
' Postconditions:
' 1. A parts-only BOM table is inserted.
' 2. A BOM balloon annotation is inserted.
' 3. Inspect the Immediate Window for the name of the configuration used
' to create the table and the name of the annotation.
'
' NOTE: Because this drawing document is used by a SolidWorks
' online tutorial, do not save any changes
when
' closing the document.
'------------------------------------------------------------------
Dim swApp
As SldWorks.SldWorks
Dim swModel
As SldWorks.ModelDoc2
Dim swModelDocExt As
SldWorks.ModelDocExtension
Dim swDrawing
As SldWorks.DrawingDoc
Dim swView
As SldWorks.View
Dim swBOMAnnotation As
SldWorks.BomTableAnnotation
Dim swBOMFeature
As SldWorks.BomFeature
Dim swNote
As SldWorks.Note
Dim BomBalloonParams As
SldWorks.BalloonOptions
Dim boolstatus
As Boolean
Dim AnchorType
As Long
Dim BomType
As Long
Dim nErrors
As Long
Dim nWarnings
As Long
Dim Configuration As
String
Dim TableTemplate As
String
Option Explicit
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.OpenDoc6("c:\Program Files\SolidWorks
Corp\SolidWorks\samples\tutorial\advdrawings\foodprocessor.slddrw", swDocDRAWING,
swOpenDocOptions_Silent, "", nErrors, nWarnings)
Set swDrawing = swModel
Set swModelDocExt = swModel.Extension
boolstatus = swDrawing.ActivateView("Drawing View1")
Set swView = swDrawing.ActiveDrawingView
' Insert parts-only BOM table
AnchorType = swBOMConfigurationAnchor_TopLeft
BomType = swBomType_PartsOnly
TableTemplate = "C:\Program Files\SolidWorks Corp\SolidWorks\lang\english\bom-standard.sldbomtbt"
Configuration = ""
Set swBOMAnnotation = swView.InsertBomTable3(False,
0.4, 0.3, AnchorType, BomType, Configuration, TableTemplate, False)
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
boolstatus = swModelDocExt.SelectByID2("",
"EDGE", 0.1205506330468, 0.261655309417, -4.000000000133E-04, False, 0, Nothing,
0)
Set BomBalloonParams = swModel.Extension.CreateBalloonOptions()
BomBalloonParams.Style = swBS_Circular
BomBalloonParams.Size = swBF_2Chars
BomBalloonParams.UpperTextContent =
swBalloonTextItemNumber
BomBalloonParams.UpperText = ""
BomBalloonParams.ShowQuantity = True
BomBalloonParams.QuantityPlacement =
swBalloonQuantityPlacement_Right
BomBalloonParams.QuantityDenotationText = "PLACES"
BomBalloonParams.QuantityOverride = False
BomBalloonParams.QuantityOverrideValue = ""
BomBalloonParams.ItemNumberStart = 1
BomBalloonParams.ItemNumberIncrement = 1
BomBalloonParams.ItemOrder =
swBalloonItemNumbers_DoNotChangeItemNumbers
Set swNote = swModelDocExt.InsertBOMBalloon2(BomBalloonParams)
' Get whether balloon is a BOM balloon
' If so, print the name of the BOM balloon
If swNote.IsBomBalloon Then
Debug.Print ("Name of BOM balloon: "
& swNote.GetName)
End If
swDrawing.ForceRebuild
End Sub