CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

符号表和字典的比较

2023-1-1 03:48| 发布者: admin| 查看: 306| 评论: 0|来自: AutoCAD

符号表和字典执行基本相同的功能;它们包含的条目是可以使用文本字符串键查找的数据库对象。可以向这些容器对象添加条目,也可以使用迭代器单步执行条目并查询其内容。

AutoCAD 数据库始终包含一组固定的九个符号表,如下一节所述。您无法创建或删除符号表,但可以在符号表中添加或更改条目,这些条目称为记录。每个符号表仅包含特定类型的对象。例如,仅包含类型的对象。以这种方式定义符号表主要是为了与 AutoCAD 版本 12 和早期版本的 AutoCAD 兼容。AcDbLayerTableAcDbLayerTableRecord

字典提供了类似的机制,用于存储和检索具有关联名称键的对象。AutoCAD 数据库在创建新图形时都会创建命名对象字典。命名对象字典可视为图形中非实体对象结构的主“内容列表”。默认情况下,此词典包含九个词典:GROUP 词典、MLINE 样式词典、布局词典、打印样式名称词典、颜色词典、材质词典、打印设置词典、表格样式词典和 SYSVAR 词典。您可以创建任意数量的其他对象,并将它们添加到命名对象字典中。但是,最佳做法是将一个对象直接添加到命名对象字典中,并让该对象依次拥有与应用程序关联的其他对象。通常,所属对象是容器类,例如字典。使用分配的四个字母的注册开发人员符号作为此类的名称。

对象可以包含任何类型的,包括其他字典。字典对象不执行条目的类型检查。但是,MLINE 样式字典应仅包含类的实例,而 GROUP 字典应仅包含 的实例。应用程序可能需要为其创建和维护的字典中的条目键入特定类型。AcDbDictionaryAcDbObjectAcDbMlineStyleAcDbGroup

符号表、符号表记录、字典和迭代器的类层次结构如下所示。

符号表和字典之间的重要区别是符号表记录不能由 ObjectARX应用程序直接擦除。这些记录只能使用 PURGE 命令擦除,也可以使用 wblock 操作有选择地过滤掉。字典拥有的对象可以擦除。 ®

危险:擦除字典或字典条目(请参见基本数据库对象)可能会导致 AutoCAD 或其他应用程序失败。

另一个重要区别是符号表记录将其关联的查找名称存储在其类定义的字段中。另一方面,字典将名称键存储为字典的一部分,独立于与其关联的对象,如下图所示。


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 15:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部