示例#1
0
 public override void OnActivate(PrintJobDetails details)
 {
     PrintDialogWindow.SetSize(480, 340);
     PrintDialogWindow.Refresh();
     myPrinter      = details.printer;
     canceled.Value = false;
     var num = (int)details.printer.AcquireLock(new AsyncCallback(OnLockedBeforeSlicing), details);
 }
示例#2
0
 public override void OnActivate(PrintJobDetails details)
 {
     SlicerConnection.SlicerSettingStack.PushSettings();
     globalErrorCount         = 0;
     globalWarningCount       = 0;
     tabsErrorWarningCount    = new Dictionary <string, AdvancedPrintSettingsFrame.TabErrorStateCount>();
     settingErrorWarningState = new Dictionary <string, AdvancedPrintSettingsFrame.ErrorStateEnum>();
     buttonElements           = new List <Element2D>();
     GenerateFromSlicerSettings(SlicerConnection.SlicerSettings);
     PrintDialogWindow.SetSize(750, 500);
     PrintDialogWindow.Refresh();
     CurrentJobDetails = details;
 }
示例#3
0
        public void MyButtonCallback(ButtonWidget button)
        {
            if (button.ID != 101)
            {
                return;
            }

            canceled.Value = true;
            myPrinter.ClearAsyncCallbacks();
            var num = (int)myPrinter.ReleaseLock(null, null);

            PrintDialogWindow.CloseWindow();
        }
示例#4
0
        private void StartSlicingOnSuccess(IAsyncCallResult ar)
        {
            var asyncState = (PrintJobDetails)ar.AsyncState;

            if (ar.CallResult == CommandResult.Success)
            {
                StitchAndGotoSlicingFrame(asyncState);
            }
            else
            {
                asyncState.printer.ShowLockError(ar);
                PrintDialogWindow.ActivatePrevious(asyncState);
            }
        }
示例#5
0
 public override void OnActivate(PrintJobDetails details)
 {
     PrintDialogWindow.SetSize(480, 340);
     PrintDialogWindow.Refresh();
     ResetSlicerState();
     bProcessingAndSavingModel              = false;
     bCanCheckForNoJob                      = false;
     CurrentJobDetails                      = details;
     CurrentJobDetails.Estimated_Filament   = -1f;
     CurrentJobDetails.Estimated_Print_Time = -1f;
     Enabled             = true;
     status_text.Visible = true;
     SetSize(480, 340);
     StartSlicer(CurrentJobDetails.settings);
 }
示例#6
0
        public override void OnActivate(PrintJobDetails details)
        {
            PrintDialogWindow.SetSize(480, 340);
            PrintDialogWindow.Refresh();
            CurrentJobDetails = details;
            var num1 = (int)CurrentJobDetails.Estimated_Print_Time + 1800;
            var num2 = num1 / 60;
            var num3 = num2 / 60;
            var num4 = num2 - num3 * 60;

            CurrentJobDetails.Estimated_Print_Time = num1;
            estimated_time.Text     = num3.ToString() + " hours, " + num4.ToString() + " minutes";
            estimated_filament.Text = ((int)CurrentJobDetails.Estimated_Filament * 0.0393701f).ToString() + " inches";
            countdown_timer.Restart();
        }
示例#7
0
 public override void OnActivate(PrintJobDetails details)
 {
     PrintDialogWindow.SetSize(480, 340);
     PrintDialogWindow.Refresh();
     ResetSlicerState();
     CurrentJobDetails = details;
     CurrentJobDetails.Estimated_Filament   = -1f;
     CurrentJobDetails.Estimated_Print_Time = -1f;
     Enabled = true;
     cancel_button.Visible   = true;
     progressbar.Visible     = true;
     pleasewait_text.Visible = true;
     cancel_button.CenterHorizontallyInParent = true;
     SetSize(480, 340);
     StartSlicer(CurrentJobDetails.settings);
 }
