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; }