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

简介:

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);
	}

最后编译

转载:http://blog.csdn.net/foreverling/article/details/26587933

目录
相关文章
|
5月前
|
存储 人工智能 C++
【C++】有N种颜色的小球,开始同一种颜色小球装在同一个筐里面,颜色从1到N标号。有下面两个操作(Cab),把颜色是b的 (源码)【独一无二】
【C++】有N种颜色的小球,开始同一种颜色小球装在同一个筐里面,颜色从1到N标号。有下面两个操作(Cab),把颜色是b的 (源码)【独一无二】
|
6月前
|
前端开发
css 实用技巧 —— 使用border属性绘图(三角形、梯形、对话框尖角)
css 实用技巧 —— 使用border属性绘图(三角形、梯形、对话框尖角)
101 1
|
8月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
79 0
|
前端开发
CSS基本知识之复合选择器、元素显示模式、背景图片位置,精灵图(一)
CSS基本知识之复合选择器、元素显示模式、背景图片位置,精灵图
|
前端开发 安全 容器
CSS基本知识之复合选择器、元素显示模式、背景图片位置,精灵图(二)
CSS基本知识之复合选择器、元素显示模式、背景图片位置,精灵图
|
前端开发
前端 SVG 与 Canvas 框架案例 (画线、矩形、箭头、文字 ....)
前端 SVG 与 Canvas 框架案例 (画线、矩形、箭头、文字 ....)
150 0
|
前端开发
CSS 奇技淫巧 | 巧妙实现文字二次加粗再加边框
CSS 奇技淫巧 | 巧妙实现文字二次加粗再加边框
354 0
CSS 奇技淫巧 | 巧妙实现文字二次加粗再加边框
|
大数据 开发者
R 如何画图,图形参数、符号、线条和颜色| 学习笔记
快速学习 R 如何画图,图形参数、符号、线条和颜色
176 0
R 如何画图,图形参数、符号、线条和颜色| 学习笔记