几何尺寸与公差论坛

 找回密码
 注册
查看: 67|回复: 0

PR 239137 Incorrect calculation for T vector.

[复制链接]
发表于 2009-3-19 20:05:07 | 显示全部楼层 |阅读模式
Incorrect calculation for T vector.
<< Hana Dichterova  --  03/18/06  20:44:05>>
One customer found out, that PCDMIS calculated incorrect deviation for T vector in version 37_mr2.
I have tested it in version 37_mr3 (offline) (version dated 03/07/06) and result is still incorrect. It looks like that incorrect results are for these points which are measured in a different alignment than they are dimensioned.

I am sending you one program from the customer in 37_mr2 + debug file + probe file and one program in 37_mr3 with a new evaluation T vector plus a calculation of a correct deviation for T vector.
<<END>>


<< Don Turcotte  --  03/05/09  09:58:03>>
Merged into V432.
Files inserted to server
------------------------
V432\AUTOFEAT\AFANGLEPOINTCONTACT.CPP
V432\AUTOFEAT\AFANGLEPOINTVISION.CPP
V432\AUTOFEAT\AFCIRCLECONTACT.CPP
V432\AUTOFEAT\AFCIRCLELASER.CPP
V432\AUTOFEAT\AFCIRCLEVISION.CPP
V432\AUTOFEAT\AFCYLINDERLASER.CPP
V432\AUTOFEAT\AFEDGEPOINTCONTACT.CPP
V432\AUTOFEAT\AFEDGEPOINTLASER.CPP
V432\AUTOFEAT\AFEDGEPOINTVISION.CPP
V432\AUTOFEAT\AFELLIPSEVISION.CPP
V432\AUTOFEAT\AFFLUSHANDGAPLASER.CPP
V432\AUTOFEAT\AFHIGHPOINTCONTACT.CPP
V432\AUTOFEAT\AFLINECONTACT.CPP
V432\AUTOFEAT\AFLINELASER.CPP
V432\AUTOFEAT\AFLINEVISION.CPP
V432\AUTOFEAT\AFPLANELASER.CPP
V432\AUTOFEAT\AFSLOTLASER.CPP
V432\AUTOFEAT\AFSLOTNOTCHCONTACT.CPP
V432\AUTOFEAT\AFSLOTROUNDCONTACT.CPP
V432\AUTOFEAT\AFSLOTSQUARECONTACT.CPP
V432\AUTOFEAT\AFSLOTVISION.CPP
V432\AUTOFEAT\AFSPHERELASER.CPP
V432\AUTOFEAT\AFSURFACEPOINTCONTACT.CPP
V432\AUTOFEAT\AFSURFACEPOINTLASER.CPP
V432\AUTOFEAT\AFSURFACEPOINTVISION.CPP
V432\AUTOFEAT\AFVECTORPOINTCONTACT.CPP
V432\DIMENS\LOCATION.CPP
V432\INCLUDE\BASIC_FE.H
V432\INCLUDE\LOCATION.H
V432\MEASFEAT\BASIC_FE.CPP
V432\MEASFEAT\M_CIRCLE.CPP
V432\MEASFEAT\M_LINE.CPP
V432\MEASFEAT\M_POINT.CPP
V432\MEASFEAT\M_RSLOT.CPP
V432\MEASFEAT\M_SSLOT.CPP
<<END>>
<< Changes made by Don Turcotte -- 03/05/09  09:58:43>>
Status:  OPEN to CLOSED
<<END>>
<< Tim Wernicke  --  03/04/09  15:17:21>>
Hi Don, please merge this fix into V432 per our Skype.  Thanks.
<<END>>
<< Changes made by Tim Wernicke -- 03/04/09  15:17:27>>
Action:  Hana Dichterova to Don Turcotte, Status:  CLOSED to OPEN, Priority:  Critical to Stop Rel.
<<END>>
<< Changes made by Neil Kay -- 02/25/09  15:20:39>>
Status:  RESOLVED to CLOSED
<<END>>
<< Jerry Naylor  --  09/18/08  08:38:48>>
wasaddedtoreadme42B43B&44B
<<END>>
<< Neil Kay  --  09/18/08  11:38:48>>
Reviewed. Thanks Don.
<<END>>
<< Changes made by Neil Kay -- 09/18/08  11:38:52>>
Action:  Neil Kay to Hana Dichterova, Status:  REVIEW to RESOLVED
<<END>>
<< Don Turcotte  --  09/17/08  13:41:59>>
I have made two changes here:
1.  use dynamic_cast in Location.cpp
2.  implement new SaveAlignmentData(...) method in CPCDbasic_feature base class
Fixed in V42 beta, V43B, V44B.
Files inserted to server
------------------------
V42\AUTOFEAT\AFANGLEPOINTCONTACT.CPP
V42\AUTOFEAT\AFCIRCLECONTACT.CPP
V42\AUTOFEAT\AFCIRCLELASER.CPP
V42\AUTOFEAT\AFCIRCLEVISION.CPP
V42\AUTOFEAT\AFEDGEPOINTCONTACT.CPP
V42\AUTOFEAT\AFEDGEPOINTLASER.CPP
V42\AUTOFEAT\AFEDGEPOINTVISION.CPP
V42\AUTOFEAT\AFFLUSHANDGAPLASER.CPP
V42\AUTOFEAT\AFHIGHPOINTCONTACT.CPP
V42\AUTOFEAT\AFLINECONTACT.CPP
V42\AUTOFEAT\AFLINELASER.CPP
V42\AUTOFEAT\AFLINEVISION.CPP
V42\AUTOFEAT\AFSLOTLASER.CPP
V42\AUTOFEAT\AFSLOTNOTCHCONTACT.CPP
V42\AUTOFEAT\AFSLOTROUNDCONTACT.CPP
V42\AUTOFEAT\AFSLOTSQUARECONTACT.CPP
V42\AUTOFEAT\AFSLOTVISION.CPP
V42\AUTOFEAT\AFSURFACEPOINTCONTACT.CPP
V42\AUTOFEAT\AFSURFACEPOINTLASER.CPP
V42\AUTOFEAT\AFSURFACEPOINTVISION.CPP
V42\AUTOFEAT\AFVECTORPOINTCONTACT.CPP
V42\DIMENS\LOCATION.CPP
V42\INCLUDE\BASIC_FE.H
V42\MEASFEAT\BASIC_FE.CPP
V42\MEASFEAT\M_CIRCLE.CPP
V42\MEASFEAT\M_LINE.CPP
V42\MEASFEAT\M_POINT.CPP
V42\MEASFEAT\M_RSLOT.CPP
V42\MEASFEAT\M_SSLOT.CPP
V43B\AUTOFEAT\AFANGLEPOINTCONTACT.CPP
V43B\AUTOFEAT\AFANGLEPOINTVISION.CPP
V43B\AUTOFEAT\AFCIRCLECONTACT.CPP
V43B\AUTOFEAT\AFCIRCLELASER.CPP
V43B\AUTOFEAT\AFCIRCLEVISION.CPP
V43B\AUTOFEAT\AFCYLINDERLASER.CPP
V43B\AUTOFEAT\AFEDGEPOINTCONTACT.CPP
V43B\AUTOFEAT\AFEDGEPOINTLASER.CPP
V43B\AUTOFEAT\AFEDGEPOINTVISION.CPP
V43B\AUTOFEAT\AFELLIPSEVISION.CPP
V43B\AUTOFEAT\AFFLUSHANDGAPLASER.CPP
V43B\AUTOFEAT\AFHIGHPOINTCONTACT.CPP
V43B\AUTOFEAT\AFLINECONTACT.CPP
V43B\AUTOFEAT\AFLINELASER.CPP
V43B\AUTOFEAT\AFLINEVISION.CPP
V43B\AUTOFEAT\AFPLANELASER.CPP
V43B\AUTOFEAT\AFSLOTLASER.CPP
V43B\AUTOFEAT\AFSLOTNOTCHCONTACT.CPP
V43B\AUTOFEAT\AFSLOTROUNDCONTACT.CPP
V43B\AUTOFEAT\AFSLOTSQUARECONTACT.CPP
V43B\AUTOFEAT\AFSLOTVISION.CPP
V43B\AUTOFEAT\AFSPHERELASER.CPP
V43B\AUTOFEAT\AFSURFACEPOINTCONTACT.CPP
V43B\AUTOFEAT\AFSURFACEPOINTLASER.CPP
V43B\AUTOFEAT\AFSURFACEPOINTVISION.CPP
V43B\AUTOFEAT\AFVECTORPOINTCONTACT.CPP
V43B\DIMENS\LOCATION.CPP
V43B\INCLUDE\BASIC_FE.H
V43B\MEASFEAT\BASIC_FE.CPP
V43B\MEASFEAT\M_CIRCLE.CPP
V43B\MEASFEAT\M_LINE.CPP
V43B\MEASFEAT\M_POINT.CPP
V43B\MEASFEAT\M_RSLOT.CPP
V43B\MEASFEAT\M_SSLOT.CPP
V44B\AUTOFEAT\AFANGLEPOINTCONTACT.CPP
V44B\AUTOFEAT\AFANGLEPOINTVISION.CPP
V44B\AUTOFEAT\AFCIRCLECONTACT.CPP
V44B\AUTOFEAT\AFCIRCLELASER.CPP
V44B\AUTOFEAT\AFCIRCLEVISION.CPP
V44B\AUTOFEAT\AFCONELASER.CPP
V44B\AUTOFEAT\AFCYLINDERLASER.CPP
V44B\AUTOFEAT\AFEDGEPOINTCONTACT.CPP
V44B\AUTOFEAT\AFEDGEPOINTLASER.CPP
V44B\AUTOFEAT\AFEDGEPOINTVISION.CPP
V44B\AUTOFEAT\AFELLIPSEVISION.CPP
V44B\AUTOFEAT\AFFLUSHANDGAPLASER.CPP
V44B\AUTOFEAT\AFHIGHPOINTCONTACT.CPP
V44B\AUTOFEAT\AFLINECONTACT.CPP
V44B\AUTOFEAT\AFLINELASER.CPP
V44B\AUTOFEAT\AFLINEVISION.CPP
V44B\AUTOFEAT\AFPLANELASER.CPP
V44B\AUTOFEAT\AFPOLYGONLASER.CPP
V44B\AUTOFEAT\AFSLOTLASER.CPP
V44B\AUTOFEAT\AFSLOTNOTCHCONTACT.CPP
V44B\AUTOFEAT\AFSLOTROUNDCONTACT.CPP
V44B\AUTOFEAT\AFSLOTSQUARECONTACT.CPP
V44B\AUTOFEAT\AFSLOTVISION.CPP
V44B\AUTOFEAT\AFSPHERELASER.CPP
V44B\AUTOFEAT\AFSURFACEPOINTCONTACT.CPP
V44B\AUTOFEAT\AFSURFACEPOINTLASER.CPP
V44B\AUTOFEAT\AFSURFACEPOINTVISION.CPP
V44B\AUTOFEAT\AFVECTORPOINTCONTACT.CPP
V44B\DIMENS\LOCATION.CPP
V44B\INCLUDE\BASIC_FE.H
V44B\MEASFEAT\BASIC_FE.CPP
V44B\MEASFEAT\M_CIRCLE.CPP
V44B\MEASFEAT\M_LINE.CPP
V44B\MEASFEAT\M_POINT.CPP
V44B\MEASFEAT\M_RSLOT.CPP
V44B\MEASFEAT\M_SSLOT.CPP
<<END>>
<< Changes made by Don Turcotte -- 09/17/08  13:42:22>>
Action:  Don Turcotte to Neil Kay
<<END>>
<< Neil Kay  --  09/02/08  16:08:28>>
A problem here, and a refactor request.
The problem - in LOCATION.CPP in the function SetupGlobalAlignment, a check is made on the feature command is_feature(). If this returns true, it is force cast to a CPCDbasic_feature.
This is not always a good thing to do, there are some features that don't derive from this base class. Some of the legacy features derive from CPCDbasic_hit. This will lead to random crashes for those feature types. Better to dynamic_downcast it, and check that it's not NULL.
The refactor request...in CPCDbasic_feature, there is a function to GetAlignmentData. In all of the feature classes, I think it would be better to have a function to SaveAlignmentData, as there a block of duplicated code for all features that could instead be a function inside the CPCDbasic_feature class.
I've increased the PR priority because of the crash potential.

