明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4616|回复: 5

结果缓冲区resbuf中的restype的值到底具体代表什么意义

[复制链接]
发表于 2004-4-26 10:31:00 | 显示全部楼层 |阅读模式
struct resbuf{ struct *next; short restype; union ads_u_val resval; }; 其中restype是标识存储数据类型的,当restype<0时,resval存储的是实体名称,其他的呢,请给出详细的列表,我在帮助文件中找不到
发表于 2004-5-3 19:17:00 | 显示全部楼层
从ARX的帮助中截取的,看看有没有用。 Result Type Codes Defined by ObjectARX The restype field of a result buffer is a short integer code that indicates which type of value is stored in the resval field of the buffer. For results passed to and from ObjectARX functions, ObjectARX defines the result type codes listed in the following table: Result type codes Code Description
RTNONE No result value
RTREAL Real (floating-point) value
RTPOINT 2D point (X and Y; Z == 0.0)
RTSHORT Short (16-bit) integer
RTANG Angle
RTSTR String
RTENAME Entity name
RTPICKS Selection set name
RTORINT Orientation
RT3DPOINT 3D point (X, Y, and Z)
RTLONG Long (32-bit) integer
RTVOID Void (blank) symbol
RTLB List begin (for nested list)
RTLE List end (for nested list)
RTDOTE Dot (for dotted pair)
RTT AutoLISP t (true)
RTNIL AutoLISP nil
RTDXF0 Group code zero for DXF lists(used only with acutBuildList())
 楼主| 发表于 2004-5-5 21:42:00 | 显示全部楼层
大有帮助


不过问题还没有解决
发表于 2004-5-6 10:27:00 | 显示全部楼层
多看一些用buffer的例子,就能明白了


只能说是动态的,很像链表的一个单元,不过根据单元中第一个变量确定这个单元存储的是何种类型的数据,在读取就可以了
 楼主| 发表于 2004-5-9 09:59:00 | 显示全部楼层
在autocad的帮助中找到答案



<TABLE class=BasicLeft cellSpacing=0 rules=cols>
<TBODY>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>0-9

</TD>
<TD class=BasicRight_CELL>
< class=table_body>字符串(由于在 AutoCAD 2000 中引入了扩展符号名,因此已取消 255 个字符的限制。尽管大多数行应控制在 2049 个字节内,但每行的字节数并没有明确的限制。)

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>10-39

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度三维点值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>40-59

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度浮点值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>60-79

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>90-99

</TD>
<TD class=BasicRight_CELL>
< class=table_body>32 位整数值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>100

</TD>
<TD class=BasicRight_CELL>
< class=table_body>字符串(最多 255 个字符;对于 Unicode 字符串,字符数要少一些)

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>102

</TD>
<TD class=BasicRight_CELL>
< class=table_body>字符串(最多 255 个字符;对于 Unicode 字符串,字符数要少一些)

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>105

</TD>
<TD class=BasicRight_CELL>
< class=table_body>表示 16 进制 (hex) 句柄值的字符串

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>110-119

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度浮点值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>120-129

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度浮点值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>130-139

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度浮点值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>140-149

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度标量浮点值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>170-179

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>210-239

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度浮点值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>270-279

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>280-289

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>290-299

</TD>
<TD class=BasicRight_CELL>
< class=table_body>布尔标志值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>300-309

</TD>
<TD class=BasicRight_CELL>
< class=table_body>任意字符串

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>310-319

</TD>
<TD class=BasicRight_CELL>
< class=table_body>表示二进制数据块的十六进制值的字符串

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>320-329

</TD>
<TD class=BasicRight_CELL>
< class=table_body>表示 16 进制句柄值的字符串

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>330-369

</TD>
<TD class=BasicRight_CELL>
< class=table_body>表示十六进制对象 ID 的字符串

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>370-379

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>380-389

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>390-399

</TD>
<TD class=BasicRight_CELL>
< class=table_body>表示 16 进制句柄值的字符串

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>400-409

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>410-419

</TD>
<TD class=BasicRight_CELL>
< class=table_body>字符串

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>420-429

</TD>
<TD class=BasicRight_CELL>
< class=table_body>32 位整数值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>430-439

</TD>
<TD class=BasicRight_CELL>
< class=table_body>字符串

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>440-449

</TD>
<TD class=BasicRight_CELL>
< class=table_body>32 位整数值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>450-459

</TD>
<TD class=BasicRight_CELL>
< class=table_body>长整数

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>460-469

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度浮点值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>470-479

</TD>
<TD class=BasicRight_CELL>
< class=table_body>字符串

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>999

</TD>
<TD class=BasicRight_CELL>
< class=table_body>注释(字符串)

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>1000-1009

