Insert and Show BOM Table and BOM Balloon Example (VB.NET)
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.
'------------------------------------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports
System.Runtime.InteropServices
Imports
System
Imports
System.Diagnostics
Partial
Class
SolidWorksMacro
Dim
swModel As
ModelDoc2
Dim
swModelDocExt As
ModelDocExtension
Dim
swDrawing As
DrawingDoc
Dim
swView As
View
Dim
swBOMAnnotation As
BomTableAnnotation
Dim
swBOMFeature As
BomFeature
Dim
swNote As
Note
Dim
BomBalloonParams As
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
Sub
main()
swModel = swApp.OpenDoc6("c:\Program
Files\SolidWorks Corp\SolidWorks\samples\tutorial\advdrawings\foodprocessor.slddrw",
swDocumentTypes_e.swDocDRAWING, swOpenDocOptions_e.swOpenDocOptions_Silent,
"",
nErrors, nWarnings)
swDrawing = swModel
swModelDocExt = swModel.Extension
boolstatus = swDrawing.ActivateView("Drawing
View1")
swView = swDrawing.ActiveDrawingView
' Insert parts-only BOM table
AnchorType =
swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft
BomType = swBomType_e.swBomType_PartsOnly
TableTemplate = "C:\Program
Files\SolidWorks Corp\SolidWorks\lang\english\bom-standard.sldbomtbt"
Configuration =
""
swBOMAnnotation = swView.InsertBomTable3(False,
0.4, 0.3, AnchorType, BomType, Configuration, TableTemplate,
False)
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, -0.0004000000000133,
False, 0,
Nothing, 0)
BomBalloonParams = swModel.Extension.CreateBalloonOptions()
BomBalloonParams.Style = swBalloonStyle_e.swBS_Circular
BomBalloonParams.Size = swBalloonFit_e.swBF_2Chars
BomBalloonParams.UpperTextContent =
swBalloonTextContent_e.swBalloonTextItemNumber
BomBalloonParams.UpperText =
""
BomBalloonParams.ShowQuantity
= True
BomBalloonParams.QuantityPlacement
= swBalloonQuantityPlacement_e.swBalloonQuantityPlacement_Right
BomBalloonParams.QuantityDenotationText =
"PLACES"
BomBalloonParams.QuantityOverride
= False
BomBalloonParams.QuantityOverrideValue
= ""
BomBalloonParams.ItemNumberStart
= 1
BomBalloonParams.ItemNumberIncrement = 1
BomBalloonParams.ItemOrder =
swBalloonItemNumbersOrder_e.swBalloonItemNumbers_DoNotChangeItemNumbers
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
Public
swApp As
SldWorks
End
Class