明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3732|回复: 5

实体表达方式:handle, ObjectID,ads_name,指针point

[复制链接]
发表于 2003-7-10 11:46:00 | 显示全部楼层 |阅读模式
Object Arx中,表达实体的方式主要有handle, ObjectID,ads_name,指针point;这些方式之间有什么区别呢?

Handle:   永远不变,存在DWG文件中;

ObjectId:每次打开一个图,所有的对象都分得一个ObjectId,这个ObjectId维持不变,直到DWG被关闭

Point: 每次得到它,它总在变,就算它代表的实体是不变的.

ads_name 同 Point一样

以下函数是常用的:
Acad::ErrorStatus
AcDbDatabase::acdbOpenObject(AcDbObject*& obj,  
                             AcDbObjectId id,
                             AcDb::OpenMode mode,
                             Adesk::Boolean
                                 openErasedObject =
                                 Adesk::kFalse)
Acad::ErrorStatus
getAcDbObjectId(AcDbObjectId& retId,
                Adesk::Boolean createIfNotFound,
                const AcDbHandle& objHandle,
                Adesk::UInt32 xRefId=0);


AcDbObject* pObject;
AcDbHandle handle;
pObject->getAcDbHandle(handle);

acdbGetAdsName(ads_name& objName,
               AcDbObjectId objId);

acdbGetObjectId(AcDbObjectId& objId,
                ads_name objName);
发表于 2003-7-10 15:19:00 | 显示全部楼层
我想保存对象的句柄到别的对象的扩展数据中,需要得到它的值,是不是只有用getIntoAsciiBuffer这个函数呀?
发表于 2003-7-17 16:34:00 | 显示全部楼层
我把扩展数据中的handle(十六进制数)取出来了,怎么得到AcDbObjectId或AcDbHandle呀?
发表于 2003-7-21 17:43:00 | 显示全部楼层
是不是刚加入数据库的 对象没有AcDbHandle?为啥我读取刚加入数据库的对象的AcDbHandle,却得不到。
发表于 2005-5-21 19:23:00 | 显示全部楼层
应该编入FAQ
发表于 2007-4-25 23:01:00 | 显示全部楼层
怎么获得最后画的图形的Handle?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 20:35 , Processed in 0.191246 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表