几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】not getting correct measuremen (http://www.dimcax.com/hust/showthread.php?t=17349)

yang686526 2009-05-06 06:39 PM

【转帖】not getting correct measuremen
 
not getting correct measurement
not getting correct measurement
in reference to the query posted on 7th april 2005 ( getting the extents).
as per the solution given below :
************************************************** *******
/ get the drawing extents for the active view.
double extsx = 0.0;
double extsy = 0.0;
odgsview* pview = pdevice->viewat(0);
oddbextents ext;
ext.addblockext(oddbblocktablerecordptr(pdb->getactivelayoutbtrid().safeopenobject()), pview->viewingmatrix());
if (ext.isvalidextents())
{
odgepoint3d targ = pview->target();
odgevector3d dirfromtarg = pview->position() - targ;
// set target to center of the view and keep the view direction.
targ = ext.minpoint() + (ext.maxpoint() - ext.minpoint()) / 2.0;
targ.transformby(pview->viewingmatrix().invert());
if(pview->isfrontclipped() || pview->isbackclipped())
{
// keep distance from target to front & back planes.
targ = targ.orthoproject(odgeplane(pview->target(), dirfromtarg));
}
// get the extents and increase by 2% for margin around drawing.
extsx = ext.maxpoint().x - ext.minpoint().x;
extsy = ext.maxpoint().y - ext.minpoint().y;
pview->setview(targ + dirfromtarg, targ, pview->upvector(), extsx * 1.02, extsy * 1.02);
}
// calculate the scale so the drawing will fit inside a 10,000 x 10,000 window.
double dscale = (extsx >= extsy) ? (10000.0 / extsx) : (10000.0 / extsy);
// set the drawing window to the true extents size.
odgsdcrect winrect(0, static_cast<long>(extsx * dscale), 0, static_cast<long>(extsy * dscale));
pdwgvectorizedevice->onsize(winrect);
************************************************** ******
when i mplement the above solution, on scaling the width and height by 2%,
the block of 100 * 100 * 100 measures 98.98 * 98.98 * 98.98, that is it reduces by 2%. on not scaling the width and height the sheet borders get clipped but the measurment is 100* 100* 100.
please can anyone advice on the problem , this is urgent.
thank you for the help
nupur


所有的时间均为北京时间。 现在的时间是 07:35 PM.