Example #1
0
        private void CheckHeatedBedAvailability(PrinterObject selected_printer, bool bSwitchingPrinters)
        {
            if (selected_printer == null || !bSwitchingPrinters)
            {
                return;
            }

            var flag = false;

            if (selected_printer.MyPrinterProfile.AccessoriesConstants.HeatedBedConstants.HasBuiltinHeatedBed && selected_printer.Info.supportedFeatures.UsesSupportedFeatures)
            {
                flag = selected_printer.Info.supportedFeatures.Available("Heated Bed Control", selected_printer.MyPrinterProfile.SupportedFeaturesConstants);
            }

            if (flag)
            {
                heatedBedButton_checkbox.Checked = settingsManager.Settings.GetPrintSettingsSafe(selected_printer.MyPrinterProfile.ProfileName).UseHeatedBed;
                heatedBedButton_checkbox.Enabled = true;
                heatedBedButton_checkbox.Visible = true;
                heatedBedButton_text.Visible     = true;
            }
            else
            {
                heatedBedButton_checkbox.Checked = false;
                heatedBedButton_checkbox.Enabled = false;
                heatedBedButton_checkbox.Visible = false;
                heatedBedButton_text.Visible     = false;
            }
        }
Example #2
0
        private void SaveSettings()
        {
            PrinterObject selectedPrinter = SelectedPrinter;

            if (selectedPrinter != null && selectedPrinter.MyPrinterProfile != null)
            {
                SettingsManager.PrintSettings printSettingsSafe = settingsManager.Settings.GetPrintSettingsSafe(selectedPrinter.MyPrinterProfile.ProfileName);
                var childElement1 = (ButtonWidget)FindChildElement(305);
                if (childElement1 != null)
                {
                    printSettingsSafe.WaveBonding = childElement1.Checked;
                }

                var childElement2 = (ButtonWidget)FindChildElement(309);
                if (childElement2 != null)
                {
                    printSettingsSafe.VerifyBed = childElement2.Checked;
                }

                var childElement3 = (ButtonWidget)FindChildElement(315);
                if (childElement3 != null && childElement3.Enabled)
                {
                    printSettingsSafe.UseHeatedBed = childElement3.Checked;
                }

                var childElement4 = (ButtonWidget)FindChildElement(317);
                if (childElement4 != null && childElement4.Enabled)
                {
                    printSettingsSafe.AutoUntetheredSupport = childElement4.Checked;
                }
            }
            settingsManager.SaveSettings();
        }
Example #3
0
        private void CheckSDCardAvailability(PrinterObject selected_printer, bool bSwitchingPrinters)
        {
            if (selected_printer == null || !bSwitchingPrinters)
            {
                return;
            }

            if (selected_printer.SDCardExtension.Available)
            {
                untetheredButton_checkbox.Checked = settingsManager.Settings.GetPrintSettingsSafe(selected_printer.MyPrinterProfile.ProfileName).AutoUntetheredSupport;
                sdCheckboxesFrame.Enabled         = true;
                sdCheckboxesFrame.Visible         = true;
            }
            else
            {
                untetheredButton_checkbox.Checked = false;
                sdCheckboxesFrame.Enabled         = false;
                sdCheckboxesFrame.Visible         = false;
            }
            if (settingsManager.CurrentAppearanceSettings.AllowSDOnlyPrinting)
            {
                sdOnlyButton_checkbox.Visible = true;
                sdOnlyButton_text.Visible     = true;
            }
            else
            {
                sdOnlyButton_checkbox.Visible = false;
                sdOnlyButton_text.Visible     = false;
            }
        }
