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

yang686526 2009-05-06 09:34 PM

【转帖】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


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