Insert and Show BOM Table and BOM Balloon Example (C#)
This example shows how to insert and show a BOM table and a BOM balloon
in a drawing document.
//------------------------------------------------
// Preconditions: Specified document to open and template
exist.
//
// Postconditions:
// 1. Parts-only BOM table is inserted.
// 2. Split-circle BOM balloon, which uses the BOM
// table
item number for its upper text, is inserted
// for
the selected edge. Zoom to Area and examine
// both
the BOM table and BOM balloon to verify.
//
// NOTE: Because this drawing document is used by a SolidWorks
// online tutorial, do not save any changes when
// closing the document.
//-------------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Diagnostics;
namespace InsertBOMBalloonModelDocExtensionCSharp.csproj
{
partial
class SolidWorksMacro
{
public
void Main()
{
ModelDoc2
swModel = default(ModelDoc2);
ModelDocExtension
swModelDocExt = default(ModelDocExtension);
DrawingDoc
swDrawing = default(DrawingDoc);
View
swView = default(View);
BomTableAnnotation
swBOMAnnotation = default(BomTableAnnotation);
BomFeature
swBOMFeature = default(BomFeature);
Note
swNote = default(Note);
bool
boolstatus = false;
int
AnchorType
= 0;
int
BomType = 0;
int
nErrors = 0;
int
nWarnings = 0;
string
Configuration = null;
string
TableTemplate = null;
swModel
= (ModelDoc2)swApp.OpenDoc6("c:\\Program
Files\\SolidWorks Corp\\SolidWorks\\samples\\tutorial\\advdrawings\\foodprocessor.slddrw",
(int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"", ref nErrors, ref nWarnings);
swDrawing
= (DrawingDoc)swModel;
swModelDocExt
= (ModelDocExtension)swModel.Extension;
boolstatus
= swDrawing.ActivateView("Drawing
View1");
swView
= (View)swDrawing.ActiveDrawingView;
//
Insert parts-only BOM table
AnchorType
= (int)swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft;
BomType
= (int)swBomType_e.swBomType_PartsOnly;
Configuration
= "";
TableTemplate
= "C:\\Program Files\\SolidWorks Corp\\SolidWorks\\lang\\english\\bom-standard.sldbomtbt";
swBOMAnnotation
= (BomTableAnnotation)swView.InsertBomTable3(false,
0, 0, AnchorType, BomType, Configuration, TableTemplate, false);
swBOMFeature
= (BomFeature)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 edge
boolstatus
= swModelDocExt.SelectByID2("",
"EDGE", 0.1205506330468, 0.261655309417, -0.0004000000000133,
false, 0, null, 0);
swNote
= (Note)swModelDocExt.InsertBOMBalloon((int)swBalloonStyle_e.swBS_SplitCirc,
(int)swBalloonFit_e.swBF_Tightest, (int)swBalloonTextContent_e.swBalloonTextItemNumber,
"", (int)swBalloonTextContent_e.swBalloonTextCustom, "Lower
text", (int)swBalloonFit_e.swBF_UserDef, true, 2, "Denotation
Text"
);
//
Get whether balloon is a BOM balloon;
//
if so, print the name of the BOM balloon
if
(swNote.IsBomBalloon())
{
Debug.Print("Name
of BOM balloon: " + swNote.GetName());
}
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}