Exemplo n.º 1
0
 public InitialPrintPreProcessorData(InitialPrintPreProcessorData other)
 {
     StartingTemp = other.StartingTemp;
     StartingTempStabilizationDelay = other.StartingTempStabilizationDelay;
     StartingFanValue          = other.StartingFanValue;
     BedTemperature            = other.BedTemperature;
     PrimeAmount               = other.PrimeAmount;
     FirstRaftLayerTemperature = other.FirstRaftLayerTemperature;
     SecondRaftResetTemp       = other.SecondRaftResetTemp;
 }
Exemplo n.º 2
0
        public static List <string> GenerateEndGCode(JobDetails jobdetails, InternalPrinterProfile printerProfile, bool retract)
        {
            var stringList = new List <string>();
            InitialPrintPreProcessorData initialPrint         = jobdetails.jobParams.preprocessor.initialPrint;
            PrinterSizeProfile           printerSizeConstants = printerProfile.PrinterSizeConstants;

            stringList.Add("G91");
            if (retract)
            {
                var primeAmount = (float)initialPrint.PrimeAmount;
                var num1        = (float)Math.Round(0.25 * primeAmount);
                var num2        = primeAmount - num1;
                var num3        = 1800f;
                stringList.Add(PrinterCompatibleString.Format("G0 X5 Y5 E{1} F{0}", num3, (float)-(double)num1));
                var num4 = 360f;
                stringList.Add(PrinterCompatibleString.Format("G0 E{1} F{0}", num4, (float)-(double)num2));
            }
            stringList.Add("M104 S0");
            if (printerProfile.AccessoriesConstants.HeatedBedConstants.HasBuiltinHeatedBed && jobdetails.jobParams.options.use_heated_bed)
            {
                stringList.Add("M140 S0");
            }

            if (jobdetails.bounds.max.z > (double)printerSizeConstants.BoxTopLimitZ)
            {
                BoundingBox bounds = printerSizeConstants.WarningRegion.bounds_list[printerSizeConstants.WarningRegion.bounds_list.Count - 1];
                if (jobdetails.bounds.max.z + 1.0 < bounds.max.z)
                {
                    var num = 90f;
                    stringList.Add(PrinterCompatibleString.Format("G0 Z1 F{0}", (object)num));
                }
                var num1 = 1800f;
                stringList.Add("G90");
                stringList.Add(PrinterCompatibleString.Format("G0 X{0} Y{1} F{2}", printerSizeConstants.BackCornerPositionBoxTop.x, printerSizeConstants.BackCornerPositionBoxTop.y, num1));
            }
            else
            {
                var num1 = 90f;
                stringList.Add(PrinterCompatibleString.Format("G0 Z3 F{0}", (object)num1));
                stringList.Add("G90");
                var num2 = 1800f;
                stringList.Add(PrinterCompatibleString.Format("G0 X{0} Y{1} F{2}", printerSizeConstants.BackCornerPosition.x, printerSizeConstants.BackCornerPosition.y, num2));
            }
            stringList.Add("M18");
            return(stringList);
        }
Exemplo n.º 3
0
        internal override bool ProcessGCode(GCodeFileReader input_reader, GCodeFileWriter output_writer, Calibration calibration, JobDetails jobdetails, InternalPrinterProfile printerProfile)
        {
            var num1 = 1;
            InitialPrintPreProcessorData initialPrint = jobdetails.jobParams.preprocessor.initialPrint;

            ProcessGCode_AddStartGCode(input_reader, output_writer, jobdetails.jobParams.options, calibration, printerProfile, initialPrint);
            var num2 = ProcessGCode_HelperLayerComments(input_reader, output_writer, jobdetails, printerProfile, initialPrint) ? 1 : 0;
            var num3 = num1 & num2;

            if (num3 == 0)
            {
                return(num3 != 0);
            }

            ProcessGCode_EndGCode(output_writer, jobdetails, printerProfile);
            return(num3 != 0);
        }
