找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 778|回复: 6

[求助]:AcDbGroup问题

[复制链接]
发表于 2003-9-5 22:25:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我想把所绘的实体作成一个组,如下代码:

...............

AcDbObjectIdArray idArry;
AcDbObjectId pGroupId;
AcDbGroup *pGroup=new AcDbGroup;
AcDbDittionary *pGroupDict;
idArry.append(lineid);
idarry.append(blkid);
idarry.append(textid);
for(int i=0;i<idArry.length();i++)
{
   pGroup->append(idArry);
}
pCurDb->getGroupDictionary(pGroupDict,AcDb::kForWrite);
pGroupDict->setAt("MyGroup",pGroup,pGroupId);
pGroupDict->close();
pGroup->close();


其中:lineid,blkid,textid分别为已获得的直线,块,文字的ID,应该是对的,编译可以通过,可运行时AutoCAD死机,怎么回事?请高手指教,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-9-6 08:42:44 | 显示全部楼层
参考一下这段代码:
--------------
//生成新组(sGroupName)
//追加数组中所有实体到该组中
//组名字 , Id数组
int createGroup(CString sGroupName,
const AcDbObjectIdArray *idArr)
{
AcDbGroup *pGroup = new AcDbGroup((LPSTR)(LPCTSTR)sGroupName);
AcDbObjectId groupObjectId;
AcDbDictionary *pGroupDict = NULL;

acdbHostApplicationServices()->workingDatabase()
->getGroupDictionary(pGroupDict, AcDb::kForWrite);
pGroupDict->setAt(sGroupName, pGroup, groupObjectId);
pGroupDict->close();
pGroup->close();
acdbOpenObject(pGroup, groupObjectId, AcDb::kForWrite);
for (int i = 0; i < idArr->length(); i++)
{
groupObjectId = idArr->at(i);
pGroup->append(groupObjectId);
}
pGroup->close();
return TRUE;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-9-6 10:53:51 | 显示全部楼层
多谢斑竹

真的很奇怪,我按照上面的对程序做了修改后,仍然不行,怎么回事。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2003-9-8 08:43:58 | 显示全部楼层
调试一下,追踪具体的出错位置;
调换以下两行的位置为:
pGroup->close();
pGroupDict->close();
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-9-8 12:37:28 | 显示全部楼层
To stoneball 多谢你的回答,关键是运行该程序时就死机,因此不能跟踪出错位置,pGroup->close();pGroupDict->close();调换一下倒可以试试。

再问一个问题,如何设置一个全局变量,如测图比例尺,使得所有程序时都能识别它,这个关键问题你肯定会的,请不吝赐教。谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2003-9-8 13:27:49 | 显示全部楼层
类型:整数型
保存位置:图形
初始值:0
USERI1、USERI2、USERI3、USERI4 和 USERI5 用于整型值的存储和提取。
类型:实数型
保存位置:图形
初始值:0.0000
USERR1、USERR2、USERR3、USERR4 和 USERR5 用于实型值的存储和提取。
类型:字符串
不保存
初始值:""
USERS1、USERS2、USERS3、USERS4 和 USERS5 用于字符串数据的存储和提取。
你可以选取USERI1-5保存
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-9-8 20:03:36 | 显示全部楼层
对不起,能否说得具体些,我实在是搞不清楚。比如许多数字化测图软件,象南方CASS那样,绘图开始提示输入比例尺,这是怎么实现的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-25 12:18 , Processed in 0.338537 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表