Get Shut-Off Surface Data Example (C#)
This example shows how to get a shut-off surface feature's data.
//----------------------------------------------------------------------------
// Preconditions: Model document is open and contains a Shut-Off Surface1
feature.
//
// Postconditions: None
//----------------------------------------------------------------------------
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
GetShutOffSurfaceEdgeCount_CSharp.csproj
{
partial
class
SolidWorksMacro
{
ModelDoc2
swModel;
ModelDocExtension
swModelDocExt;
SelectionMgr
swSelMgr;
Feature
swFeat;
ShutOffSurfaceFeatureData
swFeatData;
Entity
swEnt;
object[]
@params;
bool
boolstatus;
int
i;
int
j;
public
void Main()
{
swModel = (ModelDoc2)swApp.ActiveDoc;
swModelDocExt = swModel.Extension;
swSelMgr = (SelectionMgr)swModel.SelectionManager;
boolstatus = swModelDocExt.SelectByID2("Shut-Off
Surface1",
"REFSURFACE",
0, 0, 0, false,
0, null, (int)swSelectOption_e.swSelectOptionDefault);
swFeat = (Feature)swSelMgr.GetSelectedObject6(1,
-1);
swFeatData = (ShutOffSurfaceFeatureData)swFeat.GetDefinition();
boolstatus = swFeatData.AccessSelections(swModel,
null);
Debug.Print("Status
= " + swFeatData.Status());
Debug.Print("Knit
flag = " + swFeatData.Knit);
Debug.Print("Edge
count = " + swFeatData.GetEdgeCount());
Debug.Print("Loop
count = " + swFeatData.GetLoopCount());
for
(i = 0; i <= swFeatData.GetLoopCount() - 1; i++)
{
Debug.Print("Loop("
+ Convert.ToString(i)
+ ")");
Debug.Print(" Edge
count = " + swFeatData.GetLoopEdgeCount(i));
Debug.Print(" Patch
type = " + swFeatData.get_LoopPatchType(i));
@params = (object[])swFeatData.get_LoopEdges(i);
for
(j = 0; j <= @params.GetUpperBound(0); j++)
{
swEnt = (Entity)@params[j];
boolstatus = swEnt.Select4(false,
null);
}
}
@params = (object[])swFeatData.Edges;
for
(i = 0; i <= @params.GetUpperBound(0); i++)
{
swEnt = (Entity)@params[i];
boolstatus = swEnt.Select4(false,
null);
swEnt = (Entity)swFeatData.GetFaceTangentTo(i);
if
((swEnt != null))
{
boolstatus = swEnt.Select4(true,
null);
}
swFeatData.FlipFaceTangentTo(i);
swEnt = (Entity)swFeatData.GetFaceTangentTo(i);
if
((swEnt != null))
{
boolstatus = swEnt.Select4(true,
null);
}
swFeatData.FlipFaceTangentTo(i);
}
boolstatus = swFeat.ModifyDefinition(swFeatData, swModel,
null);
}
public
SldWorks
swApp;
}
}