乐筑天下

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

怎么样将数据库中不同的对象另存为不同的dwg文件?

[复制链接]

6

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
31
发表于 2002-9-28 09:19:00 | 显示全部楼层 |阅读模式
比如将直线和文本存为不同的dwg文件!
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

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

铜币
286
发表于 2002-9-28 11:19:00 | 显示全部楼层
1、新建若干空数据库,并打开块表记录,准备写入。
AcDbDatabase dbLine=new AcDbDatabase(true,true);//新建空数据库,第二个参数用true,新数据库不取得焦点
AcDbBlockTable *pLineBlk;
dbLine->getBlockTable(pLineBlk,AcDb::kForRead);
AcDbBlockTableRecord *pLineRcd;
pLineBlk->getAt(ACDB_MODAL_SPACE,pLineRcd,AcDb::kForWrite);
pLineBlk->close();
AcDbDatabase dbText=new AcDbDatabase(true,true);
AcDbBlockTable *pTextBlk;
dbText->getBlockTable(pTextBlk,AcDb::kForRead);
AcDbBlockTableRecord *pTextRcd;
pTextBlk->getAt(ACDB_MODAL_SPACE,pTextRcd,AcDb::kForWrite);
pTextBlk->close();
2、打开源数据库,浏览源数据库的对象,根据不同对象类型向不同的数据库中添加对象。
AcDbDataBase dbResource=new AcDbDatabase;//默认AcDbDatabase构造函数,新数据库为当前文档
dbResource->readDwgFile("源数据库.dwg");
AcDbBlockTable *pBlkTbl;
dbResource->getBlockTable(pBlkTbl,AcDb::kForRead);
AcDbBlockTableRecord *pBlkTblRcd;
pBlkTbl->getAt(ACDB_MODAL_SPACE,pBlkTblRcd,AcDb::kForRead);
pBlkTbl->close();
AcDbBlockTableRecordIterator *pBlkItr;
pBlkTblRcd->newIterator(pBlkItr);
AcDbEntity *pEnt;
for(pBlkItr->start();!pBlkItr->done();pBlkItr->step())
{
  pBlkItr->getEntity(pEnt,AcDb::kForRead);
  if(pEnt->isKindof(AcDbLine::desc())
    pLineRcd->appendAcDbEntity(pEnt);
  elseif(pEnt->isKindof(AcDbText::desc())
    pTextRcd->appendAcDbEntity(pEnt);
  pEnt->close();
}
pBlkTblRcd->close();
pLineRcd->close();
pTextRcd->close();
delete pBlkItr;
delete dbResource;
3、保存新数据库。
dbLine->saveAs("直线.dwg");
dbLine->close();
dbText->saveAs("文字.dwg");
dbText->close();
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 06:42 , Processed in 0.294038 second(s), 56 queries .

© 2020-2025 乐筑天下

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