实体表达方式:handle, ObjectID,ads_name,指针point
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); 我想保存对象的句柄到别的对象的扩展数据中,需要得到它的值,是不是只有用getIntoAsciiBuffer这个函数呀? 我把扩展数据中的handle(十六进制数)取出来了,怎么得到AcDbObjectId或AcDbHandle呀? 是不是刚加入数据库的 对象没有AcDbHandle?为啥我读取刚加入数据库的对象的AcDbHandle,却得不到。 应该编入FAQ 怎么获得最后画的图形的Handle?
页:
[1]