示例#8
0
        public override void OnActivate(PrintJobDetails details)
        {
            PrintDialogWindow.SetSize(750, 550);
            PrintDialogWindow.Refresh();
            CurrentJobDetails = details;
            LoadSettings();
            SlicerConnection.SlicerSettingStack.PushSettings();
            SetFillandQualityButtons();
            PrinterObject selectedPrinter = SelectedPrinter;

            CheckVerifyBedAvailability(selectedPrinter, true);
            CheckHeatedBedAvailability(selectedPrinter, true);
            CheckSDCardAvailability(selectedPrinter, true);
            SetSupportEnabledControls(false);
            mQualityButtonsSet = true;
        }
示例#9
0
        private void OpenAdvancedPrintSettingsDialog()
        {
            PrinterObject selectedPrinter = SelectedPrinter;

            if (selectedPrinter == null)
            {
                return;
            }

            CurrentJobDetails.printer    = selectedPrinter;
            CurrentJobDetails.jobOptions = new JobOptions(false)
            {
                autostart_ignorewarnings = true
            };
            CurrentJobDetails.GenerateSlicerSettings(selectedPrinter, printerview);
            PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.AdvancedPrintSettingsFrame, CurrentJobDetails);
        }
示例#10
0
        private void StitchAndGotoSlicingFrame(PrintJobDetails CurrentJobDetails)
        {
            StitchModels(CurrentJobDetails);
            if (canceled.Value)
            {
                return;
            }

            if (CurrentJobDetails.print_to_file)
            {
                PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.PrintingToFileFrame, CurrentJobDetails);
            }
            else
            {
                PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.SlicingFrame, CurrentJobDetails);
            }
        }
示例#11
0
        private void ContinuePrintCallBack(PopupMessageBox.PopupResult result, MessageType type, PrinterSerialNumber sn, object user_data)
        {
            if (result == PopupMessageBox.PopupResult.Button1_YesOK)
            {
                PrepareToStartPrint();
            }
            else
            {
                PrintDialogWindow.CloseWindow();
                if (CurrentJobDetails.printer == null)
                {
                    return;
                }

                var num = (int)CurrentJobDetails.printer.SendManualGCode(new AsyncCallback(ReleasePrinterAfterCommand), CurrentJobDetails.printer, "M106 S0");
            }
        }
示例#12
0
        public void OnPrintButtonPressed(bool bPrintToFile)
        {
            PrinterObject selectedPrinter = SelectedPrinter;

            if (selectedPrinter == null)
            {
                return;
            }

            var jobOptions = new JobOptions(false);

            CurrentJobDetails.print_to_file = bPrintToFile;
            if (bPrintToFile)
            {
                CurrentJobDetails.printToFileOutputFile = SaveModelFileDialog.RunSaveFileDialog(SaveModelFileDialog.FileType.GCode);
                if (string.IsNullOrEmpty(CurrentJobDetails.printToFileOutputFile))
                {
                    PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.PrintDialogFrame, CurrentJobDetails);
                    return;
                }
            }
            jobOptions.autostart_ignorewarnings          = true;
            jobOptions.use_raft_DetailOnly               = SlicerSettings.HasRaftEnabled;
            jobOptions.use_wave_bonding                  = UseWaveBonding.Checked;
            jobOptions.use_fan_preprocessor              = SlicerSettings.UsingAutoFanSettings;
            jobOptions.use_support_DetailOnly            = support_checkbutton.Checked;
            jobOptions.use_support_everywhere_DetailOnly = support_everywhere.Checked;
            jobOptions.calibrate_before_print            = verifybed_checkbutton.Checked;
            jobOptions.calibrate_before_print_z          = 0.4f;
            if (selectedPrinter.Info.calibration.UsesCalibrationOffset)
            {
                jobOptions.calibrate_before_print_z += selectedPrinter.Info.calibration.CALIBRATION_OFFSET;
            }

            jobOptions.use_heated_bed = heatedBedButton_checkbox.Checked;
            jobOptions.quality_layer_resolution_DetailOnly = (int)GetPrintQuality();
            jobOptions.fill_density_DetailOnly             = (int)GetFillDensity();
            CurrentJobDetails.GenerateSlicerSettings(selectedPrinter, printerview);
            CurrentJobDetails.auto_untethered_print = untetheredButton_checkbox.Checked;
            CurrentJobDetails.sdSaveOnly_print      = sdOnlyButton_checkbox.Checked;
            SlicerConnection.SlicerSettingStack.SaveSettingsDown();
            CurrentJobDetails.printer    = selectedPrinter;
            CurrentJobDetails.jobOptions = jobOptions;
            PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.PreSlicingFrame, CurrentJobDetails);
        }
