[原创]MATLAB 利用VB.NET在AutoCAD中画图
本帖最后由 zccbest 于 2010-9-27 16:03 编辑在上一个帖子中说到,matlab 调用.NET的 dll文件,但是那个输入不是数组,matlab的数组怎么能够被C#或VB.NET识别呢?下面的实例演示一下。以前做凸轮型线设计的软件,用户提出一个要求,能不能在matlab把生成数据直接倒AutoCAD生成升程表呢?因为几百个数据手工输入至少需要半天时间。我做了一些尝试,matlab直接调用AutoCAD,结果失败。因为当涉及到数组时(坐标点为数组)matlab的数组并不能被AutoCAD识别,后来又尝试在MATLAB中将数组转换成.NET数组,结果还是不行。但是利用VB.NET来调用AutoCAD却正常,于是产生一个想法,利用VB.NET写一个类库(dll文件)来调用AutoCAD,matlab调用VB.NET生成的dll文件,在matlab中将数组转换成NET 数组,然后作为dll文件的输入,结果验证成功。P.S:为什么利用VB.NET而不用C#呢,因为AutoCAD的VB是利用VB编写的,利用VB.NET语法接近并且VB.NET的CreateObject功能很强大,虽然利用C#也可以实现,但程序显得复杂了,我认为混编应该基于.NET平台,而不应该拘泥于哪种语言。
本帖最后由 bainhome 于 2010-9-20 16:12 编辑
先赞一个!
关于AUTOCAD,我个人的观点是用OBJECTARX或者Lisp也能做得很好,现在很多CAD外挂都是用Objectarx做二次开发,比如机械工程师、清华天河或者土木的探索者等。
CAD的二次开发中,2009之后已不再支持VB编辑器(这个选项没了),这一点,是我们学习zccbest兄这项技术的同时,也需要注意的问题。 VB编辑器不随Autocad一起安装了,2010和2011可以在autocad官方下载
http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=12715668&linkID=9240618 谢谢分享,多谢~~~ 为什么利用VB.NET而不用C#呢,因为AutoCAD的VB是利用VB编写的,利用VB.NET语法接近并且VB.NET的CreateObject功能很强大,虽然利用C#也可以实现,但程序显得复杂了,
这样说有失偏颇吧,C#开发AutoCAD也极其简单,参见下面的链接:
[*]C# 开发AutoCAD[*]Matlab 调用 C# 一个问题,autocad不同版本怎么都兼容 一个问题,autocad不同版本怎么都兼容
zccbest 发表于 2010-10-6 15:53 http://forum.simwe.com/images/common/back.gif
这个不是大问题,你编好程序后,在运行的机器上甚至不需要安装AutoCAD,把需要的DLL打包后就可以了,当然你需要.net framework。
当然你可以用AutoCAD2010的dll,然后自己的机器上安装2011,程序会直接调用2010的功能,而不会与2011发生冲突。
页:
[1]