Example #1
0
        private void BuildAndEnterSketch(Document document)
        {
            var sketchCreator     = new SketchCreator(document);
            var currentSketch     = sketchCreator.CurrentSketch;
            var sketchNodeBuilder = new NodeBuilder(currentSketch);

            Document.Transact();

            Log.InfoFormat("StartSketch - Command line input");
            var firstvector    = new gpDir(Points[1].GpPnt.X - Points[0].GpPnt.X, Points[1].GpPnt.Y - Points[0].GpPnt.Y, Points[1].GpPnt.Z - Points[0].GpPnt.Z);
            var secondvector   = new gpDir(Points[2].GpPnt.X - Points[0].GpPnt.X, Points[2].GpPnt.Y - Points[0].GpPnt.Y, Points[2].GpPnt.Z - Points[0].GpPnt.Z);
            var normal         = firstvector.Crossed(secondvector);
            var _normalOnPlane = new gpAx1(Points[0].GpPnt, normal);
            var sketchAx2      = new gpAx2();

            sketchAx2.Axis = (_normalOnPlane);
            var plane = new gpPln(new gpAx3(sketchAx2));

            Inputs[InputNames.Mouse3DEventsPipe].Send(NotificationNames.SetPlane, plane);
            sketchNodeBuilder[0].Axis3D = new Axis(sketchNodeBuilder[0].Axis3D.Location, new Point3D(new gpPnt(_normalOnPlane.Direction.XYZ)));
            HighlightCurrentSketchNodes(sketchNodeBuilder.Node);
            NodeBuilderUtils.HidePlanes(Document);
            Document.Commit("sketch created");
            AddNodeToTree(sketchNodeBuilder.Node);
            Document.Transact();
            Document.Root.Get <DocumentContextInterpreter>().ActiveSketch = sketchNodeBuilder.Node.Index;
            _sketchButton.Block();
            Document.Commit("Started editing sketch");
        }
        public static Node AddSketchNode(Document document, Point3D point1, Point3D point2, Point3D point3)
        {
            //var sketchCreator = new SketchCreator(document);
            //var currentSketch = sketchCreator.CurrentSketch;
            var sketchNodeBuilder = new NodeBuilder(document, FunctionNames.Sketch);
            var firstvector       = new gpDir(point2.GpPnt.X - point1.GpPnt.X, point2.GpPnt.Y - point1.GpPnt.Y, point2.GpPnt.Z - point1.GpPnt.Z);
            var secondvector      = new gpDir(point3.GpPnt.X - point1.GpPnt.X, point3.GpPnt.Y - point1.GpPnt.Y, point3.GpPnt.Z - point1.GpPnt.Z);
            var normal            = firstvector.Crossed(secondvector);
            var _normalOnPlane    = new gpAx1(point1.GpPnt, normal);
            var sketchAx2         = new gpAx2();

            sketchAx2.Axis = (_normalOnPlane);
            sketchNodeBuilder[0].TransformedAxis3D = _normalOnPlane;

            return(!sketchNodeBuilder.ExecuteFunction() ? null : sketchNodeBuilder.Node);
        }