public override bool Run(FeatureContext context)
        {
            LineStyle lineStyle = new LineStyle();

            lineStyle.SetLineWidth(0.5f);
            lineStyle.SetColor(ColorValue.BLUE);
            lineStyle.SetLineWidth(1.5f);
            LineStyle lineStyle2 = new LineStyle();

            lineStyle2.SetLineWidth(0.5f);
            lineStyle2.SetColor(ColorValue.GREEN);
            lineStyle2.SetLineWidth(2);
            TopoShape arc = GlobalInstance.BrepTools.MakeEllipseArc(Vector3.ZERO, 100, 50, 45, 270, Vector3.UNIT_Z);

            context.ShowGeometry(arc);

            {
                GeomCurve curve = new GeomCurve();
                curve.Initialize(arc);

                double paramStart = curve.FirstParameter();
                double paramEnd   = curve.LastParameter();

                double step = (paramEnd - paramStart) * 0.1;

                for (double uu = paramStart; uu <= paramEnd; uu += step)
                {
                    Vector3 dir = curve.DN(uu, 1);
                    Vector3 pos = curve.Value(uu);

                    // 切线
                    {
                        TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir);
                        SceneNode node = context.ShowGeometry(line);
                        node.SetLineStyle(lineStyle);
                    }
                    // 法线
                    {
                        Vector3   dirN = dir.CrossProduct(Vector3.UNIT_Z);
                        TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dirN);
                        SceneNode node = context.ShowGeometry(line);
                        node.SetLineStyle(lineStyle2);
                    }
                }
            }

            return(true);
        }
Esempio n. 2
0
        public override bool Run(FeatureContext context)
        {
            // build two surfaces
            TopoShape arc   = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, 100, 0, 135, Vector3.UNIT_Z);
            TopoShape cir   = GlobalInstance.BrepTools.MakeCircle(new Vector3(-200, 0, 0), 50, Vector3.UNIT_X);
            TopoShape surf1 = GlobalInstance.BrepTools.Extrude(arc, 100, Vector3.UNIT_Z);
            TopoShape surf2 = GlobalInstance.BrepTools.Extrude(cir, 400, Vector3.UNIT_X);

            SceneNode n1 = context.ShowGeometry(surf1);
            {
                FaceStyle fs1 = new FaceStyle();
                fs1.SetColor(new ColorValue(0, 0, 0.5f, 0.5f));
                fs1.SetTransparent(true);
                n1.SetFaceStyle(fs1);
            }
            SceneNode n2 = context.ShowGeometry(surf2);
            {
                FaceStyle fs2 = new FaceStyle();
                fs2.SetColor(new ColorValue(0, 0.5f, 0.5f, 0.5f));
                fs2.SetTransparent(true);
                n2.SetFaceStyle(fs2);
            }

            // compute section wire
            TopoShape wire = GlobalInstance.BrepTools.SurfaceSection(surf1, surf2);

            SceneNode sectionNode = context.ShowGeometry(wire);
            LineStyle lineStyle   = new LineStyle();

            lineStyle.SetLineWidth(4);
            lineStyle.SetColor(ColorValue.RED);
            sectionNode.SetLineStyle(lineStyle);

            return(true);
        }
Esempio n. 3
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            mDefaultLineStyle = new LineStyle();
            mDefaultLineStyle.SetColor(255, 0, 0);
            mDefaultLineStyle.SetLineWidth(2);

            renderView.ExecuteCommand("PickClearMode", "Single");
        }
        public override bool Run(FeatureContext context)
        {
            LineStyle lineStyle = new LineStyle();

            lineStyle.SetLineWidth(0.5f);
            lineStyle.SetColor(ColorValue.RED);

            var points = new List <Vector3>();

            points.Add(new Vector3(0, 0, 0));
            points.Add(new Vector3(50, 0, 0));
            points.Add(new Vector3(100, 0, 0));

            points.Add(new Vector3(0, 50, 0));
            points.Add(new Vector3(50, 50, 5));
            points.Add(new Vector3(100, 50, -5));

            points.Add(new Vector3(0, 150, 5));
            points.Add(new Vector3(50, 150, -5));
            points.Add(new Vector3(100, 150, 0));

            TopoShape face = GlobalInstance.BrepTools.MakeSurfaceFromPoints(points, 3, 3);

            context.ShowGeometry(face);

            GeomSurface surface = new GeomSurface();

            surface.Initialize(face);
            double ufirst = surface.FirstUParameter();
            double uLarst = surface.LastUParameter();
            double vfirst = surface.FirstVParameter();
            double vLast  = surface.LastVParameter();

            double ustep = (uLarst - ufirst) * 0.1;
            double vstep = (vLast - vfirst) * 0.1;

            for (double ii = ufirst; ii <= uLarst; ii += ustep)
            {
                for (double jj = vfirst; jj <= vLast; jj += vstep)
                {
                    var data = surface.D1(ii, jj);

                    Vector3 pos  = data[0];
                    Vector3 dirU = data[1];
                    Vector3 dirV = data[2];
                    Vector3 dir  = dirV.CrossProduct(dirU);
                    //dir.Normalize();
                    {
                        TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir * 0.01f);
                        SceneNode node = context.ShowGeometry(line);

                        node.SetLineStyle(lineStyle);
                    }
                }
            }

            return(true);
        }
