huaxiamengqing 发表于 2012-9-7 00:01:45

一起来学VB.net(3,磨刀不误砍柴)

学习VB开发CAD,还是VB开发其他软件,首先一定要弄清楚自己引用的东西到底是什么,自己的程序需要
什么dll去支持,程序在什么系统,什么版本可以运行,否则只会稀里糊涂哦!
为了让CAD的开发更加强大,更加简单,桌子公司06年写了两个dll(acmdg.dll, acdbmgd.dll )以
供.net程序员更容易去使用ARX里面的强大功能去开发CAD,无论是中望还是浩辰,都没有此接口的。.net
不仅可以使用这两个dll里面的各种函数,而且可以调用COM组件,两者结合使用,虽然.net的功能很强大
,但是COM组件的犀利也是不容忽略的。好了,废话到此为止。
1,引用
CAD2008-2012需要使用.netframe 3.5并引用acmdg.dll, acdbmgd.dll 这两个dll进行编译(xp,win7
系统均可)
CAD2013需要使用.netframe 4.0并且引用acmdg.dll, acdbmgd.dll ,accoremgd.dll 这三个dll进行编译
。(xp,win7系统均可)
如果需要调用com组件,也就是VBA开发的里面的东东,可以直接转换(thisdrawing),对于里面的对象使
用需要引用两个文件:
CAD2008
C:\Program Files\Common Files\Autodesk Shared\acax17enu.tlb
C:\Program Files\Common Files\Autodesk Shared\axdb17enu.tlb
(win7系统下的2008,好像有问题,老是引用不上)
CAD2012
C:\Program Files\Common Files\Autodesk Shared\acax18enu.tlb
C:\Program Files\Common Files\Autodesk Shared\axdb18enu.tlb
CAD2013
C:\Program Files\Common Files\Autodesk Shared\acax19enu.tlb
C:\Program Files\Common Files\Autodesk Shared\axdb19enu.tlb
所谓tlb其实并非真正的函数库所在,而是一个引向库文件的指针而已,所以如果缺少库文件,及时你将
tlb复制到别人机上也是用不了的。
引用上面的东西后倒入 空间Imports Autodesk.AutoCAD.Interop.Common 就可以直接使用 VBA里面的
所有对象了,一般使用CType函数转一下即可,比如 net里面的
dim acLine as new Autodesk.AutoCAD.DatabaseServices.Line
可以使用下面的语句转换为com对象里面acadline
dim ComLine asacadline = Ctype(acline,acadline)
这样以前acadline里面的东西都可以调用了。
除了这种前期绑定的方法,您也可以使用后期绑定的方法调用com对象,不引用,让程序自己去寻找com组
件的位置。这样的好处是解除了版本限制,坏处是稍微让程序吃力一些(不过一般你感觉不到的啦),第
二个坏处是你编码的时候不能自动弹出类的属性和方法,因为一切皆是object,程序运行的时候才去关联
acad对象。(所以嘛,我建议,先引用,写好程序后再去除引用,把一切再重新定义成object),具体的做
法是这样的
dim MthisDrawing as object =
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Autodesk.
AutoCAD.ApplicationServices.Document.AcadDocument
然后一级一级的往下走就是了。

今天就说到这里,家里电脑vs装的有毛病,等有时间在公司发点代码。下面附件上传的是ADN的免费视频
。由于视频太大,这里只上传一个pdf,大家可以去官网下载 http://au.autodesk.com.cn/QueryCourseAction.do?id=2305,大家有空一定要去官网转转,http://au.autodesk.com.cn/IndexAction.do,另外能看
懂e文的国外的讨论组是必看的东西,有问题发到哪上面一般都会有解决的
http://forums.autodesk.com/t5/NET/bd-p/152 我一般有问题都去这里搜的,明经论坛这版块有点冷清


魔子幻灭 发表于 2012-9-16 12:25:13

像这些基础知识对新手是很重要的,少走很多弯路!

c735023723 发表于 2012-9-25 08:35:58

很好

nigma 发表于 2012-9-27 21:17:04

LZ不错啊。国外论坛的资料的确丰富。

l3894055 发表于 2012-10-10 09:41:12

像这些基础知识对新手是很重要的,少走很多弯路

3xxx 发表于 2013-9-30 11:13:59

反正我收下了,非常有用,谢谢。
页: [1]
查看完整版本: 一起来学VB.net(3,磨刀不误砍柴)