Insert Hole Table Example (C#)
This example shows how to insert a hole table into a drawing.
//---------------------------------------------------------------------------
// Preconditions:
// 1. Ensure that the model and template exist.
// 2. Ensure that the namespace matches the name of your C# project.
//
// Postconditions: A hole table is inserted in a drawing of the model.
//
// NOTE: Because the model is used elsewhere,
// do not save changes when closing it.
//
---------------------------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
System;
namespace
HoleTable_CSharp.csproj
{
partial
class
SolidWorksMacro
{
ModelDoc2
Part;
DrawingDoc
Drawing;
bool
boolstatus;
public
void Main()
{
DocumentSpecification
spec = (DocumentSpecification)swApp.GetOpenDocSpec("install_dir\\samples\\handson\\mate
references\\crank-arm.sldprt");
Part = (ModelDoc2)swApp.OpenDoc7(spec);
Drawing = (DrawingDoc)swApp.NewDocument("C:\\ProgramData\\SolidWorks\\SolidWorks
2011\\templates\\Drawing.drwdot", 2,
0.2794, 0.4318);
Part = (ModelDoc2)Drawing;
boolstatus = Part.Extension.SelectByID2("Sheet1",
"SHEET",
0.39237, 0.5218942019544, 0, false,
0, null,
0);
boolstatus = Drawing.Create3rdAngleViews2("install_dir\\samples\\handson\\mate
references\\crank-arm.sldprt");
Part.ClearSelection2(true);
boolstatus = Drawing.ActivateView("Drawing
View2");
//Select a vertex in the
drawing view to be the origin of all datums in the table
//All
XLOC and YLOC table column values will be relative to this datum origin
boolstatus = Part.Extension.SelectByID2("",
"VERTEX",
0.05976280781759, 0.2143015374593, 0.003174999999999,
false, 1,
null, 0);
//Select a face that contains
the holes that will be annotated in the table
boolstatus = Part.Extension.SelectByID2("",
"FACE",
0.1018457263844, 0.2224311921824, 0.003174999999999,
true, 2,
null, 0);
View
myView = null;
SelectionMgr
selMgr = null;
selMgr = (SelectionMgr)Part.SelectionManager;
myView = selMgr.GetSelectedObjectsDrawingView2(1,-1);
HoleTableAnnotation
myHoleTable = null;
//Insert a hole table
//anchored
with its top left corner at x-coordinate = 0.07m and y-coordinate = 0.175m,
//with
starting datum tag "A",
//using
hole table template: standard hole table--letters.sldholtbt
myHoleTable = myView.InsertHoleTable2(false,
0.07841319218241, 0.1755661237785, (int)swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft,
"A",
"install_dir\\lang\\english\\standard
hole table--letters.sldholtbt");
Part.ClearSelection2(true);
boolstatus = Drawing.ActivateSheet("Sheet1");
}
public
SldWorks
swApp;
}
}