=

在上节课程学习中,我们讲解了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命名空间。

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

获取数据库的两种方法
直接通过HostApplicationServices的WorkingDatabase属性进行获取;

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

关于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的使用等课程的学习。

C#语言对AutoCAD二次开发(二)相关推荐

  1. wincc报表日报表实例_工作系统二次开发二Python加工原膜切割日报表数据实例

    #工作系统二次开发二Python加工原膜切割日报表数据实例 #当查询一个或多个工作令后在表格展示数据前按要求对数据进行二次处理,处理要求看如下 #1.加工单号和母卷物料编号相同则把除第一行外的领料有关 ...

  2. BarTender破解版 标签打印二次开发二维码C#预览图

    很多生产环节都需要条码打印的功能,这篇文章就介绍下如何使用C#实现条码打印的功能,希望对大家能有所帮助! 条码设计软件采用的是BarTender 10.1,在此基础上进行的二次开发. 运行成功的预览图 ...

  3. CAD二次开发--二维多段线Polyline与三维多段线Polyline3d创建总结

    今天在接到一个小需求并开发完成后,发现人家要的是三维polyline,而我画的确是二维的,所以这个必须要改过来!我心想:"这不是很简单么?2换一下3不就得了?".结果一顿折腾,发现 ...

  4. visionpro联合c#二次开发二

    本文已参与「新人创作礼」活动,一起开启掘金创作之路. 本次康耐视联合C#文档是最后一篇visionpro与C#联合的文章,后续我们将开始c#与halcon的编写或者vidi的文章. 首先我们定义所需要 ...

  5. 用C语言编程函数求圆台体积,第六篇 AutoCAD二次开发技术.pdf

    第六章 ObjectARX 开发技术 1. AutoCAD二次开发概述 7. MFC对话框 2. ObjectARX简介 8. 搜索图形数据库及获取实体 3. 常用实体类和几何类 数据 4. 创建实体 ...

  6. creo二次开发python_使用C#/.net语言进行ProE/Creo二次开发

    随便哪个版本的Visual studio 设置系统环境变量 通常这个环境变量在安装ProE的时候如果选择安装VBAPI就会自动设置 注意32位和64位操作系统路径是不同的.我的是64位操作系统. 然后 ...

  7. 开源系统_二次开发(转)

    转自http://www.phpchina.com/portal.php?mod=view&aid=40204, 更多详细资料请参看原文 最好最实用的二次开发教程 ◆二次开发 什么是二次开发? ...

  8. 什么是php二次开发,php是怎么做二次开发?

    什么是php二次开发,怎么做php二次开发? 所谓的二次开发,简单的说就是修改别人的东西,变成你想要的东西,插件基本属于高端了, 根据现有的程序的不足,加以改进修饰,然后达到自己想要实现的功能和效果. ...

  9. ug二次开发python_NXOpen二次开发.pdf

    NXOpen二次开发 NXOpen 二次开发 二○一三年十二月 目 录 第一章 NXOpen 简介1 1.1 NX API 简介1 1.1.1 NX API 架构与统一对象模型1 1.1.2 现有 N ...

  10. 智能化IT运维平台建设方案,基于智和信通运维体系的高敏捷二次开发

    随着企业信息进程不断加速,运维人员需要面对越来越复杂的业务和越来越多样化的用户需求,不断扩展的应用需要越来越合理的模式.越来越智能的工具来保障运维能灵活便捷.安全稳定地开展.企业网络规模的不断扩大,从 ...

最新文章

  1. linux awk语法格式,Awk是什么?一文带运维小白快速掌握Linux Awk用法
  2. CKfinder2.0.2版本破解
  3. Ubuntu开启防火墙
  4. 【STC15库函数上手笔记】4、USART串口
  5. 若依集成ip2region实现离线IP地址定位
  6. 个人总结的【LaTeX】超高频特殊符号表(仅33个符号)+复杂公式速写解决方案,请查收!
  7. 单片机python编程入门_编程入门教程.doc
  8. 郭依婷—大学生的创业故事
  9. 透过 AI 技术解读人的行为 研究开发回声定位
  10. 人人都懂设计模式--Everybody Know Design Patterns : How to comprehend Design Patterns from daily life
  11. 【LDAP】centos搭建openldap
  12. css3 calc的使用
  13. 为什么中国程序员非要用英文编程,而不用汉字编程
  14. 微信小程序 -语音合成:将文字转为语音(小程序插件:微信同声传译)
  15. 为Windows右键新建菜单添加菜单项
  16. Vue 中 scoped 样式穿透
  17. java物流网站的设计与实现
  18. 强化学习入门级实践教学
  19. 2022电商行业重磅年度报告:八大年度关键词盘点
  20. Arcmap加载在线地图的方法总结

热门文章

  1. 网络ip功放连接图_ip网络功放
  2. 012 外接功放喇叭模块
  3. 云服务器日志4625登录验证失败
  4. Android Studio设置Eclipse快捷键
  5. Ubuntu设置下载源
  6. html使用iframe包含pdf文件,HTMLiframe用法总结收藏.pdf
  7. iframe是什么?iframe用法详解。
  8. python里随机生成属性_Python随机生成信用卡卡号的实现方法
  9. 十进制转二进制、十六进制
  10. 什么是PKI 体系(数字证书种类)