几何尺寸与公差论坛

 找回密码
 注册
查看: 92|回复: 2

PR 244354 Application error calibrating tips from Marked Sets in Operator Mode

[复制链接]
发表于 2009-5-7 18:33:48 | 显示全部楼层 |阅读模式
Application error calibrating tips from Marked Sets in Operator Mode
<< Alessandro Zanetti  --  10/24/06  14:53:17>>
Working on a double arm.
If PC-DMIS is started in Online mode, tips calibration via Marked Sets works fine for both arms.
Steps to reproduce:
Start PC-DMIS in Operator mode on both arms.
Load the attached program.
From Marked Sets, choose Calibrate Tips.
See caldialog.jpg.
Answer Yes the sphere has been moved.
Take first hit manually, then pres Done on the jogbox.
Results:
Arm1 calibrates the tip, then the user is again requested to answer if sphere has beeen moved ( see aftercalibration.jpg ).
Answer Yes.
Crash.
<<END>>


<< Alessandro Zanetti  --  11/09/06  11:27:44>>
Dave, i verified this one with the current 4.2 RC and it's fixed.
Tips for both arms are calibrated correctly via Marked Sets in Operator mode.
<<END>>
<< Paola Pallo  --  11/06/06  18:48:43>>
Had some talk with Dave on Friday, and reworked the arm settings following his suggestion.
For review :
------------------------
V42R\EDITORS\MARKSETS.CPP
V42R\MENU\UTILPROB.CPP
V42\EDITORS\MARKSETS.CPP
V42\MENU\UTILPROB.CPP
V43B\EDITORS\MARKSETS.CPP
V43B\MENU\UTILPROB.CPP
<<END>>
<< Changes made by Paola Pallo -- 11/06/06  18:49:03>>
Action:  Paola Pallo to David Petrizze, Status:  OPEN to REVIEW
<<END>>
<< Paola Pallo  --  11/02/06  18:46:08>>
Some more test online, but the modifications seem a band-aid : I'm persuaded that the design of Operator mode should be adjusted to correctly work with a multiple arm program. To be discussed with Dave
<<END>>
<< Paola Pallo  --  10/26/06  17:50:44>>
Working on a fix in MeasureAllTips() function. Not uploaded yet since I'm still having tests online.
<<END>>
<< Paola Pallo  --  10/25/06  18:42:29>>
The problem is in utilprob.cpp\MeasureAllTips() , line 1936 .
The logic is not considering at all the arm number for the LOADPROBE commands, simply moving to next one if available . In this case the PRG is a multiple arm, and  it has two probefiles, but the second if associated to arm2 , so before calibrating its tips we should accordingly set the 'executing context' for arm2 ( being still not initialized, it's NULL, so you get the crash ) . I need to double check with Dave before adding the fix.
<<END>>
<< Paola Pallo  --  10/25/06  16:25:19>>
I'm looking.
<<END>>
<< Bill Wilcox  --  10/25/06  11:17:33>>
Paola, please investigate this issue and work with Dave to find a solution.
<<END>>
<< Changes made by Bill Wilcox -- 10/25/06  11:17:34>>
Action:  David Petrizze to Paola Pallo, Assigned:  David Petrizze to Paola Pallo
<<END>>
<< Changes made by Tim Wernicke -- 10/24/06  13:57:12>>
Priority:  to Stop Rel.
<<END>>
 楼主| 发表于 2009-5-7 18:36:56 | 显示全部楼层

回复: PR 244354 Application error calibrating tips from Marked Sets in Operat

// 244354 : adjusting globalsettings for multiple arm PRG
        CModalSettings *pSaveSettings = m_pPartProgram->GetCurrentSettings();
        int iSavedArm = m_pPartProgram->GetCurrentSettings()->GetArmNumber();

        if (m_pPartProgram->GetArmUsedInPartProgram(2))
        {
          if (m_pPartProgram->GetCurrentSettingsForArm(2)== NULL)  
          {
            m_pPartProgram->SetCurrentSettingsForArm(2,m_pPartProgram->GetCurrentSettingsForArm(1),44);
          }
          CPCDcommand *ptr = m_pPartProgram->GetStartCommand();
          while(ptr)
          {
            if(ptr->type() == GET_PROBE_DATA && ptr->IsExecutedByArm(2))
              break;
            ptr=ptr->next;
          }
          m_pPartProgram->GetCurrentSettingsForArm(2)->SetActiveProbe( (CPCDload_probes *) ptr, 177331);

        }
 楼主| 发表于 2009-5-7 18:39:26 | 显示全部楼层

回复: PR 244354 Application error calibrating tips from Marked Sets in Operat

BOOL CUtilProbDlg::MeasureAllTips()
      // 244354 <06nov06> : reworked to support multiple arm PRG
      if (global_connected_as_driving_computer)
      {
        if( pLPCmd->IsExecutedByArmOnly(1) && m_pPartProgram->GetCurrentLearnArm()==2)
        {
          global_main_frame->OnClickArm1();
        }
        if( pLPCmd->IsExecutedByArmOnly(2) && m_pPartProgram->GetCurrentLearnArm()==1)
        {
          global_main_frame->OnClickArm2();
        }
      }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2025-1-3 10:44 , Processed in 0.038284 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表