Example #4
0
        private bool LoadSettings()
        {
            PrinterObject selectedPrinter = SelectedPrinter;

            if (selectedPrinter != null && selectedPrinter.MyPrinterProfile != null)
            {
                settingsManager.LoadSettings();
                SettingsManager.PrintSettings printSettingsSafe = settingsManager.Settings.GetPrintSettingsSafe(selectedPrinter.MyPrinterProfile.ProfileName);
                var childElement1 = (ButtonWidget)FindChildElement(305);
                if (childElement1 != null)
                {
                    childElement1.Checked = printSettingsSafe.WaveBonding;
                }

                var childElement2 = (ButtonWidget)FindChildElement(309);
                if (childElement2 != null)
                {
                    childElement2.Checked = printSettingsSafe.VerifyBed;
                }

                var childElement3 = (ButtonWidget)FindChildElement(315);
                if (childElement3 != null)
                {
                    childElement3.Checked = printSettingsSafe.UseHeatedBed;
                }

                var childElement4 = (ButtonWidget)FindChildElement(317);
                if (childElement4 != null)
                {
                    childElement4.Checked = printSettingsSafe.AutoUntetheredSupport;
                }
            }
            return(true);
        }
Example #5
0
 public BacklashDetails(PrinterObject printer, float backlash_x, float backlash_y, float backlash_speed)
 {
     this.printer        = printer;
     this.backlash_x     = backlash_x;
     this.backlash_y     = backlash_y;
     this.backlash_speed = backlash_speed;
 }
Example #6
0
        private void OnApplyCalibrationOffset()
        {
            PrinterObject selectedPrinter = m_oSpoolerConnection.SelectedPrinter;

            if (selectedPrinter == null)
            {
                m_oMessagebox.AddMessageToQueue("You must connect a printer first.");
            }
            else
            {
                var num1 = 2f;
                var num2 = -1f;
                if (!float.TryParse(m_oebwCalibrationOffset_edit.Text, out var result))
                {
                    m_oMessagebox.AddMessageToQueue("Sorry, but the 'Calibration Offset' is not a number. Please try again.");
                }
                else if (num2 > (double)result || num1 < (double)result)
                {
                    m_oMessagebox.AddMessageToQueue(string.Format("Sorry. The 'Calibration Offset' must be between {0} and {1} mm.", num2, num1));
                }
                else
                {
                    var num3 = (int)selectedPrinter.AcquireLock(new M3D.Spooling.Client.AsyncCallback(SetCalibrationOffsetAfterLock), new AdvancedCalibrationTab.CalibrationDetails(selectedPrinter, result));
                }
            }
        }
Example #7
0
        /// <summary>
        /// Add for undo feature
        /// </summary>
        private void AddUndo()
        {
            MemoryStream stream = new MemoryStream();

            PrinterObject.Save(po, stream);
            this.AddUndo(stream);
        }
Example #8
0
        public override void MyButtonCallback(ButtonWidget button)
        {
            PrinterObject selectedPrinter = MainWindow.GetSelectedPrinter();

            if (selectedPrinter == null)
            {
                return;
            }

            switch (button.ID)
            {
            case 5:
                CurrentDetails.mode = Manage3DInkMainWindow.Mode.SetFilamentLocationAlreadyInserted;
                MainWindow.ActivateFrame(Manage3DInkMainWindow.PageID.Page11_CheatCodePage, CurrentDetails);
                break;

            case 6:
                CurrentDetails.pageAfterWait = Manage3DInkMainWindow.PageID.Page0_StartupPage;
                if (settingsManager != null)
                {
                    settingsManager.DisassociateFilamentFromPrinter(selectedPrinter.Info.serial_number);
                    settingsManager.SaveSettings();
                }
                var none = (int)selectedPrinter.SetFilamentToNone(new AsyncCallback(MainWindow.GotoPageAfterOperation), new Manage3DInkMainWindow.PageAfterLockDetails(selectedPrinter, Manage3DInkMainWindow.PageID.Page8_WaitingPage, CurrentDetails));
                break;

            case 9:
                MainWindow.ResetToStartup();
                break;
            }
        }
        public override void MyButtonCallback(ButtonWidget button)
        {
            PrinterObject selectedPrinter = MainWindow.GetSelectedPrinter();

            if (selectedPrinter == null)
            {
                return;
            }

            switch (button.ID)
            {
            case 5:
                CurrentDetails.pageAfterWait           = Manage3DInkMainWindow.PageID.Page0_StartupPage;
                CurrentDetails.mode                    = Manage3DInkMainWindow.Mode.SetDetails;
                FilamentWaitingPage.CurrentWaitingText = "Please wait. The printer is busy perfoming the requested actions.";
                if (settingsManager != null)
                {
                    settingsManager.DisassociateFilamentFromPrinter(selectedPrinter.Info.serial_number);
                    settingsManager.SaveSettings();
                }
                var none = (int)selectedPrinter.SetFilamentToNone(new AsyncCallback(MainWindow.GotoPageAfterOperation), new Manage3DInkMainWindow.PageAfterLockDetails(selectedPrinter, Manage3DInkMainWindow.PageID.Page8_WaitingPage, CurrentDetails));
                break;

            case 6:
                MainWindow.ActivateFrame(Manage3DInkMainWindow.PageID.Page2_RetractingFilament, CurrentDetails);
                break;

            case 9:
                MainWindow.ResetToStartup();
                break;
            }
        }
