Ejemplo n.º 1
0
        private void CreateLimits()
        {
            // @TODO Get the coordinate- vs drawing units right :)

            _limitsBottom = new Polyline();

            _limitsBottom.Add(0, 0, 0);
            _limitsBottom.Add(0, GRBLMachinePlugin.Props.Y.AxisMaximumTravel, 0);
            _limitsBottom.Add(GRBLMachinePlugin.Props.X.AxisMaximumTravel, GRBLMachinePlugin.Props.Y.AxisMaximumTravel, 0);
            _limitsBottom.Add(GRBLMachinePlugin.Props.X.AxisMaximumTravel, 0, 0);
            _limitsBottom.Closed = true;

            _limitsOuter = _limitsBottom.Extrude(1f, GRBLMachinePlugin.Props.Z.AxisMaximumTravel, 0);

            if (_limitsOuter != null)
            {
                _limitsTop = new Polyline(_limitsBottom);

                _limitsBottom.Transform.Translate(-_WCO_x, -_WCO_y, -_WCO_z);
                _limitsBottom.ApplyTransformation();

                _limitsTop.Transform.Translate(-_WCO_x, -_WCO_y, -_WCO_z + GRBLMachinePlugin.Props.Z.AxisMaximumTravel);
                _limitsTop.ApplyTransformation();
                _limitsOuter.Transform.Translate(-_WCO_x, -_WCO_y, -_WCO_z + GRBLMachinePlugin.Props.Z.AxisMaximumTravel);
                _limitsOuter.ApplyTransformation();

                _limitsInner = new Surface(_limitsOuter);
                _limitsInner.InvertFaces();
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Do the desired translation
 /// </summary>
 /// <param name="xm"></param>
 public virtual void ApplyTransformation(Matrix4x4F xm)
 {
     if (_tool != null)
     {
         _tool.ApplyTransformation(xm);
     }
 }
Ejemplo n.º 3
0
        private Surface polyline_to_surface(Polyline p, double z)
        {
            if (base.Transform.Cached != null && !Transform.Cached.IsIdentity())
            {
                p = (Polyline)p.Clone();
                p.ApplyTransformation(Transform.Cached);
            }

            PolylineToMesh mesh    = new PolylineToMesh(p);
            Surface        surface = mesh.ToWideLine(base.ToolDiameter.Cached);

            surface.ApplyTransformation(Matrix4x4F.Translation(0.0, 0.0, z - 0.001));
            return(surface);
        }