示例#1
0
        public void SetCurrentSettingsFromPrinterProfile(IPrinter oPrinter)
        {
            var profileName = oPrinter.MyPrinterProfile.ProfileName;

            if (!mSettingsStackList.ContainsKey(profileName))
            {
                var slicerSettingsBaseStack = new Stack <SmartSlicerSettingsBase>();
                slicerSettingsBaseStack.Push(mSmartSlicerSettings);
                mSettingsStackList.Add(profileName, slicerSettingsBaseStack);
            }
            mCurrentSettingsStack = mSettingsStackList[profileName];
            SlicerSettings?.ConfigureFromPrinterData(oPrinter);
            LoadSlicerSettings(SlicerSettings);
        }
示例#2
0
        private void ResetSettings()
        {
            PrinterObject selectedPrinter = SelectedPrinter;

            if (selectedPrinter == null || selectedPrinter.MyPrinterProfile == null)
            {
                return;
            }

            settingsManager.Settings.GetPrintSettingsSafe(selectedPrinter.MyPrinterProfile.ProfileName).Reset();
            settingsManager.SaveSettings();
            SlicerSettings.SetToDefault();
            SyncFromSlicerSettings();
        }
示例#3
0
        public void PrintSlicedModel(PrintJobDetails currentJobDetails, RecentPrintsTab recentPrints, AsyncCallback OnPrintJobStarted)
        {
            var gcodefile = Path.Combine(Paths.WorkingFolder, "m3doutput.gcode");
            var filepath  = "M3D.M3D";

            foreach (PrintDetails.ObjectDetails objectDetails in currentJobDetails.objectDetailsList)
            {
                if (currentJobDetails.autoPrint)
                {
                    objectDetails.hidecontrols = true;
                }

                filepath = objectDetails.filename;
            }
            var splitFileName = new SplitFileName(filepath);
            var jobParams     = new JobParams(gcodefile, splitFileName.name + "." + splitFileName.ext, currentJobDetails.preview_image, FilamentSpool.TypeEnum.OtherOrUnknown, (int)currentJobDetails.Estimated_Print_Time, currentJobDetails.Estimated_Filament)
            {
                options              = currentJobDetails.jobOptions,
                preprocessor         = currentJobDetails.printer.MyFilamentProfile.preprocessor,
                filament_temperature = currentJobDetails.printer.MyFilamentProfile.Temperature,
                autoprint            = currentJobDetails.autoPrint
            };
            List <Slicer.General.KeyValuePair <string, string> > keyValuePairList = SlicerSettings.GenerateUserKeyValuePairList();

            SettingsManager.SavePrintingObjectsDetails(jobParams, currentJobDetails.objectDetailsList);
            SettingsManager.SavePrintJobInfo(jobParams, currentJobDetails.printer, SlicerSettings.ProfileName, SlicerSettings.GenerateUserKeyValuePairList());
            recentPrints?.AddRecentPrintHistory(jobParams, currentJobDetails.printer, SlicerSettings.ProfileName, keyValuePairList, currentJobDetails.objectDetailsList);
            if (currentJobDetails.print_to_file)
            {
                jobParams.outputfile = currentJobDetails.printToFileOutputFile;
                jobParams.jobMode    = JobParams.Mode.SaveToBinaryGCodeFile;
            }
            else if (currentJobDetails.auto_untethered_print)
            {
                jobParams.jobMode = !currentJobDetails.sdSaveOnly_print ? JobParams.Mode.SavingToSDCardAutoStartPrint : JobParams.Mode.SavingToSDCard;
            }

            var num = (int)currentJobDetails.printer.PrintModel(OnPrintJobStarted, currentJobDetails.printer, jobParams);
        }
