Ejemplo n.º 1
0
        public void Write(PanelDisplay panel)
        {
            PointCollection points = panel.GetPoints();

            svgFile.Write("<polyline points=\"");
            foreach (Point p in points)
            {
                svgFile.Write(" " + p.X + "," + p.Y + " ");
            }

            svgFile.WriteLine("\" style=\"fill:none;stroke:black;stroke-width:1\" />");
        }
Ejemplo n.º 2
0
        public void Write(PanelDisplay panel)
        {
            Point           lastPoint  = new Point(0, 0);
            Point           firstPoint = new Point(0, 0);
            PointCollection points     = panel.GetPoints();
            Boolean         first      = true;

            foreach (Point p in points)
            {
                if (first)
                {
                    lastPoint  = p;
                    firstPoint = p;
                    first      = false;
                }
                else
                {
                    stlFile.WriteLine("facet normal 0.0E1 0.0E1 0.0E1"); // normal vector
                    stlFile.WriteLine("outer loop");
                    stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", lastPoint.X, lastPoint.Y, -m_depth);
                    stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", lastPoint.X, lastPoint.Y, 0);
                    stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", p.X, p.Y, 0);
                    stlFile.WriteLine("endloop");
                    stlFile.WriteLine("endfacet");

                    stlFile.WriteLine("facet normal ni nj nk"); // normal vector
                    stlFile.WriteLine("outer loop");
                    stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", lastPoint.X, lastPoint.Y, -m_depth);
                    stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", p.X, p.Y, 0);
                    stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", p.X, p.Y, -m_depth);
                    stlFile.WriteLine("endloop");
                    stlFile.WriteLine("endfacet");
                    lastPoint = p;
                }
            }
            // go back to first point
            stlFile.WriteLine("facet normal 0.0E1 0.0E1 0.0E1"); // normal vector
            stlFile.WriteLine("outer loop");
            stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", lastPoint.X, lastPoint.Y, -m_depth);
            stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", lastPoint.X, lastPoint.Y, 0);
            stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", firstPoint.X, firstPoint.Y, 0);
            stlFile.WriteLine("endloop");
            stlFile.WriteLine("endfacet");

            stlFile.WriteLine("facet normal ni nj nk"); // normal vector
            stlFile.WriteLine("outer loop");
            stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", lastPoint.X, lastPoint.Y, -m_depth);
            stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", firstPoint.X, firstPoint.Y, 0);
            stlFile.WriteLine("vertex {0:E} {1:E} {2:E}", firstPoint.X, firstPoint.Y, -m_depth);
            stlFile.WriteLine("endloop");
            stlFile.WriteLine("endfacet");
        }
Ejemplo n.º 3
0
        public void Write(PanelDisplay panel, Point origin)
        {
            double          offset     = parameters.CutterDiameter / 2;
            PointCollection points     = panel.GetPoints();
            Boolean         first      = true;
            Point           firstPoint = new Point(0, 0);

            // Get the tool path, which is an offset from the panel points
            PointCollection path;

            if (offset != 0)
            {
                path = Geometry.ParallelShape(points, offset, parameters.OffsetInside);
            }
            else
            {
                path = points;
            }

            double currentDepth = 0;

            while (currentDepth < parameters.MaterialThickness)
            {
                currentDepth += parameters.DepthPerCut;
                if (currentDepth > parameters.MaterialThickness)
                {
                    currentDepth = parameters.MaterialThickness + parameters.CutthroughDepth;
                }
                foreach (Point p in path)
                {
                    Point spot = new Point(p.X - origin.X, -(p.Y - origin.Y));

                    if (first)
                    {
                        firstPoint = spot;
                        gCodeFile.WriteLine("G01 Z0.25 F{0}", parameters.PlungeSpeed);                  // Lift cutter
                        gCodeFile.WriteLine("G00 X{0} Y{1}", spot.X, spot.Y);                           // Go to start point
                        gCodeFile.WriteLine("G01 Z-{0} F{1}", currentDepth, parameters.PlungeSpeed);    // cut into surface
                        gCodeFile.WriteLine("G01 X{0} Y{1} F{2}", spot.X, spot.Y, parameters.CutSpeed); // set cutspeed
                        first = false;
                    }
                    else
                    {
                        gCodeFile.WriteLine("G01 X{0} Y{1}", spot.X, spot.Y);
                    }
                }
                first = true;
            }
            gCodeFile.WriteLine("G01 X{0} Y{1}", firstPoint.X, firstPoint.Y);
            gCodeFile.WriteLine("G01 Z0.25 F{0}", parameters.PlungeSpeed);  // Lift cutter
        }