作者:上叶侬
转自公众号:非解构(微信号: non-structure)
很多朋友都对AutoCAD的二次开发很感兴趣。而随着参数化设计的逐渐兴起,Rhino在建筑设计中的运用也渐渐地成为一种趋势。小编从很多年前开始学习AutoLisp,也写过很多工作中常用的AutoLisp的脚本,到近些年开始接触Rhino,尝试grasshopper和Rhino的二次开发。发现两款软件不仅功能上类似,从开发以及软件构架的角度上来说,也有很多相似之处。因此可以把它们放在一起对比。对于这些软件,如果从操作的层面上,大家都可能是驾轻就熟的,但是对于软件本身更深一层次的内容了解不够,而基于这么多年的编写脚本或者二次开发经验,让我觉得从架构的层面上去了解这两款软件,其实也是能够对我们的工作大有裨益的。写这篇文章的目的,就是希望通过两种软件二次开发的对比介绍,帮助大家对这两个软件有更深一个层次的了解,即使不做二次开发,也能够从中得到一些启示。虽然AutoCAD还有.net,ObjectARX等等的二次开发方式,但是为了对比的更加直观,小编还是选择了较为初级并且方便理解的ActiveX。
1.软件开发环境的配置
两款软件官方都有很完备的开发手册。
AutoCAD:
http://help.autodesk.com/view/OARX/2018/ENU/
![b632e94caee661de8e69744c1080cf35.png](https://i-blog.csdnimg.cn/blog_migrate/9e8e3699bfeac4d30f71565d582a2c3e.jpeg)
ActiveX的开发主要参考的是:
(1)ActiveX Developer’s Guide(ActiveX/VBA),主要是开发的方法说明文档.
(2)ActiveX:reference Guide,主要是ActiveX的配置文件库的说明。
RhinoCommon:
https://developer.rhino3d.com/
开发介绍:
https://developer.rhino3d.com/guides/rhinocommon/
API文档:
https://developer.rhino3d.com/api/RhinoCommon/html/R_Project_RhinoCommon.htm
![2f1ff67aba2fc66765098af19245a415.png](https://i-blog.csdnimg.cn/blog_migrate/57b6ed921d3c071cf550f28a57fcf329.jpeg)
AutoCAD开发环境的配置:
小编首先创建的是.net framework 控制台应用。创建完成后,在控制台的引用中添加AutoCAD二次开发的配置文件:
![885a9f1ba07d4ae96b4652c340f76559.png](https://i-blog.csdnimg.cn/blog_migrate/3f7a4e3f6988ec49cfaa9729feb66569.png)
引用在AutoCad的安装目录C:Program FilesCommon FilesAutodesk Shared下的 acax22enu.tlb和axdb22enu.tlb两个文件,此处的22是AutoCAD2018的版本号,其他版本按照开发说明类推。引用完成后,在引用的位置出现了AutoCAD和AXDBLib两个引用库文件。这样,在.net中AutoCAD的ActiveX的开发环境已经配置完成了。
Rhino开发环境的配置:
在Visual Studio的扩展菜单栏下,点击管理扩展,在联机下搜索RhinoCommon,安装这个插件,重启Visual Studio,此时新建Visual Studio的项目中就包含有相应的RhinoCommon开发模板。根据模板创建好项目后,开发环境自行配置完成。