示例#1
0
        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 }
            });
        }
示例#2
0
        /// <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());
        }
示例#3
0
        /// <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);
        }