示例#1
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (cbInterface.SelectedIndex == 0)
            {
                PrintDialog pd = new PrintDialog();
                if (pd.ShowDialog() == DialogResult.OK)
                {
                    Program.Config["PlotterName"] = pd.PrinterSettings.PrinterName;
                }
            }
            else if (cbInterface.SelectedIndex == 1)
            {
                FrmCadSerial serial = new FrmCadSerial();
                serial.ShowDialog();
            }
            else
            {
            }

            if (!string.IsNullOrEmpty(Program.Config["PlotterName"]))
            {
                lbPlotterName.Text = Program.Config["PlotterName"];
            }
        }
示例#2
0
        private void button4_Click(object sender, EventArgs e)
        {
            pnlprincipal.Enabled = false;
            loadpanel("Enviando para Corte, Aguarde...");

            try
            {
                bool invertXY = true;
                bool flip     = false;

                try { invertXY = bool.Parse(Program.Config["RotateCut"]); } catch { }
                try { flip = bool.Parse(Program.Config["FlipX"]); } catch { }

                if (vvModelo.Document == null)
                {
                    MessageBox.Show("Nenhum desenho selecionado.", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (vvModelo.Document.Paths.Count <= 0)
                {
                    MessageBox.Show("Nenhum desenho selecionado.", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (!(Program.Config["PlotterInterface"].Equals("SERIAL") || Program.Config["PlotterInterface"].Equals("PRINTER")))
                {
                    if (MessageBox.Show("Plotter não configurada. Deseja configurar agora?", "ATENÇÃO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        FrmConfigPlotter c = new GlassFilm.FrmConfigPlotter();
                        c.ShowDialog();
                    }
                    else
                    {
                        MessageBox.Show("É necessário configurar a plotter antes de continuar", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }

                if (vvCorte.Document != null)
                {
                    if (vvCorte.Document.Paths.Count == 0)
                    {
                        MessageBox.Show("Nenhum desenho na área de corte.", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    string cmds = null;

                    try
                    {
                        cmds = vvCorte.Document.GeneratePlotterCommands(GetPlotterCmdDriver(), invertXY, flip);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    if (Program.Config["PlotterInterface"].Equals("PRINTER"))
                    {
                        PrinterSettings ps = null;

                        foreach (string p in PrinterSettings.InstalledPrinters)
                        {
                            if (p.Equals(Program.Config["PlotterName"]))
                            {
                                ps             = new PrinterSettings();
                                ps.PrinterName = p;
                                break;
                            }
                        }

                        if (ps == null)
                        {
                            PrintDialog pd = new PrintDialog();
                            if (pd.ShowDialog() == DialogResult.OK)
                            {
                                ps = pd.PrinterSettings;
                                Program.Config["PlotterName"] = ps.PrinterName;
                            }
                        }

                        if (ps != null)
                        {
                            if (ps.IsValid)
                            {
                                RawPrinterHelper.SendStringToPrinter(ps.PrinterName, cmds);
                            }
                            else
                            {
                                PrintDialog pd = new PrintDialog();
                                if (pd.ShowDialog() == DialogResult.OK)
                                {
                                    ps = pd.PrinterSettings;
                                    Program.Config["PlotterName"] = ps.PrinterName;

                                    RawPrinterHelper.SendStringToPrinter(ps.PrinterName, cmds);
                                }
                            }
                            loadpanelRecortar();

                            DBManager.GravaLogCorte(vvCorte.Document);
                        }
                        else
                        {
                            MessageBox.Show("Plotter inválda ou não especificada nos parâmetros", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                            return;
                        }
                    }
                    else if (Program.Config["PlotterInterface"].Equals("SERIAL"))
                    {
                        try
                        {
                            SerialPort port = FrmCadSerial.GetSerialPort();

                            if (port != null)
                            {
                                port.Open();
                                port.Write(cmds);
                                port.Close();
                                loadpanelRecortar();
                                DBManager.GravaLogCorte(vvCorte.Document);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Falha ao enviar comandos para a Plotter\n" + ex.Message, "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Plotter inválda ou não especificada nos parâmetros", "ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    }

                    if (Debugger.IsAttached || File.Exists("teste_corte.plt"))
                    {
                        File.Delete("teste_corte.plt");
                        File.WriteAllText("teste_corte.plt", cmds);
                    }
                }
            }
            catch
            {
            }
            finally
            {
                pnlprincipal.Enabled  = true;
                pnlCalculando.Visible = false;
            }
        }