C#驱动AutoCAD:二次开发实战指南

C#语言对AutoCAD二次开发(二)_arcgis

在上节课程学习中,我们讲解了AutoCAD的对象模型和配置Visual Studio 2013+ObjectARX开发C#的CAD扩展应用程序、以及如何调试编写的代码并加载到AutoCAD软件中进行使用。下面来开始讲解一下CAD文档和存储图形的一些原理,最后如何用代码绘制一条线段。

在启动AutoCAD应用程序进行画图时,CAD软件会新建一个“Drawing1.dwg”文件;在这个dwg文件中可以绘制线段、多段线、圆、圆弧、样条曲线等增加实体(Entity)图形,也可以修改图形位置,打断、镜像、复制、删除等对实体图形进行编辑。在学习AutoCAD软件使用时,都是从最基本的创建图形开始进行学习;同样,在学习 .Net二次开发时,从创建基本的图形对象开始学习仍然是最有效的选择,使用程序绘制一些图形,当程序运行后,图形窗口出现写出的图形,这样在学习的过程中就会产生浓厚的兴趣。

CAD进行处理图形的过程中,实际上就是操作打开的当前文档(Document),也是数据库(Database)显示给用户看的视图。dwg图形其实也是一个轻量级的数据库文件。一个Document与一个Database一一对应。按照应用程序(Application)的规定把Database中的对象显示给用户,同时用户对Document的操作也会通过Application回写到数据库,在这个过程中也会对文档进行锁定和解锁,以防止后台修改数据库时前台文档也在同时修改。

Application、Document和Database之间的关系如下图所示:

C#语言对AutoCAD二次开发(二)_命名空间_02

Application、Document和Database关系图

Database属于ApplicationServices命名空间,在写程序之前先导入ApplicationServices命名空间。
C#语言对AutoCAD二次开发(二)_arcgis_03

获取当前打开的活动文档方法C#语言对AutoCAD二次开发(二)_加载_04

获取数据库的两种方法
直接通过HostApplicationServices的WorkingDatabase属性进行获取;
C#语言对AutoCAD二次开发(二)_命名空间_05

先获取当前文档,然后在通过当前文档获取对应的数据库。

C#语言对AutoCAD二次开发(二)_arcgis_06

关于AutoCAD数据库的基本知识
表:数据库的组成单位。在CAD图形中包含9个符号表。
记录:是表的组成单位,一个表中可能包含多条记录,也可能不包含任何记录。
C#语言对AutoCAD二次开发(二)_加载_07

CAD图形的组成

向CAD添加图元的基本步骤如图:
C#语言对AutoCAD二次开发(二)_命名空间_08

添加实体流程图

下面我们向CAD中添加一个实体、以一条线段为例。首先在Visual Studio2013中新建一个名称为AddLine解决方案。完整代码如下:
C#语言对AutoCAD二次开发(二)_加载_09

添加线段代码

【调试】——【启动调试】或者按“F5”,启动AutoCAD应用程序,在命令行输入Netload,加载“AddLine.dll”文件。

C#语言对AutoCAD二次开发(二)_arcgis_10



加载应用程序

输入ADDLINE命令,程序在模型空间就绘制出一条起点(100, 100, 0),终点(600, 600, 0)的直线。如下图:
C#语言对AutoCAD二次开发(二)_arcgis_11

程序绘制的线段


总结:这篇文章主要讲了CAD文档(Document)的组部分、Document与图形数据库(Database)之间的关系,以及向CAD文档中添加图形过程中要经过的几个步骤;并且用代码向模型空间中添加了一个线段(实体[Entity])、添加图形到数据中必须根据需要以“读”或者“写”的方式进行“打开”块表(BlockTable)和块表记录(BlockTableRecord),不然程序就会产生致命错误等情况。在以后的学习中我们也会详细讲解添加其他类型的实体到文档中,比如多段线,圆、圆弧等,以及事务处理和ObjectId的使用等课程的学习。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空