CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

符号表

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

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

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

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

  • 块表 (;块)AcDbBlockTable
  • 图层表 (;层)AcDbLayerTable
  • 文本样式表 (;风格)AcDbTextStyleTable
  • 线型表 (;类型)AcDbLinetypeTable
  • 查看表 (;查看)AcDbViewTable
  • UCS 表 (;UCS)AcDbUCSTable
  • 视口表 (;VPORT)AcDbViewportTable
  • 已注册申请表 (AcDbRegAppTable)
  • 标注样式表 (;暗淡风格)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,该函数也会返回对象,即使它已被擦除。Ifis false,该函数返回指针和错误状态 对于已删除的对象。pRecordopenErasedRecordopenErasedRecordNULLeWasErased

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

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

所有符号表类提供的其他重要函数是 theandfunctions。请参阅创建和修改图层表记录中的示例。函数的签名是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);

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


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 13:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部