几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】find which layout an xref or image ref are on (http://www.dimcax.com/hust/showthread.php?t=16314)

yang686526 2009-05-05 10:56 AM

【转帖】find which layout an xref or image ref are on
 
find which layout an xref or image ref are on...
find which layout an xref or image ref are on...
is there a way to find out which layout (either layout handle or id i guess, or even name if needed) an xref or an imageref is located on...
i know with the xrefdatabase() i can get the whole database or with
oddbxrefgraph xrefg;
//load xrefgraph with the drawing
oddbxrefgraph::getfrom(pdb, xrefg);
i get all the xrefs for the pdb drawing.... but how can i get all the xrefs or img refs for a single layout? is it possible?
thanks in advance for the an answer, or tips as to where to check to get such a list
for any entity (including oddbblockreference referencing xref or oddbrasterimage) you can get it's owner.
entity's owner is oddbblocktablerecord which can be "normal" block or one of layout blocks (model space, paper space, paper space0, etc.)
oddbblocktablerecord::islayout() says if it's one of layout blocks. getlayoutid() return layout id or null if it's not a layout block.
but entity can be inserted in "normal" block. and reference to that block can be inserted in more than one layout....
to get all entities of specific class in layout you need to loop through layout block (oddblayout::getblocktablerecordid()).
but note that layout block can contain references to oddbblockreference entities so the looping needs to be recursive.
sergey slezkin
last edited by mmuratov; 20th january 2005 at 04:40 amfff">.


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