查看单个帖子
旧 2009-05-06, 09:34 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】page dimensions calculation 9slow0

page dimensions calculation (slow)
page dimensions calculation (slow)
hello support,
i'm using following code to calculate physical page dimensions:
oddblayoutptr playoutptr = layoutfrompage( npage );
if( !playoutptr.isnull() )
{
oddbextents ext;
//slow execution code
ext.addblockext( oddbblocktablerecordptr(playoutptr->getblocktablerecordid().safeopenobject()) );
dpaperwidth = ext.maxpoint().x - ext.minpoint().x;
dpaperheight = ext.maxpoint().y - ext.minpoint().y;
}
applying following code for the attached imported dwf image causes slow exectution of addblockext method. could you please let me know if there some other methods exists to perform much faster page size calculation.
thank you in advance!
vasyl.
attached files
addblockextents() actually performs regen of block geometry to calculate extents.
layout has getextmin() and getextmax() functions returning cached values of layout extents.
sergey slezkin

hi all,
i would like to use the addblockext with 1.13.
i can compile correctly a piece of code like:
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())
{
// get the extents
extsx = ext.maxpoint().x - ext.minpoint().x;
extsy = ext.maxpoint().y - ext.minpoint().y;
}
but when linking i get the link error:
error lnk2001: unresolved external symbol "public: void __thiscall
oddbextents::addblockext(class oddbblocktablerecord const *,class odgematrix3d c
onst &)" (?addblockext@oddbextents@@qaexpbvoddbblocktablere cord@@abvodgematrix3d
@@@z)
fatal error lnk1120: 1 unresolved externals
i searched for the symbol addblockext in all the 1.13 lib files without success.
any idea ?
oddbextents class was removed in 1.13 so you are compiling your code with 1.12 header.
you can use
oddbblocktablerecord::getgeomextents()
oddbblockreference::getgeomextents()
abstractviewpe::viewextents()
the last one is method of protocol extension which can be used to deal with all view-related classes (oddbviewport, oddbviewporttablerecord, oddbviewtablerecord, odgsview) in the same manner.
sergey slezkin
thanks, sergey.
the oddbblocktablerecord::getgeomextents() worked perfectly !
regards,
ciro
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)