</TD>
<TD class=BasicRight_CELL>
< class=table_body>字符串(与使用 0-9 代码范围表示的限制相同)

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>1010-1059

</TD>
<TD class=BasicRight_CELL>
< class=table_body>双精度浮点值

</TD></TR>
<TR class=row_1>
<TD class=BasicRight_CELL>
< class=table_body>1060-1070

</TD>
<TD class=BasicRight_CELL>
< class=table_body>16 位整数值

</TD></TR>
<TR class=row_2>
<TD class=BasicRight_CELL>
< class=table_body>1071

</TD>
<TD class=BasicRight_CELL>
< class=table_body>32 位整数值

</TD></TR></TBODY></TABLE>
 楼主| 发表于 2004-5-9 10:00:00 | 显示全部楼层

组码

说明

-5

APP:永久反应器链

-4

APP:条件运算符(仅适用于 ssget)

-3

APP:扩展数据 (XDATA) 标记(固定)

-2

APP:图元名参照(固定)

-1

APP:图元名。每次打开图形时,图元名都会发生变化,从不保存(固定)

0

表示图元类型的字符串(固定)

1

图元的主文字值

2

名称(属性标记、块名等)

3-4

其他文字或名称值

5

图元句柄;最多 16 个十六进制数字的字符串(固定)

6

线型名(固定)

7

文字样式名(固定)

8

图层名(固定)

9

DXF:变量名标识符(仅在 DXF 文件的 HEADER 段中使用)

10

主要点;直线或文字图元的起点、圆的圆心,等等
DXF:主要点的 X 值(后跟 Y 和 Z 值代码 20 和 30)
APP:三维点(三个实数的列表)

11-18

其他点
DXF:其他点的 X 值(后跟 Y 值代码 21-28 和 Z 值代码 31-38)
APP:三维点(三个实数的列表)

20, 30

DXF™:主要点的 Y 值和 Z 值

21-28, 31-37

DXF:其他点的 Y 值和 Z 值

38

DXF:如果非零,则为图元的标高

39

如果非零,则为图元的厚度(固定)

40-48

双精度浮点值(文字高度、缩放比例等)

48

线型比例;双精度浮点标量值;默认值适用于所有图元类型

49

重复的双精度浮点值。一个图元的可变长度表(例如,LTYPE 表中的虚线长度)中可能会出现多个 49 组。7x 组总是出现在第一个 49 组之前,用以指定表的长度

50-58

角度(在 DXF 文件中以度为单位,在 AutoLISP 和 ObjectARX 应用程序中以弧度为单位)

60

图元可见性;整数值;未赋值或值为 0 时表示可见;值为 1 时表示不可见

62

颜色号(固定)

66

“图元跟随”标志(固定)

67

空间 模型空间或图纸空间(固定)

68

APP:标识视口是打开但在屏幕上完全不可见,还是未激活或处于关闭状态

69

APP:视口标识码

70-78

整数值,例如重复计数、标志位或模式

90-99

32 位整数值

100

