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


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


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-17, 08:43 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】如何在无模式对话框中对autocad数据库进行操作?

如何在无模式对话框中对autocad数据库进行操作?
如何在无模式对话框中对autocad数据库进行操作?
在无模式对话框中对当前acdbdatabase进行保存或新建acdbdatabase总出错?但用模式对话框则无问题?请问各位,这是不是程序锁定的问题?怎样做?
ss
管理文档状态。
活动文档如果不是当前文档,就会有很多函数被禁止。
非模式对话框不是任何指定文档命令处理器状态的一部份
解决:要显式地管理文档状态。
see
原因
在多文档状态下,
acdbhostapplicationservices()->workingdatabase()不是指一个文档,而是多个文档,如果此时对它进行写操作,就会使cad死机
在单文档状态时
acdbhostapplicationservices()->workingdatabase()相当于r14时的curdwg(),
对于对话框而言,模式对话框在创建时,已经是属于某一个文档了,因此它不会有问题, 非模式对话框则不是属于任何一个文档的,如果此时直接往数据库中加东西就会死机。
2、解决方法
从根本上讲,在使用非模式对话框时要显式地管理文档的状态,当然,如果本来就不需要多文档,则将系统变量sdi设为1也能解决非模式对话框的问题。
下面这段代码是向当前文档写入一条直线,至于不是向当前文档而是向指定文档写入实体,则可依此变化之。
acgepoint3d pt0(0,0,0),pt1(100,500,0);
acdbline *pent=new acdbline(pt0,pt1);
acdbblocktable *pblocktable;
acdocmanager->lockdocument( acdocmanager->curdocument(), acap::kwrite,
null,
null,true) ;
//将当前文档锁定,因为要写入实体了
acdocmanager->curdocument()->database()->getblocktable(pblocktable,acdb::kforread);
//打开当前文档的块表
//acdbhostapplicationservices()->workingdatabase()->getblocktable(pblocktable,acdb::kforread);
acdbblocktablerecord *pblocktablerec;
pblocktable->getat(acdb_model_space,pblocktablerec,acdb::kforwrite);
pblocktable->close();
acdbobjectid eid;
pblocktablerec->appendacdbentity(eid,pent);
pent->close();
pblocktablerec->close();
//运行完了要解锁
acdocmanager->unlockdocument( acdocmanager->curdocument()) ;
see again
解决了问题,鲜花一朵,聊表谢意!
谢谢goldenshin,我也遇到过这种问题,看后已解决!
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


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

高级搜索
显示模式

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

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



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


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