当前位置:网站首页>CAD二次开发 对象
CAD二次开发 对象
2022-07-02 06:23:00 【徐记荣】
以下转自https://blog.csdn.net/adliy_happy/article/details/77715210?spm=1001.2014.3001.5501
Application 对象是每次打开的 AutoCAD 应用程序实例。主要的作用是维持 Document(文档)与Database(数据库)之间的一致。 应用程序把数据库中的信息显示在文档上供用户查看,当用户操作文档更新文档时把更新的数据保存回数据库。 通过Application 对象你可以获得操作当前应用程序相关的对象。 也可以通过它的属性及方法设置 AutoCAD 程序的参数及系统变量。
Document(文档)对象实际上就是 **Database(数据库)**在显示给用户看的视图,一个文档与一个Database(数据库)是一一对应的。 它按照 Application(应用程序)的规定把 Database(数据库)中的对象显示给用户,同时用户对 Document(文档)的操作也会通过 Application(应用程序)写回到数据库,在后台修改数据库的时候为防止前台文档也在同时修改所以必须先锁住文档, 操作完成后再给文档解锁。
Editor 就是 AutoCAD 界面中的命令行,是用户跟应用程序交互的工具。 AutoCAD 与用户的交互功能基本输入与输出功能都在 Editor 对象中实现。
Transaction (事务) 是用来控制数据库操作的对象。 当打开处理数据库对象的时候 Transaction 提供了自动关闭的机制,以避免打开对象后忘记关闭而导致下次操作该对象出错。
Database 是 DWG 文件在内存中的表示, 是用来储存数据库对象的容器。 Database 中主要储存大量容器对象: **SymbolTables(符号表)**与 NameDictionaries(命名对象词典), 容器中储存着所有的图形对象和大部分的非图形对象。
以下转自https://wenku.baidu.com/view/af9a571948d7c1c709a1457b.html
DBObject(数据库对象)
DBObject是所有数据库对象的基类是一个抽象类,所有的数据库对象都是由它派生,他的属性方法在所有的子类中都适用。
程序中的对象可能存在两种状态1、在内存中(实例化但是没添加到数据库中):可以任意修改对象的属性。2、在数据库中:需要打开才能进行属性修改。
SymbolTable(符号表) 是 AutoCAD 表对象的基类,符号表是容器对象,用来存放 SymbolTableRecord(符号表记录)。
SymbolTableRecord(符号表记录) 是组成符号表的元素。 特定的符号表中只能储存特定的符号表记录,如:块表中,只能储存块表记录。
DBDictionary (词典) 是一般的容器对象,用于储存非图形对象。 与符号表不同的是,符号表里面只能存取固定符号表记录的对象,而词典可以同时保存多种由 DBObject 类派生的对象(Entity)除外(词典中也可以存放词典)。 常用于保存在词典中的对象有 DataTable(数据表)Xrecord(扩展记录)。
词典主要以两种方式存在一种是存储在数据库中用来保存整个图纸的数据叫 NameDictionaries(命名对象词典),一种是储存在对象中用于保存对象的信息数据叫 ExtensionDictionary(对象扩展词典)。
1、 NameDictionaries(命名对象词典)
每个 DWG 数据库都有一个命名对象词典,命名对象词典通常用来储存全局的扩展数据。
2、 ExtensionDictionary(对象扩展词典)
所有数据库对象都可以包含一个扩展词典,用于储存用户自定义的数据,与命名对象词典不同的是,储存的这些数据时对象级别的即对象的附属信息。
DataTable(数据表) 是 AutoCAD 中用来组织数据的表格, 是一个用来存放数据的数据库对象, 可以放在命名对象词典中存放图纸全局信息数据,也可以放在对象扩展词典中存放对象的属性数据,他比 XRecord 的优势在于:用表格形式组织数据更加有条理。
Xrecord(扩展记录) 最大可储存 2GB 的数据。
Field(字段) 是储存表达式的容器,可以储存字符、指向系统变量的表达式、公式表达式等。 这些表达式用于显示可能会在图形生命周期中修改的数据。 字段更新时,将显示最新的数据。 字段可以插入到任意种类的文字(公差除外)中,其中包括表单元、属性和属性定义中的文字。在块编辑器中进行操作时,可以将块占位符字段用于块属性定义中。
Entity(实体对象) 是所有可见对象的基类,可见对象都继承它的属性和方法。
边栏推荐
- Tool grass welfare post
- Kotlin - verify whether the time format is yyyy MM DD hh:mm:ss
- JS judge whether the object is empty
- Promise中有resolve和无resolve的代码执行顺序
- CVE-2015-1635(MS15-034 )远程代码执行漏洞复现
- VSCODE 安装LATEX环境,参数配置,常见问题解决
- JS countdown case
- web自动中利用win32上传附件
- Cve - 2015 - 1635 (ms15 - 034) réplication de la vulnérabilité d'exécution de code à distance
- pytest(2) mark功能
猜你喜欢
Linux MySQL 5.6.51 Community Generic 安装教程
Stack (linear structure)
Sqli labs customs clearance summary-page3
Latex warning: citation "*****" on page y undefined on input line*
Solution to the black screen of win computer screenshot
The default Google browser cannot open the link (clicking the hyperlink does not respond)
Linux MySQL 5.6.51 community generic installation tutorial
Pytest (2) mark function
Queue (linear structure)
No process runs when querying GPU, but the video memory is occupied
随机推荐
Overload global and member new/delete
Underlying mechanism mvcc
Win10: add or delete boot items, and add user-defined boot files to boot items
uniapp引入本地字体
CVE-2015-1635(MS15-034 )远程代码执行漏洞复现
In depth study of JVM bottom layer (IV): class file structure
SQL注入闭合判断
The default Google browser cannot open the link (clicking the hyperlink does not respond)
默认google浏览器打不开链接(点击超链接没有反应)
部署api_automation_test过程中遇到的问题
看完有用的blog
SQLI-LABS通关(less15-less17)
Latex warning: citation "*****" on page y undefined on input line*
JS modification element attribute flipping commonly used in selenium's Web Automation
蚂蚁集团g6初探
sprintf_ How to use s
apt命令报证书错误 Certificate verification failed: The certificate is NOT trusted
Uniapp introduces local fonts
Présence d'une panne de courant anormale; Problème de gestion de la fsck d'exécution résolu
Latex compiles Chinese in vscode and solves the problem of using Chinese path