子类数据标记(将派生类名作为字符串)从其他具体类派生的所有对象和图元类必须具有此标记。子类数据标记用于分离由同一对象的继承链中的不同类定义的数据。
对于从 ObjectARX 派生的每个不同的具体类的 DXF 名称来说,这是必须满足的额外要求(参见MSITStore:C:\Program%20Files\AutoCAD%202004\help\acad_dev.chm::/acad_dxf.chm::/dxf_ab8.html#82613" target="_blank" >“子类标记”

102

控制字符串,后跟“{<任意名称>”或“}”。除了字符串必须以“{”开始外,它与扩展数据 1002 组码类似。其后可跟任意字符串,字符串的解释取决于应用程序。所允许的另一个控制字符串是作为组结束符的“}”。除了在执行图形核查操作期间外,AutoCAD 一般不解释这些字符串。它们供应用程序使用

105

DIMVAR 符号表条目的对象句柄

110

UCS 原点(仅当将代码 72 设置为 1 时才显示)
DXF:X 值;APP:三维点

111

UCS X 轴(仅当将代码 72 设置为 1 时才显示)
DXF:X 值;APP:三维矢量

112

UCS Y 轴(仅当将代码 72 设置为 1 时才显示)
DXF:X 值;APP:三维矢量

120-122

DXF:UCS 原点的 Y 值、UCS X 轴和 UCS Y 轴

130-132

DXF:UCS 原点的 Z 值、UCS X 轴和 UCS Y 轴

140-149

双精度浮点值(例如点、标高和 DIMSTYLE 设置)

170-179

16 位整数值,例如表示 DIMSTYLE 设置的标志位

210

拉伸方向(固定)
DXF:拉伸方向的 X 值
APP:三维拉伸方向矢量

220, 230

DXF:拉伸方向的 Y 值和 Z 值

270-279

16 位整数值

280-289

16 位整数值

290-299

布尔标志值

300-309

任意字符串

310-319

与 1004 组码的表示和限制相同的任意二进制数据块:最大长度为 254 个字符的十六进制字符串表示最大长度为 127 个字节的数据块

320-329

任意对象句柄;“按原样”获取的句柄值。它们在 INSERT 和 XREF 操作期间不进行转换

330-339

软指针句柄;指向同一个 DXF 文件或图形中的其他对象的任意软指针。在 INSERT 和 XREF 操作期间进行转换

340-349

硬指针句柄;指向同一个 DXF 文件或图形中的其他对象的任意硬指针。在 INSERT 和 XREF 操作期间进行转换

350-359

软所有者句柄;指向同一个 DXF 文件或图形中的其他对象的任意软所有者指针。在 INSERT 和 XREF 操作期间进行转换

360-369

硬所有者句柄;指向同一个 DXF 文件或图形中的其他对象的任意硬所有者指针。在 INSERT 和 XREF 操作期间进行转换

370-379

线宽枚举值 (AcDb:ineWeight)。作为 16 位整数存储和移动。自定义非图元对象时可以使用所有范围组码,但图元类只能使用以图元表示的 371-379 DXF 组码,因为 AutoCAD® 和 AutoLISP 始终假定 370 组码是图元线宽。这将使 370 组码和其他“通用”图元字段具有相同的行为

380-389

PlotStyleName 类型枚举 (AcDb::PlotStyleNameType)。作为 16 位整数存储和移动。自定义非图元对象时可以使用所有范围组码,但图元类只能使用以图元形式表示的 381-389 DXF 组码,原因与上述线宽范围相同

390-399

表示 PlotStyleName 对象的句柄值的字符串,本质上是硬指针,但范围不同,更容易处理向后兼容。作为对象 ID(在 DXF 文件中为句柄)和 AutoLISP 中的特殊类型存储和移动。自定义非图元对象时可以使用所有范围组码,但图元类只能使用以图元形式表示的 391-399 DXF 组码,原因与上述线宽范围相同

400-409

16 位整数

410-419

字符串

420-427

32 位整数值。与真彩色一同使用时,表示 24 位颜色值的 32 位整数。高阶字节(8 位)为 0;低阶字节为包含“蓝色”值 (0-255)、然后是“绿色”值的无符号字符;次高阶字节是“红色”值。将该整数值转换为十六进制将得到以下位掩码:0x00RRGGBB。例如,红色==200、绿色==100 和蓝色==50 的真彩色为 0x00C86432,而在 DXF 中以十进制表示则为 13132850

430-437

字符串;用于真彩色时,则为表示颜色名称的字符串

440-447

32 位整数值。用于真彩色时,表示透明度值

450-459

长整数

460-469

双精度浮点值

470-479

字符串

999

DXF:999 组码表示它后面的行是注释字符串。SAVEAS 不会在 DXF 输出文件中包含这样的组,但 OPEN 则包括这些组并忽略注释。可以使用 999 组在已编辑的 DXF 文件中包含注释

1000

扩展数据中的 ASCII 字符串(最多可以包含 255 个字节)

1001

扩展数据的注册应用程序名(最多可以包含 31 个字节的 ASCII 字符串)

1002

扩展数据控制字符串(“{”或“}”)

1003

扩展数据图层名

1004

扩展数据中的字节数据块(最多可以包含 127 个字节)

1005

扩展数据中的图元句柄;最多可以包含 16 个十六进制数字的字符串

1010

扩展数据中的点
DXF:X 值(后跟 1020 和 1030 组)
APP:三维点

1020, 1030

DXF:点的 Y 值和 Z 值

1011

扩展数据中的三维世界空间位置
DXF:X 值(后跟 1021 和 1031 组)
APP:三维点

1021, 1031

DXF:世界空间位置的 Y 值和 Z 值

1012

扩展数据中的三维世界空间位移
DXF:X 值(后跟 1022 和 1032 组)
APP:三维矢量

1022, 1032

DXF:世界空间位移的 Y 值和 Z 值

1013

扩展数据中的三维空间方向
DXF:X 值(后跟 1022 和 1032 组)
APP:三维矢量

1023, 1033

DXF:世界空间方向的 Y 值和 Z 值

1040

扩展数据双精度浮点值

1041

扩展数据距离值

1042

扩展数据缩放比例

1070

扩展数据 16 位有符号整数

1071

扩展数据 32 位有符号长整数

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 03:28 , Processed in 0.182279 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表