CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2019 开发者帮助

符号表

2024-5-18 17:56| 发布者: admin| 查看: 16| 评论: 0|原作者: admin|来自: AutoCAD

符号表

符号表记录和字典中使用的名称必须遵循以下规则:

  • 名称在 ObjectARX 中可以是任意长度,但用户在 AutoCAD 中输入的符号名称限制为 255 个字符。
  • AutoCAD 保留了名称的大小写,但在比较中不使用大小写。例如,AutoCAD 将“Floor”视为与“FLOOR”相同的符号。
  • 名称可以由 Windows 或 Mac OS 允许的文件名的所有字符组成,但逗号 (,)、反引号 (')、分号 (;)) 和等号 (=) 除外。

AutoCAD 数据库包含以下符号表(括号表示类名和用于添加条目的 AutoCAD 命令):

  • 块表 (;块)AcDbBlockTable
  • 图层表 (;层)AcDbLayerTable
  • 文本样式表 (;风格)AcDbTextStyleTable
  • 线型表 (;LTYPE)AcDbLinetypeTable
  • 查看表格 (;查看)AcDbViewTable
  • UCS 表 (;UCS)AcDbUCSTable
  • 视口表 (;VPORT)AcDbViewportTable
  • 注册申请表 (AcDbRegAppTable)
  • 尺寸样式表 (;DIMSTYLE)AcDbDimStyleTable

每个表都包含 的相应子类的对象。AcDbSymbolTableRecord

每个符号表类都提供一个函数,用于查找按名称指定的记录。函数重载形式的签名如下所示。( 代表九种符号表类类型中的任何一种。getAt()getAt()##BASE_NAME##

Acad::ErrorStatus 
AcDb##BASE_NAME##Table::getAt(const char* pEntryName,
                    AcDb##BASE_NAME##TableRecord*& pRecord,
                    AcDb::OpenMode mode,
                    bool openErasedRecord = false) const;

Acad::ErrorStatus 
AcDb##BASE_NAME##Table::getAt(const char* pEntryName,
                    AcDbObjectId& recordId,
                    bool getErasedRecord = false) const;

此函数的第一个版本返回指向打开的记录的指针,如果找到匹配的记录并且打开操作(使用指定的模式)成功。如果为 true,则该函数返回对象,即使该对象已被擦除。如果为 false,则该函数返回指针和 for erased 对象的错误状态。pRecordopenErasedRecordopenErasedRecordNULLeWasErased

如果找到匹配的记录,则该函数的第二个版本返回值中按名称指定的记录。如果为 true,则该函数返回匹配的对象,即使该对象已被擦除。对象未打开。getAt()AcDbObjectIdrecordIdgetErasedRecord

获取记录并打开后,您可以获取和设置不同的成员值。有关类成员函数的完整列表的特定符号表记录类,请参阅 ObjectARX 参考。

所有符号表类提供的其他重要函数是 和 函数。请参阅创建和修改图层表记录中的示例。该函数的签名是has()add()has()

bool 
AcDb##BASE_NAME##Table::has(const char* pName) const;
 
bool 
AcDb##BASE_NAME##Table::has(AcDbObjectId id) const;

如果表包含名称与 或 匹配的记录,则该函数返回 true。has()pNameid

该函数具有以下签名:add()

Acad::ErrorStatus 
AcDb##BASE_NAME##Table::add(AcDb##BASE_NAME##TableRecord*
                                pRecord);
 
Acad::ErrorStatus
AcDb##BASE_NAME##Table::add(AcDbObjectId& recordId,
                            AcDb##BASE_NAME##TableRecord* pRecord);

此函数将指向的记录添加到包含表的数据库和表本身。如果添加成功且参数为 non-,则将其设置为数据库中的记录。pRecordrecordIdNULLAcDbObjectId

父主题:

  1. 容器对象

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-6-27 16:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部