Esempio n. 1
0
        private void AbrePecaEdgecam()
        {
            //Ao abrir a peça, preciso atualizar o status da ordem de produção no banco de dados.
            Objects.CnnBancoEcMgr.ExecutaSql(Consultas_EcMgr.ATUALIZA_ORDEM_USUARIO_TRABALHANDO,
                                             new Dictionary <string, object> {
                { "@USER", Objects.UsuarioAtual.Login },
                { "@ID", mOpId }
            });

            Edgecam ec = new Edgecam(true);

            //Obtém um nome e caminho temporário
            String tmpDir = String.Format("{0}.js", Path.GetTempFileName());

            if (!String.IsNullOrEmpty(Path.Combine(System.Reflection.Assembly.GetExecutingAssembly().Location, "AbrePeca.js")))
            {
                //Le o conteúdo do arquivo JS
                String conteudo = File.ReadAllText("AbrePeca.js");

                File.WriteAllText(tmpDir, conteudo.Replace("@CAMINHOPECA@", mDirPeca.Replace("\\", "\\\\")));
            }

            //Abre o edgecam e espera ele fechar (Exited).
            ec.AbrirEdgecam(true, tmpDir);

            if (File.Exists(tmpDir))
            {
                File.Delete(tmpDir);
            }

            this.Close();
        }
Esempio n. 2
0
        private void CarregaTrabalho()
        {
            txtId.Text          = mJob.IdJob.ToString();
            txtNome.Text        = mJob.Descricao;
            txtFamilia.Text     = mJob.Familia;
            txtSequencia.Text   = mJob.Sequencia;
            txtPrg1.Text        = mJob.ProgramId1;
            txtPrg2.Text        = mJob.ProgramId2;
            rtxtComentario.Text = mJob.Comentario;
            txtCliente.Text     = mJob.Cliente;
            txtProgramador.Text = mJob.Usuario;
            txtMaterial.Text    = mJob.Material;
            txtTempo.Text       = mJob.TempoDeCiclo;
            txtRev.Text         = mJob.RevisaoJob;
            txtMqn.Text         = mJob.PostoTrabalho;

            txtCAD.Text = Edgecam.ConvertAscII_ToString(mJob.CaminhoArqCad);
            txtCNC.Text = Edgecam.ConvertAscII_ToString(mJob.CaminhoArqCnc);
            txtCAM.Text = Edgecam.ConvertAscII_ToString(mJob.CaminhoArqPpf);

            txtGeral_Title.Text = mJob.JobNotesSubject;
            rtbGeral_Desc.Text  = mJob.JobNotes;
            txtGeral_Arq.Text   = mJob.JobNotesFile;
        }
