本帖最后由 作者 于 2008-9-22 0:13:48 编辑
我强制转换Entry为各个图元类,可是得到异常 System.InvalidCastException: 无法将类型为“System.__ComObject”的 COM 对象强制转换为类类型“AXDBLib.AcadEllipseClass”。进入 CLR 且不支持 IProvideClassInfo 或没有注册任何互操作程序集的 COM 组件都将包装在 __ComObject 类型中。这种类型的实例不能强制转换为任何其他类;不过,只要基础 COM 组件支持对接口 IID 的 QueryInterface 调用,就能将这些实例强制转换为接口。 搜索网络,这个问题以前人家问过:http://www.mjtd.com/bbs/Archive_view.asp?boardID=4&ID=27173 回帖说: - AcadEntity不用转换为相应的实体啊,如果为不同的实体就有相应实体的属性. - 没有错,是没有必要 Dim ss As AcadSelectionSet ThisDrawing.SelectionSets("TT").Delete Set ss = ThisDrawing.SelectionSets.Add("TT") ss.Select acSelectionSetAll Dim poly As AcadPolyline For Each elem In ss \'对每一条折线提取顶点坐标 If (elem.ObjectName = "AcDb3dPolyline") Then pnts = elem.Coordinates MsgBox pnts(0) End If Next elem
--------------------------- 那问题是到底怎么样得到各种图元的属性啊? 下面是我的代码示例,请前辈们帮帮忙: |