![]() |
【转帖】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 |
所有的时间均为北京时间。 现在的时间是 01:28 PM. |