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

yang686526 2009-05-06 08:46 PM

【转帖】odgiextcalc problem - wrong extents
 
odgiextcalc problem - wrong extents
odgiextcalc problem - wrong extents
hi,
i use odgiextcalc to calculate extents of the layout.
extcalc.setcontext(pdwgcontext);
extcalc.draw(pspace);
extcalc.getextents(extents);
but the extents are wrong, they are too big.
i didn't see any use of odgiextcalc in 1.14 bundle.
tia
regards,
michal sliwka
attached files
hi,
editorobject.h has class odexzoomcmd. it is implementation of zoomextents command. look at zoom_extents and getlayoutextents in editorobject.cpp. possibly, it will help you.
mfcapp has command zoomtoextents. i have tested it with your file and didnt find any problem with extents.
last edited by sslezkin; 7th august 2006 at 01:53 amfff">.
i have tested your code. my code is next
code:
odgeextents3d extents;
odrxobjectimpl<odgiextcalc> extcalc;
odstaticrxobject<odgicontextfordbdatabase> gicontext;
gicontext.setdatabase( pdb );
extcalc.setcontext(&gicontext);
extcalc.draw(pdb->getmodelspaceid().openobject(oddb::kforread));
extcalc.getextents(extents);
results for model space are
m_min 4416373.08,5356653.97,0.
m_max 4418616.62,5360684.71,494.27
the max is strange - i tested it and found that drawing has hatch entity around max point. handle of hatch is 6e30. you can select it in mfcapp by handle and last two strings in the dxfoutput will show object extents. so odgiextcalc return valid extents. autocad do not draw this hatch and i think that zoom to extents do not include it due to no graphics available (mfcapp doesn't show it too). but if you select hatch in autocad and change hatch pattern name to brass and scale to 0.001, hatch appears and autocad will scale drawing to new borders. if you need extents like after zoom extents, you should use functionality like in zoom to extents command.


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