随着基于CAD的应用软件飞速发展,经常需要保存一些与图形可视性无关的数据,即非图形参数。例如在绘制化验样图中包含品位数据。MxCAD定义一类新的参数——实体扩展数据。扩展数据与实体的可视性无关,而是用户根据需要自定义的数据,因此扩展数据的类型与数目都是任意的。扩展数据不能单独地存在,它必须依附于某一个实体,因而它与实体的图形参数共存。由于扩展数据与实体的可视性无关,因而它对图形毫无影响。由此可见,实体扩展数据的引入,既保持了图形的简洁性,又保留了用户必需的信息。因此,它对实现图形的美观性与数据的完备性有重大意义。
1、扩展数据组码及其说明
图元名 | 组码 | 说明 |
---|---|---|
字符串 | 1000 | 扩展数据中的字符串最长为 255 个字节(第 256 个字符将被保存为空字符) |
应用程序名称 | 1001 | 字符串名称最长为 31 个字节(第 32 个字符将被保存为空字符)。 注意:请不要向您的扩展数据中添加组码 1001 |
控制字符串 | 1002 | 一个扩展数据控制字符串即可以是 "{" 也可以是 "}"。这些大括号可以使应用程序通过把数据细分为表来组织它们的数据。左大括号开始表,右大括号结束最近的表。表可以被嵌套 |
图层名称 | 1003 | 与扩展数据相联系的图层的名称 |
二进制数据 | 1004 | 二进制数据被组织到可变长度的数据组 中。每个数据组最长为 127 个字 节。在 ASCII DXF 文件中,二进制数据被表示为十六进制数字字符串,每个二进制字节两个字符 |
数据库句柄 | 1005 | 图形数据库中的图元句柄 |
3 个实数 | 1010,1020,1030 | 三个实数值的次序为 X、Y 和 Z。它们可被用于表示点或矢量记录 |
世界空间位置 | 1011,1021,1031 | 与简单的三维点不同,世界空间坐标可被移动、缩放、旋转和连同属于扩展数据的上级图元一起产生镜像。当命令 STRETCH 被用于上级图元且此点位于所选窗口中时,世界空间位置也可被拉伸 |
世界空间位移 | 1012,1022,1032 | 同样三维点也可被缩放,旋转和连同上级图元一起产生镜像(但不能被移动或拉伸) |
世界方向 | 1013,1023,1033 | 同样三维点也可被旋转和连同上级图元一起产生镜像(但不能被移动、缩放或拉伸) |
实数 | 1040 | 一个实数 |
距离 | 1041 | 一个可连同上级图元一起被缩放的实数值 |
缩放比例 | 1042 | 同样是一个可连同上级图元一起被缩放的实数值。与距离的区别在于此图元为应用程序定义的 |
整数 | 1070 | 一个 16 位整数(有符号的或无符号的) |
长整数 | 1071 | 一个 32 位符号(长型)整数 |
2、SetXData写数据
主要用到函数说明:MxDrawEntity::SetXData
设置实体的扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] IMxDrawResbuf* pXData | 扩展数据链表 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
3、GetXData读数据
主要用到函数说明:MxDrawEntity::GetXData
返回实体的扩展数据。
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
4、SetxDataString写数据
主要用到函数说明:MxDrawEntity::SetxDataString
写一个字符串扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] BSTR val | 字符串值 |
szAppName | 扩展数据名称 |
nItem | 该值所在位置 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
5、GetxDataString读数据
主要用到函数说明:MxDrawEntity::GetxDataString2
读取一个字符扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] LONG lItem | 该值所在位置 |
[out, retval] BSTR* pRet | 返回该变量值 |
szAppName | 扩展数据名称 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
6、SetxDataDouble写数据
主要用到函数说明:MxDrawEntity::SetxDataDouble
写一个Double扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] BSTR val | 字符串值 |
szAppName | 扩展数据名称 |
nItem | 该值所在位置 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
7、GetxDataDouble读数据
主要用到函数说明:MxDrawEntity::GetxDataDouble2
读取一个Double扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] LONG lItem | 该值所在位置 |
[out, retval] BSTR* pRet | 返回该变量值 |
szAppName | 扩展数据名称 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
8、SetxDataLong写数据
主要用到函数说明:MxDrawEntity::SetxDataLong
写一个long扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] BSTR val | 字符串值 |
szAppName | 扩展数据名称 |
nItem | 该值所在位置 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
9、GetxDataLong读数据
主要用到函数说明:MxDrawEntity::GetxDataLong2
读取一个Long扩展数据,详细说明如下:
参数 | 说明 |
---|---|
[in] LONG lItem | 该值所在位置 |
[out, retval] BSTR* pRet | 返回该变量值 |
szAppName | 扩展数据名称 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
10、GetAllAppName读所有名称
主要用到函数说明:MxDrawEntity::GetAllAppName
得到所有扩展数据名称,详细说明如下:
参数 | 说明 |
---|---|
[out, retval] IMxDrawResbuf** ppRet | 返回IMxDrawResbuf扩展数据名称数组 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
11、DeleteXData删除数据
主要用到函数说明:MxDrawEntity::DeleteXData
删除扩展数据,详细说明如下:
参数 | 说明 |
---|---|
pzsAppName | 删除的扩展数据名称,如果为空,删除所有扩展数据 |
js代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|