乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 34|回复: 1

关于用VB.NET通过COM连接AUTOCAD2010读取块的问题请教。

[复制链接]

2

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2012-11-14 17:56:00 | 显示全部楼层 |阅读模式
各位,有个关于COM连接的问题请教。
之前我用VB6写了个针对AUTOCAD2010从DWG文件中读取块的程序,现在想升级到VB.NET2010,经过一番折腾后,目前这个问题无法解决,不知道在VB.NET中如何从其他的DWG文件中导入块,然后再加入现在的绘图中。
我使用如下命令调用子程序:
Call GetBlocksFromDwg("d:\abc.dwg", obj_Doc)
obj_Doc的定义如下:
Dim obj_Doc As Autodesk..Interop.AcadDocument
之前的VB6部分代码:
Private Sub GetBlocksFromDwg(DwgName As String, Target As Object)
Set DbxDoc = obj_Acad.GetInterfaceObject("ObjectDBX.AxDbDocument.18")
DbxDoc.Open DwgName
Dim Objects(0 To 0) As Object
'Set Objects(0) = DbxDoc.Blocks(BlkName)
For Each entry In DbxDoc.Blocks
    Set Objects(0) = DbxDoc.Blocks(entry.Name)
    DbxDoc.CopyObjects Objects, Target.Blocks
Next
End Sub
现在的VB.NET2010的部分代码:
Private Sub GetBlocksFromDwg(ByRef DwgName As String, ByRef Target As Object)
Dim entry As Object
Dim DbxDoc As Object
'On Error GoTo Failed
DbxDoc = obj_Acad.GetInterfaceObject("ObjectDBX.AxDbDocument.18")
DbxDoc.Open(DwgName)
Dim Objects(0) As Object
For Each entry In DbxDoc.Blocks
  Objects(0) = DbxDoc.Blocks(entry.Name)
         DbxDoc.CopyObjects(Objects, DbxDoc.Blocks, Type.Missing)
Next entry
End Sub
请告知我该怎么处理呢?多谢了。
回复

使用道具 举报

4

主题

25

帖子

6

银币

初来乍到

Rank: 1

铜币
41
发表于 2012-11-20 09:11:00 | 显示全部楼层
发错板块了,支持下
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 22:51 , Processed in 0.845011 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表