示例#4
0
        public override SlicerResult StartSlicingUsingCurrentSettings(string modelfilename, string outputgcode, PrintSettings printsettings)
        {
            var cultureInfo = new CultureInfo("en-US");

            if (GetSlicerStatus().is_slicing)
            {
                return(SlicerResult.Result_AlreadyStarted);
            }

            var str1 = " -m " + printsettings.transformation.m[0, 0].ToString(cultureInfo) + "," + printsettings.transformation.m[0, 1].ToString(cultureInfo) + "," + printsettings.transformation.m[0, 2].ToString(cultureInfo) + "," + printsettings.transformation.m[1, 0].ToString(cultureInfo) + "," + printsettings.transformation.m[1, 1].ToString(cultureInfo) + "," + printsettings.transformation.m[1, 2].ToString(cultureInfo) + "," + printsettings.transformation.m[2, 0].ToString(cultureInfo) + "," + printsettings.transformation.m[2, 1].ToString(cultureInfo) + "," + printsettings.transformation.m[2, 2].ToString(cultureInfo);
            var num1 = (int)(printsettings.transformation.m[3, 0] * 1000.0);
            var num2 = (int)(printsettings.transformation.m[3, 1] * 1000.0);
            var str2 = " -s posx=" + num1.ToString(cultureInfo) + " -s posy=" + num2.ToString(cultureInfo);

            using (var writer = new StreamWriter(Paths.SlicerSettingsPath(SlicerSettings.ConfigurationFileName)))
            {
                SlicerSettings.SerializeToSlicer(writer);
            }

            FileUtils.GrantAccess(Paths.SlicerSettingsPath(SlicerSettings.ConfigurationFileName));
            slicer_process_arg = string.Format("-p -v {0} {1} {2} -s autoCenter=1 {3} {4}", string.Format("-o \"{0}\"", (object)Path.Combine(Paths.WorkingFolder, outputgcode)), string.Format("-c \"{0}\"", (object)Path.Combine(Paths.WorkingFolder, SlicerSettings.ConfigurationFileName)), string.Format("\"{0}\"", (object)modelfilename), str2, str1);
            StartSlicerThread();
            return(SlicerResult.Result_OK);
        }
示例#5
0
        public void MyTabButtonCallback(ButtonWidget button)
        {
            switch (button.ID)
            {
            case 611:
                SlicerSettings.SetToDefault();
                SyncAllSettingWithGUI();
                break;

            case 612:
                SlicerConnection.SlicerSettingStack.PopSettings();
                PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.PrintDialogFrame, CurrentJobDetails);
                break;

            case 613:
                SlicerConnection.SlicerSettingStack.SaveSettingsDown();
                PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.PrintDialogFrame, CurrentJobDetails);
                break;

            default:
                ShowFrame(button.tag);
                break;
            }
        }
