/// <summary> /// 更改直线插补轴数量 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void numLineAxisCount_ValueChanged(object sender, EventArgs e) { if (_isSettingNumLineAxisCount) { return; } if (_module == null) { _isSettingNumLineAxisCount = true; MessageBox.Show("无效操作:轴模块未设置"); numLineAxisCount.Value = 0; _isSettingNumLineAxisCount = false; } if (_module.AxisCount == 0) { _isSettingNumLineAxisCount = true; MessageBox.Show("无效操作:模块中轴数量为0"); numLineAxisCount.Value = 0; _isSettingNumLineAxisCount = false; } int nVal = Convert.ToInt32(numLineAxisCount.Value); if (nVal > _module.AxisCount) { _isSettingNumLineAxisCount = true; MessageBox.Show("无效操作:插补轴数量不能超过模块轴数:" + _module.AxisCount); numLineAxisCount.Value = _module.AxisCount; _isSettingNumLineAxisCount = false; } bool enabled = nVal != 0; ucLineParam.IsValueReadOnly = !enabled; chkAbsLine.Enabled = enabled; dgvLinePos.Enabled = enabled; btStartLiner.Enabled = enabled; btStopLiner.Enabled = enabled; btLineServOn.Enabled = enabled; if (nVal == 0) { dgvLinePos.Rows.Clear(); return; } else { if (nVal == 1 && dgvLinePos.Rows.Count == 0) //第一次添加轴,将第0轴运动参数作为默认参数 { JFMotionParam mp; int err = _module.GetMotionParam(0, out mp); if (0 == err) { //object objVal; //if(ucLineParam.GetParamValue(out objVal)) { //if (null == objVal) ucLineParam.SetParamValue(mp); } } } } if (nVal < dgvLinePos.Rows.Count) //删除一个点位 { dgvLinePos.Rows.RemoveAt(dgvLinePos.Rows.Count - 1); return; } else //添加一个点位 { DataGridViewRow row = new DataGridViewRow(); DataGridViewComboBoxCell cellIndex = new DataGridViewComboBoxCell(); for (int i = 0; i < _module.AxisCount; i++) { cellIndex.Items.Add(i.ToString()); } row.Cells.Add(cellIndex); DataGridViewTextBoxCell cellTrgtPos = new DataGridViewTextBoxCell(); row.Cells.Add(cellTrgtPos); DataGridViewTextBoxCell cellCurrPos = new DataGridViewTextBoxCell(); cellCurrPos.ReadOnly = true; row.Cells.Add(cellCurrPos); dgvLinePos.Rows.Add(row); } }