找回密码
 注册
Simdroid-非首页
查看: 255|回复: 6

[原创]MATLAB 利用VB.NET在AutoCAD中画图

[复制链接]
发表于 2010-9-20 14:41:34 | 显示全部楼层 |阅读模式 来自 山东烟台
本帖最后由 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平台,而不应该拘泥于哪种语言。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2010-9-20 16:11:35 | 显示全部楼层 来自 新疆乌鲁木齐
Simdroid开发平台
本帖最后由 bainhome 于 2010-9-20 16:12 编辑

先赞一个!
关于AUTOCAD,我个人的观点是用OBJECTARX或者Lisp也能做得很好,现在很多CAD外挂都是用Objectarx做二次开发,比如机械工程师、清华天河或者土木的探索者等。
CAD的二次开发中,2009之后已不再支持VB编辑器(这个选项没了),这一点,是我们学习zccbest兄这项技术的同时,也需要注意的问题。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-20 16:44:18 | 显示全部楼层 来自 山东烟台
VB编辑器不随Autocad一起安装了,2010和2011可以在autocad官方下载
http://usa.autodesk.com/adsk/ser ... &linkID=9240618

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-9-28 15:42:32 | 显示全部楼层 来自 湖北武汉
谢谢分享,多谢~~~

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-10-6 14:12:34 | 显示全部楼层 来自 香港
为什么利用VB.NET而不用C#呢,因为AutoCAD的VB是利用VB编写的,利用VB.NET语法接近并且VB.NET的CreateObject功能很强大,虽然利用C#也可以实现,但程序显得复杂了,

这样说有失偏颇吧,C#开发AutoCAD也极其简单,参见下面的链接:

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-10-6 15:53:27 | 显示全部楼层 来自 山东济南
一个问题,autocad不同版本怎么都兼容
回复 不支持

使用道具 举报

发表于 2010-10-7 10:26:02 | 显示全部楼层 来自 香港
一个问题,autocad不同版本怎么都兼容
zccbest 发表于 2010-10-6 15:53


这个不是大问题,你编好程序后,在运行的机器上甚至不需要安装AutoCAD,把需要的DLL打包后就可以了,当然你需要.net framework。

当然你可以用AutoCAD2010的dll,然后自己的机器上安装2011,程序会直接调用2010的功能,而不会与2011发生冲突。
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-5 02:44 , Processed in 0.049194 second(s), 22 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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