Get Corner Points of a Reference Plane Example (C#)
This example shows how to obtain the 4 corner points of a reference plane.
//-----------------------------------------------------------------------------
// Preconditions:
// 1. The specified file exists.
// 2. Ensure that the namespace and partial class name
in the sample
// match those of your project.
//
// Postconditions:
// 1. A 3DSketch1 containing 4 corner points of the reference
plane is created.
// 2. The Immediate Window displays the coordinates of
each corner point.
//
// NOTE: Do not save the part as it is used in a SolidWorks
tutorial.
//------------------------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Diagnostics;
namespace CornerPointsofRefPlane_CSharp.csproj
{
partial
class SolidWorksMacro
{
ModelDoc2
swModel;
bool
boolstatus;
Feature
swFeature;
RefPlane
swRefPlane;
ModelDocExtension
swModelExt;
SelectionMgr
swSelMgr;
Double[]
vArrayData;
Object[]
cpObj;
MathPoint[]
vMathPoints = new MathPoint[4];
int
i;
SketchManager
sketchMgr;
SketchPoint
sketchPt;
string
filename;
int
errors;
//swFileLoadError_e
int
warnings;
//swFileLoadWarning_e
public
void Main()
{
filename
= "C:\\Program Files\\SolidWorks Corp\\SolidWorks\\samples\\tutorial\\swutilities\\bracket_a.sldprt";
swModel
= (ModelDoc2)swApp.OpenDoc6(filename, (int)swDocumentTypes_e.swDocPART,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors,
ref warnings);
swModelExt
= swModel.Extension;
swSelMgr
= (SelectionMgr)swModel.SelectionManager;
sketchMgr
= swModel.SketchManager;
boolstatus
= swModelExt.SelectByID2("Plane4", "PLANE", 0, 0,
0, false, 0, null, (int)swSelectOption_e.swSelectOptionDefault);
swFeature
= (Feature)swSelMgr.GetSelectedObject6(1, -1);
swRefPlane
= (RefPlane)swFeature.GetSpecificFeature2();
cpObj
= (Object[])swRefPlane.CornerPoints;
//Four
(4) MathPoint objects are always returned
sketchMgr.Insert3DSketch(true);
for
(i = 0; i <= cpObj.GetUpperBound(0); i++)
{
vMathPoints[i]
= (MathPoint)cpObj[i];
vArrayData
= (Double[])(vMathPoints[i].ArrayData);
Debug.Print("
Point x = " + vArrayData[0]);
Debug.Print("
Point y = " + vArrayData[1]);
Debug.Print("
Point z = " + vArrayData[2]);
sketchPt
= sketchMgr.CreatePoint(vArrayData[0], vArrayData[1], vArrayData[2]);
}
sketchMgr.Insert3DSketch(true);
}
public
SldWorks swApp;
}
}