public static int Main(string[] args)
{
int retValue = 0;
try
{
theProgram = new Program();
//TODO: Add your application code here
Session theSession = Session.GetSession();
Part workPart = theSession.Parts.Work;
Part displyPart = theSession.Parts.Work;
NXOpen.Features.BlockFeatureBuilder blockFeatureBuilder = workPart.Features.CreateBlockFeatureBuilder(null);
Point3d origin = new Point3d(0, 0 ,0 );
blockFeatureBuilder.SetOriginAndLengths(origin, "50", "50", "100");
NXOpen.Features.Feature feature = blockFeatureBuilder.CommitFeature();
blockFeatureBuilder.Destroy();
NXOpen.Features.BodyFeature bodyFeature = (NXOpen.Features.BodyFeature) feature;
Edge[] edges = bodyFeature.GetEdges();
Edge edge1 = null;
List<NXOpen.Edge> edgeList = new List<NXOpen.Edge>();//创建一个边的泛型集合
foreach (Edge i in edges)
{
IntPtr evaluator;
theUfSession.Eval.Initialize(i.Tag, out evaluator);
bool isLine;
theUfSession.Eval.IsLine(evaluator, out isLine);
if (isLine)
{
NXOpen.UF.UFEval.Line line1;
theUfSession.Eval.AskLine(evaluator, out line1);
double length = line1.length;
//ListingWindow lw = theSession.ListingWindow;//信息窗口
//lw.Open();
//lw.WriteLine(length.ToString());
if (length == 100)
{
edgeList.Add(i);//添加
}
}
}
NXOpen.Features.EdgeBlendBuilder edgeBlendBuilder1 = workPart.Features.CreateEdgeBlendBuilder(null);
SelectionIntentRule[] rules = new SelectionIntentRule[1];
//EdgeDumbRule [] rules = new EdgeDumbRule[1];
rules[0] = workPart.ScRuleFactory.CreateRuleEdgeDumb(edgeList.ToArray());//转为数组
ScCollector scCollector = workPart.ScCollectors.CreateCollector();
scCollector.ReplaceRules(rules, false);
int index = edgeBlendBuilder1.AddChainset(scCollector, "25");
edgeBlendBuilder1.CommitFeature();
edgeBlendBuilder1.Destroy();
edgeBlendBuilder1.Destroy();
theProgram.Dispose();
}