ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ObjectARX学习笔记(三十)---如何克隆实体clone(),getTransformedCopy()

2020-03-01 23:07:57  阅读:287  来源: 互联网

标签:NULL clone pBlockTableRecord ObjectARX getTransformedCopy Acad pEntity pBlockIte


<pre name="code" class="cpp">AcDbDatabase *pDataBase = NULL;
pDataBase = acdbCurDwg(); //根据需要传入不同AcDbDatabase 就可以做到不同dwg克隆实体

Acad::ErrorStatus es = Acad::eOk;

//
AcDbBlockTable *pBlockTable = NULL;
es = pDataBase->getBlockTable(pBlockTable, AcDb::kForRead); //得到块表指针
if (Acad::eOk != es)
return false;

AcDbBlockTableRecord *pBlockTableRecord = NULL;
es = pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite); //得到块表记录指针
if (Acad::eOk != es)
return false;

pBlockTable->close();
pBlockTable = NULL;

AcDbBlockTableRecordIterator *pBlockIter = NULL;
es = pBlockTableRecord->newIterator(pBlockIter);
if (Acad::eOk != es)
return false;
AcDbEntity *pEntity = NULL;
AcGeMatrix3d xform;
xform.setToTranslation(AcGeVector3d(100,500,0));
AcDbObjectId objTmpId = AcDbObjectId::kNull;
for (pBlockIter->start(); !pBlockIter->done(); pBlockIter->step())
{
pBlockIter->getEntityId(objTmpId);
AcDbObjectPointer<AcDbEntity> pEnt(objTmpId, AcDb::kForWrite);
if (pEnt.openStatus() == Acad::eOk)
{

//pEntity = AcDbEntity::cast(pEnt->clone());//克隆不移动
pEnt->getTransformedCopy(xform,(AcDbEntity*&)pEntity); //克隆移动实体
pEntity->setColorIndex(1);
}

}

pBlockTableRecord->appendAcDbEntity(objTmpId,pEntity);
pEntity->close();
pBlockTableRecord->close();
pBlockTableRecord = NULL;

if (pBlockIter != NULL)
{
delete pBlockIter;
pBlockIter = NULL;
}
return true;
 

标签:NULL,clone,pBlockTableRecord,ObjectARX,getTransformedCopy,Acad,pEntity,pBlockIte
来源: https://www.cnblogs.com/mjgw/p/12392794.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有