public void WriteSTEPNC(List <Layer> layers, string outname)
        {
            STEPNCLib.AptStepMaker stnc = new STEPNCLib.AptStepMaker();

            stnc.NewProjectWithCCandWP("Additive Manufacturing STEP-NC", 1, "Main Additive Workplan");//make new project

            stnc.Millimeters();

            stnc.DefineTool(1.75, 1.75 / 2, 10.0, 10.0, 1.0, 0.0, 45.0);

            foreach (Layer layer in layers)
            {
                stnc.NestWorkplan("Additive Layer-" + layer.LayerNO.ToString());

                foreach (Polyline polyline in layer.Polylines)
                {
                    stnc.LoadTool(1);//load tool
                    stnc.Workingstep("Additive WS" + "(" + polyline.PolylineType + ")" + "-" + polyline.PolylineID.ToString());
                    //stnc.Rapid();
                    bool travel = true;
                    foreach (Point point in polyline.Points)
                    {
                        if (polyline.PolylineType == "contour-open")
                        {
                            if (travel)
                            {
                                stnc.Rapid();
                                stnc.GoToXYZ(polyline.PolylineType, point.X, point.Y, point.Z);
                                stnc.Feedrate(1600.0);
                                stnc.SpindleSpeed(220);
                                travel = false;
                            }
                            else
                            {
                                stnc.GoToXYZ(polyline.PolylineType, point.X, point.Y, point.Z);
                            }
                        }
                        else if (polyline.PolylineType == "hatch")
                        {
                            if (travel)
                            {
                                stnc.Rapid();
                                stnc.GoToXYZ(polyline.PolylineType, point.X, point.Y, point.Z);
                                stnc.Feedrate(1600.0);
                                stnc.SpindleSpeed(220);
                                travel = false;
                            }
                            else
                            {
                                stnc.GoToXYZ(polyline.PolylineType, point.X, point.Y, point.Z);
                                travel = true;
                            }
                        }
                    }
                }
                stnc.EndWorkplan();
            }
            stnc.SaveFastAsModules(outname);
            return;
        }