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

简介:

实现画线和修改颜色全部代码:

// (C) Copyright 2002-2005 by Autodesk, Inc. 
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted, 
// provided that the above copyright notice appears in all copies and 
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting 
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. 
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC. 
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to 
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//

//-----------------------------------------------------------------------------
//----- acrxEntryPoint.h
//-----------------------------------------------------------------------------
#include "StdAfx.h"
#include "resource.h"

//-----------------------------------------------------------------------------
#define szRDS _RXST("qxzy")

//-----------------------------------------------------------------------------
//----- ObjectARX EntryPoint
class CModifyEntApp : public AcRxArxApp {

public:
	CModifyEntApp () : AcRxArxApp () {}

	virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
		// TODO: Load dependencies here

		// You *must* call On_kInitAppMsg here
		AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
		
		// TODO: Add your initialization code here

		return (retCode) ;
	}

	virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
		// TODO: Add your code here

		// You *must* call On_kUnloadAppMsg here
		AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;

		// TODO: Unload dependencies here

		return (retCode) ;
	}

	virtual void RegisterServerComponents () {
	}

public:

	// - qxzyModifyEnt._ChangeColor command (do not rename)
	static void qxzyModifyEnt_ChangeColor(void)
	{
		// 首先创建一条直线,然后修改直线的颜色为红色
		AcDbObjectId lineId;
		lineId = CreateLine();
		ChangeColor(lineId, 1);
	}

	static AcDbObjectId 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;
	}

	static Acad::ErrorStatus ChangeColor(AcDbObjectId entId, Adesk::UInt16 colorIndex)
	{
		AcDbEntity *pEntity;
		//打开图像数据库中的对象
		acdbOpenObject(pEntity, entId,AcDb::kForWrite);

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

		pEntity->close();

		return Acad::eOk;
	}

} ;

//-----------------------------------------------------------------------------
IMPLEMENT_ARX_ENTRYPOINT(CModifyEntApp)

ACED_ARXCOMMAND_ENTRY_AUTO(CModifyEntApp, qxzyModifyEnt, _ChangeColor, ChangeColor, ACRX_CMD_TRANSPARENT, NULL)


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

目录
相关文章
|
5月前
|
存储 人工智能 C++
【C++】有N种颜色的小球,开始同一种颜色小球装在同一个筐里面,颜色从1到N标号。有下面两个操作(Cab),把颜色是b的 (源码)【独一无二】
【C++】有N种颜色的小球,开始同一种颜色小球装在同一个筐里面,颜色从1到N标号。有下面两个操作(Cab),把颜色是b的 (源码)【独一无二】
|
6月前
|
前端开发
css 实用技巧 —— 使用border属性绘图(三角形、梯形、对话框尖角)
css 实用技巧 —— 使用border属性绘图(三角形、梯形、对话框尖角)
107 1
|
8月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
79 0
《QT从基础到进阶·十五》用鼠标绘制矩形(QGraphicsView、QPainter、QGraphicsRectItem)
《QT从基础到进阶·十五》用鼠标绘制矩形(QGraphicsView、QPainter、QGraphicsRectItem)
727 0
【Three.js入门】图形用户界面GUI、BufferGeometry创建矩形、随机生成多个随机颜色的三角形
【Three.js入门】图形用户界面GUI、BufferGeometry创建矩形、随机生成多个随机颜色的三角形
257 0
SwiftUI—通过Path路径绘制不规则的线条和图形
SwiftUI—通过Path路径绘制不规则的线条和图形
672 0
SwiftUI—通过Path路径绘制不规则的线条和图形
|
大数据 开发者
R 如何画图,图形参数、符号、线条和颜色| 学习笔记
快速学习 R 如何画图,图形参数、符号、线条和颜色
177 0
R 如何画图,图形参数、符号、线条和颜色| 学习笔记
QT软件开发: 访问QImage每个像素点填充指定颜色
QT软件开发: 访问QImage每个像素点填充指定颜色
504 0
|
前端开发 C++
QML学习笔记(四)-Canva画板画图功能-跟随鼠标位置进行随笔画
参考博主文章进行整理了代码,实现功能参考:https://blog.csdn.net/UbuntuTouch/article/details/46375697 源码:https://github.com/sueRimn/QML-ExampleDemos 更多的鼠标实时画图-画直线画圆画矩形等看下...
2506 0
|
C# 前端开发
[原]Wpf应用Path路径绘制圆弧
原文:[原]Wpf应用Path路径绘制圆弧 1. 移动指令:Move Command(M):M 起始点  或者:m 起始点比如:M 100,240或m 100,240使用大写M时,表示绝对值; 使用小写m时; 表示相对于前一点的值,如果前一点没有指定,则使用(0,0)。
3032 0