求教CAD用VBA二次开发怎样得到一个图块自定义属性的问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教CAD用VBA二次开发怎样得到一个图块自定义属性的问题。相关的知识,希望对你有一定的参考价值。
我最近在用VBA做CAD的二次开发,现在碰上一个问题就是想得到一个图框块的属性。比如说我自己做了一个图块,里面有一个自定义属性叫做“图名”,我怎样用VBA来修改这个属性呢?
这种修改方法支持哪个CAD版本以上呢?
编程基于.NET的CAD二次开发(入门篇)
“基于.NET的CAD二次开发入门第一课”
笔者近期才开始接触CAD二次开发,的编写也算是一次较为成功的入门。本次推文将和大家介绍C#开发CAD的入门操作,并在文后推荐几本不错的书籍供大家学习参考。
CAD二次开发简单入门
.NET Framework
AutoCAD进行二次开发的主要工具有ObjectARX、VBA、Lisp、.NET,各工具的开发能力和开发难度如图1所示。由图1可知,ObjectARX能力最强但开发难度大;VBA和Lisp容易上手,但开发能力较弱,且CAD2010后的版本已不支持VBA的开发;.NET则兼具了易用和开放能力强的优点,可快速地开发功能强大地CAD程序。
图1 各工具的开发能力和开发难度
C#为一种面向对象的、运行在.NET Framework上的高级程序设计语言,在拥有与非托管C++相匹配的强大功能的同时,具有方便易用的特点,是理想的CAD二次开发工具。各版本CAD与.NET Framework的对应情况如表1所示,开发不同版本的CAD需选择正确的.NET框架。
dll文件的引用
利用.NET进行CAD二次开发需使用托管封装类,因此需要对CAD部分程序集进行引用。需要引用的程序集一般有acdbmgd.dll、acmgd.dll、AcCui.dll和accoremgd.dll等。
在Visual Studio中新建“类库”项目,右键点击“引用”选择“添加引用”,在“浏览”选项卡中选择在CAD安装目录下的上述dll文件,并添加到“引用”中;再将各dll文件的“复制本地”属性修改为False,完成dll文件的添加。
图2 新建类库
图3 dll文件引用方法
目标框架与调试方法
右键点击“项目”并选择“属性”,根据表1的对应关系在“应用程序”选项卡中选择合理的目标框架,在“调试”选项卡中选择“启动外部程序”,外部程序为CAD的启动程序(acad.exe),进而完成目标框架和调试方法的修改。
图4 修改目标框架和调试方法
简单例子:绘制直线
本算例使用CAD2014和Visual Studio 2013进行。由表1可知,CAD2014对应的目标框架为.NET Framework 4。
声明命名空间
本例需要引用的程序集有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
拓扑优化
工具
以上是关于求教CAD用VBA二次开发怎样得到一个图块自定义属性的问题。的主要内容,如果未能解决你的问题,请参考以下文章
求教大神 我现在想学ARX编译CAD图形,恩。也就是CAD二次开发(一定是用ObjectARX开发环境)
请问 哪位大哥熟悉CAD二次开发ObjectARX CAD请进