示例#1
0
        public void AxisChange()
        {
            var sketch = new Sketch();

            sketch.Points.Add(0, new Pnt2d(-20, 20));
            sketch.Points.Add(1, new Pnt2d(20, 20));
            sketch.Points.Add(2, new Pnt2d(20, 10));
            sketch.Points.Add(3, new Pnt2d(-20, 10));
            sketch.Segments.Add(0, new SketchSegmentLine(0, 1));
            sketch.Segments.Add(1, new SketchSegmentLine(1, 2));
            sketch.Segments.Add(2, new SketchSegmentLine(2, 3));
            sketch.Segments.Add(3, new SketchSegmentLine(3, 0));

            var shape = Revolve.Create(Body.Create(sketch));

            Assert.IsNotNull(shape);

            shape.Axis = Revolve.RevolveAxis.WorldX;
            Assert.IsTrue(shape.Make(Shape.MakeFlags.None));
            AssertHelper.IsSameModel(shape, Path.Combine(_BasePath, "AxisChange"));

            shape.Axis = Revolve.RevolveAxis.WorldY;
            Assert.IsFalse(shape.Make(Shape.MakeFlags.None));
            shape.Axis = Revolve.RevolveAxis.WorldX;
            Assert.IsTrue(shape.Make(Shape.MakeFlags.None));
            AssertHelper.IsSameModel(shape, Path.Combine(_BasePath, "AxisChange"));
        }
示例#2
0
    public override void UpdateRealVariables()
    {
        foreach (GameObject subLine in lines)
        {
            Line lCode = subLine.GetComponent <Line>();

            if (lCode.tag == "revolve")
            {
                Revolve controller = controllingObject.GetComponent <Revolve>();
                controller.revolving = bool.Parse(lCode.GetSubText());
            }
        }
    }
示例#3
0
        //--------------------------------------------------------------------------------------------------

        void UpdateFromShape()
        {
            switch (Revolve.Axis)
            {
            case Revolve.RevolveAxis.WorldX: Frame = 0; Axis = 0; break;

            case Revolve.RevolveAxis.WorldY: Frame = 0; Axis = 1; break;

            case Revolve.RevolveAxis.WorldZ: Frame = 0; Axis = 2; break;

            case Revolve.RevolveAxis.LocalX: Frame = 1; Axis = 0; break;

            case Revolve.RevolveAxis.LocalY: Frame = 1; Axis = 1; break;

            case Revolve.RevolveAxis.LocalZ: Frame = 1; Axis = 2; break;
            }

            _OffsetX = Revolve.Offset.X;
            _OffsetY = Revolve.Offset.Y;
            _OffsetZ = Revolve.Offset.Z;

            RaisePropertyChanged(nameof(OffsetX));
            RaisePropertyChanged(nameof(OffsetY));
            RaisePropertyChanged(nameof(OffsetZ));

            if ((_AxisHintLine == null) && (Revolve.IsVisible))
            {
                _AxisHintLine = new HintLine(WorkspaceController, HintStyle.WorkingAxis);
            }
            if (_AxisHintLine != null)
            {
                if (!Revolve.IsVisible)
                {
                    _AxisHintLine.Remove();
                    _AxisHintLine = null;
                }
                else
                {
                    var computeAxis = Revolve.ComputeAxis();
                    if (computeAxis != null)
                    {
                        _AxisHintLine.Set(computeAxis.Value.Transformed(Revolve.GetTransformation()));
                    }
                }
            }
        }
示例#4
0
        public void OpenContour()
        {
            var sketch = new Sketch();

            sketch.Points.Add(0, new Pnt2d(-20, 20));
            sketch.Points.Add(1, new Pnt2d(20, 20));
            sketch.Points.Add(2, new Pnt2d(20, 10));
            sketch.Points.Add(3, new Pnt2d(-20, 10));
            sketch.Segments.Add(0, new SketchSegmentLine(0, 1));
            sketch.Segments.Add(1, new SketchSegmentLine(1, 2));
            sketch.Segments.Add(2, new SketchSegmentLine(2, 3));

            var shape = Revolve.Create(Body.Create(sketch));

            shape.Axis = Revolve.RevolveAxis.WorldX;

            Assert.IsFalse(shape.Make(Shape.MakeFlags.None));
        }
示例#5
0
        Revolve CreateRevolve(SketchType sketchType)
        {
            var sketch = new Sketch();
            var body   = TestGeomGenerator.CreateBody(sketch, new Pnt(10, 0, 0), new XYZ(45, 0, 0));

            sketch.Points.Add(0, new Pnt2d(0, 30));
            sketch.Points.Add(1, new Pnt2d(20, 30));
            sketch.Segments.Add(0, new SketchSegmentLine(0, 1));

            sketch.Points.Add(2, new Pnt2d(30, 0));
            sketch.Points.Add(3, new Pnt2d(30, 20));
            sketch.Segments.Add(1, new SketchSegmentArc(1, 2, 3));

            sketch.Points.Add(4, new Pnt2d(10, 0));
            sketch.Points.Add(5, new Pnt2d(0, -20));
            sketch.Segments.Add(2, new SketchSegmentBezier(2, 4, 5));

            sketch.Segments.Add(3, new SketchSegmentLine(5, 0));

            if (sketchType == SketchType.MultiCurve)
            {
                sketch.Points.Add(6, new Pnt2d(5, 10));
                sketch.Points.Add(7, new Pnt2d(10, 0));
                sketch.Points.Add(8, new Pnt2d(5, -10));
                sketch.Segments.Add(4, new SketchSegmentLine(6, 7));
                sketch.Segments.Add(5, new SketchSegmentLine(7, 8));
                sketch.Segments.Add(6, new SketchSegmentLine(8, 6));
                AssertHelper.IsSameModel2D(sketch, Path.Combine(_BasePath, "SketchMultiCurve"));
            }
            else
            {
                AssertHelper.IsSameModel2D(sketch, Path.Combine(_BasePath, "Sketch"));
            }

            return(Revolve.Create(body));
        }