Example #10
0
        public override void MyButtonCallback(ButtonWidget button)
        {
            PrinterObject selectedPrinter = MainWindow.GetSelectedPrinter();

            if (selectedPrinter == null)
            {
                return;
            }

            switch (button.ID)
            {
            case 5:
                CurrentDetails.waitCondition           = new Mangage3DInkStageDetails.WaitCondition(WaitCondition);
                FilamentWaitingPage.CurrentWaitingText = "Please wait. Some 3D Ink is being pulled back so it won't drip.";
                MainWindow.ActivateFrame(Manage3DInkMainWindow.PageID.Page8_WaitingPage, CurrentDetails);
                AsyncCallback callback = CurrentDetails.current_spool.filament_location != FilamentSpool.Location.Internal ? new AsyncCallback(CleanNozzleAfterRetraction) : new AsyncCallback(CloseBedAfterRetraction);
                if (settingsManager != null)
                {
                    settingsManager.AssociateFilamentToPrinter(selectedPrinter.Info.serial_number, CurrentDetails.current_spool);
                    settingsManager.SaveSettings();
                }
                var num = (int)selectedPrinter.SetFilamentInfo(callback, selectedPrinter, CurrentDetails.current_spool);
                break;

            case 6:
                MainWindow.ActivateFrame(Manage3DInkMainWindow.PageID.Page4_InsertNewFilament, CurrentDetails);
                break;

            case 9:
                MainWindow.ResetToStartup();
                break;
            }
        }
Example #11
0
        private void ShowCurrentDetails()
        {
            PrinterObject selectedPrinter = MainWindow.GetSelectedPrinter();

            if (ShowError(selectedPrinter))
            {
                return;
            }

            selectedPrinter.MarkedAsBusy = false;
            FilamentSpool filamentSpool = selectedPrinter.GetCurrentFilament();

            if (filamentSpool != null)
            {
                filamentSpool = new FilamentSpool(filamentSpool);
            }

            if (filamentSpool == null)
            {
                text_title.Text = "3D Ink Currently in use:";
                text_main.Text  = selectedPrinter.isBusy || selectedPrinter.Info.Status == PrinterStatus.Connecting ? (selectedPrinter.Info.current_job == null ? "Unable to read information from the printer because it is working." : "Unable to read information from the printer because it is printing.") : "Looks like your printer doesn't have 3D Ink loaded.";
                DisableAllControls();
                text_main.Visible = true;
            }
            else
            {
                ShowCurrentFilament(selectedPrinter, filamentSpool);
            }
        }
