|
形和形文件
发表日期:2006-4-5
|
33.1.1简介 “形(Shape)”是AutoCAD中一种特殊的图形对象,其用法类似于块,但与块相比,形的图形构成较简单,但其所占用空间较小,且绘制速度较快。因此形适合于创建需要多次重复使用的简单图形,例如特殊符号或文字字体等。 形也是在形定义文件中定义的,形定义文件是以“.shp”为扩展名的ASCII文件。形定义文件需要编译为形文件后才能为AutoCAD使用,编译后的形文件与形定义文件同名,其扩展名为“.shx”。 33.1.2形的定义 1.形的定义格式 形的定义由标题行和定义字节行组成: (1)标题行:标题行以“*”为开始标记,用于说明形的编号、大小和名称,其格式为: *shapenumber,defbytes,shapename 其中各项意义如下: shapenumber:形的编号,取值范围是1~258;在同一文件中每个形编号应保持唯一。 defbytes:表示形定义描述行的数据字节数,包括末尾的零;最大值为2000。 shapename:形的名称,要求必须大写。 (2)定义字节行:由描述代码组成,代码之间由逗号分开,最后以0结束。定义字节行可以有一行或多行。其格式为: specbyte1,specbyte2,specbyte3,...,0 形定义文件的每一行最多可包含128个字符,超过此长度的行不能编译。AutoCAD忽略空行和分号右边的文字。 2.描述代码 形文件中描述代码包括矢量长度和方向代码和特殊代码两种。 (1)矢量长度和方向代码:矢量长度和方向代码是一个由三个字符组成的字符串。第一个字符必须为0,表示后面的两个字符为十六进制值;第二个字符给出了矢量的长度,取值为1~F;第三个字符表示矢量的方向,取值为1~F,具体含义如图33-1所示。 注意所谓矢量长度是指沿X轴方向或Y轴方向的长度,斜线的矢量长度应以其在X轴或Y轴上的投影长度为准。例如图33-1中16条线段的矢量长度的相同的。
 (2)特殊代码:矢量长度和方向代码所定义的长度和方向仅为十几种,为了创建更丰富的形,AutoCAD提供了14种特殊代码(可使用十六进制或十进制),用于创建其他格式或指定特定操作。特殊代码的具体种类和意义如表1-1所示。 表33-1特殊代码及意义代码(十六进制) 代码(十进制) 意义 |
000 0 表示形定义结束 |
001 1 表示激活绘图模式(落笔) |
002 2 表示停止绘图模式(提笔) |
003 3 表示用代码的下一字节去除矢量长度,即比例缩小 |
004 4 表示用代码的下一字节去乘矢量长度,即比例放大 |
005 5 将当前位置压入堆栈,即保存当前位置 |
006 6 从堆栈弹出当前位置,即恢复由代码005保存的最后一个位置 |
007 7 引用其它形,代码的下一字节指定了被引形的编号 |
008 8 由当前位置绘制线段,代码的下两个字节指定了线段在X、Y方向上的相对位移 |
009 9 由当前位置开始绘制一系列的线段,代码后面的字节分别指定了各个线段在X、Y方向上的相对位移,最后以(0,0)为结束符 |
00A 10 绘制八分圆弧 |
00B 11 绘制分数圆弧 |
00C 12 根据由X、Y位移和凸度绘制圆弧 |
00D 13 多个指定凸度的圆弧 |
00E 14 仅适用于垂直文字,用来将下一个字符绘制在前一个字符的下面 |
| 提示在形定义的代码中可使用括号来增强可读性。 33.1.3形的创建与使用 形的定义文件是ASCII格式的,因此,可以使用任一文本编辑器直接打开或创建填充图案文件,并对其内容进行补充和修改。 实例1创建名为“TRIANGLE”的形 (1)使用Windows附件中的“记事本”程序创建一个新的文本文件。 (2)在该文件中添加如下内容,如图33-2所示。 ;user.shp-userdefinedshapes *1,4,TRAINGLE 020,016,01A,0
 警告文件中最后一行要回车,否自编译出错。
 (3)保存该文件,并命名为“user.shp”。 (4)进入AutoCAD2002,在命令行输入:compile,弹出“SelectShapeofFontFile”对话框,选中“user.shp”文件后单击键返回。如图33-3所示。 系统给出如下提示信息: Compilingshape/fontdescriptionfile Compilationsuccessful.OutputfileD:\Program Files\AutoCAD2002\Fonts\user.shxcontains50bytes. 表明“user.shp”文件编译成功,生成了名为“user.shx”的形文件; (5)在命令行输入:load,弹出“SelectShapeFontFile”对话框,选中“user.shx”文件后单击Open键返回。如图33-4所示。
 (6)在命令行输入:shape,并根据提示输入: Entershapenameor[?]:triangleEnter(指定形名) |
Specifyinsertionpoint:0,0Enter(指定插入点) |
Specifyheight<1.0000>:Enter(指定形的比例系数) |
Specifyrotationangle<0>:Enter(指定形与水平方向的夹角) |
|