文档章节

ObjectARX_将实体添加到图形数据库的模型空间相关函数

一个小妞
 一个小妞
发布于 2016/10/17 15:52
字数 789
阅读 316
收藏 1

(1)getBlockTable 是 AcDbDatabase 类的一个成员函数,用于获得指向图形数据库的块表的指针。

getBlockTable 函数的定义形式为:

inline Acad::ErrorStatus getBlockTable(AcDbBlockTable*& pTable,AcDb::OpenMode mode);

该函数的返回值 Acad::ErrorStatus 是 ObjectARX 中定义的一个枚举类型,主要用于判断函数的返回状态,如果函数成功执行会返回 Acad::eOk。第一个参数 pTable 返回指向块表的指针;第二个参数同样是一个枚举类型的变量,其类型 AcDb::OpenMode 包含了AcDb::kForRead、AcDb::kForWrite 和 AcDb::kForNotify 三个可取的值。

具体用法如例:

AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable, AcDb::kForRead);

acdbHostApplicationServices()->workingDatabase()能够获得一个指向当前活动的图形数据库的指针。

 

(2)getAt 函数是 AcDbBlockTable 类的一个成员函数,用于获得块表中特定的记录。

getAt 函数的定义形式为:

Acad::ErrorStatus getAt(const char* entryName,AcDbBlockTableRecord*& pRec,AcDb::OpenMode openMode,
bool openErasedRec = false) const;


第一个参数用于指定块表记录的名称;第二个参数用于返回指向块表记录的指针;第三个参数指定了块表记录打开的模式,下一步要向块表记录中添加实体,所以就用写的模式(AcDb::kForWrite)打开;第四个参数指定是否查找已经被删除的记录,一般使用默认的参数值。

具体语法如例:

AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);

ACDB_MODEL_SPACE 是 ObjectARX 中定义的一个常量,其内容是“*Model_Space”模型空间,如果想在图纸空间,则用ACDB_PAPER_SPACE。

 

(3)appendAcDbEntity 是 AcDbBlockTableRecord 类的成员函数,用于将 pEntity 指向的实体添加到块表记录和图形数据库中。

appendAcDbEntity 函数的定义形式为:

Acad::ErrorStatus appendAcDbEntity(AcDbObjectId& pOutputId,AcDbEntity* pEntity);


第一个参数返回图形数据库为添加的实体分配的 ID 号;第二个参数指定了所要添加的实体。

具体语法如例:

AcDbObjectId lineId;
pBlockTableRecord->appendAcDbEntity(lineId, pLine);

 

(4)全局函数 acdbOpenAcDbEntity用于从实体的 ID 号获得指向图形数据库中实体的指针。

acdbOpenAcDbEntity函数的定义形式为:

Acad::ErrorStatus acdbOpenAcDbEntity(AcDbEntity*& pEnt,AcDbObjectId id,AcDb::OpenMode mode,bool openErasedEntity = false);


返回值不为Acad::eOk,则都属于打开失败。第一个参数返回指向图形数据库实体的指针;第二个参数输入了要获得的实体的 ID 号;第三个参数指定了打开该实体的方式,如果仅是查询该实体的特性用“读”模式打开即可,要修改实体的特性就必须用“写”模式打开;第四个参数指定是否允许访问一个已经被删除的实体。

acdbOpenAcDbEntity:适用于打开继承于 AcDbEntity 的数据库常驻对象,这类对象一般都能在图形窗口中显示,如直线、圆等。 acdbOpenAcDbObject:适用于打开未继承于 AcDbEntity 的数据库常驻对象,这类对象不能在图形窗口中显示,如层表、线型表等。acdbOpenObject:如果不知道要打开的对象是否继承于 AcDbEntity 类,可以使用这个函数。

 

© 著作权归作者所有

一个小妞
粉丝 69
博文 193
码字总数 136789
作品 0
海淀
程序员
私信 提问
ObjectARX学习笔记之直线(1)

目标:绘制一条红色直线 CAD版本:autoCAD2010 64位 1.创建好工程后,点击按钮ObjectARX Commands按钮,如图,点击OK 2.双击第一行会赚转函数,添加如下代码: static void X_PANCreateLine(...

dios51
2013/07/07
0
0
基于ObjectARX的DWG文件访问初探

摘 要 AutoCAD的DWG格式文件是其它图形软件的主要数据源,常常需要将其转换成其它格式。本文在讨论了DWG文件访问方法的基础上,重点介绍了基于ObjectARX的DWG文件的访问步骤与读取方法,并给...

wwl33695
2014/04/17
0
0
ObjectARX常用类和函数

(1)AcAx 开头的全局函数:这些函数通过 COM 的方式来让AutoCAD 完成一些操作。 (a) acutPrintf函数:在 AutoCAD 命令行显示指定的字符串 acutPrintf函数的具体用法如例: (b) AcAxMove 函数...

一个小妞
2016/10/20
800
0
AutoCAD_ ID 、指针、句柄和 ads_name的区别

访问实体的特性必须通过对象指针,但是一旦你获得了实体的ID、句柄或者adsname,都能通过ID作中介而获得对象的指针。其中ID是一个桥梁。句柄是Windows编程一个常用的概念,在ObjectARX编程中...

一个小妞
2016/10/17
459
0
NoSQL数据库中“四大天王”简介及分析

  【IT168 评论】NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很...

it168网站
2016/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
31分钟前
5
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
7
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部