查看单个帖子
旧 2009-05-06, 08:46 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】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.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)