public static Dictionary <string, object> PrintSettings( [DefaultArgumentAttribute("Voxel2GCodeZeroTouch.GetUnsetValue()")] object StartPoint, [DefaultArgumentAttribute("Voxel2GCodeZeroTouch.GetUnsetValue()")] object EndPoint, [DefaultArgumentAttribute("Voxel2GCodeZeroTouch.GetUnsetValue()")] bool ShouldHeatUpOnStart, [DefaultArgumentAttribute("Voxel2GCodeZeroTouch.GetUnsetValue()")] bool ShouldCoolDownOnEnd, double ZOffset = 0.2, double BedTemperature = 60.0, double T0Temperature = 200.0, double T1Temperature = 0 ) { V2GSettings settings = new V2GSettings(); if (IsSet(StartPoint)) { Autodesk.DesignScript.Geometry.Point p = (Autodesk.DesignScript.Geometry.Point)StartPoint; settings.StartPoint = new V2GPrintPosition(p.X, p.Y, p.Z); } if (IsSet(EndPoint)) { Autodesk.DesignScript.Geometry.Point p = (Autodesk.DesignScript.Geometry.Point)EndPoint; settings.EndPoint = new V2GPrintPosition(p.X, p.Y, p.Z); } if (IsSet(ShouldHeatUpOnStart)) { settings.ShouldHeatUpOnStart = ShouldHeatUpOnStart; } if (IsSet(ShouldCoolDownOnEnd)) { settings.ShouldCoolDownOnEnd = ShouldCoolDownOnEnd; } if (IsSet(ZOffset)) { settings.ZOffset = ZOffset; } settings.BedTemperature = BedTemperature; settings.T0Temperature = T0Temperature; settings.T1Temperature = T1Temperature; settings.LayerHeight = 0.2; string log = "settings\n"; log += "\nShouldHeatUpOnStart: " + settings.ShouldHeatUpOnStart; log += "\nShouldCoolDownOnEnd: " + settings.ShouldCoolDownOnEnd; log += "\nZOffset: " + settings.ZOffset; return(new Dictionary <string, object> { { "PrintSettings", settings }, { "Log", log } }); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { // Variables List <V2GPrintable> printables = new List <V2GPrintable>(); V2GSettings settings = new V2GSettings(); // Get Data DA.GetDataList(0, printables); DA.GetData(1, ref settings); //if (!DA.GetData(1, ref settings)) //{ // settings = new V2GSettings(); // } // Stuff System.Text.StringBuilder sb = new System.Text.StringBuilder(); // Create Printer and adjust settings V2GState printer = new V2GState(); printer.SetSettings(settings); // Create Model V2GModel model = new V2GModel(); // Append PrintPolylines foreach (V2GPrintable printable in printables) { if (printable is V2GPrintPolyline) { model.AppendAsPath(printable as Voxel2GCodeCore.Geometry.V2GPrintPolyline); } else if (printable is V2GPrintPosition) { /// TODO: implement model.AppendAsPath(V2GPrintPosition position) { } } } model.AppendAsRelativeMovement(new V2GPrintPosition(0, 0, 10.0), 0, 7200); // Generate GCode model.GenerateGCode(sb, printer); // Set Data DA.SetData(0, sb.ToString()); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { Point3d StartPoint = new Point3d(); Point3d EndPoint = new Point3d(); bool ShouldHeatUpOnStart = false; bool ShouldCoolDownOnEnd = false; double ZOffset = 0.2; double BedTemperature = 60.0; double T0Temperature = 200.0; double T1Temperature = 200.0; bool IsVerbose = false; DA.GetData(0, ref StartPoint); DA.GetData(1, ref EndPoint); DA.GetData(2, ref ShouldHeatUpOnStart); DA.GetData(3, ref ShouldCoolDownOnEnd); DA.GetData(4, ref ZOffset); DA.GetData(5, ref BedTemperature); DA.GetData(6, ref T0Temperature); DA.GetData(7, ref T1Temperature); DA.GetData(8, ref IsVerbose); V2GSettings settings = new V2GSettings(); settings.StartPoint = new V2GPrintPosition(V2GH.V2GPoint(StartPoint)); settings.EndPoint = new V2GPrintPosition(V2GH.V2GPoint(EndPoint)); settings.ShouldHeatUpOnStart = ShouldHeatUpOnStart; settings.ShouldCoolDownOnEnd = ShouldCoolDownOnEnd; settings.ZOffset = ZOffset; settings.BedTemperature = BedTemperature; settings.T0Temperature = T0Temperature; settings.T1Temperature = T1Temperature; settings.IsVerbose = IsVerbose; DA.SetData(0, settings); }