Insert and Show BOM Table in Assembly (C#)
This example shows how to insert and show a BOM table in an assembly
document.
//------------------------------------------------
// Preconditions: Specified file to open and BOM template
exist.
//
// 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.
//-------------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Diagnostics;
namespace InsertBOMTable2AssemblyCSharp.csproj
{
partial
class SolidWorksMacro
{
public
void Main()
{
ModelDoc2
swModel = default(ModelDoc2);
ModelDocExtension
swModelDocExt = default(ModelDocExtension);
BomTableAnnotation
swBOMAnnotation = default(BomTableAnnotation);
BomFeature
swBOMFeature = default(BomFeature);
Note
swNote = default(Note);
bool
boolstatus = false;
int
BomType = 0;
string
Configuration = null;
string
TemplateName = null;
int
errors = 0;
int
warnings = 0;
//
Open assembly document
swModel
= (ModelDoc2)swApp.OpenDoc6("C:\\Program
Files\\SolidWorks Corp\\SolidWorks\\samples\\tutorial\\cosmosfloxpress\\ball
valve\\ball_valve.sldasm", (int)swDocumentTypes_e.swDocASSEMBLY,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors,
ref warnings);
swModelDocExt
= (ModelDocExtension)swModel.Extension;
//
Insert BOM table
TemplateName
= "C:\\Program Files\\SolidWorks Corp\\SolidWorks\\lang\\english\\bom-standard.sldbomtbt";
BomType
= (int)swBomType_e.swBomType_PartsOnly;
Configuration
= "Default";
swBOMAnnotation
= (BomTableAnnotation)swModelDocExt.InsertBomTable2(TemplateName,
0, 0, BomType, Configuration, 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 face, which
//
belongs to the part Side
boolstatus
= swModelDocExt.SelectByID2("",
"FACE", -0.02268677135385, 0.0082159933431, 0.01133567172189,
false, 0, null, 0);
swNote
= (Note)swModelDocExt.InsertStackedBalloon((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"
);
swModel.ViewZoomtofit2();
//
Get whether balloon is a stacked balloon;
//
if so, print the name of the balloon
if
(swNote.IsStackedBalloon())
{
Debug.Print("Name
of stacked balloon: " + swNote.GetName());
}
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}