查看原文
其他

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

王双炎 GIS前沿 2022-03-16


在上节课程学习中,我们讲解了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之间的关系如下图所示:


 Application、Document和Database关系图


Database属于ApplicationServices命名空间,在写程序之前先导入ApplicationServices命名空间。


获取当前打开的活动文档方法


获取数据库的两种方法

  1. 直接通过HostApplicationServices的WorkingDatabase属性进行获取;

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

 

关于AutoCAD数据库的基本知识

表:数据库的组成单位。在CAD图形中包含9个符号表。

记录:是表的组成单位,一个表中可能包含多条记录,也可能不包含任何记录。

 

CAD图形的组成


向CAD添加图元的基本步骤如图:

 

添加实体流程图


下面我们向CAD中添加一个实体、以一条线段为例。首先在Visual Studio2013中新建一个名称为AddLine解决方案。完整代码如下:

 

添加线段代码


【调试】——【启动调试】或者按“F5”(有关调试配置可以参考第一篇文章:C#程序对AutoCAD二次开发(一)),启动AutoCAD应用程序,在命令行输入Netload,加载“AddLine.dll”文件。

 

加载应用程序


输入ADDLINE命令,程序在模型空间就绘制出一条起点(100, 100, 0),终点(600, 600, 0)的直线。如下图:

程序绘制的线段


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


- END -


让你精通CASS软件的教程免费下载
CAD快捷键命令,CAD常用命令大全图表
CAD完美转ArcGIS的干货技巧.pdf(文档可下载)
64页可下载!CASS道路土石方横断面图计算详细步骤讲解
CAD放样、点放样、控制点测量、面积测量、直线放样

戳原文,更有料!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存