Insert and Show BOM Table and BOM Balloon Example (C#)
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.
//------------------------------------------------------------------
using
Microsoft.VisualBasic;
using
System;
using
System.Collections;
using
System.Collections.Generic;
using
System.Data;
using
System.Diagnostics;
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
System.Runtime.InteropServices;
namespace
BOMBalloon_CSharp.csproj
{
partial
class
SolidWorksMacro
{
ModelDoc2
swModel;
ModelDocExtension
swModelDocExt;
DrawingDoc
swDrawing;
View
swView;
BomTableAnnotation
swBOMAnnotation;
BomFeature
swBOMFeature;
Note
swNote;
BalloonOptions
BomBalloonParams;
bool
boolstatus;
int
AnchorType;
int
BomType;
int
nErrors;
int
nWarnings;
string
Configuration;
string
TableTemplate;
public
void Main()
{
swModel = 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 = 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;
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,
null, 0);
BomBalloonParams = swModel.Extension.CreateBalloonOptions();
BomBalloonParams.Style = (int)swBalloonStyle_e.swBS_Circular;
BomBalloonParams.Size = (int)swBalloonFit_e.swBF_2Chars;
BomBalloonParams.UpperTextContent = (int)swBalloonTextContent_e.swBalloonTextItemNumber;
BomBalloonParams.UpperText =
"";
BomBalloonParams.ShowQuantity =
true;
BomBalloonParams.QuantityPlacement = (int)swBalloonQuantityPlacement_e.swBalloonQuantityPlacement_Right;
BomBalloonParams.QuantityDenotationText =
"PLACES";
BomBalloonParams.QuantityOverride =
false;
BomBalloonParams.QuantityOverrideValue =
"";
BomBalloonParams.ItemNumberStart = 1;
BomBalloonParams.ItemNumberIncrement = 1;
BomBalloonParams.ItemOrder = (int)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())
{
Debug.Print("Name
of BOM balloon: " + swNote.GetName());
}
swDrawing.ForceRebuild();
}
public
SldWorks
swApp;
}
}