利用属性提取样板文件,可以从图形中提取属性信息,创建单独的文本文件供数据库软件使用。
可以从图形中提取属性信息,创建单独的文本文件供数据库软件使用。此功能用于使用已经输入图形数据库中的信息创建明细表。提取属性信息不会对图形产生影响。
创建明细表的步骤
要提取属性信息,请先使用任意一种文本处理器创建一个属性样板文件,然后生成属性提取文件,最后在数据库应用程序中打开属性提取文件。要将属性信息提取到 DXF(图形交换格式)文件中,则不必先创建属性样板文件。
确保属性提取文件的名称与属性样板文件的名称不同。
在提取属性信息之前,必须创建一个 ASCII 样板文件,以定义将包含提取的属性信息的文件的结构。样板文件包含有关与要提取的信息关联的标记名、数据类型、字段长度和小数位数的信息。
样板文件中的每个字段都从图形中的块参照提取信息。样板文件中的每行指定一个写入属性提取文件中的字段,包括字段名称、字符宽度和数值精度。属性提取文件中的每条记录都包含所有指定字段,这些字段按样板文件给定的顺序排列。
以下样板文件包含 15 个可能的字段。N 表示数值、C 表示字符、www 表示字段的总宽度是 3 位数字、ddd 表示 3 位数字,代表在小数点右侧显示的小数位数。
BL:NAMECwww000(块名)
BL:LEVELNwww000(块嵌套层数)
BL:XNwwwddd(块插入点的 X 坐标)
BL:YNwwwddd(块插入点的 Y 坐标)
BL:ZNwwwddd(块插入点的 Z 坐标)
BL:NUMBERNwww000 (块计数器,与 MINSERT 相同)
BL:HANDLECwww000 (块句柄,与 MINSERT 相同)
BL:LAYERCwww000(块插入图层名)
BL:ORIENTNwwwddd(块旋转角度)
BL:XSCALENwwwddd(X 比例因子)
BL:YSCALENwwwddd(Y 比例因子)
BL:ZSCALENwwwddd(Z 比例因子)
BL:XEXTRUDENwwwddd(块拉伸方向的 X 分向量)
BL:YEXTRUDENwwwddd(块拉伸方向的 Y 分向量)
BL:ZEXTRUDENwwwddd(块拉伸方向的 Z 分向量)
numeric Nwwwddd(数值属性标记)
character Cwww000(字符属性标记)
样板文件可以包含列出的任意或所有 BL:xxxxxxx 字段名,但必须至少包含一个属性标记字段。属性标记字段确定属性提取文件中包含哪个属性和哪个块。如果块包含部分(而不是全部)指定属性,缺少的属性值将用空格或零填充,这取决于字段是字符字段还是数值字段。
属性样板文件中不应包含注释。
下面的插图和表显示了用户可能会提取的信息类型的示例,包括块名、制造商、型号和价格。
字段 |
字符 (C) 或数值数据 (N) |
最大字段长度 |
小数位数 |
---|---|---|---|
块名 |
C |
040 |
000 |
制造商 |
C |
006 |
000 |
型号 |
C |
015 |
000 |
价格 |
N |
006 |
002 |
可以创建任意数量的样板文件,这取决于如何使用数据。样板文件的每行指定一个要写入属性提取文件的字段。
请遵守以下附加原则:
下面是一个样板文件的样例。
BL:NAME C008000 (块名,8 个字符)
BL:X N007001 (X 坐标,格式 nnnnnn.d)
BL:Y N007001 (Y 坐标,格式 nnnnnn.d)
SUPPLIER C016000 (制造商名称,16 个字符)
MODEL C009000 (型号编号,9 个字符)
PRICE N009002 (单价,格式 nnnnnnnn.dd)
创建样板文件之后,可以使用以下格式之一提取属性信息:
CDF 格式生成一个文件,其中包含的记录与图形中的块参照一一对应。每个记录中的字段用逗号分隔,字符字段用单引号括起来。某些数据库应用程序可以直接读取这种格式。
SDF 格式也生成一个文件,其中包含的记录与图形中的块参照一一对应。每个记录中的字段宽度固定,不需要字段分隔符或字符串分隔符。“dBASE III 复制 . . . SDF”操作也生成 SDI 格式的文件。“附加来自... SDF”操作可以读取 dBASE IV 格式的文件,使用 FORTRAN 语言编写的用户程序可以轻松地处理这种文件。
DXF 生成图形交换格式的子集,其中只包括块参照、属性和序列结束对象。此选项不要求属性提取样板。文件扩展名 .dxx 用于将 DXF 格式的提取文件与普通 DXF 文件区分开。
属性提取文件列出用户在样板文件中指定的属性标记的值和其他信息。
如果使用示例样板指定了 CDF 格式,则输出如下所示:
'DESK', 120.0, 49.5, 'ACME INDUST.', '51-793W', 379.95
'CHAIR', 122.0, 47.0, 'ACME INDUST.', '34-902A', 199.95
'DESK', -77.2, 40.0, 'TOP DRAWER INC.', 'X-52-44',249.95
默认情况下,字符字段用单引号括起来。默认的字段分隔符是逗号。可以使用以下两个样板记录替代这些默认值:
C:QUOTE c(字符串分隔符)
C:DELIM c(字段分隔符)
C:QUOTE 或 C:DELIM 字段名后面的第一个非空字符为各自的分隔字符。例如,如果要使用双引号括起字符串,请在属性提取样板文件中包含下面一行:
C:QUOTE "
不能将引号分隔符设定为可以在字符字段中出现的字符。同样,也不能将字段分隔符设定为可以在数值字段中出现的字符。
如果使用示例样板指定了 SDF 格式,则文件类似于以下示例。
(名称) |
(X) |
(Y) |
(供应商) |
(型号) |
(价格) |
---|---|---|---|---|---|
桌子 |
120.0 |
49.5 |
ACME INDUST. |
51-793W |
379.95 |
椅子 |
122.0 |
47.0 |
ACME INDUST. |
34-902A |
199.95 |
桌子 |
-77.2 |
40.0 |
TOP DRAWER INC. |
X-52-44 |
249.95 |
字段顺序对应于样板文件中的字段顺序。可以在其他应用程序(如电子表格)中使用这些文件,也可以根据需要排序或操作数据。有关如何使用其他应用程序的数据的详细信息,请参见电子表格程序的文档。如果在文字编辑器或其他 Windows 文本处理器中打开文件,可以将这些信息作为文本粘贴到图形中。
样板文件中的行 BL:LEVEL 报告块参照的嵌套层数。插入到图形中的块的嵌套层次为 1。如果某块参照是另一个块的一部分(嵌套在其中),则它的嵌套层次为 2,以此类推。
对于嵌套的块参照,X,Y,Z 坐标值、比例因子、拉伸方向和旋转角度反映了世界坐标系中的嵌套块的实际位置、大小、方向和旋转。
在某些复杂的情况下,用两个比例因子和一个旋转角度不能正确表示嵌套块参照,例如,如果在三维中间旋转嵌套块。在这种情况下,提取的文件记录中的比例因子和旋转角度被设定为零。
如果字段宽度不足以容纳要放置在该字段中的数据,数据将被截断并显示以下消息:
** 记录 <记录号> 中字段溢出
例如,如果 BL:NAME 字段的宽度为 8 位字符,而图形中的块名为 10 个字符长,就会发生这种情况。