乐筑天下

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

请问我这样创建新块为什么不能成功?

[复制链接]

12

主题

54

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2005-4-18 21:35:00 | 显示全部楼层 |阅读模式
void CMainPlate::CreateBlock()
{
        // TODO: Add your control notification handler code here
        acDocManager->lockDocument(curDoc());
        char BlockName[132];
        acedGetString(0,"请输入新块名\n",BlockName);
        AcDbBlockTableRecord *pBRecord=new AcDbBlockTableRecord();
        pBRecord->setName(BlockName);
        AcGePoint3d basept(0,0,0);
        pBRecord->setOrigin(basept);
        AcDbBlockTable *pBTable=NULL;
        acdbHostApplicationServices()->workingDatabase()\
                ->getSymbolTable(pBTable,AcDb::kForWrite);
        AcDbObjectId pBRecordId;
        pBTable->add(pBRecordId,pBRecord);
        pBTable->close();
        ads_name ssl;
        acedSSGet(NULL,NULL,NULL,NULL,ssl);
        long number;
        acedSSLength(ssl,&number);
        ads_name ent;
        for(int i=0;iappendAcDbEntity(entId,pEnt);
                pEnt->close();
        }
        pBRecord->close();
        acDocManager->unlockDocument(curDoc());
}
我想把选择集中的实体做成一个块,这段代码编译,链接都没有毛病,可我在插入新建块的时候,却什么也看不到,请高手指点。
回复

使用道具 举报

3

主题

97

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2005-4-20 17:10:00 | 显示全部楼层
已经在数据库里的实体是不能直接append到另外一个block table record里面的, 因为它们已经属于MODEL SPACE这个block table record了. 你观察一下pBRecord->appendAcDbEntity(entId,pEnt);的回返值就看到了, 会给你26, 就是eAlreadyInDatabase..
如果做新图块时可以把加入图块的实体删除, 建立一个AcDbObjectIdArray类实体, 在获得每一个选择集中的实体的ObjectId之后, 用array->append(Id), 最后把这个array放在新图块的记录名下. (pBRecord->assumeOwnershipOf ()) 就是把选中的实体从MODEL SPACE记录移动到新图块的记录.
如果不能删除做成新图块的实体, 在打开每一个选择集中的实体之后, 用以下代码复制实体:
AcDbEntity *pCopy;
AcDbObjectId copyId;
pCopy = (AcDbEntity*)pEnt->clone();
然后把pCopy加入新图块的记录.
回复

使用道具 举报

12

主题

54

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2005-4-20 19:11:00 | 显示全部楼层
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 08:02 , Processed in 0.150119 second(s), 58 queries .

© 2020-2025 乐筑天下

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