编程基于NET的CAD二次开发入

北京儿童扁平疣医院 http://m.39.net/pf/a_8744644.html

“基于.NET的CAD二次开发入门第一课”

笔者近期才开始接触CAD二次开发,THPP(PERFORM-3D后处理程序)的编写也算是一次较为成功的入门。本次推文将和大家介绍C#开发CAD的入门操作,并在文后推荐几本不错的书籍供大家学习参考。

CAD二次开发简单入门

.NETFramework

AutoCAD进行二次开发的主要工具有ObjectARX、VBA、Lisp、.NET,各工具的开发能力和开发难度如图1所示。由图1可知,ObjectARX能力最强但开发难度大;VBA和Lisp容易上手,但开发能力较弱,且CAD后的版本已不支持VBA的开发;.NET则兼具了易用和开放能力强的优点,可快速地开发功能强大地CAD程序。

图1各工具的开发能力和开发难度

C#为一种面向对象的、运行在.NETFramework上的高级程序设计语言,在拥有与非托管C++相匹配的强大功能的同时,具有方便易用的特点,是理想的CAD二次开发工具。各版本CAD与.NETFramework的对应情况如表1所示,开发不同版本的CAD需选择正确的.NET框架。

dll文件的引用

利用.NET进行CAD二次开发需使用托管封装类,因此需要对CAD部分程序集进行引用。需要引用的程序集一般有acdbmgd.dll、acmgd.dll、AcCui.dll和accoremgd.dll等。

在VisualStudio中新建“类库”项目,右键点击“引用”选择“添加引用”,在“浏览”选项卡中选择在CAD安装目录下的上述dll文件,并添加到“引用”中;再将各dll文件的“复制本地”属性修改为False,完成dll文件的添加。

图2新建类库

图3dll文件引用方法

目标框架与调试方法

右键点击“项目”并选择“属性”,根据表1的对应关系在“应用程序”选项卡中选择合理的目标框架,在“调试”选项卡中选择“启动外部程序”,外部程序为CAD的启动程序(acad.exe),进而完成目标框架和调试方法的修改。

图4修改目标框架和调试方法

简单例子:绘制直线

本算例使用CAD和VisualStudio进行。由表1可知,CAD对应的目标框架为.NETFramework4。

声明命名空间

本例需要引用的程序集有acdbmgd.dll、acmgd.dll、AcCui.dll和accoremgd.dll,引用方法见前文。为使用封装的程序集,本项目需声明3个命名空间,分别为:DatabaseServices(添加实体对象时需获取图形数据库)、Runtime(定义新命令)和Geometry(定义几何对象)。命名空间的声明方式如图5所示。

图5声明命名空间

定义绘制直线的函数

具体代码如图6所示,各语句均有较为明确的注释。详细代码可点击“阅读原文”下载。

图6定义函数

程序调试

如图7所示,点击“启动”打开CAD,通过“Netload”命令加载项目下“Debug”文件夹中的dll文件,通过“DrawLine”命令便可实现直线的绘制。

图7调试演示

推荐书籍

AutoCAD开发基础与实例教程

深入浅出AutoCAD.NET二次开发

AutoCAD.NET开发指南

三本中首推第一本:AutoCAD开发基础与实例教程,该书中有大量可调用且注释详细的源函数,极其适用于初学者入门CAD二次开发;第二本是相对主流的参考书籍;第三本则为官方提供的用户手册的翻译版,由于没有出版成册,因此只有电子版。

笔者认为参考书籍的作用,不是如同教材般需要从头学到尾,而是要像字典般翻看目录、自寻所需即可。

图8推荐书籍

点击“阅读原文”可下载本推文的源代码。

若觉得文章有帮助,欢迎打赏支持作者!

精彩回顾:

OpenSees

浅析两类纤维单元:位移元与应力元

浅析纤维单元的数值积分方法

浅析分布塑性铰单元的数值积分方法

宏观梁柱单元的强度软化模拟

常见问题解决方法(一)

常见问题解决方法(二)

Perform3D

如果花莲地震发生在广东汕头

震惊!其纤维单元竟是位移元!?

位移元的简单证法

拓扑优化

浅谈拓扑优化(一)

浅谈拓扑优化(二)

浅谈拓扑优化(三)

工具

CC-Constitution[约束混凝土本构计算工具]

FRAME2.0[框架辅助建模+纤维剖分]

GMI(地震波智能截波工具)

THPP(PERFORM-3D后处理程序)

WilsonWu




转载请注明:http://www.shhjfk.com/jyqj/jyqj/13580.html