/// <summary> /// /// string转换为ObjectId /// /// </summary> /// /// <param name="strId">string</param> /// /// <returns></returns> public static ObjectId StringToObjectId(string result){try{//获取其中的纯数字字符串string strId = System.Text.RegularExpressions.Regex.Replace(result, @"[^0-9]+", "");long intId = Convert.ToInt64(strId);//这里的strId是一个纯数字字符串,将其转换成64的long类型,32的会报错 IntPtr init = new IntPtr(intId);//将long类型的intId转换成IntPtr类型的整数 ObjectId obj = new Autodesk.AutoCAD.DatabaseServices.ObjectId(init);//在这就直接转化成ObjectId形式的数据了 return obj;}catch (Exception ex){throw;}}
比如我们要用对象存储实体信息,我们在别的工程(dll)中不想引用cad得dll,ObjetcID又是一个对象,我们可以把它ToString()成一个字符串保存在对象中,它其实就是Cad图形数据库中得一个ID字段(唯一值),后面获取实体就可以通过这个字符串拿到ObjectID对象