CAD的句柄 、ID、實體之間的關係

一、CAD由句柄(字符串)獲取ID

public ObjectId GetObjectId(Database db, string handleString)
    {
        long l = Convert.ToInt64(handleString, 16);
        Handle handle = new Handle(l);
        return db.GetObjectId(false, handle, 0);
    }

二、IntPtr 與 string互轉
ID、指針、句柄和 ads_name 之間具有下面的轉換關係:
(1)從 ID 到對象acdbOpenAcDbObject 和 acdbOpenObject 中的任何一個。
(2)從對象指針到 ID:所有的數據庫常駐對象都繼承自 AcDbOb包含的 objectId 函數能獲得所指向對象的 ID。
(3)從句柄到 ID:使用 AcDbDatabase::getAcDbObje
(4)從 ID 到句柄:使用 AcDbObjectId::handle 函數。
(5)從指針到句柄:使用 AcDbObject::getAcDbHandle
(6) 從 ads_name 到 ID:使用全局函數 acdbGetObjectId。
(7)從 ID 到 ads_name:使用全局函數 acdbGetAdsName。

三、IntPtr 與 string互轉

string str = “aa”;

IntPtr init = Marshal.StringToHGlobalAnsi(str);

string ss= Marshal.PtrToStringAnsi(init);

//最後釋放掉

Marshal.FreeHGlobal(init);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章