AutoCAD图块实体几何信息的提取
CAD实用技巧 属性提取和数据导出

CAD实用技巧:属性提取和数据导出在使用CAD软件进行设计和绘图时,属性提取和数据导出是非常重要的功能。
属性提取可以帮助我们快速准确地获取特定元素的属性信息,而数据导出则可以将设计数据以各种格式导出,方便与其他软件进行对接和使用。
下面将介绍一些常用的属性提取和数据导出的技巧。
属性提取是指从CAD图纸中提取特定元素的属性信息,比如图层、线型、颜色、文字内容等。
在CAD软件中,我们可以使用属性提取命令来实现这个功能。
首先,选择要提取属性的元素,比如一个图层中的所有线段,然后执行属性提取命令。
在弹出的属性提取对话框中,可以选择要提取的属性类型,并指定导出的文件格式和保存位置。
点击确定后,CAD软件会自动将选定元素的属性信息导出到指定的文件中。
属性提取功能的应用非常广泛。
比如,在建筑设计中,可以利用属性提取功能提取出各个房间的面积、高度等属性信息,以便后续进行统计和分析。
在机械设计中,可以提取零件的材料、尺寸等属性信息,方便进行材料采购和加工制造。
在电气设计中,可以提取出电路图中各个电器元件的型号、参数等属性信息,便于维护和管理。
数据导出是将CAD图纸中的设计数据以各种格式导出,方便与其他软件进行对接和使用。
CAD软件通常支持多种数据导出格式,比如DXF、DWG、PDF等。
这些格式在不同的设计领域中有着不同的应用。
比如,DXF格式可以方便地与其他CAD软件进行对接,实现数据的互通互联;DWG格式是CAD软件的原生格式,可以保留设计数据的完整性和准确性;PDF格式是一种通用的可视化文件格式,能够方便地与其他软件进行共享和查看。
数据导出的操作通常非常简单。
首先,选择要导出的元素或者整个图纸,然后执行导出命令。
在弹出的导出对话框中,选择要导出的文件格式和保存位置,并进行相应的设置,比如选择导出的图层、线型等。
点击确定后,CAD软件会自动将选定的元素或者整个图纸导出为指定格式的文件。
数据导出功能的应用非常灵活。
AutoCAD 2014基础教程第8章 查询信息、块及设计工具

图8-6测量半径及直径
8.1.5 测量角度
打开动态提示,单击【实用工具】面板上的 按钮,测 量角度,AutoCAD将在屏幕上显示测量的结果。 (1)两条线段的夹角。 单击 按钮,选择夹角的两条边,如图8-7左图所示。 (2)测量圆心角。 单击 按钮,选择圆弧,或者在圆上选择两点,如图8-7 中图所示。 (3)测量3点构成的角度。 单击 按钮,先选择夹角的顶点,再选择另外两点,如 图8-7右图所示。
第8章 查询信息、块及设计工具
【学习目标】
掌握查询距离、面积、周长等信息的方法。 学会如何创建图块、插入图块。 了解创建及编辑块属性的方法。 学会如何引用及更新外部图形。 利用设计中心查找并使用文件中的图块、标注样式等内容。
通过本章的学习,读者要掌握查询距离、面积、周长等 图形信息的方法,并了解块、外部参照及设计中心的概 念及基本使用方法等。
图8-4
测量距离
DIST命令显示的测量值的意义如下。 距离:两点间的距离。 XY平面中的倾角:两点连线在xy平面上的投 影与x轴间的夹角,如图8-5左图所示。 与XY平面的夹角:两点连线与xy平面间的夹 角。 X增量:两点的x坐标差值。 Y增量:两点的y坐标差值。 Z增量:两点的z坐标差值。
图8-1 获取面积、周长等信息
1.用REGION命令将图形外轮廓线框C(如 图8-2所示)创建成面域,然后用LIST命令 获取此线框周长,数值为1766.97。 2.将线框D、E及4个圆创建成面域,用面 域C“减去”面域D、E及4个圆面域,如 图8-2所示。
图8-2 差运算
3.用LIST命令查询面域面积,数值为 117908.46。 4.查询圆心A到中心线B的距离,数值为 284.95。 5.用LIST命令获取中心线B的倾斜角度, 数值为150°。
AutoCAD非图形特征信息的存储和提取方法