Example #12
0
        public void MyButtonCallback(ButtonWidget button)
        {
            PrinterObject selectedPrinter = spooler_connection.SelectedPrinter;

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

            switch (button.ID)
            {
            case 1000:
                var num1 = (int)selectedPrinter.SendEmergencyStop(null, null);
                break;

            case 1014:
                FilamentSpool currentFilament = selectedPrinter.GetCurrentFilament();
                if (currentFilament == null)
                {
                    messagebox.AddMessageToQueue("Sorry, but you must insert filament first.");
                    break;
                }
                var num2 = FilamentConstants.Temperature.BedDefault(currentFilament.filament_type);
                selectedPrinter.SendCommandAutoLockRelease(new AsyncCallback(selectedPrinter.ShowLockError), selectedPrinter, PrinterCompatibleString.Format("M190 S{0}", (object)num2));
                break;

            case 1015:
                selectedPrinter.SendCommandAutoLockRelease(new AsyncCallback(selectedPrinter.ShowLockError), selectedPrinter, "M140 S0");
                break;
            }
        }
Example #13
0
 public void AddRecentPrintHistory(JobParams printerJob, PrinterObject printer, string slicerProfileName, List <Slicer.General.KeyValuePair <string, string> > complete_slicer_settings, List <PrintDetails.ObjectDetails> original_objectList)
 {
     RecentPrintsHistory.CreatePrintHistoryFolder(printerJob, printer, slicerProfileName, complete_slicer_settings, original_objectList, out PrintHistory cph);
     startedPrintList.Insert(0, cph);
     RefreshListChanged();
     SaveStartedPrints();
 }
Example #14
0
        /// <summary>
        /// Add a new data
        /// </summary>
        /// <param name="list">data list</param>
        /// <param name="po">printer object</param>
        /// <returns>added variable</returns>
        public static bool AddNewData(ListBox list, PrinterObject po)
        {
            string s = string.Empty;
            Data   d = new Data();

            FillVars(d.Controls["vars"] as ListBox, po);
            DialogResult dr = d.ShowDialog();

            if (dr == DialogResult.OK)
            {
                bool byVar = (d.Controls["rbVariable"] as RadioButton).Checked;
                if (byVar)
                {
                    po.UseVariable(d.Controls["vars"].Text);
                }
                else
                {
                    po.AddData(d.Controls["txtConst"].Text);
                }
                list.Items.Add(po.Datas.Last());
                list.Refresh();
                hasModified = true;
                return(true);
            }
            return(false);
        }
Example #15
0
        public override void OnActivate(Mangage3DInkStageDetails details)
        {
            base.OnActivate(details);
            PrinterObject selectedPrinter = MainWindow.GetSelectedPrinter();

            if (selectedPrinter == null)
            {
                return;
            }

            if (CurrentDetails.current_spool == null)
            {
                MainWindow.ResetToStartup();
            }
            else if (!selectedPrinter.Info.extruder.Z_Valid)
            {
                messagebox.AddMessageToQueue("Sorry. The extruder can't move to a safe position for heating because the Z location has not be calibrated.", PopupMessageBox.MessageBoxButtons.OK);
                MainWindow.ResetToStartup();
            }
            else
            {
                var colors = (FilamentConstants.ColorsEnum)Enum.ToObject(typeof(FilamentConstants.ColorsEnum), CurrentDetails.current_spool.filament_color_code);
                MainWindow.TurnOnHeater(new M3D.Spooling.Client.AsyncCallback(MainWindow.HeaterStartedSuccess), selectedPrinter, settingsManager.GetFilamentTemperature(CurrentDetails.current_spool.filament_type, colors), CurrentDetails.current_spool.filament_type);
            }
        }
Example #16
0
        public void ButtonCallback(ButtonWidget button)
        {
            if (m_bUpdating || button.ID > 10000)
            {
                return;
            }

            PrinterObject selectedPrinter = m_oSpoolerConnection.SelectedPrinter;

            if (selectedPrinter == null)
            {
                return;
            }

            if (button.ID == 10000)
            {
                AccessoriesProfile.NozzleProfile nozzleConstants = selectedPrinter.MyPrinterProfile.AccessoriesConstants.NozzleConstants;
                CustomNozzleSizeDialog.Show(Host, m_oMessagebox, new EventHandler <CustomNozzleSizeDialog.CustomNozzleSizeResult>(OnCustomNozzleSizeDialogClosed), nozzleConstants.iMinimumNozzleSizeMicrons, nozzleConstants.iMaximumNozzleSizeMicrons, selectedPrinter);
            }
            else
            {
                SelectAppropriateButton(button.ID);
                SetNozzleSize(selectedPrinter, button.ID);
            }
        }
