明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1234|回复: 3

跪求高手解决此问题,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢

[复制链接]
发表于 2011-7-2 10:52:41 | 显示全部楼层 |阅读模式
vb.net调用AutoCAD是实体对象是老是出现这个问题,该怎么解决


    使用这个是:For Each Entity In AcadApp.ActiveDocument.ModelSpace
    出现以下错误:
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Autodesk.AutoCAD.Interop.AcadUtility”。此操作失败的原因是对 IID 为“{FE10C869-D8DB-441A-8859-9F2AC607E035}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
发表于 2011-7-6 21:28:38 | 显示全部楼层
你怎么还在用COM呀!用COM的过时了,现在直接用DLL,直接在CAD里加载即可!
  1.             Using trans As Transaction = db.TransactionManager.StartTransaction
  2.                 Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForRead)
  3.                 Dim btr As BlockTableRecord = trans.GetObject(bt.Item(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
  4.                 For Each Id As ObjectId In btr
  5.                     Dim obj As DBObject = trans.GetObject(Id, OpenMode.ForRead)
  6.                     ed.WriteMessage(vbCrLf & obj.GetType.ToString)
  7.                 Next
  8.             End Using
发表于 2011-7-8 19:57:06 | 显示全部楼层
我把VBA转成VB.NET时,好象出现过这个问题,但是现在忘了当时是怎么解决的了。
 楼主| 发表于 2011-10-17 12:48:02 | 显示全部楼层
谢谢你们的回答,我在看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 20:16 , Processed in 0.143379 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表