【 术研究 】 学
A tC D非 图形特征信 息 的存储 和提取方法 uo A
顾 红 艳
( 阳职 业技 术 学 院 ,辽 宁 辽 阳 1 10 ) 辽 1 0 0
摘 要 :在 A tC D 中 可 以 通 过 二 次 开发 程 序 来 实 现 非 图形 特 征 信 息 的 存 储 和 提 取 ,这 种 方 法 可 以大 大 提 高 uo A 图纸 数 据 库 中的 信 息 含 量 ,从 而为 后续 的产 品设 计 和 开 发 工作 提供 基 础 ,提 高产 品设 计 的 效 率 . 关键 词 :产 品设 计 :Auo A 开发 ; 非 图形 特 征 ;存 储和 提取 tC D 中 图 分 类 号 :TP 1 31 文 献 标 识 码 :A 文 章 编 号
维普资讯
第8 第1 卷 期
2006年 3月
辽 宁 师 专 学 报
J u n l fLio i g T a h r l g o r a a n n e c e sCo l e o e
Vo . NO. I8 1 M a . r 20 06
Acd : r r tts c b bc :X aa c n t h r*rg p Na ) a : E r S au A D O j : D t (o s c a o t e a p me ;
其 中 ,eap me 欲 获 取信 息所 属 的 应 用 程序 名 . r ,很 多 时候 只 是设 计 出 了产 品 的 几 何 特 征 和 属 性 ,在 图 纸 中 很 少 涉 及 到 其 它 非 图 形 特 征 属 性 ,如 零 件 的 材 料 、生 产数 量 、拓 扑 关 系 等 . 这些 非 图 形特 征 往 往 通 过标 注 来 实 现 ,但 在 图 纸 本 身 的 数 据 库 中并 没 有 保 存 这 些 有 用 的非 图形特征信息 .随着计算机技术 的发展 ,尤其是网络和数据库 的发展 和成 熟 ,图纸数据 库中若不包 含必要 的非图形特 征信息 ,就很难实现零件之间的关联及信息 的相互利用 ,很难充分实现信息 的共享 . A tC D 2 0 uo A 00以 其 强 大 的 功 能 及 对 二 次 开 发 的 支 持 和 开 放 性 ,成 为 众 多 设 计 人 员 采 用 的工 作 平 台和 二 次 开发 平 台 .它 不仅能存储所生成 图形 的几何信息和其它相关信息 ,而 且还允许 用户建 立 自己的 “ 图形特征信 息 ” 非 ,以便 在图形 文件 中 提 供 必 要 的较 完 整 的 产 品 数 据 ,实 现 零 件 信 息 的 自动 统 计 、不 同零 部 件 的关 联 设 计 、 自动 提 取 所 需 零 件 及 图 纸 的 相 关 特 征 参 数 等 ,为 后 续 开 发 和 生 产 提 供 保 障 .
基于DXF的AutoCAD点对象信息提取与数据转换

基于DXF的AutoCAD点对象信息提取与数据转换商胜波,夏达忠河海大学水文水资源及水利工程科学国家重点实验室,江苏南京(210098)E-mail: yalutianshan@摘要:AutoCAD图形数据是地理信息系统重要的数据源,研究AutoCAD数据向地理信息系统数据的格式转换对实现数据共享有重要意义。
本文以AutoCAD数字地形图中点对象空间信息和属性信息的提取为研究重点,分析了AutoCAD的DXF文件格式以及MapInfo的MIF、MID文件格式,探讨了在AutoCAD向MapInfo的数据转换过程中高程点的高程值赋值问题,提出了基于DXF的点对象信息提取与数据转换的技术方案,最后通过编写程序,对工程项目中的CAD地形图数据进行了批量转换。
实践证明,在少量人工质量控制的情况下,该方案能够实现AutoCAD图形数据向地理信息系统空间数据的高效率的自动转换。
关键词:DXF,数据转换,信息提取,高程点赋值1. 引言AutoCAD图形数据是地理信息系统重要的数据源,许多大比例尺地形图测绘系统都将AutoCAD作为地理信息系统的基础数据采集平台。
目前有很多地理信息系统软件承诺可以接收AutoCAD格式的数据,但在数据的自动转换过程中存在着数据丢失、数据变形和数据坐标不匹配等问题。
这些问题有些是由于软件系统本身的差异和数据结构的不同而无法避免的,有些则是由于不同制图单位缺乏统一的制图标准而产生的。
因此研究AutoCAD数据向地理信息数据的格式转换对实现数据共享有重要意义。
MapInfo是流行的地理信息系统商业软件,由于它在处理海量地图数据方面具有很大的优越性,在已有AutoCAD格式的大量分幅地形图数据的情况下,有时需要将这些数据转换到MapInfo环境下进行管理。
利用 MapInfo自带的通用转换器对AutoCAD数据进行转换,操作简单,自动化程度高,但转换的效果通常不尽人意,直接转换难以顾及GIS中需要的属性数据,而且图形数据也会因为不同系统之间符号、类型的不匹配而出现数据大量丢失的问题,无法实现数据的无缝转换。
CAD中图形抽取的技巧

CAD中图形抽取的技巧在CAD软件中,图形抽取是一项非常重要的技术,它可以帮助我们从已有的图形中提取特定的线、点或曲线,以便进一步编辑或分析。
本文将介绍一些常用的图形抽取技巧,帮助读者更好地应用CAD软件。
1. 线段抽取:在CAD软件中,我们经常需要测量或标注线段的长度。
使用线段抽取功能可以轻松获得所需的线段长度。
选择“线段抽取”工具后,点击起点和终点,即可获取它们之间的长度。
2. 垂直线抽取:在CAD中绘制垂直线段时,可以使用垂直线抽取功能来确保线段朝垂直方向绘制。
选择“垂直线抽取”工具,然后选择基准线段的一个端点,即可绘制与之垂直的线段。
3. 水平线抽取:与垂直线抽取类似,使用水平线抽取功能可以确保线段朝水平方向绘制。
选择“水平线抽取”工具,然后选择基准线段的一个端点,即可绘制与之水平的线段。
4. 偏移线抽取:当需要在已有曲线或边界基础上创建平行线段时,可以使用偏移线抽取功能。
选择“偏移线抽取”工具,然后选择要偏移的曲线或边界,指定偏移距离,即可得到相应的偏移线段。
5. 曲线抽取:在CAD中,我们常常需要绘制与已有曲线或边界相似的曲线。
使用曲线抽取功能可以轻松地在已有曲线上提取相应的点来绘制出与之相似的曲线。
选择“曲线抽取”工具,然后选择基准曲线上的点,即可获取该点的坐标,从而绘制出相应的曲线。
6. 圆心抽取:在CAD中,通过已有的圆绘制其他几何图形或进行测量是常见的操作。
使用圆心抽取功能可以方便地提取出已有圆的圆心坐标,从而进行后续操作。
选择“圆心抽取”工具,然后选择已有圆上的三个点(不共线),即可获取圆心坐标。
7. 交点抽取:当两个线段或曲线相交时,我们可能需要获取它们的交点坐标。
使用交点抽取功能可以轻松获得重合部分的交点坐标。
选择“交点抽取”工具,分别选择两个线段或曲线的交叉点,即可获取其坐标。
以上介绍了一些常用的CAD图形抽取技巧,通过运用这些技巧,您可以更高效地进行CAD绘图和编辑工作。
autocad 二次开发提取表格内容-概述说明以及解释

autocad 二次开发提取表格内容-范文模板及概述示例1:AutoCAD是一款广泛应用于建筑设计、工程图纸制作等领域的软件。
它具有强大的功能和灵活性,可以满足不同领域的需求。
而AutoCAD的二次开发则是指利用AutoCAD的开发接口(API)来扩展和定制AutoCAD 的功能,使之更适应特定应用场景的需求。
在AutoCAD中,表格是我们常见的元素之一。
它可以用来呈现和组织大量的数据,比如楼层平面图中的设备列表或者材料清单等。
而二次开发提取表格内容则是指通过编程的方式从AutoCAD图纸中自动提取出表格中的数据,以便快速、准确地分析和处理这些数据。
要实现二次开发提取表格内容,我们可以利用AutoCAD的开发接口。
首先,我们需要了解AutoCAD的对象模型,包括图纸、图层、块定义、实体等的层次关系和属性。
然后,我们可以通过编程的方式遍历图纸中的所有对象,找到我们需要的表格对象。
一种常用的方法是通过遍历实体对象,判断其属性来确定是否为表格。
AutoCAD中的表格是由网格、行和单元格组成的,我们可以通过判断实体类型以及相关属性,比如图层、颜色、线型等来定位表格对象。
一旦找到了表格对象,我们就可以进一步遍历其子对象,即行和单元格,从中提取出具体的数据。
在提取表格内容的过程中,我们还可以利用AutoCAD的属性和方法来处理数据。
比如,我们可以通过AutoCAD提供的计算属性来进行数据统计和分析。
另外,我们还可以使用AutoCAD的绘图功能,将提取出的数据在图纸上进行可视化展示,以便更直观地理解和分析数据。
需要注意的是,二次开发提取表格内容需要具备一定的编程知识和AutoCAD开发经验。
对于不熟悉编程的用户来说,建议参考AutoCAD 官方文档和相关的教程,或者寻求专业的开发人员的帮助和指导。
总之,利用AutoCAD的二次开发功能可以轻松地提取出表格内容,实现快速、准确的数据分析和处理。
这为建筑设计师、工程师等提供了更高效、便捷的工作方式,并推动了AutoCAD在各个领域的广泛应用和发展。
AutoCAD图形数据提取在地质信息可视化中的应用

引 言
、
随着计算机技术和信息可视化技术的不断发展, 在地质科学领域中, 建立三维数字地质模型, 实现 地质三维空间信息可视化和虚拟现实已成为当今研究热点问题之一。 在构造三维地质模型的过程中, 地 质信息数据的获取来源有两种方式。 第一种方式是直接将原始资料数据录入 。 第二种方式是图件数据提
一
的图 件绘制是基于 A t A u C D系统且被地质人员熟练掌握。但是, u C D系统的强大馋贽是图 o At, oA 形辅助 设计, 也就是说, 它依赖人的交互因素而不具有灵活的计算处理和图形且组织的功能 本文研究提出一
种基于 A t A X uo DD F图形文件数据提取的程序设计方法 。并将结果用于三维地质建模和信息可视化系 C 统中,实现 A t A u C D系统与三维地质建模系统的图形 、数据的互换接 1。 o 3
取。前者必须要求有原始资料数据且需要人工录人, 这种方式对于已具有在 A t A , 绘制的 u C D中 o 该类数
据的图形的成果 图件 , 无疑是增加了数据 的录人工作量 , 并可能与现有成果资料不相—致 。 这样 , 应用 第二种方式具有极大的优点。 ’ . A t A 是一种著名的计算机辅助设计图形系统,它在地质图件绘制领域应用十分广泛 ,即大量 uCD o 。
| 一
1 DXF文 件 结 构
、
、
. ,
D F r i cag fe 文件是 C D领域应用极为广泛的工业标准 ; X ( a n e hne ”) D w gx “l i A 是外部应用系统或不同图形 系统提供 的图形信息交换文件之一 。D F 文件的结构是一种在组代码约定下 ,包含实体命令和几何数 X 据信息的结构式存储的 A CI码文本文件 。主要结构 由标题 、表 、 、实体四个段和文件结尾组成。 SI 块 D F文件中的每段又包含组, 占两行, X 每组 第一行为组码, 第二行为组值。组码表示 A t A uo D系统约定数 C 据元素的含义及其类型 ( 其数据元素数据类型可以为字符型 、整型或浮点型 ) o组值表示一个数据元素 对象的值。表 1给出了实体段中关于 L O Y IE和 P L LN WP L LN O Y IE的部分组码与组值的含义。。
CAD属性提取和数据分析实用技巧

CAD属性提取和数据分析实用技巧CAD软件是众多工程师和设计师常用的工具,它们不仅可以帮助我们绘制和编辑图形,还可以提取和分析图形中的属性和数据。
在本文中,我将向大家介绍几种CAD属性提取和数据分析的实用技巧。
一、属性提取在CAD软件中,我们常常需要提取图形中的属性信息,比如图层、颜色、线型、文字内容等。
下面是一些实用的属性提取技巧:1. 图层属性提取:通过查看图层管理器或使用“LAYTRANS”命令,可以轻松提取图形中的图层信息,并对这些图层进行操作,比如删除、修改、重命名等。
2. 颜色属性提取:使用“COLOR”命令可以查看图形中的颜色属性,并对这些颜色进行修改或替换。
例如,我们可以将所有红色线条的颜色修改为蓝色。
3. 线型属性提取:使用“LINETYPE”命令可以查看图形中的线型属性,例如实线、虚线、点线等。
我们可以根据需要对这些线型进行修改或替换。
4. 文字内容提取:使用“EXPLODE”命令可以将文字转换为线条或曲线,并提取出文字的内容。
这在需要对文字进行编辑或分析时非常有用。
二、数据分析除了提取属性信息外,CAD软件还可以进行数据分析,帮助我们更好地理解和优化图形。
下面是一些实用的数据分析技巧:1. 面积计算:使用“AREA”命令可以计算图形中封闭区域的面积。
例如,我们可以计算出某个房间的面积,并在设计中进行参考。
2. 体积计算:使用“MASSPROP”命令可以计算图形中的封闭体积。
这在需要进行物体重量或容量分析时非常有用。
3. 距离计算:使用“DISTANCE”命令可以计算两点之间的距离。
这对于设计中需要精确测量距离的情况非常实用。
4. 图形对齐:使用“ALIGN”命令可以将两个图形对齐。
例如,我们可以将两段管道或道路对齐,以确保设计的连贯性和准确性。
总结:CAD属性提取和数据分析是我们在进行工程设计和图形编辑时常常需要用到的技巧。
通过掌握这些技巧,我们可以更加高效地操作和管理图形,提高工作效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AutoCAD图块实体几何信息的提取刘贤喜中国农业大学(100083)摘要本文介绍了在不“炸开(EXPLODE)”AutoCAD图块的前提下,利用ADS和C语言直接访问AutoCAD图形数据库的结果缓冲器,提取或处理图块内部所含全部子实体几何信息的方法。
关键词 AutoCAD图块几何信息提取 ADS接口 DXF码1 问题的提出AutoCAD是优秀的计算机辅助设计软件,不但具有友好的交互绘图功能,而且提供了强大的二次开发工具,如ADS、ARX等。
但在AutoCAD交互绘图环境中,对插入其中的图形块只作为一个整体来处理,仅直接提供其插入点的坐标值、比例因子和旋转角度等有限的几何信息,而不能直接提供图形块内部所有子实体的几何信息;若要对图块进行编辑修改,首先要用“EXPLODE”命令将图块分解为若干相互独立的几何实体。
我们在开发“饲料加工工艺设计专家系统(FPES)”时,用图块来表示饲料加工设备图形符号,为了让计算机能够在AutoCAD环境下自动生成饲料加工工艺流程图,不仅要识别图块所表示的加工设备,还要处理图块的外轮廓,以便于自动确定设备位置。
如果用“EXPLODE”命令将设备图块炸开,则就不再具有设备图形符号的含义了,计算机也就无法对设备进行智能处理。
为此我们利用ADS开发了一个智能模块,能够在不炸开图块的前提下,自动获取图块内部所含全部子实体几何信息的,提高 AutoCAD对图块的智能处理能力。
2 实现原理DXF(Drawing Exchang File)码是CAD领域的工业标准之一,在计算机内存中,可以把DXF看成是AutoCAD将当前图形数据库的ASCII码映像。
在AutoCAD图形数据库中实体类型(Entity)是预先定义的图形元素,如点(POINT)、直线(LINE)、圆(CIRCLE)、插入的块(INSERT)等。
实体名(Entity Name)用一个长整数表示,实际上是指向AutoCAD当前图形数据库的指针,通过这个指针,可以找到该实体在当前图形数据库中的记录。
结果缓冲器是ADS支撑环境的核心概念之一。
一个结果缓冲器被用来代表AutoCAD的实体和各种表(BLOCK、LTYPE、VIEW、LAYER、STYLE等)的数据信息,这些数据信息在结果缓冲器中都被映象为DXF组码与组值。
结果缓冲器在ADS中是这样定义的:union ads_u_val { //不同数据类型的联合ads_real rreal;ads_real rpoint[3];short rint;char *rstring;long rlname[2];long rlong;struct ads_binary rbinary;};struct rebuf { //结果缓冲器的结构struct rebuf *rbnext;short restype;union ads_u_val resval;};在AutoCAD当前数据库中,首先获取一个实体,并该得到实体的结果缓冲器,当DXF 组码为0时,其组值为实体类型,即:LINE、CIRCLE、ARC、PLINE、INSERT等;当DXF 组码为2时,其组值为图块名称;当DXF组码为10时,其组值根据实体类型的不同而表示不同的含义,可以是LINE的起点坐标,或是CIRCLE或ARC的中心坐标等。
当不同内容的结果缓冲器链接成一个链表时,它们就可以用来表示AutoCAD的图形实体和表记录了。
如:一个锤片粉碎机图形符号的块名为“CF”,其插入块的结果缓冲器表的结构如图1所示:由于所有图块的定义信息(包括几何信息)都以DXF组码与组值的形式存放在一个“BLOCK”符号表中,所以在AutoCAD的“BLOCK”符号表中检索指定的图块名,就可得到该图块全部定义信息的存储首地址,并将其作为一个结果缓冲器链表。
在循环遍历该结果缓冲器链表的过程中,通过DXF组码与组值,来判别块内子实体的类型,并提取有关几何信息。
3 程序流程图流程图如图2所示。
要获得一个图块的全部几何信息,首先要在AutoCAD当前图形数据库中确定一个实体(可以人为指定或程序自动获取),接下来,根据其DXF组码与组值,判断该实体是否为插入图块,当DXF码为0时,若DXF组值不是“INSERT”,该实体则不是图块,程序返回;若DXF组值为“INSERT”,则是图块,程序继续进行,当DXF组码为2时,其组值便为该图块的块名。
然后,在AutoCAD的“BLOCK”符号表中检索该块名,从而获得该图块信息链表的头指针,并遍历该链表,再根据链表中的不同DXF组码与组值确定块内子实体的不同类型,并提取的相关几何信息,如:起点、终点、圆心、半径、多义线的顶点、圆弧的起角、终角等等。
注意,由于块内的坐标值都是相对于块实体自身的实体坐标系(ECS)的值,所以,求得有关几何信息后,还要根据AutoCAD当前绘图环境中的坐标系、插入图块的插入点、X、Y方向的比例以及旋转角度等,对块内几何信息进行相关的平移变换、比例变换或旋转变换等坐标变换,直到该链表的标尾。
这样,便达到了不“炸开”图块就可获取其内部全部几何信息的目的。
程序是用C语言和ADS函数在Windows环境下编写的(源程序从略)。
4 结论利用上述方法开发的图形智能化处理模块,在“饲料加工工艺流程设计专家系统(FPES)”中收到较好的效果。
FPES在利用知识库中的知识和规则进行饲料加工工艺设计的同时,调用模块对设备图形符号进行智能处理,并自动生成设备布局合理的、符合有关标准的饲料加工工艺流程图。
参考文献1.刘贤喜.面向对象的饲料加工工艺设计专家系统的研究:[学位论文].北京:中国农业大学,19982.刘贤喜,陈忠良,李晓民.饲料加工工艺设计专家系统的设计.中国农业大学学报, 1998,3(4):47~503.方铁.AutoCADC语言高级编程.北京:清华大学出版社,1995年1月.通讯地址:北京中国农业大学东区213信箱,邮编:100083,联系人:刘贤喜电话:623928593.8 在AutoCAD中选择实体1. ads_name[在AutoCAD 2000中仍为此名]、acdbNameSet()[ads_name_set()]、acdbNameEqual()[ads_name_equal()]、acdbNameClear()[ads_name_clear()]、acdbNameNil()[ads_name_nil()]在ADS、ADSRX或ObjectARX中,选择实体的方法没有变化,但在ObjectARX 2000中改变了一些函数名(其他函数名没有改变,对于第6章讨论的数据类型和DCL对话框也基本是这样的)。
我们介绍一种新的数据类型:ads_name。
这种类型数据用来保存成功选择实体的结果。
通常,选择实体是为了用户能获得并修改实体特性。
这里是老式的ADS和现代的API ObjectARX 完全不同的地方。
在讨论ADS和ObjectARX在获得实体数据方面的差别之前,先来看一看ads_name的定义。
ads_name数据类型是一个具有两个long型元素的数组,因此不能使用赋值操作符使一个ads_name对象等于另一个ads_name对象。
这种情形类似于前文的ads_point数据类型。
正如ads_point数据类型一样,AutoCAD提供了一个名为acdbNameSet()的宏,用来使一个ads_name对象等于另一个ads_name对象。
ADS/ADSRX提供了许多宏来处理ads_name对象。
要使一个ads_name对象等于另一个ads_name对象,可以用acdbNameSet()宏。
要判断两个ads_name对象是否相等,可以用acdbNameEqual()宏。
要把一个空值(NULL)赋给一个ads_name对象,可以用acdbNameClear()宏。
要测试一个ads_name对象的值是否有效,可以用acdbNameNil()宏。
下面为一段代码实例:2. acedEntSel()[ads_entsel()]、acdbEntGet()[ads_entget()]、acdbEntMod()[ads_entmod()]、acdbEntUpd()[ads_entupd()]请牢记选择集也是ads_name对象(我知道这可能引起不小的混淆)。
我们很快就会讨论选择集。
前文谈到ADS和ObjectARX在获得和更改实体数据的方法上是完全不同的,在后面的章节中我们将讨论ObjectARX的方法。
在ADSRX中,使用acdbEntGet()函数获得实体数据,使用acdbEntMod()和acdbEntUpd()函数修改和更新实体。
下面是这些函数的定义:用acedEntSel()函数选择的实体将和ads_name对象相关联。
在详细讨论acedEntSel()函数之前,先要谈一下acdbEntGet()、acdbEntMod()和acdbEntUpd()函数。
acdbEntGet()函数返回一个结果缓冲区的单链表。
使用resbuf对象的rbnext字段可以遍历和检测结果缓冲区链表。
若rb为一个res buf结果缓冲区,则语法如下:之后还可以改变某些结果缓冲区中的值,当最终完成后调用acdbEntMod()函数修改实体的内部数据。
正如所见,该函数要求一个resbuf 对象。
如果正在处理一个如块或多段线一样的复杂对象,可以使用acdbEntUpd()函数来观察由各个acdbEntMod()函数调用所做的修改效果。
从本质上讲,使用ADSRX就是处理结果缓冲区链表。
ObjectARX的方法与此是完全不同的,且差别巨大。
对于有大量旧数据的用户,由于有ADSRX,这些函数在ObjectARX中仍然可以使用(Autodesk公司的人把ADS放进了ObjectARX)。
由于本书是讨论ObjectARX,因此,关于acdbEntGet()、acdbEntMod()和acdbEntUpd()函数的讨论就到此为止。
现在回到acedEntSel()函数,因为该函数在ObjectARX中仍然得到广泛应用。
再一次把acedEntSel()函数的定义说明如下:acedEntSel()函数暂停运行等待用户输入,并在entres中返回实体名,在ptres中返回选择实体使用的点。
参数str指定acedEntSel()函数暂停前显示的字符串。
参数str是可选的,如果是NULL,AutoCAD显示缺省提示“Select objects:”。
当用户指定一个复杂实体响应acedEntSel()函数时,则返回多段线或块的标题。
如果acedEntSel()函数调用成功,则返回RTNORM,失败则返回RTERROR,如果用户取消(按Esc键)则返回RTCAN。