高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】explode proxy graphics
explode proxy graphics
explode proxy graphics
hello,
in the old c-style toolkit there was an function called adexplodeproxytolist()
which i used to explode all proxy graphics during dwg-import.
now i need the same functinality within dwgdirect.
can someone help?
regards
dirk busch
maybe this helps.
this examples explodes all proxys in the block and marks them invisible.
however some of the proxys cannot be exploded ???
regards
----------------------------------------
{
// open the block table
oddbblocktableptr pblocks = pdb->getblocktableid().safeopenobject();
// get an iterator for the block table
oddbsymboltableiteratorptr pblkiter = pblocks->newiterator();
// for each block in the block table
for (pblkiter->start(); ! pblkiter->done(); pblkiter->step())
{
// open the block for writing
oddbblocktablerecordptr pblock = pblkiter->getrecordid().safeopenobject(oddb::kforwrite);
// get an entity iterator
oddbobjectiteratorptr pentiter = pblock->newiterator();
// for each entity in the block
for (; !pentiter->done(); pentiter->step())
{
// open the entity for writing
oddbentityptr pent = pentiter->entity(oddb::kforwrite);
oddbproxyentity* pproxy = (oddbproxyentity*)pent->queryx(oddbproxyentity::desc());
// explode visible proxy entity
if (pproxy && pproxy->visibility() == oddb::kvisible)
{
oddbobjectidarray idarray;
std(cout) << "proxy " << pproxy->getdbhandle();
odresult res = pproxy->explodetoblock(pblock, &idarray);
if (res == eok)
{
// make exploded proxy entity invisible
pproxy->setvisibility(oddb::kinvisible);
std(cout) << " - successfully exploded" << std(endl);
}
else
std(cout) << " - not exploded - error " << res << std(endl);
for (unsigned int i = 0; i < idarray.length(); ++i)
std(cout) << "exploded to " << idarray.at(i).gethandle() << std(endl);
}
if (pproxy)
pproxy->release();
}
}
}
as mentioned above some proxys cannot be exploded.
i've tried to attach a sample dwg which has 2 of these proxys but it doesnt work.
also when converting a larger dwg which i am not allowed to post here, the converted dxf file with the exploded proxy data cannot be loaded in autocad.
regards
quote:
originally posted by ime
maybe this helps.
this examples explodes all proxys in the block and marks them invisible.
however some of the proxys cannot be exploded ???
regards
thank you. for my files it seem's to work quite well.
regards
dirk busch
|