您的位置:首页 > 移动开发 > Objective-C

ObjectArx学习笔记-画线并修改颜色改进写法

2014-05-22 15:09 225 查看
1、创建工程CreateEnts

2、添加类CCreateEnt,在文件CreateEnt.h中添加函数声明,在CreateEnt.cpp添加函数实现代码:

static AcDbObjectId CreateLine();
AcDbObjectId CCreateEnt::CreateLine()
{
AcGePoint3d ptStart(0,0,0);
AcGePoint3d ptEnd(100,100,0);
AcDbLine *pLine = new AcDbLine(ptStart, ptEnd);

AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()
->getBlockTable(pBlockTable,AcDb::kForRead);

AcDbBlockTableRecord *pBlockTableRocord;
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRocord,
AcDb::kForWrite);

AcDbObjectId lineId;
pBlockTableRocord -> appendAcDbEntity(lineId, pLine);

pBlockTable -> close();
pBlockTableRocord -> close();
pLine -> close();

return lineId;
}


3、添加类CModifyEnt,在文件CModifyEnt.h中添加函数声明,在CModifyEnt.cpp添加函数实现代码:
static Acad::ErrorStatus ChangeColor(AcDbObjectId entId, Adesk::UInt16 colorIndex);
Acad::ErrorStatus CModifyEnt::ChangeColor(AcDbObjectId entId, Adesk::UInt16 colorIndex)
{
AcDbEntity *pEntity;
//打开图像数据库中的对象
acdbOpenObject(pEntity, entId,AcDb::kForWrite);

//修改实体颜色
pEntity->setColorIndex(colorIndex);

pEntity->close();

return Acad::eOk;
}


4、在ObjectARX中注册新命令_ChangColor。首先应用之前的两个头文件,最后添加命令的实现代码:
#include "CreateEnt.h"
#include "ModifyEnt.h"
// - qxzyCreateEnts._ChangeColor command (do not rename)
static void qxzyCreateEnts_ChangeColor(void)
{
// Add your code for command qxzyCreateEnts._ChangeColor here
AcDbObjectId lineId;
lineId = CCreateEnt::CreateLine();
CModifyEnt::ChangeColor(lineId, 1);
}


最后编译
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: