笔记:CAD数据库层次结构总结

https://www.likecs.com/show-313797.html

了解AutoCAD对象层次结构——1——应用程序-爱码网 (likecs.com)

了解AutoCAD对象层次结构——2——文档-爱码网 (likecs.com)

了解AutoCAD对象层次结构——3——数据库-爱码网 (likecs.com)

了解AutoCAD对象层次结构——4——符号表-爱码网 (likecs.com)

了解AutoCAD对象层次结构 —— 5 —— 块表 - 爱码网 (likecs.com)

了解AutoCAD对象层次结构——6——块表记录-爱码网 (likecs.com)

1、用户交互

AutoCAD中的用户交互是指提示用户输入指定类型的数据或者从当前图形环境中选择所需要的点或者实体对象,在.net API中要实现用户交互操作需要用到Autodesk.AutoCAD.EditorInput命名空间中的Editor类。

(1)输入数据方法:先获取Editor对象,然后获取特定类型的数据(Prompt***Options),这时需要对应类

型的对象来接收(Prompt***Result),开发者可以通过判断PromptResult类的Status属性来指示输入是否成功;

(2)选择方法:对应“输入数据”流程相应有PromptSelectionOptions和PromptSelectionResult两个类,另外在创建选择集的时候也可以使用过滤器(SelectionFilter)来进行选择。

2、AutoCAD数据库

AutoCAD数据库是DWG文件在内存中的表示,用来存储组成AutoCAD的数据库对象的容器,数据库对象是指可以保存到文件当中的对象,主要包括实体、符号表和对象字典等。

(1)每个新建的图形文件,AutoCAD数据库中都会自动创建9种类型的符号表,每种符号表只能存储指定类型的记录,例如,层表只能保存层表记录LayerTableRecords,开发者既不能创建也不能删除符号表,可以操作的只能是符号表中的记录,如Add,Delete,Item(通过字符关键字获取指定的记录),Has(判断记录是否存在);

符号表包含了一系列的表(共9个),这些表数量是固定的,用户不能增加新的表,也不能删除现有的表。

符号表名称

符号表功能

Block Table

块表

存储图形数据库中定义的块。此表中含有两个非常重要的记录:模型空间和图纸空间。

Dimension Style Table

尺寸标注样式表

存储尺寸标注样式

Layer Table

层表

存储图层

Linetype Table

线型表

存储线型

RegApp Table

应用程序名注册表

存储为图形数据库中对象的扩展实体数据而注册的应用程序名

Text Style Table

文字样式表

存储文字样式

UCS Table

用户坐标系表

存储用户保存的用户坐标系

View Table

视图表

存储与命令view相关的视图

Viewport Table

视口表

存储当系统变量Tilemode值为1时的视口配置,该配置由命令vports创建。

(2)实体就是具有图形表示的数据库对象,如直线、圆、圆弧、文本、三维实体、样条曲线和椭圆等,用Entity类表示,AutoCAD中所有实体都保存在块表记录中,而块表记录保存在块表中(BlockTable)。

        实体属于Entity,保存在块表记录里,块表记录保存在块表中。        

(3)命名对象词典是所有扩充词典的根对象,其中包含了其它词典,作为非实体对象保存的容器,当AutoCAD创建新图形时,AutoCAD数据库自动创建一个命名对象词典,可以保存除实体对象之外的其它数据库对象,缺省情况下,命名对象词典主要包含组词典、线型词典、布局词典;

(4)对数据库的所有操作都要通过事务来完成,事务用Transaction类表示,在事务的范围内,程序能够从对象ID值获取数据库对象,在事务结束之前这些数据库对象都能够有效使用,直到事务成功结束,才能提交在对象上的操作,相关操作包括StartTransaction,Commit,Abort,Dispose等等;

(5)数据库对象在数据库中按照层次保存,每个数据库对象,无论是实体还是层表记录都必须存储在特定的容器中,其层次关系如下图所示:

-----------------------------------
AutoCAD二次开发之.net API学习笔记(1)
转自:https://blog.51cto.com/biyusr/5262236

-----------------------------------

3、AutoCAD的API

AutoCAD有4种API,.net,lisp,activex和ObjectARX(C++)。它们都是用来给cad写插件什么的,依赖cad运行。

另有一个RealDWG SDK,这是用来读写dwg或dxf文件的。可以完全脱离cad环境运行。

好比是dwg文件的解码编码器。如果闲的疼的话,完全可以配合一个opengl渲染环境来做成一些无聊的事。

另外,

还有一个ObjectDBX。

在ObjectARX的Dev Guide中,是这么说DBX的:

ObjectDBX ™ is the foundation for ObjectARX and for the RealDWG ® SDK.

另外,下面这段貌似更能说明RealDWG、DBX和ARX的关系。

In order for a RealDWG Host Applications (e.g. Inventor) to be able to correctly display a custom object, it is necessary to create an 'object enabler' or 'ObjectDBX module' for that entity. An object enabler is created using the ObjectARX SDK, but makes use of the subset of ObjectARX functionality that does not depend on accessing AutoCAD editor functionality. (In general, this means deriving from and accessing AcDb classes, but not using selection set, editor reactor, document manager, plot manager, etc.). An object enabler DLL has a .dbx extension.

上段来自:Understanding ObjectDBX and RealDWG - AutoCAD DevBlog

-----再次从dev guide中摘抄的分割线,所以上段中第二行略可疑--------

ObjectDBX ™