Example #17
0
        public PrinterObject GetSelectedPrinter()
        {
            PrinterObject selectedPrinter = spooler_connection.SelectedPrinter;
            var           flag            = false;

            if (last_selected_printer != selectedPrinter)
            {
                if (last_selected_printer != null && last_selected_printer.LockStatus == PrinterLockStatus.WeOwnLocked)
                {
                    var num = (int)last_selected_printer.ReleaseLock(null, null);
                }
                last_selected_printer = selectedPrinter;
                flag = true;
            }
            if (selectedPrinter == null)
            {
                if (current_frame == null || current_frame.ID != 0)
                {
                    ActivateFrame(Manage3DInkMainWindow.PageID.Page0_StartupPage, new Mangage3DInkStageDetails(Manage3DInkMainWindow.Mode.None));
                }
            }
            else if (((!selectedPrinter.IsConnected() || selectedPrinter.PrinterState == PrinterObject.State.IsUpdatingFirmware ? 1 : (selectedPrinter.Info.InBootloaderMode ? 1 : 0)) | (flag ? 1 : 0)) != 0 && (current_frame == null || current_frame.ID != 8))
            {
                ActivateFrame(Manage3DInkMainWindow.PageID.Page8_WaitingPage, new Mangage3DInkStageDetails(Manage3DInkMainWindow.Mode.None, Manage3DInkMainWindow.PageID.Page0_StartupPage));
            }

            if (flag)
            {
                return(null);
            }

            return(selectedPrinter);
        }
Example #18
0
 private void CheckPrinterState(PrinterObject printer)
 {
     m_oframeNozzleSelect.Visible        = false;
     m_oframeIncompatiblePrinter.Visible = false;
     m_oframePrinterNotConnected.Visible = false;
     m_oframeUpdating.Visible            = false;
     if (printer == null || PrinterObject.State.IsNotHealthy == printer.PrinterState)
     {
         m_oframePrinterNotConnected.Visible = true;
     }
     else if (!printer.MyPrinterProfile.AccessoriesConstants.NozzleConstants.bHasInterchangeableNozzle)
     {
         m_oframeIncompatiblePrinter.Visible = true;
     }
     else if (printer.isBusy)
     {
         m_busy = true;
         m_oframeUpdating.Visible = true;
     }
     else
     {
         m_oframeNozzleSelect.Visible = true;
         SelectAppropriateButton(printer.Info.extruder.iNozzleSizeMicrons);
     }
 }
Example #19
0
        public void StartupPageButtonCallback(ButtonWidget button)
        {
            PrinterObject selectedPrinter = GetSelectedPrinter();

            if (selectedPrinter == null)
            {
                if (button.ID != 4)
                {
                    return;
                }

                Close();
            }
            else
            {
                if (button.ID != 4)
                {
                    return;
                }

                ActivateFrame(Manage3DInkMainWindow.PageID.Page0_StartupPage, new Mangage3DInkStageDetails(Manage3DInkMainWindow.Mode.None));
                selectedPrinter.MarkedAsBusy = false;
                Close();
            }
        }
