ObjectARX第一课:创建自定义实体
源地址:https://blog.csdn.net/u012158162/article/details/67644392
const Adesk::UInt32 columns,
const AcGePoint3d* pVertexList,
const AcGiEdgeData* pEdgeData = NULL,
const AcGiFaceData* pFaceData = NULL,
const AcGiVertexData* pVertexData = NULL,
const bool bAutoGenerateNormals = true
) const = 0;
virtual Adesk::Boolean shell(const Adesk::UInt32 nbVertex,
const AcGePoint3d* pVertexList,
const Adesk::UInt32 faceListSize,
const Adesk::Int32* pFaceList,
const AcGiEdgeData* pEdgeData = NULL,
const AcGiFaceData* pFaceData = NULL,
const AcGiVertexData* pVertexData = NULL,
const struct resbuf* pResBuf = NULL,
const bool bAutoGenerateNormals = true
) const = 0;
- void AcDbMyEntity::MyEntityShell(AcGiWorldDraw *mode, const AcGePoint3d &ptBase, INT32 xLen, INT32 yLen, INT32 zLen)
- {
- const INT32 POINT_COUNT = 8;
- AcGePoint3d ptList[POINT_COUNT] = {};
- INT32 index = 0;
- ptList[index++].set(ptBase[X], ptBase[Y], ptBase[Z]);
- ptList[index++].set(ptBase[X] + xLen, ptBase[Y], ptBase[Z]);
- ptList[index++].set(ptBase[X] + xLen, ptBase[Y] + yLen, ptBase[Z]);
- ptList[index++].set(ptBase[X], ptBase[Y] + yLen, ptBase[Z]);
- ptList[index++].set(ptBase[X], ptBase[Y], ptBase[Z] + zLen);
- ptList[index++].set(ptBase[X] + xLen, ptBase[Y], ptBase[Z] + zLen);
- ptList[index++].set(ptBase[X] + xLen, ptBase[Y] + yLen, ptBase[Z] + zLen);
- ptList[index++].set(ptBase[X], ptBase[Y] + yLen, ptBase[Z] + zLen);
- Adesk::Int32 faceList[] = {4, 0, 1, 2, 3,
- 4, 4, 5, 6, 7,
- 4, 0, 1, 5, 4,
- 4, 1, 2, 6, 5,
- 4, 2, 3, 7, 6,
- 4, 3, 0, 4, 7,
- };
- INT32 faceLen = sizeof(faceList) / sizeof(faceList[0]);
- AcGiFaceData faceData;
- INT32 baseColor = 10;
- INT32 incColor = 30;
- short colors[] = {(baseColor += incColor),
- (baseColor += incColor),
- (baseColor += incColor),
- (baseColor += incColor),
- (baseColor += incColor),
- (baseColor += incColor)};
- faceData.setColors(colors);
- mode->geometry().shell(POINT_COUNT, ptList, faceLen, faceList, NULL, &faceData);
- }
- Adesk::Boolean AcDbMyEntity::subWorldDraw (AcGiWorldDraw *mode) {
- assertReadEnabled () ;
- INT32 xBase = m_ptBase[X];
- INT32 yBase = m_ptBase[Y];
- INT32 zBase = m_ptBase[Z];
- INT32 xLen = m_len3D[X];
- INT32 yLen = m_len3D[Y];
- INT32 zLen = m_len3D[Z];
- switch (mode->regenType())
- {
- case kAcGiStandardDisplay:
- {
- const INT32 POINT_COUNT = 5;
- AcGePoint3d ptList[POINT_COUNT] = {};
- INT32 index = 0;
- ptList[index++].set(xBase, yBase, zBase);
- ptList[index++].set(xBase + xLen, yBase, zBase);
- ptList[index++].set(xBase + xLen, yBase + yLen, zBase);
- ptList[index++].set(xBase, yBase + yLen, zBase);
- ptList[index].set(xBase, yBase, zBase);
- mode->geometry().polyline(POINT_COUNT, ptList);
- m_enShowMode = en2D;
- }
- break;;
- case eAcGiRegenTypeInvalid:
- case kAcGiHideOrShadeCommand:
- case kAcGiRenderCommand:
- case kAcGiForExplode:
- case kAcGiSaveWorldDrawForProxy:
- {
- MyEntityShell(mode, m_ptBase, xLen, yLen, zLen);
- }
- default:
- break;;
- }
- return (AcDbEntity::subWorldDraw (mode)) ;
- }
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
ObjectARX第一课:创建自定义实体相关推荐
- ObjectArx创建自定义实体
ObjectArx创建自定义实体 一.目的 在ObjectArx中已经有了许多实体,如AcDbLine,AcDbCircle,AcDbArc等,但在用户使用Cad时,会有一些对他们来讲常用的" ...
- 利用c语言在屏幕上画出窗口,第一课:创建一个windows窗口
跟我一起学图形编程 作者:姚明联系方式: 欢迎使用我的图形学教程.我是计算机专业的学生,对图形图像技术有浓厚的兴趣,就读期间广泛的涉及相关知 ...
- Python入门到精通三天速成第一讲——创建自定义类
class Person:def set_name(self, name):self.name = namedef get_name(self):return self.namedef greet(s ...
- ObjectARX简单自定义实体的实现
目录 1. ObjectARX向导(Wizard)的安装 2. 创建自定义实体工程CustomStair 3. 添加实体类 3.1 利用向导添加自定义类 3.2 "初始化"自定义类 ...
- 专题---自定义实体类
目录 一.概述 二.项目初始化 2.1 创建空解决方案 2.2 DBX操作 2.2.1 创建DBX 2.2.2 调试DBX 2.2.3 创建实体类 2.2.4 调试实体类 2.3 ARX操作 2.3. ...
- 掌握 ASP.NET 之路:自定义实体类简介
发布日期 : 5/24/2005| 更新日期 : 5/24/2005 Karl Seguin Microsoft Corporation 摘要:有些情况下,非类型化的 DataSet 可能并非数据操作 ...
- 掌握 ASP.NET 之路:自定义实体类简介 来源 :msdn
ADODB.RecordSet 和常常被遗忘的 MoveNext 的时代已经过去,取而代之的是 Microsoft ADO.NET 强大而又灵活的功能.我们的新武器就是 System.Data 名称空 ...
- ObjectARX C++自定义实体
ObjectARX C++自定义实体 实现流程 首先创建一个继承自AcDbEntity的自定义实体类,重写几个虚函数方法: .从AcDbEntity类中重载几个必须的虚函数: virtual Ades ...
- ObjectARX自定义实体
说明: 此次绘制的CAD自定义实体是一个矩形,具有拉伸功能.因为初次接触自定义实体,在一次次制作的过程中遇到了很多困难,幸好有老大和同事的帮助,当然还有广大网友们的文章协助,才完成了这个自定义实体的绘 ...
最新文章
- java 集合 接口_Java集合之Collection接口
- js通过正则表达式解析xml 获取指定的内容
- 清华大学施路平:双脑驱动的人工通用智能
- mysql 存储过程无效_用VC通过DLL包连接MySQL,执行存储过程后,再执行其他查询无效?解决方法...
- OGNL探秘之一:数据转换的乐园
- windows中使用scrapyd遇到的问题
- 学习笔记4 :opencv 、PIL、matplotlib.image打开、保存图片
- GPU架构(三十三)
- 全面掌握ping命令(四)ping命令常用参数
- 虚拟打印机可以设置默认保存路径吗
- matlab锁相放大器,锁相放大器原理和模块实现与仿真.DOC
- HTMl账号密码登录跳转下一个页面问题/网页输入正确的账号面膜登录下一个界面/PHP网页禁止某个链接直链访问
- 【常识】气体单位%Vol、ppm、%LEL
- 录屏存储为gif图片
- notepad编译java文件_notepad编译java
- Linux后端开发-POSIX标准以及shell编程
- LaTeX的一般图文混排介绍
- MySQL——VARCHAR和CHAR类型
- 输出N阶方阵 ,输出该方阵及方阵主对角线的总和
- 基于java的坦克大战游戏系统毕业设计-5.0(论文设计+源码+PPT答辩).rar