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(); }
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; }
/// <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; } }
private void CarregaPreview_ArquivoCNC() { String cncContent = File.ReadAllText(Edgecam.ConvertAscII_ToString(mJob.CaminhoArqCnc)); rtxtCnc.Text = cncContent; }
private void CarregaPreview_ArquivoCAM() { //PreviewHandler pre = new PreviewHandler(); skaPreviewHandler1.Open(Edgecam.ConvertAscII_ToString(mJob.CaminhoArqPpf)); }
/// <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); }