Esempio n. 3
0
        /// <summary>
        ///     Abre a peça no Edgecam.
        /// </summary>
        private void AbreOrdemEdgecam()
        {
            Edgecam ec = new Edgecam(true);

            //TODO: COLOCAR A VERSÃO DO EDGECAM FIXA AQUI
            ec.LstUltimosArquivosAbertos("2018.20");

            FrmWaiting frm = null;

            //Monitora o tempo que o usuário está gastando para programar a peça.
            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();

            try
            {
                Cursor = Cursors.WaitCursor;
                String dirPeca = "";

                if (udgv.Rows.Count > 0)
                {
                    //Obtém a linha selecionada pelo usuário.
                    var q = udgv.Selected.Rows.Count == 0 ? udgv.Rows[0] : udgv.Selected.Rows[0];

                    /*
                     *  OK 1- Se esta ordem está aberta já
                     *  OK 2- Se está ordem já foi concluída a sua programação (Está sob revisão)
                     *  3- Se está ordem que está determinada como "iniciado" gerou PPF ou não.
                     *      3.1 - Se gerou PPF, abrir o mesmo, caso contrário, abrir o CAD
                     *  4- Se está ordem gerou PPF, verificar se é o mesmo centro de trabalho
                     *      4.1 - Caso não for o mesmo CT, informar o usuário e trocar na ordem
                     */

                    //O usuário só poderá abrir ordens de produção com o estado 1 e 2 (não iniciado e iniciado).
                    if (Convert.ToInt16(q.Cells["Estado_Db"].OriginalValue.ToString()) > 2)
                    {
                        MessageBox.Show("Você só pode abrir ordens de produção não iniciadas e iniciadas", "Estado inválido", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                    //Se a ordem estiver aberta, dentro do método abaixo apresenta uma mensagem para o usuário.
                    else if (!IsOrdemAberta(q.Cells["id"].OriginalValue.ToString()))
                    {
                        //Se a ordem já estiver aberta com o mesmo usuário (ou por algum movito ficou presa), permito abrir a mesma.
                        if (IsOrdemAbertaMesmoUsuario(q.Cells["id"].OriginalValue.ToString()))
                        {
                            //Aqui contém o caminho do PPF.
                            DataTable dtPpf = Objects.CnnBancoEcMgr.ExecutaSql(Consultas_Ec.BUSCA_ARQUIVO_PPF_ORDEM, new Dictionary <string, object>()
                            {
                                { "@JOB", q.Cells["Trabalho"].OriginalValue.ToString() }
                            });

                            if (dtPpf.Rows.Count > 0)
                            {
                                dirPeca = String.IsNullOrEmpty(dtPpf.Rows[0]["JOB_CAM_FILE"].ToString()) == true ? dtPpf.Rows[0]["JOB_CAD_FILE"].ToString() : dtPpf.Rows[0]["JOB_CAM_FILE"].ToString();

                                //Só inicia o tempo aqui, pois irei iniciar a abertura da peça.
                                sw.Start();

                                //String dirPeca = Path.Combine(q.Cells["CaminhoPeca"].OriginalValue.ToString(), q.Cells["Peça"].OriginalValue.ToString());

                                //Congela a interface para o usuário, ou seja, ele vai ter que ficar aguardando.
                                frm = new FrmWaiting(dirPeca, q.Cells["id"].OriginalValue.ToString());
                                frm.ShowDialog();

                                sw.Stop();

                                DataTable dt = Objects.CnnBancoEcMgr.ExecutaSql(Consultas_EcMgr.CONSULTA_TEMPO_GASTO_ORDEM, new Dictionary <string, object>()
                                {
                                    { "@ID", q.Cells["id"].OriginalValue.ToString() }
                                });
                                Double tempoJaGasto = 0.0;

                                if (dt.Rows.Count > 0)
                                {
                                    tempoJaGasto = Convert.ToDouble(dt.Rows[0][0].ToString());
                                }

                                tempoJaGasto += sw.Elapsed.Seconds;

                                Objects.CnnBancoEcMgr.ExecutaSql(Consultas_EcMgr.ATUALIZA_ORDEM_USUARIO_NAO_ESTA_TRABALHANDO,
                                                                 new Dictionary <string, object>()
                                {
                                    { "@ID", q.Cells["id"].OriginalValue.ToString() },
                                    { "@TMP", tempoJaGasto }
                                });

                                frm.Close();
                            }
                        }
                        else
                        {
                            return;
                        }
                    }
                    return;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                frm.Close();
                GC.Collect();

                Cursor = Cursors.Arrow;
            }
        }
Esempio n. 4
0
        private void CarregaPreview_ArquivoCNC()
        {
            String cncContent = File.ReadAllText(Edgecam.ConvertAscII_ToString(mJob.CaminhoArqCnc));

            rtxtCnc.Text = cncContent;
        }
Esempio n. 5
0
 private void CarregaPreview_ArquivoCAM()
 {
     //PreviewHandler pre = new PreviewHandler();
     skaPreviewHandler1.Open(Edgecam.ConvertAscII_ToString(mJob.CaminhoArqPpf));
 }
Esempio n. 6
0
        /// <summary>
        ///     Método que inicializa os valores default da classe/interface.
        /// </summary>
        private void InicializaValoresDefault()
        {
            Cursor = Cursors.WaitCursor;

            //  Se o objeto for diferente de null, significa que o usuário
            //está editando ou visualizando um trabalho.
            if (mJob != null)
            {
                CarregaTrabalho();
                ConsultaHistoricoTrabalho();
                ConsultaInstrucoes_Job();
                ConsultaFerramentas_Job();
                ConsultaImagens_Job();

                mJob.CaminhoArqPpf = @"C:\Program Files\Vero Software\EDGECAM 2020.0\cam\Examples\Machined Parts\2.5D Milling Support Bracket.ppf";

                if (File.Exists(Edgecam.ConvertAscII_ToString(mJob.CaminhoArqCad)))
                {
                    CarregaPreview_ArquivoCAD();
                }
                else
                {
                    ultraTabControl1.Tabs[5].Visible = false;
                }


                if (File.Exists(Edgecam.ConvertAscII_ToString(mJob.CaminhoArqPpf)))
                {
                    CarregaPreview_ArquivoCAM();
                }
                else
                {
                    ultraTabControl1.Tabs[6].Visible = false;
                }

                if (File.Exists(Edgecam.ConvertAscII_ToString(mJob.CaminhoArqCnc)))
                {
                    CarregaPreview_ArquivoCNC();
                }
                else
                {
                    ultraTabControl1.Tabs[7].Visible = false;
                }
            }
            //  Significa que o usuário está criando um novo trabalho,
            //então eu escondo essas abas (que contém dados de trabalho
            //existente).
            else
            {
                ultraTabControl1.Tabs[2].Visible = false;
                ultraTabControl1.Tabs[3].Visible = false;
                ultraTabControl1.Tabs[4].Visible = false;
                ultraTabControl1.Tabs[5].Visible = false;
                ultraTabControl1.Tabs[6].Visible = false;
                ultraTabControl1.Tabs[7].Visible = false;
                ultraTabControl1.Tabs[8].Visible = false;
            }

            UltraGridOptions uop1 = new UltraGridOptions(udgv_Tools, true, Imagens_NewLookInterface.escolher_editar_coluna_16,
                                                         Imagens_NewLookInterface.ordenar_crescente_16,
                                                         Imagens_NewLookInterface.ordenar_decrescente_16,
                                                         Imagens_NewLookInterface.remover_deletar,
                                                         Imagens_NewLookInterface.agrupamento_16);
        }