找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 757|回复: 5

[求助]:如何将选择集中的实体存到另一个文件中?

[复制链接]
发表于 2004-10-26 21:10:59 | 显示全部楼层 |阅读模式

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

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

×
我通过acedSSGet(NULL, NULL, NULL, NULL, sset)选择了文件中的部分实体,然后void CreateDwg(char *strDwgName, ads_name sset)
{
AcDbDatabase *pDb = new AcDbDatabase();
       
AcDbBlockTable *pBtbl;
pDb->getSymbolTable(pBtbl, AcDb::kForRead);

// 获得模型空间块表记录
AcDbBlockTableRecord *pBtblRcd;
pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd, AcDb::kForWrite);
pBtbl->close();

// 遍历选择集中的实体,并将实体加入到模型空间块表记录中
long n=0;
acedSSLength(sset, &n);
ads_name ename;
AcDbObjectId entId;
AcDbObject *pObj;
for(long i=0; i<n; i++)
{
// 由实体名获取对象ID,再由对象ID获取实体指针。
acedSSName(sset,i,ename);
acdbGetObjectId(entId, ename);
bool b = entId.isNull();
acdbOpenAcDbObject(pObj, entId, AcDb::kForRead);
// 将实体加入到模型空间块表记录中。
Acad::ErrorStatus err = pBtblRcd->appendAcDbEntity((AcDbEntity *)pObj);
pObj->close();

pObj=NULL;
}

pBtblRcd->close();

Acad::ErrorStatus err = pDb->saveAs(strDwgName);

delete pDb;               

}

保存,可总不成功为何?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-10-27 10:14:49 | 显示全部楼层
你的那个strDwgName有没有加后最.dwg?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-27 12:57:40 | 显示全部楼层
同一实体不应该属于两个DataBase吧,你遍历实体,克隆之后再加入到新数据库试一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-27 14:09:07 | 显示全部楼层
3楼说得对,我觉得也是:一个实体应该仅属于一个数据库。是应该将实体克隆一下。
另外,我的文件名是有后缀的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-14 16:55:00 | 显示全部楼层
怎么克隆实体呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-14 19:50:32 | 显示全部楼层
Acad::ErrorStatus

wblock(

AcDbDatabase*& pOutputDb,

const AcDbObjectIdArray& outObjIds,

const AcGePoint3d& basePoint);

看下ARX中这个帮助,同样的问题以前也有人提过的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 08:25 , Processed in 0.200011 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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