求教CAD用VBA二次开发怎样得到一个图块自定义属性的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教CAD用VBA二次开发怎样得到一个图块自定义属性的问题。相关的知识,希望对你有一定的参考价值。

我最近在用VBA做CAD的二次开发,现在碰上一个问题就是想得到一个图框块的属性。比如说我自己做了一个图块,里面有一个自定义属性叫做“图名”,我怎样用VBA来修改这个属性呢?
这种修改方法支持哪个CAD版本以上呢?

参考技术A 如果是VC+OBJECTARX可以使用AcDbObject类中的setXData方法.本回答被提问者采纳

编程基于.NET的CAD二次开发(入门篇)

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

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

CAD二次开发简单入门

  • .NET Framework

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

【编程】基于.NET的CAD二次开发(入门篇)

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

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

【编程】基于.NET的CAD二次开发(入门篇)

  • dll文件的引用

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

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

【编程】基于.NET的CAD二次开发(入门篇)

图2 新建类库

【编程】基于.NET的CAD二次开发(入门篇)

图3 dll文件引用方法

  • 目标框架与调试方法

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

【编程】基于.NET的CAD二次开发(入门篇)

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

【编程】基于.NET的CAD二次开发(入门篇)

简单例子:绘制直线

本算例使用CAD2014Visual Studio 2013进行。由表1可知,CAD2014对应的目标框架为.NET Framework 4

  • 声明命名空间

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

【编程】基于.NET的CAD二次开发(入门篇)

图5 声明命名空间

  • 定义绘制直线的函数

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

【编程】基于.NET的CAD二次开发(入门篇)

图6 定义函数

  • 程序调试

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

【编程】基于.NET的CAD二次开发(入门篇)

图7 调试演示

【编程】基于.NET的CAD二次开发(入门篇)

推荐书籍

  • AutoCAD开发基础与实例教程

  • 深入浅出AutoCAD .NET二次开发

  • AutoCAD .NET开发指南

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

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

【编程】基于.NET的CAD二次开发(入门篇)

图8 推荐书籍

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

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

精彩回顾:

  • OpenSees


  • Perform3D

  • 拓扑优化

  • 工具



以上是关于求教CAD用VBA二次开发怎样得到一个图块自定义属性的问题。的主要内容,如果未能解决你的问题,请参考以下文章

CAD 中二次开发

CAD中怎么创建属性块?

求教大神 我现在想学ARX编译CAD图形,恩。也就是CAD二次开发(一定是用ObjectARX开发环境)

请问 哪位大哥熟悉CAD二次开发ObjectARX CAD请进

请问怎么用Java程序调用CAD进行参数化绘图,需要做哪些工作呢,谢谢!

后缀“arx”的文件怎样打开或者编辑?