using AuroraLaser.Trupulse.DataTables; using CoreUnit.Common; using CoreUnit.Control.UserControl.Canvas; using CoreUnit.Scanner.UserControl.ScannerCanvas; using GUI.Dialog.Extender; using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Reflection; using System.Windows.Forms; using System.Xml; namespace CoreUnit.Scanner.UserControl.Canvas.Dialog { public partial class WeldingParamDlg : FormBase { private readonly HintProvider _hintProvider = new HintProvider(); private readonly WaveFormTable waveFormTable = new WaveFormTable(); public WeldingParamDlg(int scannergParamNo, bool editMode = true) { InitializeComponent(); LoadDataTables(); InitializeHint(); if (scannergParamNo <= 0) { m_selectedIndex = 1; } else { m_selectedIndex = scannergParamNo; } m_scannerParams.Clear(); foreach (ScannerParam originalParam in ScannerCanvasUserCtrl.ScannerParams) { ScannerParam copyParam = originalParam.Clone(); m_scannerParams.Add(copyParam); } cbWobbelShape.Items.Clear(); cbWobbelShape.DataSource = Enum.GetValues(typeof(ScannerParam.eWobbelShape)); cbLaserProgramNo.Items.Clear(); cbLaserProgramNo.DataSource = Enum.GetValues(typeof(ScannerParam.eProgramNo)); ScannerParamToDialog(m_selectedIndex); InitializeDialog(m_selectedIndex, editMode); } private void LoadDataTables() { try { var filePath = Path.Combine(ConfigurationManager.AppSettings.Get("DATA_PATH"), "External", "Tables", "waveFormTable.csv"); waveFormTable.LoadFromFile(filePath); } catch (Exception ex) { return; } } private void InitializeHint() { // 생성자에서 옵션 한번에 _hintProvider.Title = "RMS Param "; _hintProvider.Icon = ToolTipIcon.Info; _hintProvider.MaxWidth = 360; _hintProvider.ShowAlways = true; _hintProvider.AutoPopDelay = 6000; _hintProvider.InitialDelay = 200; _hintProvider.ReshowDelay = 100; // 각 TextBox에 힌트 주입 _hintProvider.SetHint(label15/*tbDrawSpeed*/, "용접레이저 가공 속도"); _hintProvider.SetHint(label14/*tbJumpSpeed*/, "용접레이저 이동 속도"); _hintProvider.SetHint(label57/*tbLaserPower1*/, "용접 레이저 메인 출력 Core"); _hintProvider.SetHint(label22/*tbLaserPower2*/, "용접 레이저 메인 출력 Ring"); _hintProvider.SetHint(label46/*nudRampingStartPower*/, "용접 레이저 램핑 출력(Start)"); _hintProvider.SetHint(label45/*nudRampingStartDist*/, "용접 레이저 램핑 길이(Start)"); _hintProvider.SetHint(label36/*nudRampingEndPower*/, "용접 레이저 램핑 출력(End)"); _hintProvider.SetHint(label34/*nudRampingEndDist*/, "용접 레이저 램핑 길이(End)"); } private void InitializeDialog(int selectedIndex, bool editMode) { btnPasteParam.Enabled = false; //Welding Parameter 콤보 박스 초기화 cbParamExt.Enabled = false; cbParamExt.Items.Clear(); //Paramter 17~128개 for (int i = 17; i <= 128; i++) { cbParamExt.Items.Add(i); } if (editMode) { gbLaser.Enabled = true; gbRamping.Enabled = true; gbScanner.Enabled = true; gbWobbel.Enabled = true; btnCopyParam.Enabled = true; btnImport.Enabled = true; btnImportAll.Enabled = true; btnExport.Enabled = true; btnExportAll.Enabled = true; btnOk.Enabled = true; btnCancel.Enabled = true; } else { gbLaser.Enabled = false; gbRamping.Enabled = false; gbScanner.Enabled = false; gbWobbel.Enabled = false; btnCopyParam.Enabled = false; btnImport.Enabled = false; btnImportAll.Enabled = false; btnExport.Enabled = false; btnExportAll.Enabled = false; btnOk.Enabled = false; btnCancel.Enabled = true; } //Welding Paramter 색 지정 //rbParam1.ForeColor = Color.FromName(((WeldingParameterIDEditor.eWeldingColor)1).ToString()); //rbParam2.ForeColor = Color.FromName(((WeldingParameterIDEditor.eWeldingColor)2).ToString()); //rbParam3.ForeColor = Color.FromName(((WeldingParameterIDEditor.eWeldingColor)3).ToString()); foreach (System.Windows.Forms.Control rb in this.gbParameterSet.Controls) { if (rb is RadioButton) { string sIndex = rb.Name.Substring(7); int index = 0; if (int.TryParse(sIndex, out index)) { rb.ForeColor = WeldingParameterIDEditor.weldingColorList[index - 1]; } } } switch (selectedIndex) { case 1: rbParam1.Checked = true; break; case 2: rbParam2.Checked = true; break; case 3: rbParam3.Checked = true; break; case 4: rbParam4.Checked = true; break; case 5: rbParam5.Checked = true; break; case 6: rbParam6.Checked = true; break; case 7: rbParam7.Checked = true; break; case 8: rbParam8.Checked = true; break; case 9: rbParam9.Checked = true; break; case 10: rbParam10.Checked = true; break; case 11: rbParam11.Checked = true; break; case 12: rbParam12.Checked = true; break; case 13: rbParam13.Checked = true; break; case 14: rbParam14.Checked = true; break; case 15: rbParam15.Checked = true; break; case 16: rbParam16.Checked = true; break; default: rbParamExt.Checked = true; cbParamExt.Select(selectedIndex - 16, 1); break; } } List m_scannerParams = new List(); ScannerParam m_copyParam = new ScannerParam(); int m_selectedIndex = 0; private void ScannerParamToDialog(int selectedScannerParamID) { ScannerParam selectedParam = m_scannerParams[selectedScannerParamID - 1]; tbDrawSpeed.Text = selectedParam.MarkSpeed.ToString("F3"); tbJumpSpeed.Text = selectedParam.JumpSpeed.ToString("F3"); tbLaserOnDelay.Text = selectedParam.LaserOnDelay.ToString(); tbLaserOffDelay.Text = selectedParam.LaserOffDelay.ToString(); tbJumpDelay.Text = selectedParam.JumpDelay.ToString(); tbMarkDelay.Text = selectedParam.MarkDelay.ToString(); tbPolygonDelay.Text = selectedParam.PolygonDelay.ToString(); tbNumberOfCount.Text = selectedParam.NumberOfCount.ToString(); tbLaserPower1.Text = selectedParam.LaserPower1.ToString(); tbLaserPower2.Text = selectedParam.LaserPower2.ToString(); tbLaserFrequency.Text = selectedParam.LaserFrequency.ToString("F3"); tbLaserPulseDuration.Text = selectedParam.LaserPulseDuration.ToString("F3"); ckbWobbelEnabled.Checked = selectedParam.WobbelEnable; tbWobbelTransversal.Text = selectedParam.WobbelTransversal.ToString("F3"); tbWobbelLongitudinal.Text = selectedParam.WobbelLongditudinal.ToString("F3"); tbWobbelFrequency.Text = selectedParam.WobbelFrequency.ToString("F3"); if (nudRampingStartPower.Maximum < Convert.ToDecimal(selectedParam.RampingStartPower)) nudRampingStartPower.Value = nudRampingStartPower.Maximum; else if (nudRampingStartPower.Minimum > Convert.ToDecimal(selectedParam.RampingStartPower)) nudRampingStartPower.Value = nudRampingStartPower.Minimum; else nudRampingStartPower.Value = Convert.ToDecimal(selectedParam.RampingStartPower); if (nudRampingStartDist.Maximum < Convert.ToDecimal(selectedParam.RampingStartDist)) nudRampingStartDist.Value = nudRampingStartDist.Maximum; else if (nudRampingStartDist.Minimum > Convert.ToDecimal(selectedParam.RampingStartDist)) nudRampingStartDist.Value = nudRampingStartDist.Minimum; else nudRampingStartDist.Value = Convert.ToDecimal(selectedParam.RampingStartDist); if (nudRampingEndPower.Maximum < Convert.ToDecimal(selectedParam.RampingEndPower)) nudRampingEndPower.Value = nudRampingEndPower.Maximum; else if (nudRampingEndPower.Minimum > Convert.ToDecimal(selectedParam.RampingEndPower)) nudRampingEndPower.Value = nudRampingEndPower.Minimum; else nudRampingEndPower.Value = Convert.ToDecimal(selectedParam.RampingEndPower); if (nudRampingEndDist.Maximum < Convert.ToDecimal(selectedParam.RampingEndDist)) nudRampingEndDist.Value = nudRampingEndDist.Maximum; else if (nudRampingEndDist.Minimum > Convert.ToDecimal(selectedParam.RampingEndDist)) nudRampingEndDist.Value = nudRampingEndDist.Minimum; else nudRampingEndDist.Value = Convert.ToDecimal(selectedParam.RampingEndDist); tbSpotShotTime.Text = selectedParam.SpotShotTime.ToString("F3"); if (nudArcRampingInterval.Maximum < Convert.ToDecimal(selectedParam.ArcRampingInterval)) nudArcRampingInterval.Value = nudArcRampingInterval.Maximum; else if (nudArcRampingInterval.Minimum > Convert.ToDecimal(selectedParam.ArcRampingInterval)) nudArcRampingInterval.Value = nudArcRampingInterval.Minimum; else nudArcRampingInterval.Value = Convert.ToDecimal(selectedParam.ArcRampingInterval); ckbSnowManEnabled.Checked = selectedParam.SnowManEnable; cbWobbelShape.SelectedItem = selectedParam.WobbelShape; labelColor.BackColor = selectedParam.Color; ckbZigZagEnabled.Checked = selectedParam.ZigzagWobbelEnable; checkBoxStartRampingSlopeMode.Checked = selectedParam.RampingStartSlopeMode; checkBoxEndRampingSlopeMode.Checked = selectedParam.RampingEndSlopeMode; cbLaserProgramNo.SelectedItem = selectedParam.LaserProgramNo; checkBoxUsePowerProfile.Checked = selectedParam.UsePowerProfile; textBoxPowerProfileID.Text = selectedParam.PowerProfileID.ToString(); } private void DialogToScannerParam(int selectedScannerParamID) { try { ScannerParam selectedParam = m_scannerParams[selectedScannerParamID - 1]; selectedParam.MarkSpeed = Convert.ToDouble(tbDrawSpeed.Text); selectedParam.JumpSpeed = Convert.ToDouble(tbJumpSpeed.Text); selectedParam.LaserOnDelay = Convert.ToInt32(tbLaserOnDelay.Text); selectedParam.LaserOffDelay = Convert.ToUInt32(tbLaserOffDelay.Text); selectedParam.JumpDelay = Convert.ToUInt32(tbJumpDelay.Text); selectedParam.MarkDelay = Convert.ToUInt32(tbMarkDelay.Text); selectedParam.PolygonDelay = Convert.ToUInt32(tbPolygonDelay.Text); selectedParam.NumberOfCount = Convert.ToUInt32(tbNumberOfCount.Text); selectedParam.LaserPower1 = Convert.ToUInt32(tbLaserPower1.Text); selectedParam.LaserPower2 = Convert.ToUInt32(tbLaserPower2.Text); selectedParam.SpotShotTime = Convert.ToDouble(tbSpotShotTime.Text); selectedParam.LaserFrequency = Convert.ToDouble(tbLaserFrequency.Text); selectedParam.LaserProgramNo = (ScannerParam.eProgramNo)cbLaserProgramNo.SelectedItem; m_scannerParams[selectedScannerParamID - 1].LaserProgramNo = (ScannerParam.eProgramNo)cbLaserProgramNo.SelectedItem; selectedParam.LaserPulseDuration = Convert.ToDouble(tbLaserPulseDuration.Text); selectedParam.WobbelEnable = ckbWobbelEnabled.Checked; selectedParam.WobbelFrequency = Convert.ToDouble(tbWobbelFrequency.Text); selectedParam.WobbelTransversal = Convert.ToDouble(tbWobbelTransversal.Text); selectedParam.WobbelLongditudinal = Convert.ToDouble(tbWobbelLongitudinal.Text); selectedParam.RampingStartPower = Convert.ToUInt32(nudRampingStartPower.Value); selectedParam.RampingStartDist = (double)nudRampingStartDist.Value; selectedParam.RampingEndPower = Convert.ToUInt32(nudRampingEndPower.Value); selectedParam.RampingEndDist = (double)nudRampingEndDist.Value; selectedParam.ArcRampingInterval = (double)nudArcRampingInterval.Value; selectedParam.SnowManEnable = ckbSnowManEnabled.Checked; selectedParam.WobbelShape = (ScannerParam.eWobbelShape)cbWobbelShape.SelectedItem; selectedParam.ZigzagWobbelEnable = ckbZigZagEnabled.Checked; selectedParam.RampingEndSlopeMode = checkBoxEndRampingSlopeMode.Checked; selectedParam.RampingStartSlopeMode = checkBoxStartRampingSlopeMode.Checked; selectedParam.UsePowerProfile = checkBoxUsePowerProfile.Checked; selectedParam.PowerProfileID = Convert.ToInt32(textBoxPowerProfileID.Text); selectedParam.Color = labelColor.BackColor; } catch { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, "Please Check Value"); } } private void rbParam_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { m_selectedIndex = Convert.ToInt16(radioButton.Text.Split(' ')[1]); ScannerParamToDialog(m_selectedIndex); } } private void rbParamExt_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { cbParamExt.Enabled = true; } else { cbParamExt.Enabled = false; } } private void cbParamExt_SelectedIndexChanged(object sender, EventArgs e) { m_selectedIndex = cbParamExt.SelectedIndex + 17; ScannerParamToDialog(m_selectedIndex); } private void btnCopyParam_Click(object sender, EventArgs e) { btnPasteParam.Enabled = true; m_copyParam = m_scannerParams[m_selectedIndex - 1].Clone(); } private void btnPasteParam_Click(object sender, EventArgs e) { m_scannerParams[m_selectedIndex - 1] = m_copyParam.Clone(); ScannerParamToDialog(m_selectedIndex); } private void btnImport_Click(object sender, EventArgs e) { } private void btnExport_Click(object sender, EventArgs e) { try { SaveFileDialog dlg = new SaveFileDialog(); dlg.DefaultExt = "lsp"; dlg.Filter = "LASA Param 파일 (*.lsp)|*.lsp"; dlg.Title = "LASA Param 파일 저장"; if (dlg.ShowDialog() == DialogResult.OK) { if (string.Equals(dlg.FileName.Substring(dlg.FileName.LastIndexOf(".")), ".lsp") == false) { throw new Exception("ERR_MAIN_PAGE_NOT_LASA_TYPE_FILE"); } SaveParam(dlg.FileName, m_selectedIndex); } } catch (Exception ex) { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, ex.Message); } } private void btnImportAll_Click(object sender, EventArgs e) { try { OpenFileDialog dlg = new OpenFileDialog(); dlg.DefaultExt = "lsp"; dlg.Filter = "LASA Param 파일 (*.lsp)|*.lsp"; dlg.Title = "LASA Param 파일 열기"; if (dlg.ShowDialog() == DialogResult.OK) { if (string.Equals(dlg.FileName.Substring(dlg.FileName.LastIndexOf(".")), ".lsp") == false) { throw new Exception("ERR_MAIN_PAGE_NOT_LASA_TYPE_FILE"); } LoadAllParam(dlg.FileName); } } catch (Exception ex) { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, ex.Message); } } private void btnExportAll_Click(object sender, EventArgs e) { try { SaveFileDialog dlg = new SaveFileDialog(); dlg.DefaultExt = "lsp"; dlg.Filter = "LASA Param 파일 (*.lsp)|*.lsp"; dlg.Title = "LASA Param 파일 저장"; if (dlg.ShowDialog() == DialogResult.OK) { if (string.Equals(dlg.FileName.Substring(dlg.FileName.LastIndexOf(".")), ".lsp") == false) { throw new Exception("ERR_MAIN_PAGE_NOT_LASA_TYPE_FILE"); } SaveAllParam(dlg.FileName); } } catch (Exception ex) { UtilUnit.logUnit.SetLog(LogUnit.eLogType.ALARM, MethodBase.GetCurrentMethod().Name, ex.Message); } } private void SaveParam(string fileName, int selectedIndex) { try { XmlTextWriter wr = new XmlTextWriter(fileName, null); wr.Formatting = Formatting.Indented; wr.WriteStartElement("WeldingParameter"); wr.WriteStartElement("items"); wr.WriteStartElement("Param"); CoreUnit.Common.XmlUtil.WriteProperties(m_scannerParams[selectedIndex - 1], wr); wr.WriteEndElement(); wr.WriteEndElement(); wr.WriteEndElement(); wr.Close(); } catch (Exception ex) { throw ex; } } public void SaveAllParam(string fileName) { try { XmlTextWriter wr = new XmlTextWriter(fileName, null); wr.Formatting = Formatting.Indented; wr.WriteStartElement("WeldingParameter"); wr.WriteStartElement("items"); foreach (ScannerParam param in m_scannerParams) { wr.WriteStartElement("Param"); CoreUnit.Common.XmlUtil.WriteProperties(param, wr); wr.WriteEndElement(); } wr.WriteEndElement(); wr.WriteEndElement(); wr.Close(); } catch (Exception ex) { throw ex; } } public void LoadAllParam(string fileName) { try { FileInfo fi = new FileInfo(fileName); StreamReader sr = new StreamReader(fileName); XmlDocument doc = new XmlDocument(); doc.Load(sr); sr.Dispose(); XmlElement root = doc.DocumentElement; foreach (XmlElement node in root.ChildNodes) { if (node.Name == "items") { m_scannerParams.Clear(); foreach (XmlElement childnode in node.ChildNodes) { Object param = new ScannerParam(); CoreUnit.Common.XmlUtil.ParseProperties(childnode, param); m_scannerParams.Add((ScannerParam)param); } } } } catch (Exception ex) { throw ex; } } private void btnOk_Click(object sender, EventArgs e) { DialogToScannerParam(m_selectedIndex); ScannerCanvasUserCtrl.ScannerParams.Clear(); foreach (ScannerParam param in m_scannerParams) { ScannerParam copyParam = param; ScannerParam orignalParam = copyParam.Clone(); WeldingParameterIDEditor.UpdateColorList(param.No, param.Color); ScannerCanvasUserCtrl.ScannerParams.Add(orignalParam); } this.DialogResult = DialogResult.OK; this.Close(); } private void btnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } private void textBoxScannerParam_Leave(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void btnOpenSnowManEditor_Click(object sender, EventArgs e) { SnowmanEditorDlg snowManEditorDlg = new SnowmanEditorDlg(m_selectedIndex); if (DialogResult.OK == snowManEditorDlg.ShowDialog()) { m_scannerParams[m_selectedIndex - 1] = ScannerCanvasUserCtrl.ScannerParams[m_selectedIndex - 1].Clone(); } else { } } private void buttonSelectColor_Click(object sender, EventArgs e) { ColorDialog colorDlg = new ColorDialog(); if (colorDlg.ShowDialog() == DialogResult.OK) { labelColor.BackColor = colorDlg.Color; WeldingParameterIDEditor.UpdateColorList(m_selectedIndex - 1, colorDlg.Color); DialogToScannerParam(m_selectedIndex); switch (m_selectedIndex) { case 1: rbParam1.ForeColor = colorDlg.Color; break; case 2: rbParam2.ForeColor = colorDlg.Color; break; case 3: rbParam3.ForeColor = colorDlg.Color; break; case 4: rbParam4.ForeColor = colorDlg.Color; break; case 5: rbParam5.ForeColor = colorDlg.Color; break; case 6: rbParam6.ForeColor = colorDlg.Color; break; case 7: rbParam7.ForeColor = colorDlg.Color; break; case 8: rbParam8.ForeColor = colorDlg.Color; break; case 9: rbParam9.ForeColor = colorDlg.Color; break; case 10: rbParam10.ForeColor = colorDlg.Color; break; case 11: rbParam11.ForeColor = colorDlg.Color; break; case 12: rbParam12.ForeColor = colorDlg.Color; break; case 13: rbParam13.ForeColor = colorDlg.Color; break; case 14: rbParam14.ForeColor = colorDlg.Color; break; case 15: rbParam15.ForeColor = colorDlg.Color; break; case 16: rbParam16.ForeColor = colorDlg.Color; break; default: break; } } } private void btnOpenZigzagEditor_Click(object sender, EventArgs e) { ZigzagEditorDlg zigzagEditorDlg = new ZigzagEditorDlg(m_selectedIndex); if (DialogResult.OK == zigzagEditorDlg.ShowDialog()) { m_scannerParams[m_selectedIndex - 1] = ScannerCanvasUserCtrl.ScannerParams[m_selectedIndex - 1].Clone(); } else { } } private void checkBoxStartRampingSlopeMode_CheckedChanged(object sender, EventArgs e) { } private void checkBoxStartRampingSlopeMode_Click(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void checkBoxEndRampingSlopeMode_Click(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void ckbWobbelEnabled_Click(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void ckbSnowManEnabled_Click(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void ckbZigZagEnabled_Click(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void ckbWobbelEnabled_CheckedChanged(object sender, EventArgs e) { if (ckbWobbelEnabled.Checked) { cbWobbelShape.Enabled = true; tbWobbelFrequency.Enabled = true; tbWobbelLongitudinal.Enabled = true; tbWobbelTransversal.Enabled = true; } else { cbWobbelShape.Enabled = false; tbWobbelFrequency.Enabled = false; tbWobbelLongitudinal.Enabled = false; tbWobbelTransversal.Enabled = false; } } private void ckbSnowManEnabled_CheckedChanged(object sender, EventArgs e) { if (ckbSnowManEnabled.Checked) { btnOpenSnowManEditor.Enabled = true; } else { btnOpenSnowManEditor.Enabled = false; } if (ckbSnowManEnabled.Checked || ckbZigZagEnabled.Checked) { tbDrawSpeed.Enabled = false; } else { tbDrawSpeed.Enabled = true; } } private void ckbZigZagEnabled_CheckedChanged(object sender, EventArgs e) { if (ckbZigZagEnabled.Checked) { btnOpenZigzagEditor.Enabled = true; } else { btnOpenZigzagEditor.Enabled = false; } if (ckbSnowManEnabled.Checked || ckbZigZagEnabled.Checked) { tbDrawSpeed.Enabled = false; } else { tbDrawSpeed.Enabled = true; } } private void checkBoxUsePowerProfile_CheckedChanged(object sender, EventArgs e) { if (checkBoxUsePowerProfile.Checked) { //nudRampingStartDist.Enabled = false; //nudRampingStartPower.Enabled = false; //nudRampingEndDist.Enabled = false; //nudRampingEndPower.Enabled = false; nudArcRampingInterval.Enabled = false; checkBoxStartRampingSlopeMode.Enabled = false; checkBoxEndRampingSlopeMode.Enabled = false; textBoxPowerProfileID.Enabled = true; } else { //nudRampingStartDist.Enabled = true; //nudRampingStartPower.Enabled = true; //nudRampingEndDist.Enabled = true; //nudRampingEndPower.Enabled = true; nudArcRampingInterval.Enabled = true; checkBoxStartRampingSlopeMode.Enabled = true; checkBoxEndRampingSlopeMode.Enabled = true; textBoxPowerProfileID.Enabled = false; } } private void checkBoxUsePowerProfile_Click(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void textBoxPowerProfileID_Leave(object sender, EventArgs e) { try { DialogToScannerParam(m_selectedIndex); } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } private void cbLaserProgramNo_SelectedIndexChanged(object sender, EventArgs e) { try { var selected = waveFormTable.GetWaveForm(cbLaserProgramNo.SelectedIndex); if(selected != null) { tbPRF0.Text = selected.PRF0; tbPRFmax.Text = selected.PRFmax; } } catch { MessageBox.Show("숫자 형식이 맞지 않습니다."); } } } }