|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
实体表达方式:handle, ObjectID,ads_name,指针point
- x6 g9 e$ x- _& }) U0 SObject Arx中,表达实体的方式主要有handle, ObjectID,ads_name,指针point;这些方式之间有什么区别呢? ' p. V# D, p# [2 ?9 w
Handle: 永远不变,存在DWG文件中; @! d# e! \0 Y- s. e: B
ObjectId:每次打开一个图,所有的对象都分得一个ObjectId,这个ObjectId维持不变,直到DWG被关闭' C. H& q$ ^. A' I
Point: 每次得到它,它总在变,就算它代表的实体是不变的.6 ~# U9 o: }$ r
ads_name 同 Point一样
4 \- ]9 a2 ?0 u& ?0 h. H
7 C/ v( w6 F j以下函数是常用的:
; ?' O+ {( X( [0 aAcad::ErrorStatus 5 V3 t' X' Q) d- Y7 [! Q% } `
AcDbDatabase::acdbOpenObject(AcDbObject*& obj, AcDbObjectId id, AcDb::OpenMode mode,! y2 B: n, F/ e6 k
Adesk::Boolean openErasedObject = Adesk::kFalse)1 ^" {. W4 G- r8 I; V
Acad::ErrorStatus
. H+ @1 g: R" x3 D, qgetAcDbObjectId(AcDbObjectId& retId,Adesk::Boolean createIfNotFound,
3 u% |) n9 F3 Y const AcDbHandle& objHandle,Adesk::UInt32 xRefId=0);
3 j( m, j% F* O# x
' y- Y, g- o' q9 ^ N/ nAcDbObject* pObject;) k2 a' v4 M: \
AcDbHandle handle;
2 j* d9 A' `( i c( C, k, ]# I
1 G" J/ d# j, o# b( Q0 z3 xpObject->getAcDbHandle(handle);6 Q8 h6 C, Q0 [; P- [
acdbGetAdsName(ads_name& objName,AcDbObjectId objId); 5 r. W5 o2 A3 L, N7 T( J
acdbGetObjectId(AcDbObjectId& objId,ads_name objName); # ~; f7 i- x- i7 D/ F; `
acdbHandEnt(const char * handle,ads_name entres); |
|