Exemplo n.º 1
0
        /// <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);
            }
        }