bluefires 发表于 2016-5-6 20:55:34

在.net中如何实现objDBX,从而在不打开dwg图纸的情况下获取图纸的信息

在.net中如何实现objDBX,从而在不打开dwg图纸的情况下获取图纸的信息,原来在vba代码中,很容易实现,不过在.net中如何实现,请教下各位大神

下面是我VBA的代码(用之前程序要引用ObjectDBX)
Dim objDBX
Set objDBX = GetInterfaceObject("ObjectDBX.AxDbDocument.16")
objDBX .Open "C:\MyBlock.dwg"

在vb.net中,我写了下,但是不行
Dim objDBX As Autodesk.AutoCAD.Interop.Common.AxDbDocument
objDBX = GetObject("ObjectDBX.AxDbDocument.16")    ‘(这一步运行就出错了)
objDBX .Open "C:\MyBlock.dwg"

ivde 发表于 2016-5-6 22:11:36

readdwg   

bluefires 发表于 2016-5-9 20:15:15

能不能说详细点啊

king20061335 发表于 2016-5-10 09:13:00

Database db = new Database(false, false)
db.ReadDwgFile(filename, System.IO.FileShare.Read, true, null);

bluefires 发表于 2016-5-11 21:32:18

能不能用com的方式实现,不用arx实现,以前我在vb或者vba中可以很轻松的用1楼所示代码解决这个问题,不过换了vb.net后就实现不料了。有没有人可以帮忙实现下。
下面是以前完整的代码,可以在不打开cad的情况下,读取cad中的线。大家可以做一个有几根线的MyLINE.dwg文件,放在D盘下,然后打开一个空白的cad,随意写一个vba的sub,将下面的代码复制进去,执行单步运行,即可以看到效果。
Dim objDBX
Set objDBX = GetInterfaceObject("ObjectDBX.AxDbDocument.16")
objDBX .Open "D:\MyLINE.dwg"
Dim ent As AcadEntity
For Each ent In objDBX.ModelSpace
    If TypeOf ent Is IAcadLWPolyline Then
        '要做的操作代码
    endif
next

哪位帮我解决下vb.net下怎么处理吧
页: [1]
查看完整版本: 在.net中如何实现objDBX,从而在不打开dwg图纸的情况下获取图纸的信息