提取块属性数据(高级) (概念)

AutoCAD 2008

 
提取块属性数据(高级)
概念 操作步骤 快速参考
 
 
 

利用属性提取样板文件,可以从图形中提取属性信息,创建单独的文本文件供数据库软件使用。

可以从图形中提取属性信息,创建单独的文本文件供数据库软件使用。此功能用于使用已经输入图形数据库中的信息创建部件列表。提取属性信息不会对图形产生影响。

创建部件列表的步骤

  • 创建和编辑属性定义
  • 插入块时输入属性值
  • 创建样板文件,然后将属性信息提取到文本文件中

要提取属性信息,请先使用任意一种文本处理器创建一个属性样板文件,然后使用 AutoCAD 生成属性提取文件,最后在数据库应用程序中打开属性提取文件。要将属性信息提取到 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(数值属性标记)

characterCwww000(字符属性标记)

样板文件可以包含列出的任意或所有 BL:xxxxxxx 字段名,但必须至少包含一个属性标记字段。属性标记字段确定属性提取文件中包含哪个属性和哪个块。如果块包含部分(而不是全部)指定属性,缺少的属性值将用空格或零填充,这取决于字段是字符字段还是数值字段。

属性样板文件中不应包含注释。

下面的插图和表显示了用户可能会提取的信息类型的示例,包括块名、制造商、型号和价格。

字段

字符 (C) 或数值数据 (N)

最大字段长度

小数位数

块名

C

040

000

制造商

C

006

000

型号

C

015

000

价格

N

006

002

可以创建任意数量的样板文件,这取决于如何使用数据。样板文件的每行指定一个要写入属性提取文件的字段。

请遵守以下附加原则:

  • 属性标记、字符或数字数据之间必须留有空格。请使用空格键(而不要使用 TAB 键)输入空格。
  • 在每行(包括最后一行)结束时按 ENTER 键。
  • 每个属性提取样板文件必须包含至少一个属性标记字段,但是相同字段在同一文件中只能出现一次。

下面是一个样板文件的样例。

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)

注意在数值字段的格式代码中,字段总宽度包含小数点。例如,容纳数值 249.95 的字段的最小宽度是 6,被表示为 N006002。字符字段不使用格式代码的最后三位数字。

创建属性提取文件

创建样板文件之后,可以使用以下格式之一提取属性信息:

  • 逗号分隔格式 (CDF)
  • 空格分隔格式 (SDF)
  • 图形交换格式 (DXF)

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

字段顺序对应于样板文件中的字段顺序。可以在其他应用程序(如电子表格)中使用这些文件,也可以根据需要排序或操作数据。例如,可以在 Microsoft Excel 中打开属性提取文件,还可以在其中为每个字段指定单独的列。有关如何使用其他应用程序的数据的详细信息,请参见电子表格程序的文档。如果在记事本或其他 Windows 文本处理器中打开文件,可以将这些信息作为文本粘贴到图形中。

嵌套块

样板文件中的行 BL:LEVEL 报告块参照的嵌套层数。图形中插入的块的嵌套层数是 1,如果一个块参照是另一个块的一部分(嵌套在其中),则它的嵌套层数是 2,以此类推。

对于嵌套的块参照,X,Y,Z 坐标值、比例因子、拉伸方向和旋转角度反映了世界坐标系中的嵌套块的实际位置、大小、方向和旋转。

在某些复杂的情况下,用两个比例因子和一个旋转角度不能正确表示嵌套块参照,例如,如果在三维中间旋转嵌套块。在这种情况下,提取的文件记录中的比例因子和旋转角度被设置为零。

错误处理

如果字段宽度不足以容纳要放置在该字段中的数据,数据将被截断并显示以下消息:

** 记录 <记录号> 中字段溢出

例如,如果 BL:NAME 字段的宽度为 8 位字符,而图形中的块名为 10 个字符长,就会发生这种情况。