The database-related subset of ObjectARX, which includes support for custom objects and entities. These APIs do not include classes that interact with the AutoCAD editor or provide user interface functionality.

RealDWG®

A separately licensed SDK for developing host applications that use ObjectDBX to read and write DWG and DXF files without AutoCAD. See the autodesk.com Developer Center for more information about the RealDWG SDK.

Object Enabler

A module with the .dbx extension that defines custom DWG and DXF database objects and entites using only the ObjectDBX portion of the ObjectARX SDK. An Object Enabler is not dependent on AutoCAD and can load in any RealDWG host application.

---------对于复杂CAD Application,ARX提供的几个特性,含义存疑---------------

ObjectARX supports the development of complex applications, providing the following features:

  • Notification
  • Transaction management
  • Deep cloning
  • Reference editing
  • Protocol extension
  • Proxy object support

转自:

CAD的API们 - 走看看 (zoukankan.com)http://t.zoukankan.com/mumuliang-p-3457588.html

AutoCAD二次开发——CAD数据库层次关系(笔记22.11.29)相关推荐

  1. AutoCAD二次开发——Cad弹出对话框

    在Cad二次开发中,不止是去引用Winform或者Wpf的弹出对话框MessageBox. 其实Cad类库本身就有对话框对象 Application.ShowAlertDialog("&qu ...

  2. python能二次开发cad么_2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)

    本项目使用手动创建,意为不使用SDK模板. 从Visual Studio的"文件"下拉菜单中,选择"新建"->"项目...". 在出现 ...

  3. CAD自控lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

    基于 AutoLisp 的 AutoCAD 二次开发自动生成系统图 [摘 要]本文主要阐述了应用 autolisp 语言二次开发 autocad 自动生成系统图的实现方案. [关键词] autocad ...

  4. AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)?

    AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)? 1.复制编译后的dll路径,比如我的是[C:\SectionManager_CAD_1.1_031 ...

  5. 基于C#的AutoCAD二次开发之获取用户输入信息、选择集、访问CAD内部命令

    基于C#的AutoCAD二次开发之获取用户输入信息.选择集.访问CAD内部命令 在CAD创建图形对象时,经常需要和用户进行交互,例如:直线创建时需要用户输入起点和终点(或长度)信息,复制对象时需要指定 ...

  6. cass二次开发vba和lisp_基于VBA的AutoCAD二次开发及应用实例

    1引言本文引用地址:http://www.eepw.com.cn/article/190993.htm AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制 ...

  7. lisp二次开发 微盘_基于AutoLISP的AutoCAD二次开发研究_郭秀娟.pdf

    2008 年 12 月 Journal of Jilin Architectural and Civil Engineering Institute Dec.2008 基于 AutoLISP 的 Au ...

  8. 陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

    龙源期刊网 http://www.qikan.com.cn 基于 AutoLisp 的 AutoCAD 二次开发自动 生成系统图 作者:郎建山 金江 来源:<科技视界> 2013 年第 2 ...

  9. lisp 梯形展开图_斜截圆柱件钣金展开图的AutoCAD二次开发

    内容介绍 原文档由会员 刘瑞 发布 斜截圆柱件钣金展开图的AutoCAD二次开发 3.8万字符 70页 包括开题报告,论文,设计分析报告,程序代码,lsp及sld文件 摘 要 在国民经济各个部门的建设 ...

最新文章

  1. PayPal宣布退出虚拟货币组织Libra协会
  2. Mysql 零距离-入门(五)操作数据表
  3. java商城项目中多线程执行_java多线程中执行多个程序的实例分析
  4. 在AD09中怎样同时高亮两个网络(即net)?按住Ctrl,鼠标点一个网络,按住Ctrl+Shift,鼠标再点另一个网络,想亮多少亮多少。
  5. matlab 方程组求导,matlab求导及线性方程组的求解
  6. 常见游戏限制多开原理、与解决游戏多开方法
  7. 怎么把几个音频合并在一起?
  8. tfs java_Java SDK for TFS
  9. 对日外包总结-泛泛而谈
  10. 人见人爱A+B(C++)
  11. 超低功耗离线智能语音识别芯片AT6811
  12. 软件项目管理的平衡原则和高效原则
  13. 比前途,还是嵌入式开发比软件开发更胜一筹
  14. jzoj 4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
  15. 虚拟主机可以运行java_下面哪种类型的文件可以在Java虚拟机中运行( ).
  16. 053试题 21 / 198 /200 / 289/355/363/650/700 - duplicate database
  17. YOLOv5报错:OSError: cannot open resource
  18. 一秒批量重命名图片前加递增数字顺序排列(不用软件保持原文件类型加序列编号码后更易查找)
  19. PolarisMesh系列文章——灰度发布系列(蓝绿发布)
  20. 主成分分析——PCA降维Python实现及碎石图

热门文章

  1. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.4
  2. 自动驾驶研究生就业如何,自动驾驶的研究方向
  3. 仿 手机QQ 登录、注册、找回密码、好友列表、QQ状态等功能的实现
  4. 随机验证码的生成(手机或者邮箱验证码)
  5. 全国主要城市程序员就业去处,了解后薪资翻倍
  6. win10纯净版安装教程
  7. Linux C-学习笔记(一)
  8. 2021年中国乳制品产量、营业收入、利润总额及进出口分析[图]
  9. JAVA实现手机短信验证码在指定有效的时间里校验
  10. 密码学笔记1-信息安全的基本属性(机密性、认证、完整性、不可否认性)