|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
实体表达方式:handle, ObjectID,ads_name,指针point
0 G% J( q+ S9 |: q6 GObject Arx中,表达实体的方式主要有handle, ObjectID,ads_name,指针point;这些方式之间有什么区别呢?
( J- k" J5 W4 R4 u0 S2 E: CHandle: 永远不变,存在DWG文件中;" t+ ^- t2 S. ^, k0 M
ObjectId:每次打开一个图,所有的对象都分得一个ObjectId,这个ObjectId维持不变,直到DWG被关闭
0 b* |+ n V: V! R( U5 nPoint: 每次得到它,它总在变,就算它代表的实体是不变的.
3 o$ u6 J' G4 ^: yads_name 同 Point一样
4 A, d h$ W. H3 v- h# b# z7 C7 Z9 F- b) S% V5 p
以下函数是常用的:) m2 w9 P' {5 E( H
Acad::ErrorStatus
* s; V& H. v2 T- T' I; yAcDbDatabase::acdbOpenObject(AcDbObject*& obj, AcDbObjectId id, AcDb::OpenMode mode,6 C! j0 z4 O6 P
Adesk::Boolean openErasedObject = Adesk::kFalse); {9 `- Q) t/ J: M
Acad::ErrorStatus3 O" A9 ?- v& [; e u8 k+ R
getAcDbObjectId(AcDbObjectId& retId,Adesk::Boolean createIfNotFound,# w9 k* B3 y3 S# g+ d
const AcDbHandle& objHandle,Adesk::UInt32 xRefId=0);1 g# k$ H* j; r7 Y& a; I
+ D' U! h1 A% k5 z+ U
AcDbObject* pObject;
: w0 h2 f9 ?$ g- }$ r& ?5 zAcDbHandle handle;$ L4 M; s( r1 |7 w$ q0 B7 P
5 W9 }' Z( x0 S; T/ SpObject->getAcDbHandle(handle);- k' S) b0 G# s8 X* I
acdbGetAdsName(ads_name& objName,AcDbObjectId objId);
- U5 ]. Z- E4 z# a$ jacdbGetObjectId(AcDbObjectId& objId,ads_name objName); . R8 K7 A3 I9 b) p) S# D+ J/ T6 o
acdbHandEnt(const char * handle,ads_name entres); |
|