<<END>>
<< Changes made by Neil Kay -- 09/02/08  16:08:44>>
Action:  Neil Kay to Don Turcotte, Priority:  High to Critical
<<END>>
<< Changes made by Neil Kay -- 07/23/08  13:43:53>>
Action:  David Petrizze to Neil Kay
<<END>>
<< Don Turcotte  --  10/29/07  16:41:51>>
The T vector is the deviation of the MEAS point from the THEO point along the THEO vector.  The calculation is correct.  The problem here is that if the dimension is in a different alignment than the feature was measured in, you can get erroneous results.  I have fixed this so the alignment that the feature was measured in is used to calculate the T vector deviation.  Therefore, the same deviation is always reported regardless of what alignment the dimension is in.  I have also fixed this for S, RT, and RS.
Fixed in V42 beta, V43B, V44B.
Files inserted to server
------------------------
V42\AUTOFEAT\AFANGLEPOINTCONTACT.CPP
V42\AUTOFEAT\AFEDGEPOINTCONTACT.CPP
V42\AUTOFEAT\AFEDGEPOINTLASER.CPP
V42\AUTOFEAT\AFEDGEPOINTVISION.CPP
V42\AUTOFEAT\AFFLUSHANDGAPLASER.CPP
V42\AUTOFEAT\AFHIGHPOINTCONTACT.CPP
V42\AUTOFEAT\AFSURFACEPOINTCONTACT.CPP
V42\AUTOFEAT\AFSURFACEPOINTLASER.CPP
V42\AUTOFEAT\AFSURFACEPOINTVISION.CPP
V42\AUTOFEAT\AFVECTORPOINTCONTACT.CPP
V42\DIMENS\LOCATION.CPP
V42\DIMENS\RS_LOCAT.CPP
V42\DIMENS\RT_LOCAT.CPP
V42\DIMENS\S_LOCAT.CPP
V42\DIMENS\T_LOCATI.CPP
V42\INCLUDE\LOCATION.H
V42\MEASFEAT\M_POINT.CPP
V43B\AUTOFEAT\AFANGLEPOINTCONTACT.CPP
V43B\AUTOFEAT\AFANGLEPOINTVISION.CPP
V43B\AUTOFEAT\AFEDGEPOINTCONTACT.CPP
V43B\AUTOFEAT\AFEDGEPOINTLASER.CPP
V43B\AUTOFEAT\AFEDGEPOINTVISION.CPP
V43B\AUTOFEAT\AFFLUSHANDGAPLASER.CPP
V43B\AUTOFEAT\AFHIGHPOINTCONTACT.CPP
V43B\AUTOFEAT\AFSURFACEPOINTCONTACT.CPP
V43B\AUTOFEAT\AFSURFACEPOINTLASER.CPP
V43B\AUTOFEAT\AFSURFACEPOINTVISION.CPP
V43B\AUTOFEAT\AFVECTORPOINTCONTACT.CPP
V43B\DIMENS\LOCATION.CPP
V43B\DIMENS\RS_LOCAT.CPP
V43B\DIMENS\RT_LOCAT.CPP
V43B\DIMENS\S_LOCAT.CPP
V43B\DIMENS\T_LOCATI.CPP
V43B\INCLUDE\LOCATION.H
V43B\MEASFEAT\M_POINT.CPP
V44B\AUTOFEAT\AFANGLEPOINTCONTACT.CPP
V44B\AUTOFEAT\AFANGLEPOINTVISION.CPP
V44B\AUTOFEAT\AFEDGEPOINTCONTACT.CPP
V44B\AUTOFEAT\AFEDGEPOINTLASER.CPP
V44B\AUTOFEAT\AFEDGEPOINTVISION.CPP
V44B\AUTOFEAT\AFFLUSHANDGAPLASER.CPP
V44B\AUTOFEAT\AFHIGHPOINTCONTACT.CPP
V44B\AUTOFEAT\AFSURFACEPOINTCONTACT.CPP
V44B\AUTOFEAT\AFSURFACEPOINTLASER.CPP
V44B\AUTOFEAT\AFSURFACEPOINTVISION.CPP
V44B\AUTOFEAT\AFVECTORPOINTCONTACT.CPP
V44B\DIMENS\LOCATION.CPP
V44B\DIMENS\RS_LOCAT.CPP
V44B\DIMENS\RT_LOCAT.CPP
V44B\DIMENS\S_LOCAT.CPP
V44B\DIMENS\T_LOCATI.CPP
V44B\INCLUDE\LOCATION.H
V44B\MEASFEAT\M_POINT.CPP
<<END>>
<< Changes made by Don Turcotte -- 10/29/07  16:42:36>>
Action:  Don Turcotte to David Petrizze, Status:  OPEN to REVIEW
<<END>>
<< Changes made by Tim Wernicke -- 03/23/06  08:58:53>>
Action:  Hana Dichterova to Don Turcotte, Assigned:   to Don Turcotte, Status:  MOREINFO to OPEN, Priority:  to High
<<END>>
<< Hana Dichterova  --  03/22/06  20:09:38>>
Problem is with calculation T vector for points: MP20 ; MP28 ; MP34 ; MP44 ; MP50 ; MP56 ; MP65 ; MP75 ; MP80 ; MP81 ; MP99 ; TELESO28 ; TELESO44.

Program "Fiesta_B256_D_RHS.prg" is an older program measured in version 37_mr2.
Program "Fiesta_B256_D_RHS calcuation T vector in 373" is a new program migrated from the older version.
<<END>>
<< Tim Wernicke  --  03/20/06  09:32:26>>
Hana, which feature in the program is the problem?  Was this a new part program or one that was migrated from an older version?
<<END>>
<< Changes made by Tim Wernicke -- 03/20/06  09:32:32>>
Action:  Tim Wernicke to Hana Dichterova, Status:  OPEN to MOREINFO
<<END>>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-22 23:47 , Processed in 0.037304 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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