guohq 发表于 2011-8-29 00:54:08

解决autocad2006,2007中某个对象获取GeomExtents时,左下角坐标为0,0的方法

本帖最后由 guohq 于 2011-8-29 00:56 编辑

在autocad2006,2007 用GeomExtents获取某个对象的左下角坐标时,总是0,0。下面给出在.net中调用com方法,以弥补arx.net在低版本中的不足。

使用前先添加引用 :如下图



代码如下:

Sub TT()
      Dim ID As ObjectId = ED.GetEntity("选择一个对象:").ObjectId
      Dim cadapp As Autodesk.AutoCAD.Interop.AcadApplication = Application.AcadApplication
      Dim Ent As Autodesk.AutoCAD.Interop.Common.AcadEntity = cadapp.ActiveDocument.HandleToObject(ID.Handle.ToString)

      Dim ptMin As Object = Nothing, ptMax As Object = Nothing

      Ent.GetBoundingBox(ptMin, ptMax)

      ED.WriteMessage("x=" & ptMin(0).ToString & ",y=" & ptMin(1).ToString & vbCrLf)
      ED.WriteMessage("x=" & ptMax(0).ToString & ",y=" & ptMax(1).ToString & vbCrLf)

    End Sub
注:此代码只给出大概方法,没有添加选择对象为空时的判断,没有对xline、xray等对象判断!!!
页: [1]
查看完整版本: 解决autocad2006,2007中某个对象获取GeomExtents时,左下角坐标为0,0的方法