乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 64|回复: 4

如何在无模式对话框中对autocad数据库进行操作?

[复制链接]

10

主题

18

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
58
发表于 2002-4-22 15:28:00 | 显示全部楼层 |阅读模式
在无模式对话框中对当前acdbdatabase进行保存或新建acdbdatabase总出错?但用模式对话框则无问题?请问各位,这是不是程序锁定的问题?怎样做?
回复

使用道具 举报

32

主题

150

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
278
发表于 2002-4-22 16:41:00 | 显示全部楼层
活动文档如果不是当前文档,就会有很多函数被禁止。
非模式对话框不是任何指定文档命令处理器状态的一部份
解决:要显式地管理文档状态。
回复

使用道具 举报

32

主题

150

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
278
发表于 2002-4-29 10:29:00 | 显示全部楼层
原因
在多文档状态下,
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()) ;
回复

使用道具 举报

11

主题

34

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
78
发表于 2005-5-4 20:11:00 | 显示全部楼层
解决了问题,鲜花一朵,聊表谢意!
回复

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2005-5-6 12:07:00 | 显示全部楼层
谢谢goldenshin,我也遇到过这种问题,看后已解决!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 09:49 , Processed in 0.199577 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表