/// <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对象
共有条评论 网友评论