Esempio n. 5
0
        public FindWireContext(FeatureContext context)
        {
            _Context = context;
            _LineStyle.SetLineWidth(2);
            _LineStyle.SetColor(255, 0, 0);

            _FaceStyle.SetColor(new ColorValue(0.5f, 0.5f, 0.5f, 0.5f));
            _FaceStyle.SetTransparent(true);
        }
Esempio n. 6
0
        public CADBrower(System.Windows.Forms.TreeView _treeView, AnyCAD.Presentation.RenderWindow3d _renderView)
        {
            treeView   = _treeView;
            renderView = _renderView;
            faceStyle  = new FaceStyle();
            holeStyle  = new LineStyle();
            holeStyle.SetLineWidth(3);
            holeStyle.SetColor(0, 256, 0);

            System.Windows.Forms.TreeNode node = treeView.Nodes.Add("AnyCAD.net");
            nodeStack.Push(node);
        }
Esempio n. 7
0
        public DrawLineEditor(AddLineEvent callback)
        {
            SetId("AD::DrawLine");
            OnAddLineEvent = callback;

            LineStyle lineStyle = new LineStyle();

            lineStyle.SetPatternStyle((int)EnumLinePattern.LP_DashedLine);
            lineStyle.SetColor(255, 0, 100);
            lineStyle.SetLineWidth(2);

            tempLineNode.SetLineStyle(lineStyle);
        }
        public override bool Run(FeatureContext context)
        {
            TopoShape shape = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, 100, 10, 180, Vector3.UNIT_Z);
            SceneNode node  = context.ShowGeometry(shape);
            LineStyle ls    = new LineStyle();

            ls.SetLineWidth(2);
            ls.SetColor(0, 255, 0);
            ls.SetPatternStyle((int)EnumLinePattern.LP_DashedLine);
            node.SetLineStyle(ls);

            return(true);
        }
        public override bool Run(FeatureContext context)
        {
            TopoShape oCircle1    = GlobalInstance.BrepTools.MakeCircle(Vector3.ZERO, 20, Vector3.UNIT_Z);
            TopoShape Pipe01_Surf = GlobalInstance.BrepTools.Extrude(oCircle1, 100, Vector3.UNIT_Z);

            context.ShowGeometry(Pipe01_Surf);

            TopoShape oCircle2    = GlobalInstance.BrepTools.MakeCircle(new Vector3(0.0f, 0.0f, 50.0f), 10, Vector3.UNIT_Y);
            TopoShape Pipe02_Surf = GlobalInstance.BrepTools.Extrude(oCircle2, 80, Vector3.UNIT_Y);
            {
                SceneNode node2 = context.ShowGeometry(Pipe02_Surf);
                FaceStyle fs    = new FaceStyle();
                fs.SetColor(new ColorValue(0.5f, 0.5f, 0.5f, 0.5f));
                fs.SetTransparent(true);
                node2.SetFaceStyle(fs);
            }

            // Compute the intersection curve
            TopoShape Inters1 = GlobalInstance.BrepTools.SurfaceSection(Pipe01_Surf, Pipe02_Surf);

            if (Inters1 != null)
            {
                SceneNode node = context.ShowGeometry(Inters1);
                LineStyle ls   = new LineStyle();
                ls.SetLineWidth(3);
                ls.SetColor(ColorValue.RED);
                node.SetLineStyle(ls);

                // Get the curve parameters
                GeomCurve curve = new GeomCurve();
                if (curve.Initialize(Inters1))
                {
                    LineStyle ls2 = new LineStyle();
                    ls2.SetColor(ColorValue.GREEN);

                    double start = curve.FirstParameter();
                    double end   = curve.LastParameter();
                    for (double ii = start; ii <= end; ii += 0.1)
                    {
                        List <Vector3> rt = curve.D1(ii);
                        LineNode       ln = new LineNode();
                        ln.SetLineStyle(ls2);
                        ln.Set(rt[0], rt[0] + rt[1]);
                        context.ShowSceneNode(ln);
                    }
                }
            }

            return(true);
        }
