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); }
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(); }
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); }
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); }
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; } }
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; } }