几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » DirectDWG
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-05-05, 10:15 AM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】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?
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭

相似的主题
主题 主题发起者 论坛 回复 最后发表
【转帖】explodetoblock causes exception yang686526 DirectDWG 0 2009-05-05 10:14 AM
【转帖】exception using inser yang686526 DirectDWG 0 2009-05-05 10:01 AM
【转帖】exception in safeopenobject90 yang686526 DirectDWG 0 2009-05-05 09:59 AM
【转帖】exception in materializefile loading dwf file yang686526 DirectDWG 0 2009-05-05 09:58 AM
【转帖】appendloop90 exception question yang686526 DirectDWG 0 2009-05-04 04:05 PM


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


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多