|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
实体表达方式:handle, ObjectID,ads_name,指针point- p, d8 _2 W7 S
Object Arx中,表达实体的方式主要有handle, ObjectID,ads_name,指针point;这些方式之间有什么区别呢? * k8 a, ~5 o% o
Handle: 永远不变,存在DWG文件中;8 b$ ^+ [' Q% `6 ?8 H2 a
ObjectId:每次打开一个图,所有的对象都分得一个ObjectId,这个ObjectId维持不变,直到DWG被关闭
" F) a) t4 g5 S+ FPoint: 每次得到它,它总在变,就算它代表的实体是不变的.
+ O# E! w4 [8 u8 lads_name 同 Point一样 7 f& x0 t# I7 ^( H
3 H& Y: Z a/ z' W以下函数是常用的:
. G q/ W6 u) n+ X/ J0 L6 ~Acad::ErrorStatus
$ {( M6 j, W7 |5 d0 X) W1 SAcDbDatabase::acdbOpenObject(AcDbObject*& obj, AcDbObjectId id, AcDb::OpenMode mode,
$ I9 D6 I1 J$ x, |5 @ Adesk::Boolean openErasedObject = Adesk::kFalse)4 {; w8 C! J# i9 W7 E
Acad::ErrorStatus# d4 a7 B, u. H& ^3 R2 k
getAcDbObjectId(AcDbObjectId& retId,Adesk::Boolean createIfNotFound,
p9 h2 S% D8 h6 E, {3 s const AcDbHandle& objHandle,Adesk::UInt32 xRefId=0);' G8 \1 {6 z1 |
/ w* o% ~* Z6 x( T3 D8 _AcDbObject* pObject;
; G/ H; g. I: }# \+ M+ |AcDbHandle handle;
+ A! D$ f0 m! N- s$ \. M/ u) T' T2 |( R6 e# R8 N* A7 ^
pObject->getAcDbHandle(handle);
) P) x+ |) l2 v+ @: j- M1 wacdbGetAdsName(ads_name& objName,AcDbObjectId objId); 8 G4 d/ b" b g$ H4 \( E1 \9 B
acdbGetObjectId(AcDbObjectId& objId,ads_name objName); 6 A$ c+ q" T; A
acdbHandEnt(const char * handle,ads_name entres); |
|