|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
实体表达方式:handle, ObjectID,ads_name,指针point
6 Q' D8 d; T1 ]# GObject Arx中,表达实体的方式主要有handle, ObjectID,ads_name,指针point;这些方式之间有什么区别呢?
. v5 W( [3 h- e6 kHandle: 永远不变,存在DWG文件中;" E6 f* i) H7 e, |
ObjectId:每次打开一个图,所有的对象都分得一个ObjectId,这个ObjectId维持不变,直到DWG被关闭
4 T g# E g) L- v: J j1 GPoint: 每次得到它,它总在变,就算它代表的实体是不变的.
0 u, R5 j8 I( c" dads_name 同 Point一样
: D/ |! B6 v, B9 ]+ z6 v7 v" B- q1 H# }) q' X; L$ s
以下函数是常用的:
7 t/ d# K% H4 n3 M' B$ PAcad::ErrorStatus
1 y1 U- ]4 U, ^. z5 zAcDbDatabase::acdbOpenObject(AcDbObject*& obj, AcDbObjectId id, AcDb::OpenMode mode,2 @" }" H' d/ z. W
Adesk::Boolean openErasedObject = Adesk::kFalse)5 T' L4 ^; e# U& n0 K6 O
Acad::ErrorStatus X4 B5 i) H' Q
getAcDbObjectId(AcDbObjectId& retId,Adesk::Boolean createIfNotFound,( I0 R" g- p5 \: b9 ?
const AcDbHandle& objHandle,Adesk::UInt32 xRefId=0);. B& a5 L% w2 v/ x* |' R& {
: A; q; J. L) g1 e* {. c
AcDbObject* pObject;
, z! e! v, O3 a4 ]$ r$ rAcDbHandle handle;
3 H5 E9 X) o$ Q5 h4 }9 u% I+ t7 c5 T5 w( K4 c& d
pObject->getAcDbHandle(handle);# ]5 w) `5 R% M' J3 ?8 [3 A% g
acdbGetAdsName(ads_name& objName,AcDbObjectId objId);
' h" J7 b1 t4 {/ b5 k' d6 lacdbGetObjectId(AcDbObjectId& objId,ads_name objName);
_, j! N3 Z1 j0 B# x! g8 uacdbHandEnt(const char * handle,ads_name entres); |
|