Exemplo n.º 4
0
 public FilamentPreprocessorData()
 {
     initialPrint = new InitialPrintPreProcessorData();
     bonding      = new BondingPreprocessorData();
 }
Exemplo n.º 5
0
 public FilamentPreprocessorData(FilamentPreprocessorData other)
 {
     initialPrint = new InitialPrintPreProcessorData(other.initialPrint);
     bonding      = new BondingPreprocessorData(other.bonding);
 }
Exemplo n.º 6
0
        private bool ProcessGCode_HelperLayerComments(GCodeFileReader input_reader, GCodeFileWriter output_writer, JobDetails jobdetails, InternalPrinterProfile printerProfile, InitialPrintPreProcessorData initial_print_settings)
        {
            var   flag1 = false;
            var   num1  = 0;
            var   num2  = 0;
            var   flag2 = false;
            var   flag3 = false;
            var   flag4 = false;
            var   flag5 = false;
            var   useFanPreprocessor = jobdetails.jobParams.options.use_fan_preprocessor;
            GCode nextLine;

            while ((nextLine = input_reader.GetNextLine(false)) != null)
            {
                if (nextLine.orig.StartsWith(";LAYER:"))
                {
                    if (nextLine.ToString().ToLower().Contains(";layer:-"))
                    {
                        flag5 = true;
                    }

                    flag1 = true;
                    flag2 = true;
                }
                else if (nextLine.HasZ & flag3 && !flag1)
                {
                    output_writer.Write(new GCode(";LAYER:" + num1++));
                    flag2 = true;
                }
                else if (nextLine.HasG)
                {
                    if (nextLine.G == 90)
                    {
                        flag3 = true;
                    }
                    else if (nextLine.G == 91)
                    {
                        flag3 = false;
                    }
                }
                if (!(nextLine.orig.ToLower() == "t0") && nextLine.orig.ToLower().IndexOf(" t0 ") <= -1 && (!nextLine.hasM || nextLine.M != 104 && nextLine.M != 109) && (!useFanPreprocessor || !nextLine.hasM || nextLine.M != 106 && nextLine.M != 107))
                {
                    var flag6 = false;
                    if (nextLine.orig.StartsWith(";LAYER:"))
                    {
                        output_writer.Write(nextLine);
                        flag6 = true;
                    }
                    if (flag2)
                    {
                        int num3;
                        switch (num2)
                        {
                        case 0:
                            var layerTemperature = (float)initial_print_settings.FirstRaftLayerTemperature;
                            output_writer.Write(new GCode("M109 S" + layerTemperature.ToString()));
                            output_writer.Write(new GCode("G90"));
                            BoundingBox bounds = printerProfile.PrinterSizeConstants.WarningRegion.bounds_list[0];
                            output_writer.Write(new GCode(PrinterCompatibleString.Format("G0 X{0} Y{1} Z0.5 F3600", (float)((double)bounds.max.x - 1.0), (float)(((double)bounds.min.y + (double)bounds.max.y) / 2.0 + 10.0))));
                            output_writer.Write(new GCode("G91                  ;Go relative"));
                            output_writer.Write(new GCode(PrinterCompatibleString.Format("G0 E{0} F{1}          ;prime the nozzle", initial_print_settings.PrimeAmount, 72f)));
                            output_writer.Write(new GCode("G4 S0"));
                            output_writer.Write(new GCode("G92 E0               ;reset E"));
                            output_writer.Write(new GCode("G90                  ;Go absolute"));
                            goto label_22;

                        case 1:
                            num3 = initial_print_settings.SecondRaftResetTemp ? 1 : 0;
                            break;

                        default:
                            num3 = 0;
                            break;
                        }
                        var num4 = flag5 ? 1 : 0;
                        if ((num3 & num4) != 0)
                        {
                            var filamentTemperature = (float)jobdetails.jobParams.filament_temperature;
                            output_writer.Write(new GCode(";Reset to the ideal temperature"));
                            output_writer.Write(new GCode("M104 S" + filamentTemperature.ToString()));
                            flag4 = true;
                        }
label_22:
                        ++num2;
                        flag2 = false;
                    }
                    if (!flag4 && (flag5 && nextLine.ToString().ToLower() == ";layer:0" || !flag5 && num2 > 2 || num2 > 4))
                    {
                        var filamentTemperature = (float)jobdetails.jobParams.filament_temperature;
                        output_writer.Write(new GCode(";Reset to the ideal temperature"));
                        output_writer.Write(new GCode("M104 S" + filamentTemperature.ToString()));
                        flag4 = true;
                    }
                    if (!flag6)
                    {
                        output_writer.Write(nextLine);
                    }
                }
            }
            return(true);
        }