示例#13
0
        public void MyButtonCallback(ButtonWidget button)
        {
            switch (button.ID)
            {
            case 0:
                PrintDialogWindow.CloseWindow();
                if (CurrentJobDetails.printer == null)
                {
                    break;
                }

                var num = (int)CurrentJobDetails.printer.SendManualGCode(new AsyncCallback(ReleasePrinterAfterCommand), CurrentJobDetails.printer, "M106 S0");
                break;

            case 1:
                CloseAndStart();
                break;
            }
        }
示例#14
0
        public void MyButtonCallback(ButtonWidget button)
        {
            if (button.ID != 0)
            {
                return;
            }

            PrintDialogWindow.CloseWindow();
            if (SlicerConnection != null)
            {
                SlicerConnection.Cancel();
            }

            if (CurrentJobDetails.printer == null)
            {
                return;
            }

            var num = (int)CurrentJobDetails.printer.SendManualGCode(new AsyncCallback(ReleasePrinterAfterCommand), CurrentJobDetails.printer, "M106 S0");
        }
示例#15
0
        private void OnLockedBeforeSlicing(IAsyncCallResult ar)
        {
            var asyncState = (PrintJobDetails)ar.AsyncState;

            if (ar.CallResult == CommandResult.Success_LockAcquired)
            {
                if (!asyncState.print_to_file)
                {
                    var num = (int)asyncState.printer.SendManualGCode(new AsyncCallback(StartSlicingOnSuccess), asyncState, "M106 S1");
                }
                else
                {
                    StitchAndGotoSlicingFrame(asyncState);
                }
            }
            else
            {
                asyncState.printer.ShowLockError(ar);
                PrintDialogWindow.ActivatePrevious(asyncState);
            }
        }
示例#16
0
        private void ProcessSpoolerProcessing()
        {
            status_text.Text = "Preparing gcode for printer and saving ";
            PrinterObject printer = CurrentJobDetails.printer;

            if (printer != null)
            {
                var num = printer.isHealthy ? 1 : 0;
            }
            if (printer.Info.current_job != null)
            {
                bCanCheckForNoJob = true;
            }

            if (!bCanCheckForNoJob && spoolerProcessingTimer.ElapsedMilliseconds <= 30000L || printer.Info.current_job != null)
            {
                return;
            }

            PrintDialogWindow.CloseWindow();
            message_box.AddMessageToQueue("File saved");
        }
示例#17
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;
            }
        }
示例#18
0
 private void FailedReleaseCallback(IAsyncCallResult ar)
 {
     PrintDialogWindow.CloseWindow();
     message_box.AddMessageToQueue(Locale.GlobalLocale.T("T_Failed_ErrorSendingToPrinter"), PopupMessageBox.MessageBoxButtons.OK);
 }
示例#19
0
 private void PrepareToStartPrint()
 {
     PrintDialogWindow.ActivateFrame(PrintDialogWidgetFrames.PreparingToStartFrame, CurrentJobDetails);
 }
示例#20
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;
            }
        }
示例#21
0
 private void CloseAndStart()
 {
     countdown_timer.Stop();
     PrintSlicedModel(CurrentJobDetails, recentPrints, new AsyncCallback(OnPrintJobStarted));
     PrintDialogWindow.CloseWindow();
 }