天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 153|回复: 0

得到块定义id(通过图纸、块名和数据库指针;如果数据库中没有该块定义,就从目标图纸

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-13 23:04:18 | 显示全部楼层 |阅读模式
    1. bool PhdArxBlock::GetBlkDefId(AcDbObjectId& idBlkDef, LPCTSTR szDwgPath, LPCTSTR szBlkName, AcDbDatabase* pDb /*= acdbCurDwg()*/) const
    2. {
    3.         AcDbBlockTableRecordPointer pInsertBlkTblRcd(szBlkName, pDb, AcDb::kForRead);
    4.         if (Acad::eOk == pInsertBlkTblRcd.openStatus())
    5.         {
    6.                 idBlkDef = pInsertBlkTblRcd->objectId();//当前数据库存在该块,返回该块定义id
    7.                 return true;
    8.         }
    9.         //打开图纸
    10.         AcDbDatabase* pDbDwg = new AcDbDatabase(false);
    11.         std::unique采用ptr<AcDbDatabase> apDbDwg(pDbDwg);
    12.         //Acad::ErrorStatus es = apDbDwg->readDwgFile(szDwgPath, 采用SH采用DENYNO);//zrx2010
    13.         Acad::ErrorStatus es = apDbDwg->readDwgFile(szDwgPath, AcDbDatabase::kForReadAndAllShare);//arx2017
    14.         if (Acad::eOk != es)
    15.                 return false;
    16.        
    17.         //从图纸数据库得到块定义id
    18.         AcDbObjectId idTempBlkDef = AcDbObjectId::kNull;
    19.         if (!GetBlkDefId(idTempBlkDef, szBlkName, apDbDwg.get()))
    20.                 return false;
    21.         //将图纸数据库中的块定义拷贝到pDb数据库中
    22.         if (!g采用ArxDatabase->DbCopyOfBlock(apDbDwg.get(), idTempBlkDef, pDb, szBlkName, idBlkDef))
    23.                 return false;
    24.         return true;
    25. }
    复制代码

     

     

     

     

    得到块定义id(通过图纸、块名和数据库指针;如果数据库中没有该块定义,就从目标图纸
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 13:28 , Processed in 0.158157 second(s), 28 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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