Example #20
0
        private void PrinterMessageCallback(SpoolerMessage message)
        {
            if (current_frame == null || message.Type != MessageType.PrinterTimeout && message.Type != MessageType.BedLocationMustBeCalibrated && (message.Type != MessageType.BedOrientationMustBeCalibrated && message.Type != MessageType.CheckGantryClips) && message.Type != MessageType.PrinterError)
            {
                return;
            }

            switch ((Manage3DInkMainWindow.PageID)current_frame.ID)
            {
            case Manage3DInkMainWindow.PageID.Page0_StartupPage:
            case Manage3DInkMainWindow.PageID.Page1_HeatingNozzle:
            case Manage3DInkMainWindow.PageID.Page2_RetractingFilament:
            case Manage3DInkMainWindow.PageID.Page3_HasRetractedFilament:
            case Manage3DInkMainWindow.PageID.Page4_InsertNewFilament:
            case Manage3DInkMainWindow.PageID.Page5_HasFilamentExited:
                PrinterObject selectedPrinter = GetSelectedPrinter();
                if (selectedPrinter == null || !(selectedPrinter.Info.serial_number == message.SerialNumber))
                {
                    break;
                }

                ResetToStartup();
                break;
            }
        }
Example #21
0
 /// <summary>
 /// Save to file
 /// </summary>
 /// <param name="path">path</param>
 /// <param name="fileName">file name</param>
 /// <param name="po">printer object</param>
 /// <returns>true if saved</returns>
 public static bool Save(ref string path, ref string fileName, PrinterObject po)
 {
     if (alreadyOpen)
     {
         PrinterObject.Save(po, Path.Combine(path, fileName));
         hasModified = false;
         return(true);
     }
     else
     {
         SaveFileDialog sfd = new SaveFileDialog();
         sfd.AddExtension     = false;
         sfd.Filter           = "Printer (*.prt)|*.prt";
         sfd.DefaultExt       = "prt";
         sfd.InitialDirectory = path;
         sfd.FileName         = fileName;
         DialogResult dr = sfd.ShowDialog();
         if (dr == DialogResult.OK)
         {
             path     = Path.GetDirectoryName(sfd.FileName);
             fileName = Path.GetFileName(sfd.FileName);
             PrinterObject.Save(po, Path.Combine(path, fileName));
             alreadyOpen = true;
             hasModified = false;
             return(true);
         }
     }
     return(false);
 }
Example #22
0
 /// <summary>
 /// Fill all data in list box
 /// </summary>
 /// <param name="list">data list</param>
 /// <param name="po">printer object</param>
 public static void FillData(ListBox list, PrinterObject po)
 {
     foreach (string s in po.Datas)
     {
         if (s.StartsWith("[") && s.EndsWith("]"))
         {
             list.Items.Add(s);
         }
         else
         {
             if (s.Length > 10)
             {
                 list.Items.Add(s.Substring(0, 10) + " ...");
             }
             else
             {
                 list.Items.Add(s);
             }
         }
     }
     if (po.Datas.Count() > 0)
     {
         list.SetSelected(0, true);
     }
 }
Example #23
0
        public static void CreatePrintHistoryFolder(JobParams printerJob, PrinterObject printer, string slicerProfileName, List <Slicer.General.KeyValuePair <string, string> > complete_slicer_settings, List <PrintDetails.ObjectDetails> original_objectList, out RecentPrintsHistory.PrintHistory cph)
        {
            cph = new RecentPrintsHistory.PrintHistory(printerJob.jobname, printerJob.jobGuid, DateTime.Now);
            cph.iconfilename = Path.Combine(cph.folder, "previewimage.jpg");
            var printerViewFile     = Path.Combine(cph.folder, "printerview.xml");
            var printerSettingsFile = Path.Combine(cph.folder, "printersettings.xml");

            try
            {
                Directory.CreateDirectory(cph.folder);
                var objectList = new List <PrintDetails.ObjectDetails>();
                foreach (PrintDetails.ObjectDetails originalObject in original_objectList)
                {
                    var filename      = originalObject.filename;
                    var objectDetails = new PrintDetails.ObjectDetails(originalObject)
                    {
                        printerSettingsXMLFile = "printersettings.xml",
                        printerViewXMLFile     = "printerview.xml",
                        zipFileName            = "",
                        filename = Path.GetFileName(filename)
                    };
                    objectList.Add(objectDetails);
                    File.Copy(filename, Path.Combine(cph.folder, objectDetails.filename), true);
                }
                File.Copy(printerJob.preview_image_file_name, cph.iconfilename, true);
                SettingsManager.SavePrintingObjectsDetails(printerViewFile, objectList);
                SettingsManager.SavePrintJobInfo(printerSettingsFile, printerJob, printer, slicerProfileName, complete_slicer_settings);
                FileUtils.GrantAccess(cph.folder);
            }
            catch (Exception ex)
            {
            }
        }
