//遍历零件中的所有的facepublicvoidTraverseFace(IPartDoc currentPartDoc){//获取所有BodyArray bodies =(Array)(currentPartDoc.GetBodies2((int)swBodyType_e.swSolidBody,true));//遍历每个Bodyforeach(IBody2 body in bodies){/*获取所有Face*/Array faces =(Array)body.GetFaces();for(int i =0; i < faces.Length; i++){//获取当前正在遍历的面IFace2 face =(IFace2)faces.GetValue(i);//这里就可以对每一个face进行处理。}}}
2、遍历一个face中的所有edge
//遍历一个face中的所有edgepublicintTraverseEdge(IFace2 tempFace){int num =0;//获取面的环object[] tempLoops =(object[])tempFace.GetLoops();//遍历环上的边foreach(ILoop2 tempLoop in tempLoops){//如果是外环if(tempLoop.IsOuter()==true){//遍历边object[] edges =(object[])tempLoop.GetEdges();for(int b =0; b < edges.Length; b++)foreach(IEdge edge in edges){//获取当前在遍历的Edge//可以对每一个边进行处理。例如: //取该edge的起点if(edge.IGetStartVertex()!=null){double[] pointArray =newdouble[3];
pointArray = edge.IGetStartVertex().GetPoint();}
num++;}}}return num;}