修改块的名称

发布时间: 访问量:8

ModifySelectedBlockName(_T("12345"));


static void ModifySelectedBlockName(const ACHAR* newName)

{

ads_name entName;

ads_point pt;

if (acedEntSel(TEXT("\n选择需要修改的块:"), entName, pt) != RTNORM)

return;


AcDbObjectId selectedObjectId;

acdbGetObjectId(selectedObjectId , entName);

 


// 获取用户选择的实体

Acad::ErrorStatus errorStatus;



// 打开所选实体

AcDbEntity* pEntity;

errorStatus = acdbOpenObject(pEntity, selectedObjectId, AcDb::kForRead);

if (errorStatus != Acad::eOk) {

acutPrintf(L"无法打开所选实体。");

return;

}


AcDbBlockReference* pBlock = AcDbBlockReference::cast(pEntity);

AcDbObjectId idBlkDef = pBlock->blockTableRecord();


AcDbBlockTableRecordPointer pBlkTblRcd(idBlkDef, AcDb::kForWrite);

if (Acad::eOk != pBlkTblRcd.openStatus())

return ;


pBlkTblRcd->setName(newName);

pEntity->close();

}



//功能:得到快参照名称

static CString  GetBlkName(AcDbEntity* pEnt)

{

CString strBlkName;

AcDbBlockReference* pBlock = AcDbBlockReference::cast(pEnt);

AcDbObjectId idBlkDef = pBlock->blockTableRecord();


AcDbBlockTableRecordPointer pBlkTblRcd(idBlkDef, AcDb::kForRead);

if (Acad::eOk != pBlkTblRcd.openStatus())

return strBlkName;

TCHAR* szName = NULL;

pBlkTblRcd->getName(szName);

strBlkName = szName;


return strBlkName;

}

 


更多文章