zcmfk 发表于 2010-8-19 08:32:00

如何将cad图元的Handle值转化为CAD实体?

<p><font face="Verdana"><font class="txt18"><strong>&nbsp;&nbsp;&nbsp;&nbsp;</strong>&nbsp; VB6应用ActiveX开发时 </font>可通过<em>HandletoObject</em>方法将cad图元的Handle值转化为CAD实体(Object) 。</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>请问:而今NET开发又是如何将cad图元的Handle值转化为CAD实体?</strong></p>

雪山飞狐_lzh 发表于 2010-8-19 11:36:00

<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ObjectId GetObjectId(Database db, string handleString)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long l = Convert.ToInt64(handleString, 16);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Handle handle = new Handle(l);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return db.GetObjectId(false, handle, 0);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font>

zcmfk 发表于 2010-8-19 14:47:00

<p>&nbsp;&nbsp; 我采用<font face="Verdana">Convert C# to VB.NET工具将版主的函数转换如下:</font></p>
<p><font face="Verdana"><font face="Verdana">&nbsp;&nbsp; Public Function GetObjectId(ByVal db As Database, ByVal handleString As String) As ObjectId<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim l As Long = Convert.ToInt64(handleString, 16)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim handle As New Handle(l)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return db.GetObjectId(False, handle, 0)<br/>&nbsp;&nbsp;&nbsp; End Function</font>&nbsp;</font></p>
<p>请问版主:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 转换后正确吗?</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 能否列出具体调用该函数的例子?</p>

chpmould 发表于 2010-11-2 22:06:00

目前还看不懂

xiwuchen@qq 发表于 2010-11-20 15:27:00

<p>很好,今天用上了</p>
<p>&nbsp;</p>

yxr_MJTD 发表于 2010-12-8 20:06:01

学习了!又学到一招。

arxnew 发表于 2010-12-9 08:55:58

学习中今天用上了

liuxu042 发表于 2011-10-13 17:52:58

正在学习net开发,问一下高手,如果图幅中不存在此句柄实体,怎么加以判断,恳请帮助
即当图幅中不存在句柄指定handle的要素时,语句db.GetObjectId(false, handle, 0)会发生错误,怎么提前判断实体是否存在呢?

齐天大圣3386 发表于 2011-10-13 21:42:53

Handle值转化的CAD实体(Object),是个怎样的实体?又有什么用处呢?

liuxu042 发表于 2011-10-14 08:57:35

有些项目客户检查数据时会将错误实体的句柄告诉我们,下一步我们就要通过句柄将这些实体查找出来,但是可能有些时候数据发生变动了,一些句柄的实体不存在了,使用语句db.GetObjectId(False, handle, 0)就会发生错误,想知道怎么样判断此句柄的实体存不存在?当不存在是,再次查找下一句柄实体要素(句柄很多,需要依次查找),请告诉指教。
页: [1]
查看完整版本: 如何将cad图元的Handle值转化为CAD实体?