Esempio n. 1
0
        public void MeasurePart(string partId)
        {
            _currentPartId = partId;
            string prgFile = FindProgFile(partId); // 返回带扩展名的零件程序

            // 正常情况下不会返回空值
            Debug.Assert(string.IsNullOrEmpty(prgFile));

            _bladeMeasAssist      = new BladeMeasAssist();
            _bladeMeasAssist.Part = PartConfigManager.Instance.GetPartConfig(partId);
            // 创建blade.txt文件
            _bladeMeasAssist.CreateBladeTxtFromNominal();

            try
            {
                _partPrograms.CloseAll();
                _pcdApp.Maximize();
                _pcdApp.SetActive();
                _partProgram = _partPrograms.Open(prgFile, _pcdApp.DefaultMachineName /*"CMM1"*/);
                _partProgram.OnExecuteDialogErrorMsg += _partProgram_OnExecuteDialogErrorMsg;
                //  获取程序中测尖直径
                PCDLRN.OldBasic ob = _partProgram.OldBasic;
                _bladeMeasAssist.ProbeDiam = 2 * ob.GetProbeRadius();
                _bladeMeasAssist.RtfFileName /*_outputFileName*/ = FindOutputFileName();
                // 异步执行
                _partProgram.AsyncExecute();
            }
            catch (Exception ex)
            {
            }
            _IsMeasured = true; // 是否需要
        }
Esempio n. 2
0
 /// <summary>
 /// 执行零件检测程序
 /// </summary>
 public bool ExecutePartProgram()
 {
     if (_IsOpened)
     {
         //设置程序事件响应函数
         _partProgram.OnExecuteDialogErrorMsg += _partProgram_OnExecuteDialogErrorMsg;
         // 开启监控线程,判断PCDMIS是否异常退出
         _monitorTimer.Start();
         _timerStart = DateTime.Now;
         // 异步执行程序
         _ExeOK = _partProgram.AsyncExecute();
     }
     return(_ExeOK);
 }
Esempio n. 3
0
 /// <summary>
 /// 定位到CMM的安全位置
 /// </summary>
 /// <param name="movePrg">PCDMIS定位程序名</param>
 public void CmmMoveToSafePosition(string movePrg)
 {
     _pcdApp.SetActive();
     _pcdApp.Maximize();
     try
     {
         _partPrograms.CloseAll();
         _partProgram = _partPrograms.Open(movePrg, _pcdApp.DefaultMachineName /*"CMM1"*/);
         _partProgram?.AsyncExecute();
     }
     catch (Exception ex)
     {
         // 移动到安全位置 异常处理
     }
 }