几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】possible cw8 bug (http://www.dimcax.com/hust/showthread.php?t=17956)

yang686526 2009-05-06 10:20 PM

【转帖】possible cw8 bug
 
possible cw8 bug
possible cw8 bug
greetings,
here is a bug i have discovered in dwgdirect for cw8 mac.
occasionally, in the cw8 version odgeelliparc::startang() and odgeelliparc::endang() return values apparently shifted -90 degrees. this does not happen all the time, in fact, it seems to happen on some obscure random basis. this never happens on windows ( of course ).
here is my code:
void mydevice::elliparcproc
(
const odgeelliparc3d& odgearc,
const odgepoint3d* pendpointsoverrides,
odgiarctype arctype, // = kodgiarcsimple,
const odgevector3d* pextrusion // = 0
)
{
odge::errorcondition flag = odge::kok;
odgeelliparc3d* arc = null;
arc = static_cast<odgeelliparc3d *>( odgearc.copy() );
arc->correctaxis(odgecontext::gtol, flag);
odgigeometrysimplifier::elliparcproc( *arc, pendpointsoverrides, arctype, pextrusion );
}
i have identified the problem to be the correctaxis() function.
i need correctaxis() function because of the matrix i use in the myview::update() function. without the correctaxis() function mac tesselates correctly. again, this is not a problem on windows, only on mac.
i have attached a dwg file in which this occurs. the long arc at the top of this drawing that makes up a part of the cylinder shown in the file is shifted -90 degrees in mac, but not in windows. all other arcs in this file come out the same on both platforms. most importantly: i use the very same code for both platforms!!
hopefully someone can take a look at that.
thanks
robert lopez
attached files
the output i'm getting in our odvectorizeex sample on the mac, vs. the windows output is below.
mac:
begin elliparcproc, center38.910325, 637.289274, 0.000000)
minr:4.500000, majr:4.500000
minaxis0.380200, -0.924904, 0.000000)
majaxis-0.924904, -0.380200, 0.000000)
n0.000000, 0.000000, 1.000000), sa:4.712389, ea:5.893172
win:
begin elliparcproc, center38.910325, 637.289274, 0.000000)
minr:4.500000, majr:4.500000
minaxis-0.924904, -0.380200, 0.000000)
majaxis-0.380200, 0.924904, 0.000000)
n0.000000, 0.000000, 1.000000), sa:0.000000, ea:1.180783
these 2 descriptions define the same curve even though the axes and angles are different, since the angles are measured from the major axis counter-clockwise. the simplified output for each of these curves in odvectorizeex was identical in my testing, and i did not see that the correctaxis function had any effect on this particular arc on the mac.


所有的时间均为北京时间。 现在的时间是 01:17 AM.