Ejemplo n.º 1
0
        private List <Line> GetManifoldEdge()
        {
            List <Line> lines = new List <Line>();

            ModelDoc2 swDoc   = (ModelDoc2)swApp.ActiveDoc;
            Feature   feature = swDoc.GetFeatureInPrt("runnerCube0");

            object[] faces  = feature.GetFaces();
            Vector   target = new Vector(0, 0, 1);

            for (int i = 0; i < faces.Count(); i++)
            {
                Face2  face   = (Face2)faces[i];
                Vector normal = new Vector(face.Normal);
                if (normal.isSameDir(target, 0.000005) != 1)
                {
                    continue;
                }
                object[] edges = face.GetEdges();
                double   area  = face.GetArea();
                int      count = face.GetEdgeCount();
                for (int j = 0; j < count; j++)
                {
                    Edge  edge  = (Edge)edges[j];
                    Point start = new Point(edge.GetCurveParams3().StartPoint);
                    Point end   = new Point(edge.GetCurveParams3().EndPoint);
                    Line  line  = new Line(start, end);
                    lines.Add(line);
                }
            }

            return(lines);
        }
        public static void GetFace(ModelDoc2 Doc)
        {
            ModelDocExtension DocEx    = Doc.Extension;
            SelectionMgr      SwSelMrg = Doc.SelectionManager;

            DocEx.SelectByID2("", "FACE", -100 / 1000.0, 60 / 1000.0, 15 / 1000.0, false, -1, null, 0);
            System.Windows.MessageBox.Show("模拟选中面");

            string         selcount = SwSelMrg.GetSelectedObjectCount2(-1).ToString();
            swSelectType_e seltype  = (swSelectType_e)SwSelMrg.GetSelectedObjectType3(1, -1);

            if (seltype == swSelectType_e.swSelFACES)
            {
                Face2 SwFace = SwSelMrg.GetSelectedObject6(1, -1);
                System.Windows.MessageBox.Show("选中数:" + selcount + "\r\n选中类型:" + seltype.ToString() + "\r\n选中面面积:" + SwFace.GetArea().ToString());
            }
        }