Esempio n. 10
0
        public override bool Run(FeatureContext context)
        {
            TopoShape cylinder = GlobalInstance.BrepTools.MakeCylinder(Vector3.ZERO, Vector3.UNIT_Z, 100, 200, 270);
            TopoShape section  = GlobalInstance.BrepTools.BodySection(cylinder, new Vector3(0, 0, 50), Vector3.UNIT_Z);

            context.ShowGeometry(cylinder);

            SceneNode node = context.ShowGeometry(section);
            LineStyle ls   = new LineStyle();

            ls.SetLineWidth(3.0f);
            ls.SetColor(255, 0, 0);
            node.SetLineStyle(ls);

            return(true);
        }
Esempio n. 11
0
        public override bool Run(FeatureContext context)
        {
            TopoShape arc  = GlobalInstance.BrepTools.MakeArc(new Vector3(-100, 0, 0), new Vector3(100, 0, 0), Vector3.ZERO, Vector3.UNIT_Z);
            TopoShape line = GlobalInstance.BrepTools.MakeLine(new Vector3(100, 0, 0), new Vector3(100, 200, 0));

            TopoShapeGroup group = new TopoShapeGroup();

            group.Add(arc);
            group.Add(line);

            TopoShape wire = GlobalInstance.BrepTools.MakeSpline(group);

            TopoShape splitter1 = GlobalInstance.BrepTools.MakePoint(new Vector3(0, -100, 0));
            TopoShape splitter2 = GlobalInstance.BrepTools.MakePoint(new Vector3(100, 100, 0));

            TopoShapeGroup spliterGroup = new TopoShapeGroup();

            spliterGroup.Add(splitter1);
            spliterGroup.Add(splitter2);
            TopoShape result = GlobalInstance.BrepTools.MakeSplit(wire, spliterGroup);

            TopoExplor     exp   = new TopoExplor();
            TopoShapeGroup itmes = exp.ExplorSubShapes(result);

            for (int ii = 0; ii < itmes.Size(); ++ii)
            {
                SceneNode node = context.ShowGeometry(itmes.GetAt(ii));
                LineStyle ls   = new LineStyle();
                ls.SetLineWidth(3.0f);
                ls.SetColor((ii + 1) * 50, ii * 20, ii * 10);
                node.SetLineStyle(ls);
            }


            return(true);
        }
Esempio n. 12
0
        private void surfaceToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LineStyle lineStyle = new LineStyle();

            lineStyle.SetLineWidth(0.5f);
            lineStyle.SetColor(ColorValue.RED);

            Vector3List points = new Vector3List();

            points.Add(new Vector3(0, 0, 0));
            points.Add(new Vector3(50, 0, 0));
            points.Add(new Vector3(100, 0, 0));

            points.Add(new Vector3(0, 50, 0));
            points.Add(new Vector3(50, 50, 5));
            points.Add(new Vector3(100, 50, -5));

            points.Add(new Vector3(0, 150, 5));
            points.Add(new Vector3(50, 150, -5));
            points.Add(new Vector3(100, 150, 0));

            TopoShape face = GlobalInstance.BrepTools.MakeSurfaceFromPoints(points, 3, 3);

            renderView.ShowGeometry(face, ++shapeId);

            GeomeSurface surface = new GeomeSurface();

            surface.Initialize(face);
            float ufirst = surface.FirstUParameter();
            float uLarst = surface.LastUParameter();
            float vfirst = surface.FirstVParameter();
            float vLast  = surface.LastVParameter();

            float ustep = (uLarst - ufirst) * 0.1f;
            float vstep = (vLast - vfirst) * 0.1f;

            for (float ii = ufirst; ii <= uLarst; ii += ustep)
            {
                for (float jj = vfirst; jj <= vLast; jj += vstep)
                {
                    Vector3List data = surface.D1(ii, jj);

                    Vector3 pos  = data.Get(0);
                    Vector3 dirU = data.Get(1);
                    Vector3 dirV = data.Get(2);
                    Vector3 dir  = dirV.CrossProduct(dirU);
                    dir.Normalize();
                    {
                        TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir * 10.0f);
                        SceneNode node = renderView.ShowGeometry(line, ++shapeId);

                        node.SetLineStyle(lineStyle);
                    }
                }
            }

            TopoShapeProperty property = new TopoShapeProperty();

            property.SetShape(face);

            float area = property.SurfaceArea();

            TextNode text = new TextNode();

            text.SetText(String.Format("Surface Area: {0}", area));
            text.SetPosition(new Vector3(100, 100, 0));
            renderView.SceneManager.ClearNodes2d();
            renderView.SceneManager.AddNode2d(text);

            renderView.RequestDraw();
        }