示例#6
0
        public void MyButtonCallback(ButtonWidget button)
        {
            PrinterObject selectedPrinter = SelectedPrinter;
            var           filament        = (FilamentSpool)null;

            if (selectedPrinter != null)
            {
                filament = selectedPrinter.GetCurrentFilament();
            }

            switch (button.ID)
            {
            case 109:
                --quality_scroll_list.StartIndex;
                break;

            case 111:
                printQuality_editbox.Text = host.Locale.T("T_PRINTQUALITY5");
                if (!syncing)
                {
                    SlicerSettings.SetPrintQuality(PrintQuality.Expert, filament, CurrentJobDetails.slicer_objects.Count);
                }

                quality_scroll_list.GotoChild(button.ID);
                break;

            case 112:
                printQuality_editbox.Text = host.Locale.T("T_PRINTQUALITY1");
                if (!syncing)
                {
                    SlicerSettings.SetPrintQuality(PrintQuality.HighQuality, filament, CurrentJobDetails.slicer_objects.Count);
                }

                quality_scroll_list.GotoChild(button.ID);
                break;

            case 113:
                printQuality_editbox.Text = host.Locale.T("T_PRINTQUALITY2");
                if (!syncing)
                {
                    SlicerSettings.SetPrintQuality(PrintQuality.MediumQuality, filament, CurrentJobDetails.slicer_objects.Count);
                }

                quality_scroll_list.GotoChild(button.ID);
                break;

            case 114:
                printQuality_editbox.Text = host.Locale.T("T_PRINTQUALITY3");
                if (!syncing)
                {
                    SlicerSettings.SetPrintQuality(PrintQuality.FastPrint, filament, CurrentJobDetails.slicer_objects.Count);
                }

                quality_scroll_list.GotoChild(button.ID);
                break;

            case 115:
                printQuality_editbox.Text = host.Locale.T("T_PRINTQUALITY4");
                if (!syncing)
                {
                    SlicerSettings.SetPrintQuality(PrintQuality.VeryFastPrint, filament, CurrentJobDetails.slicer_objects.Count);
                }

                quality_scroll_list.GotoChild(button.ID);
                break;

            case 116:
                printQuality_editbox.Text = host.Locale.T("T_PRINTQUALITY6");
                if (!syncing)
                {
                    SlicerSettings.SetPrintQuality(PrintQuality.VeryHighQuality, filament, CurrentJobDetails.slicer_objects.Count);
                }

                quality_scroll_list.GotoChild(button.ID);
                break;

            case 117:
                ++quality_scroll_list.StartIndex;
                break;

            case 118:
                printQuality_editbox.Text = host.Locale.T("T_PRINTQUALITY7");
                if (string.IsNullOrEmpty(printQuality_editbox.Text))
                {
                    printQuality_editbox.Text = "Custom";
                }

                quality_scroll_list.GotoChild(button.ID);
                break;

            case 218:
                --density_scroll_list.StartIndex;
                break;

            case 220:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY1");
                if (!syncing)
                {
                    SlicerSettings.SetFillQuality(FillQuality.ExtraHigh);
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 221:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY2");
                if (!syncing)
                {
                    SlicerSettings.SetFillQuality(FillQuality.High);
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 222:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY3");
                if (!syncing)
                {
                    SlicerSettings.SetFillQuality(FillQuality.Medium);
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 223:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY4");
                if (!syncing)
                {
                    SlicerSettings.SetFillQuality(FillQuality.Low);
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 224:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY5");
                if (!syncing)
                {
                    SlicerSettings.SetFillQuality(FillQuality.HollowThickWalls);
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 225:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY6");
                if (!syncing)
                {
                    SlicerSettings.SetFillQuality(FillQuality.HollowThinWalls);
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 226:
                ++density_scroll_list.StartIndex;
                break;

            case 227:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY7");
                if (!syncing)
                {
                    SlicerSettings.SetFillQuality(FillQuality.Solid);
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 228:
                fillDensity_editbox.Text = host.Locale.T("T_FILLDENSITY8");
                if (string.IsNullOrEmpty(fillDensity_editbox.Text))
                {
                    fillDensity_editbox.Text = "Custom";
                }

                density_scroll_list.GotoChild(button.ID);
                break;

            case 301:
                if (syncing)
                {
                    break;
                }

                SetSupportEnabledControls(false);
                if (support_checkbutton.Checked)
                {
                    support_everywhere.Enabled   = true;
                    support_printbedonly.Enabled = true;
                    support_printbedonly.Checked = true;
                    SlicerSettings.EnableSupport(SupportType.LineSupport);
                    break;
                }
                SlicerSettings.DisableSupport();
                break;

            case 303:
                if (syncing || !support_everywhere.Checked)
                {
                    break;
                }

                SlicerSettings.EnableSupport(SupportType.LineSupportEveryWhere);
                break;

            case 307:
                if (syncing)
                {
                    break;
                }

                if (button.Checked)
                {
                    SlicerSettings.EnableRaft(filament);
                    break;
                }
                SlicerSettings.DisableRaft();
                break;

            case 311:
                if (syncing)
                {
                    break;
                }

                if (button.Checked)
                {
                    SlicerSettings.EnableSkirt();
                    break;
                }
                SlicerSettings.DisableSkirt();
                break;

            case 313:
                if (syncing || !support_printbedonly.Checked)
                {
                    break;
                }

                SlicerSettings.EnableSupport(SupportType.LineSupport);
                break;

            case 401:
            case 404:
                if (printerview.ModelLoaded)
                {
                    SaveSettings();
                    OnPrintButtonPressed(button.ID == 404);
                    break;
                }
                message_box.AddMessageToQueue(Locale.GlobalLocale.T("T_PrinterViewError_NoModel"));
                break;

            case 402:
                PrintDialogWindow.CloseWindow();
                break;

            case 403:
                ResetSettings();
                LoadSettings();
                break;

            case 501:
                OpenAdvancedPrintSettingsDialog();
                break;
            }
        }