Exemplo n.º 7
0
        private void ProcessGCode_AddStartGCode(GCodeFileReader input_reader, GCodeFileWriter output_writer, JobOptions jobOptions, Calibration calibration, InternalPrinterProfile printerProfile, InitialPrintPreProcessorData initial_print_settings)
        {
            var num = 0;

            if (jobOptions.use_heated_bed && printerProfile.AccessoriesConstants.HeatedBedConstants.HasBuiltinHeatedBed)
            {
                num = initial_print_settings.BedTemperature;
            }

            output_writer.Write(new GCode("M106 S1"));
            if (0 < num)
            {
                output_writer.Write(new GCode("M18"));
                output_writer.Write(new GCode("M104 S0"));
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M140 S{0}", (object)num)));
                for (var index = 0; index < 8; ++index)
                {
                    output_writer.Write(new GCode("G4 S15"));
                }

                output_writer.Write(new GCode("M140 S0"));
            }
            output_writer.Write(new GCode("M17"));
            output_writer.Write(new GCode("G4 S1"));
            if (0 < num)
            {
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M104 S{0}", (object)175)));
            }
            else
            {
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M104 S{0}", (object)initial_print_settings.StartingTemp)));
            }

            output_writer.Write(new GCode("G90"));
            output_writer.Write(new GCode(PrinterCompatibleString.Format("G0 Z5 F{0}", (object)(float)(printerProfile.SpeedLimitConstants.DEFAULT_FEEDRATE_Z * 60.0))));
            if (0 < num)
            {
                output_writer.Write(new GCode("M18"));
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M109 S{0}", (object)175)));
                output_writer.Write(new GCode("G4 S5"));
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M104 S{0}", (object)130)));
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M140 S{0}", (object)num)));
                for (var index = 0; index < 8; ++index)
                {
                    output_writer.Write(new GCode("G4 S15"));
                }

                output_writer.Write(new GCode(PrinterCompatibleString.Format("M104 S{0}", (object)initial_print_settings.StartingTemp)));
                for (var index = 0; index < 3; ++index)
                {
                    output_writer.Write(new GCode("G4 S15"));
                }

                output_writer.Write(new GCode("M17"));
                for (var index = 0; index < 1; ++index)
                {
                    output_writer.Write(new GCode("G4 S15"));
                }
            }
            output_writer.Write(new GCode("G28"));
            if (0 < num)
            {
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M190 S{0}", (object)num)));
            }

            output_writer.Write(new GCode("M106 S1"));
            output_writer.Write(new GCode("G90"));
            output_writer.Write(new GCode(PrinterCompatibleString.Format("M109 S{0}", (object)initial_print_settings.StartingTemp)));
            if (initial_print_settings.StartingTempStabilizationDelay != 0)
            {
                output_writer.Write(new GCode(PrinterCompatibleString.Format("G4 S{0}", (object)initial_print_settings.StartingTempStabilizationDelay)));
            }

            if (jobOptions.use_fan_preprocessor && initial_print_settings.StartingFanValue != 0)
            {
                output_writer.Write(new GCode(PrinterCompatibleString.Format("M106 S{0}", (object)initial_print_settings.StartingFanValue)));
            }

            output_writer.Write(new GCode(PrinterCompatibleString.Format("G0 F{0}", (object)1800)));
            output_writer.Write(new GCode("; can extrude"));
        }