几何尺寸与公差论坛

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

PR 249641 symmetry calculation result is wrong when use FCF mode

[复制链接]
发表于 2009-2-28 14:36:42 | 显示全部楼层 |阅读模式
symmetry calculation result is wrong when use FCF mode
<< Jean Wang  --  08/09/07  23:18:38>>
symmetry calculation result is wrong when use FCF mode,please see the program symmetry.rar on the server.
<<END>>

<< Changes made by Neil Kay -- 02/25/09  19:13:32>>
Action:  David Petrizze to Yanhua Huang
<<END>>
<< Robert Lewenkron  --  04/24/08  16:35:36>>
After further inspection and carefully reviewing all of the features that were used for the composing of this problem report it's my best determination that the incorrect features were used in the calculation in the Feature Control Frame symmetry. It was during this testing that I noticed two other problems and I am making a new report for each of them.
<<END>>
<< Don Turcotte  --  11/08/07  16:40:26>>
Merged into V42MR2.
Files inserted to server
------------------------
V42R\DIMENS\DIM_SYMM.CPP
V42R\INCLUDE\DIM_SYMM.H
<<END>>
<< Changes made by Don Turcotte -- 11/08/07  16:40:53>>
Action:  Don Turcotte to David Petrizze, Status:  OPEN to REVIEW
<<END>>
<< Tim Wernicke  --  11/08/07  15:17:00>>
Hi Don, please go ahead in V42R as well.  Thanks.
<<END>>
<< Changes made by Tim Wernicke -- 11/08/07  15:17:26>>
Action:  Tim Wernicke to Don Turcotte, Status:  REVIEW to OPEN, Priority:  Critical to Stop Rel.
<<END>>
<< Don Turcotte  --  11/08/07  09:10:00>>
Tim,
This is not in V42R but it is in V43R since it was made before the code split.  Jean would like this in V42R.
<<END>>
<< Changes made by Don Turcotte -- 11/08/07  09:11:34>>
Action:  David Petrizze to Tim Wernicke
<<END>>
<< Jean Wang  --  11/08/07  01:29:11>>
did it add into v42mr2?thanks.
<<END>>
<< Don Turcotte  --  08/14/07  13:51:05>>
Fixed in V42 beta and V43B.
Files inserted to server
------------------------
V42\DIMENS\DIM_SYMM.CPP
V42\INCLUDE\DIM_SYMM.H
V43B\DIMENS\DIM_SYMM.CPP
V43B\INCLUDE\DIM_SYMM.H
<<END>>
<< Changes made by Don Turcotte -- 08/14/07  13:51:13>>
Action:  Don Turcotte to David Petrizze, Status:  OPEN to REVIEW
<<END>>
<< Changes made by Tim Wernicke -- 08/13/07  09:40:20>>
Action:  Jean Wang to Don Turcotte
<<END>>
<< Jean Wang  --  08/11/07  23:29:27>>
Hi Don, today I tried to use two datums according to the help file, but the calculated result is still unbelievable, could you see the program symmetry_fcf1.rar on the server.
<<END>>
<< Changes made by Jean Wang -- 08/11/07  23:29:29>>
Status:  CLOSED to OPEN
<<END>>
<< Jean Wang  --  08/10/07  07:29:18>>
Thanks.
<<END>>
<< Changes made by Jean Wang -- 08/10/07  07:29:23>>
Status:  RESOLVED to CLOSED
<<END>>
<< Don Turcotte  --  08/09/07  15:51:09>>
When you create a symmetry using FCF's , the primary datum controls the direction of measurement.  When you use a midline as the datum, the direction of measurement is in Y which is not what is wanted here.  You should use a constructed midplane (from LIN1 and LIN2) as the primary datum which will set the direction of measurement to X .  Then you will get the desired result.
<<END>>
<< Changes made by Don Turcotte -- 08/09/07  15:51:22>>
Action:  Don Turcotte to Jean Wang, Status:  OPEN to RESOLVED
<<END>>
<< Changes made by Tim Wernicke -- 08/09/07  11:34:35>>
Action:  Tim Wernicke to Don Turcotte, Assigned:   to Don Turcotte, Priority:  to Critical
<<END>>
 楼主| 发表于 2009-2-28 14:46:47 | 显示全部楼层

回复: PR 249641 symmetry calculation result is wrong when use FCF mode

BOOL CPCDdim_symmetry::do_symmetry_set(CPCDcommand * pSet1, CPCDcommand * pSet2 /*= NULL*/)
  if (m_feature3 && !m_feature4) // only 1 datum PR249641
  {
    //248035 <29may07 paola>: calculation for SETs should be equivalent to do_math_legacy()
    SetWorkplaneAlignment();

    if (m_feature3->feature() == F_PLANE)
    {
      // If the datum is a plane, the vector is the direction we want to check with.
      m_feature3->gp(CENTROID, MEAS, PART, global_align, datumCentroid, global_workplane); //PR#245439 - was using feature2 and causing crash.
      m_feature3->gp(VECTOR, MEAS, PART, global_align, datumVec, global_workplane);  //PR#245439 - was using feature2 and causing crash.
      mat.newmat(datumVec, datumCentroid);
    }
    else if (m_feature3->feature() == F_LINE)
    {
      // If the datum is a line, the direction we want to check with is perpendicular to the line, but
      // this can be done by projecting into the current workplane, and doing a rotmat towards the points.
      m_feature3->gp(CENTROID, MEAS, PART, global_align, datumCentroid, global_workplane);
      m_feature3->gp(VECTOR, MEAS, PART, global_align, datumVec, global_workplane);
      CPoint3 workplane_vec(0,0,1); // PR248499 set to TOP by SetWorkplaneAlignment()
      datumVec = datumVec.cross(workplane_vec); // PR248499
      mat.newmat(datumVec, datumCentroid);
    }
  }
  else
  {
    // PR249641
    CPCDcommand * pAlign;
    // Create datum reference frame alignment.
    pAlign= create_DRF_alignment(&dirVec, &latVec, &longVec);
    if (pAlign)
    {
      CPoint3 datumCentroid; // origin
      mat.newmat(dirVec, datumCentroid);
    }
  }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-22 19:32 , Processed in 0.037345 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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