![]() |
【转帖】explodetoblock exception - me too
explodetoblock exception - me too
explodetoblock exception - me too i am using the following code that creates an exception eventually: class oddbblockreference_export : public oddbentity_export { public: void export(oddbentity* pent, oddbdatabase* pdb) const { // explode block into entities within block if (pent) { oddbblockreferenceptr pblkref = pent; oddbblocktablerecordptr pblock = pblkref->blocktablerecord().openobject(oddb::kforwrite); oddbobjectid id = pent->blockid(); oddbobjectid idowner = pent->ownerid(); if(true == pblock->isfromexternalreference() || true == pblock->isfromoverlayreference()) { 鈥?. never called } // end if external reference // explode blocks if (!idowner.isnull()) { // the exploded stuff will be appended to owner of entity being exploded oddbblocktablerecordptr pbtr = oddbblocktablerecord::cast(idowner.openobject(oddb ::kforwrite)); if (!pbtr.isnull()) { pent->database()->startundorecord(); odresult status = pent->explodetoblock(pbtr); } } } } }; the file that exhibits the problem has 7 blockreferences that contain blockreferences. i explodetoblock the 7, which gives me around 15,000 entities. as i continue to process, around entity 191, the explodetoblock causes an exception. there is nothing special that i can tell since there are a number of other blocks within blocks that have been exploded. my guess is that i have setup the database processing incorrectly and it eventually causes the exception(??). odmfcapp reads the dwg but draws very poorly and shows lots of memory leaks. i tried to attach the file, but the upload fails. error msg = "dwgdirect error: not that kind of class" ??? what does that mean??? how does it get to the blockreference method if it is not that kind of class? i think i got it. i've been working this one for awhile and i think the problem is the creation of the second blocktablerecordptr. if i just use the first one created things seem fine. nope sorry, what i thought fixed it seemed instead to cause the explodetoblock to just fail to explode but return eok anyway. so.... got any ideas? |
所有的时间均为北京时间。 现在的时间是 06:13 PM. |