Esempio n. 13
0
        private void curveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            renderView.View3d.SetStandardView(3);

            LineStyle lineStyle = new LineStyle();

            lineStyle.SetLineWidth(0.5f);
            lineStyle.SetColor(ColorValue.BLUE);
            LineStyle lineStyle2 = new LineStyle();

            lineStyle2.SetLineWidth(0.5f);
            lineStyle2.SetColor(ColorValue.GREEN);

            TopoShape arc = GlobalInstance.BrepTools.MakeEllipseArc(Vector3.ZERO, 100, 50, 45, 270, Vector3.UNIT_Z);

            renderView.ShowGeometry(arc, ++shapeId);

            {
                GeomeCurve curve = new GeomeCurve();
                curve.Initialize(arc);

                float paramStart = curve.FirstParameter();
                float paramEnd   = curve.LastParameter();

                float step = (paramEnd - paramStart) * 0.1f;

                for (float uu = paramStart; uu <= paramEnd; uu += step)
                {
                    Vector3 dir = curve.DN(uu, 1);
                    Vector3 pos = curve.Value(uu);

                    // 切线
                    {
                        TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir);
                        SceneNode node = renderView.ShowGeometry(line, ++shapeId);
                        node.SetLineStyle(lineStyle);
                    }
                    // 法线
                    {
                        Vector3   dirN = dir.CrossProduct(Vector3.UNIT_Z);
                        TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dirN);
                        SceneNode node = renderView.ShowGeometry(line, ++shapeId);
                        node.SetLineStyle(lineStyle2);
                    }
                }
            }

            TopoShapeProperty property = new TopoShapeProperty();

            property.SetShape(arc);

            float len = property.EdgeLength();

            TextNode text = new TextNode();

            text.SetText(String.Format("Arc Length: {0}", len));
            text.SetPosition(new Vector3(100, 100, 0));

            renderView.SceneManager.ClearNodes2d();
            renderView.SceneManager.AddNode2d(text);

            renderView.RequestDraw();
        }
Esempio n. 14
0
        private void surfaceSectionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TopoShape oCircle1 = GlobalInstance.BrepTools.MakeCircle(Vector3.ZERO, 20, Vector3.UNIT_Z);
            TopoShape Pipe01_Surf = GlobalInstance.BrepTools.Extrude(oCircle1, 100, Vector3.UNIT_Z);
            renderView.ShowGeometry(Pipe01_Surf, ++shapeId);

            TopoShape oCircle2 = GlobalInstance.BrepTools.MakeCircle(new Vector3(0.0f, 0.0f, 50.0f), 10, Vector3.UNIT_Y);
            TopoShape Pipe02_Surf = GlobalInstance.BrepTools.Extrude(oCircle2, 80, Vector3.UNIT_Y);
            renderView.ShowGeometry(Pipe02_Surf, ++shapeId);

            TopoShape Inters1 = GlobalInstance.BrepTools.SurfaceSection(Pipe01_Surf, Pipe02_Surf);
            if (Inters1 != null)
            {
                SceneNode node = renderView.ShowGeometry(Inters1, ++shapeId);
                LineStyle ls = new LineStyle();
                ls.SetLineWidth(3);
                ls.SetColor(ColorValue.RED);
                node.SetLineStyle(ls);

                GeomCurve curve = new GeomCurve();
                if (curve.Initialize(Inters1))
                {
                    LineStyle ls2 = new LineStyle();
                    ls2.SetColor(ColorValue.GREEN);

                    float start = curve.FirstParameter();
                    float end = curve.LastParameter();
                    for (float ii = start; ii <= end; ii += 0.1f)
                    {
                        List<Vector3> rt = curve.D1(ii);
                        LineNode ln = new LineNode();
                        ln.SetLineStyle(ls2);
                        ln.Set(rt[0], rt[0] + rt[1]);
                        renderView.ShowSceneNode(ln);
                    }
                }
            }
            renderView.RequestDraw();
        }
Esempio n. 15
0
        private void sectionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // build two surfaces
            TopoShape arc = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, 100, 0, 135, Vector3.UNIT_Z);
            TopoShape cir = GlobalInstance.BrepTools.MakeCircle(new Vector3(-200,0,0), 50, Vector3.UNIT_X);
            TopoShape surf1 = GlobalInstance.BrepTools.Extrude(arc, 100, Vector3.UNIT_Z);
            TopoShape surf2 = GlobalInstance.BrepTools.Extrude(cir, 400, Vector3.UNIT_X);

            renderView.ShowGeometry(surf1, ++shapeId);
            //renderView.ShowGeometry(surf2, ++shapeId);

            // compute section wire
            TopoShape wire = GlobalInstance.BrepTools.SurfaceSection(surf1, surf2);
            if (wire == null)
                return;


            SceneNode sectionNode = renderView.ShowGeometry(wire, ++shapeId);
            LineStyle lineStyle = new LineStyle();
            lineStyle.SetLineWidth(4);
            lineStyle.SetColor(ColorValue.RED);
            sectionNode.SetLineStyle(lineStyle);
       
            renderView.RequestDraw();
        }