四、ObjectARX 修改对象的属性
来源:互联网 发布:淘宝默认付款是几天 编辑:程序博客网 时间:2024/06/10 12:55
环境:vs2008+ObjectARX 2010 +CAD2010 64位
上个博客中,如果在最后一行(close函数之前)添加上pLine->setColorIndex(1);
我们所创立的直线就会变成红色。
但是那是在对象关闭之前进行创建的,这一次,我们通过对象的ID号,进行改变我们对象的颜色的程序。
*******************************************************************************
AcDbBlockTableRecord 类的 appendAcDbEntity 函数能够将一个实体添加到图形数据库中,并且返回分配给该实体的 ID,这个函数上一节已经介绍过;全局函数acdbOpenAcDbEntity 用于从实体的 ID 号获得指向图形数据库中实体的指针,其定义为:
Acad::ErrorStatus acdbOpenAcDbEntity(AcDbEntity*& pEnt,AcDbObjectId id,AcDb::OpenMode mode,bool openErasedEntity = false);
第一个参数返回指向图形数据库实体的指针;
第二个参数输入了要获得的实体的 ID 号;
第三个参数指定了打开该实体的方式,如果仅是查询该实体的特性用“读”模式打开即可,
要修改实体的特性就必须用“写”模式打开;
第四个参数指定是否允许访问一个已经被删除
的实体。
访问实体的特性必须通过对象指针,但是一旦你获得了实体的ID、句柄或者ads_name,都能通过ID作中介而获得对象的指针。
改变的步骤如下:
利用向导创建一个ObjectARX工程
在入口点函数:
中AcrxEntryPoint.cpp中插入 创建一个新的命令行,所有的参数跟之前一样,名字为ChangeColor
将上一张博客里面的CreateLine 做一下修改如下:
static AcDbObjectId CHAP2CreateLine(void){// Add your code for command CHAP2.CreateLine hereAcGePoint3d ptStart(0,0,0);//创建一个3d空间的点AcGePoint3d ptEnd(100,100,0);AcDbLine *pLine = new AcDbLine(ptStart,ptEnd);//这个类代表了CAD里面的线实体,起始点终结点//获取指向块表的指针AcDbBlockTable *pBlockTable;acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable,AcDb::kForRead);//acdbHostApplicationServices()->workingDataBase()->getBlockTable(pBlockTable,AcDb::kForRead);AcDbBlockTableRecord *pBlockTableRecord;pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);AcDbObjectId lineld;pBlockTableRecord->appendAcDbEntity(lineld,pLine);//设置颜色//pLine->setColorIndex(1);pBlockTable->close();pBlockTableRecord->close();pLine->close(); return lineld;}
在 这个APP类之外重新添加一段函数代码如下:
Acad::ErrorStatus ChangeColor(AcDbObjectId entId,Adesk::UInt16 colorIndex){AcDbEntity *pEntity;acdbOpenObject(pEntity,entId,AcDb::kForWrite);pEntity->setColorIndex(colorIndex);pEntity->close();return Acad::eOk;}
配置好环境之后,点击运行测试。
结果:
0 0
- 四、ObjectARX 修改对象的属性
- ObjectArx获得全局对象的API
- 安卓修改对象的属性
- js如何修改对象的padding属性
- 修改对象私有属性
- Hibernate entity属性修改导致对象的记录被修改
- 关于给javascript对象添加、删除、修改对象的属性
- 不允许直接修改对象的结构体属性的成员
- [构建自己的持久层]四、Property对象属性描述
- Jsp四种内置对象的属性范围
- 六、1、对象属性的四种特性
- JQUERY 获取当前焦点对象属性, jquery attr()方法 添加,修改,获取对象的属性值。
- 修改对象的透明属性,实现淡出效果。
- javascript动态添加、修改、删除对象的属性和方法
- Delphi修改对象中非读方法的只读属性
- 属性“waitingInvoiceAmount”是对象的一部分,不能被修改
- jquery attr()方法 添加,修改,获取对象的属性值。
- jquery attr()方法 添加,修改,获取对象的属性值
- Android Edittext输入后切换界面出现白块
- A+B for Input-Output Practice (V)
- iOS App瘦身注意armv7 armv7s arm64
- C调用dll示例代码
- Android 自定义AlertDialog 去黑边终极解决方案(亲测有效!)
- 四、ObjectARX 修改对象的属性
- 关于java中double类型的比较大小的问题
- Swift学习 OC字符串和Swift字符串的转换
- Android ContentProvider深入分析
- android的事件传递
- A+B for Input-Output Practice (VI)
- linux下安装oracle_11g
- ava中的Iterator和Iterable
- Linux动态库相关知识整理