几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】3d solid cant be exploded (http://www.dimcax.com/hust/showthread.php?t=14930)

yang686526 2009-05-04 03:02 PM

【转帖】3d solid cant be exploded
 
3d solid can't be exploded
3d solid can't be exploded
hi,
i am trying to explode 3d solid in a block and it is not working. in the past versions it worked. however when i upgraded dwgdirect to 1.14.01, it doesn't work anymore. below is the code i am using and i have also attached the dwg file. does anyone know if this is a known bug or not??
thanks
su ming
oddbobjectid msid = pdb->getmodelspaceid();
oddbblocktablerecordptr pms = pdb->getmodelspaceid().safeopenobject(oddb::kforwrite) ;
oddbobjectiteratorptr pmsents = pms->newiterator();
oddbobjectidarray idstoexplode;
while (!pmsents->done())
{
oddbobjectid entid = pmsents->objectid();
oddbentityptr pmsent = oddbentity::cast(entid.openobject(oddb::kforwrite) );
if (pmsent->iskindof(oddbblockreference::desc()))
{
if (pmsent->explodetoblock(pms) == eok)
{
idstoexplode.push_back(entid);
}
}
pmsents->step();
}
// erase the exploded block references.
oddbobjectidarray::iterator explodeiter = idstoexplode.begin();
for ( ; explodeiter != idstoexplode.end(); explodeiter++)
{
oddbentityptr pent = (*explodeiter).safeopenobject(oddb::kforwrite);
pent->erase();
}
attached files
perhaps you did not load "modelergeometry" module.
vladimir
no,
i am currently including these libraries
..\dwgdirect\lib\debug\dd_root_dll.lib
..\dwgdirect\lib\debug\dd_alloc_dll.lib
..\dwgdirect\lib\debug\dd_ge_dll.lib
..\dwgdirect\lib\debug\dd_gs_dll.lib
..\dwgdirect\lib\debug\dd_db_dll.lib
..\dwgdirect\lib\debug\dd_gi_dll.lib
..\dwgdirect\lib\debug\dd_modelergeometry_dll.lib
..\dwgdirect\lib\debug\dd_spatialindex_dll.lib
and is modelergeometry.drx present is the application folder?
(i cannot reproduce the error in odamfcapp sample, - there all the solids are exploded to bodies and regions. body'es cannot be further exploded by design (as in arx))
vladimir
think i figured what i did wrong. sorry.


所有的时间均为北京时间。 现在的时间是 02:23 AM.