Example #24
0
 /// <summary>
 /// Insert a new data after a given position
 /// </summary>
 /// <param name="list">data list</param>
 /// <param name="po">printer object</param>
 /// <returns>added variable</returns>
 public static bool InsertAfter(ListBox list, PrinterObject po)
 {
     if (list.SelectedIndices.Count == 1)
     {
         int  pos = list.SelectedIndices[0];
         Data d   = new Data();
         FillVars(d.Controls["vars"] as ListBox, po);
         DialogResult dr = d.ShowDialog();
         if (dr == DialogResult.OK)
         {
             bool byVar = (d.Controls["rbVariable"] as RadioButton).Checked;
             if (byVar)
             {
                 po.InsertUseVariableAfter(pos, d.Controls["vars"].Text);
             }
             else
             {
                 po.InsertDataAfter(pos, d.Controls["txtConst"].Text);
             }
             if (pos + 1 < list.Items.Count)
             {
                 list.Items.Insert(pos + 1, po.Datas.ElementAt(pos + 1));
             }
             else
             {
                 list.Items.Add(po.Datas.ElementAt(pos + 1));
             }
             list.Refresh();
             hasModified = true;
             return(true);
         }
     }
     return(false);
 }
Example #25
0
        /// <summary>
        /// Copy variables
        /// </summary>
        /// <param name="list">variable list</param>
        /// <param name="po">printer object</param>
        /// <returns>if at least one item removed</returns>
        public static bool CopyVariables(ListBox list, PrinterObject po)
        {
            bool atLeastOne = false;

            for (int index = 0; index < list.SelectedIndices.Count; ++index)
            {
                PrinterVariable pv     = list.SelectedItems[index] as PrinterVariable;
                PrinterVariable copied = new PrinterVariable();
                copied.Name  = "Copy of " + pv.Name;
                copied.Value = pv.Value;
                if (po.ExistTestVariable(copied.Name))
                {
                    po.EditVariable(copied.Name, copied.Value);
                    for (int counter = 0; counter < list.Items.Count; ++counter)
                    {
                        if ((list.Items[counter] as PrinterVariable).Name == copied.Name)
                        {
                            list.Items.RemoveAt(counter);
                            list.Items.Insert(counter, copied);
                            break;
                        }
                    }
                }
                else
                {
                    po.AddVariable(copied.Name, copied.Value);
                    list.Items.Add(copied);
                }
                hasModified = true;
                atLeastOne  = true;
            }
            list.Refresh();
            return(atLeastOne);
        }
Example #26
0
        private void SetFilamentAndStartNextProcess()
        {
            PrinterObject selectedPrinter = MainWindow.GetSelectedPrinter();

            if (CurrentDetails.mode == Manage3DInkMainWindow.Mode.SetFilamentLocationInsertingNew)
            {
                MainWindow.ActivateFrame(Manage3DInkMainWindow.PageID.Page12_RaisingExtruder, CurrentDetails);
            }
            else if (CurrentDetails.mode == Manage3DInkMainWindow.Mode.SetFilamentLocationAlreadyInserted)
            {
                CurrentDetails.mode          = Manage3DInkMainWindow.Mode.SetDetails;
                CurrentDetails.pageAfterWait = Manage3DInkMainWindow.PageID.Page0_StartupPage;
                MainWindow.ActivateFrame(Manage3DInkMainWindow.PageID.Page8_WaitingPage, CurrentDetails);
                if (settingsManager != null)
                {
                    settingsManager.AssociateFilamentToPrinter(selectedPrinter.Info.serial_number, CurrentDetails.current_spool);
                    settingsManager.SaveSettings();
                }
                var num = (int)selectedPrinter.SetFilamentInfo(new M3D.Spooling.Client.AsyncCallback(selectedPrinter.ShowLockError), selectedPrinter, CurrentDetails.current_spool);
            }
            else
            {
                selectedPrinter.MarkedAsBusy = false;
                MainWindow.ActivateFrame(Manage3DInkMainWindow.PageID.Page0_StartupPage, new Mangage3DInkStageDetails(Manage3DInkMainWindow.Mode.None));
            }
        }
