CAD的句柄 、ID、实体之间的关系

版权声明:版权归个人所有!转载请注明出处。 https://blog.csdn.net/sapch33/article/details/83422981

一、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);

猜你喜欢

转载自blog.csdn.net/sapch33/article/details/83422981