本帖最后由 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等对象判断!!! |