Example #27
0
        public override void MyButtonCallback(ButtonWidget button)
        {
            PrinterObject selectedPrinter = MainWindow.GetSelectedPrinter();

            if (selectedPrinter == null)
            {
                return;
            }

            selectedPrinter.MarkedAsBusy = true;
            switch (button.ID)
            {
            case 9:
                MainWindow.ResetToStartup();
                break;

            case 11:
            case 12:
                if (button.ID == 11)
                {
                    CurrentDetails.current_spool.filament_location = FilamentSpool.Location.Internal;
                }
                else
                {
                    CurrentDetails.current_spool.filament_location = FilamentSpool.Location.External;
                }

                SetFilamentAndStartNextProcess();
                break;

            default:
                throw new NotImplementedException();
            }
        }
Example #28
0
        public override void OnUpdate()
        {
            base.OnUpdate();
            PrinterObject selectedPrinter = spooler_connection.SelectedPrinter;

            if (selectedPrinter == null || !selectedPrinter.IsConnected())
            {
                if (heater_text == null)
                {
                    return;
                }

                heater_text.Text = "OFF";
            }
            else if (selectedPrinter.Info.extruder.Temperature == -1.0)
            {
                heater_text.Text = "ON";
            }
            else if (selectedPrinter.Info.extruder.Temperature < 1.0)
            {
                heater_text.Text = "OFF";
            }
            else
            {
                heater_text.Text = selectedPrinter.Info.extruder.Temperature.ToString();
            }
        }
Example #29
0
        /// <summary>
        /// Constructor from a printer object
        /// </summary>
        /// <param name="tn">type name of this accu</param>
        /// <param name="fi">file name to load</param>
        public Accu(string tn, string fi)
        {
            this.typeName = tn;
            this.fileName = fi;
            PrinterObject po = PrinterObject.Load(Path.Combine(Printer.PrinterObject.PrinterDirectory, "languages", fi));

            this.Cast(po);
        }
Example #30
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);
 }
        // Get printers
        /// <summary>
        /// Gets a list of printers
        /// </summary>
        /// <returns>A list of PrinterObjects</returns>
        public List<PrinterObject> GetPrinters()
        {
            List<PrinterObject> Printers = new List<PrinterObject>();
            ManagementObjectSearcher Query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
            ManagementObjectCollection Collection = Query.Get();
            foreach (ManagementObject MO in Collection)
            {
                PrinterObject Printer = new PrinterObject();

                Try(() =>
                    Printer.name = MO["Name"].ToString());
                Try(() =>
                    Printer.identifier = MO["Name"].ToString());
                Try(() =>
                    Printer.model.detection_string = MO["DriverName"].ToString());
                Try(() =>
                    Printer.location.name = MO["Location"].ToString());
                Try(() =>
                    Printer.local = MO["Local"].ToString());
                try
                {
                    UInt16[] Capabilities = (UInt16[]) MO["Capabilities"];

                    foreach (UInt16 Capability in Capabilities)
                    {
                        PrinterCapabilitiesObject PrinterCapability = new PrinterCapabilitiesObject();
                        PrinterCapability.detection_string = Capability.ToString();
                        Printer.capabilities.Add(PrinterCapability);
                    }
                }
                catch { }

                Printers.Add(Printer);
            }
            return Printers;
        }