|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
实体表达方式:handle, ObjectID,ads_name,指针point
2 K# Z$ m, |0 f3 Q5 A0 @Object Arx中,表达实体的方式主要有handle, ObjectID,ads_name,指针point;这些方式之间有什么区别呢?
; e+ G% [) {! G9 g. ^Handle: 永远不变,存在DWG文件中;
; }9 B1 h$ J" w: jObjectId:每次打开一个图,所有的对象都分得一个ObjectId,这个ObjectId维持不变,直到DWG被关闭
& o- ?) @! R' q, _* N" yPoint: 每次得到它,它总在变,就算它代表的实体是不变的.
- J. E6 H/ f% f9 }6 Iads_name 同 Point一样
& w( I& x1 F6 f2 B# T/ P2 _* O
( F( ]4 _1 [( F- I+ }) H以下函数是常用的:; {% a+ b. E" v# B% \
Acad::ErrorStatus
8 d: _6 m5 D7 O+ @, r1 C# KAcDbDatabase::acdbOpenObject(AcDbObject*& obj, AcDbObjectId id, AcDb::OpenMode mode,
$ m: q G7 h; I- p& @0 \4 o Adesk::Boolean openErasedObject = Adesk::kFalse)
; H. D' X0 f5 |0 @2 TAcad::ErrorStatus
' a4 x$ c! S6 P" r; zgetAcDbObjectId(AcDbObjectId& retId,Adesk::Boolean createIfNotFound,1 ?( v/ |& j' u- N C5 E
const AcDbHandle& objHandle,Adesk::UInt32 xRefId=0);, ?* Y x% `1 [' \
4 [" t1 n w) z; ?" k3 O, s) H; |AcDbObject* pObject;
/ c% F) V5 E6 P/ j4 b% sAcDbHandle handle;$ T0 z; h6 I1 Q5 F
2 @5 ?6 w$ |/ H- G5 u7 d$ kpObject->getAcDbHandle(handle);
1 e7 ~. C( X! G( t% jacdbGetAdsName(ads_name& objName,AcDbObjectId objId);
4 v+ j: P/ e2 QacdbGetObjectId(AcDbObjectId& objId,ads_name objName);
{- R% Y9 a9 c$ h3 hacdbHandEnt(const char * handle,ads_name entres); |
|