当前位置:文档之家› AutoCad形文件和缩略图格式

AutoCad形文件和缩略图格式

XY位移范围为 -128 到 +127。前面的 + 可选,并且可用括号增强可读性。下例中的矢量向左绘制(或移动)10 个单位,再向上绘制(或移动)3 个单位。
8,(-10,3)
在两个位移定义字节之后,形返回法向矢量模式。
用代码 9 可绘制一系列非标准矢量。代码 9 可指定任意数量的XY位移对。由 (0,0) 对终止。下例绘制三个非标准矢量后返回法向矢量模式。
上图中的所有矢量都按同样的长度定义绘制。对角矢量长度延长,以匹配最接近的正交矢量的X或Y位移。这与 AutoCAD 中的捕捉栅格操作相似。
下例构造名为DBOX的形,指定形的编号为 230。
*230,6,DBOX
014,010,01C,018,012,0
上述定义字节序列定义了一个单位长度、一个单位宽度的方框,以及从左下角到右上角的对角线。将文件保存为dbox.shp后,使用COMPILE命令生成dbox.shx文件。使用LOAD命令加载包含此定义的形文件,然后按照如下方式使用SHAPE命令:
形定义文件的每一行最多可包含128个字符,超过此长度的行不能编译。AutoCAD忽略空行和分号右边的文字。
2. 描述代码
形文件中描述代码包括矢量长度和方向代码和特殊代码两种。
(1) 矢量长度和方向代码:矢量长度和方向代码是一个由三个字符组成的字符串。第一个字符必须为0,表示后面的两个字符为十六进制值;第二个字符给出了矢量的长度,取值为1~F;第三个字符表示矢量的方向,取值为1~F,具体含义如图33-1所示。
33.1.2 形的定义
1. 形的定义格式
形的定义由标题行和定义字节行组源自:(1) 标题行:标题行以“*”为开始标记,用于说明形的编号、大小和名称,其格式为:
*shapenumber,defbytes,shapename
其中各项意义如下:
shapenumber:形的编号,取值范围是1~258;在同一文件中每个形编号应保持唯一。
specbyte
形定义字节。每个定义字节都是一个代码,或者定义矢量长度和方向,或者是特殊代码的对应值之一。在形定义文件中,定义字节可以用十进制或十六进制值表示。与许多形定义文件一样,本节样例中同时使用了十进制和十六进制定义字节值。如果形定义字节的第一个字符为 0(零),则后面的两个字符解释为十六进制值。
实例1 创建名为“TRIANGLE”的形
(1) 使用Windows附件中的“记事本”程序创建一个新的文本文件。
(2) 在该文件中添加如下内容,如图33-2所示。
; user.shp - user defined shapes
*1,4,TRAINGLE
020,016,01A,0
警告 文件中最后一行要回车,否自编译出错。
Compilation successful. Output file D:\Program
Files\AutoCAD2002\Fonts\user.shx contains 50 bytes.
表明“user.shp”文件编译成功,生成了名为“user.shx”的形文件;
(5) 在命令行输入:load,弹出“Select Shape Font File”对话框,选中“user.shx”文件后单击Open键返回。如图33-4所示。
(3) 保存该文件,并命名为“user.shp”。
(4) 进入AutoCAD 2002,在命令行输入:compile,弹出“Select Shape of Font File”对话框,选中“user.shp”文件后单击 键返回。如图33-3所示。
系统给出如下提示信息:
Compiling shape/font description file
defbytes:表示形定义描述行的数据字节数,包括末尾的零;最大值为2000。
shapename:形的名称,要求必须大写。
(2) 定义字节行:由描述代码组成,代码之间由逗号分开,最后以0结束。定义字节行可以有一行或多行。其格式为:
specbyte1,specbyte2,specbyte3,...,0
字体(包含每个字符的形定义的文件)的编号要与每个字符的 ASCII 码对应;其他形可指定任意数字。
defbytes
用于描述形的数据字节 (specbytes) 的数目,包括末尾的零。每个形最多可有 2,000 个字节。
shapename
形的名称。形的名称必须大写,以便于区分。包含小写字符的名称被忽略,并且通常用作字体形定义的标签。
位置堆栈下溢,位于形nnn中
代 码 7 绘制编号由下一个字节指定的子形。对于非 Unicode 字体,代码 7 后面的定义字节是 1 到 255 之间的形数字编号。对于 Unicode 字体,代码 7 后面的定义字节是 1 到 65535 之间的形数字编号。Unicode 形数字编号以两个字节计数(关于 Unicode 字体与非 Unicode 字体之间的差别的详细信息,请参见Unicode 字体说明)。此编号的形(在同一形文件中)在此时绘制。绘图模式不会为新形重置。当子形绘制结束后,继续绘制当前形。
AutoCad形和形文件
33.1.1 简介
“形(Shape)”是AutoCAD中一种特殊的图形对象,其用法类似于块,但与块相比,形的图形构成较简单,但其所占用空间较小,且绘制速度较快。因此形适合于创建需要多次重复使用的简单图形,例如特殊符号或文字字体等。
形也是在形定义文件中定义的,形定义文件是以“.shp”为扩展名的ASCII文件。形定义文件需要编译为形文件后才能为AutoCAD使用,编译后的形文件与形定义文件同名,其扩展名为“.shx”。
能够创建自己的形定义是非常有价值的。但是,要知道,这是一个非常复杂的学习课题,而且需要有耐心。
形定义文件的每一行最多可包含 128 个字符。超过此长度的行不能编译。由于 AutoCAD 忽略空行和分号右边的文字,所以可以在形定义文件中嵌入注释。
每个形说明都有一个标题行(格式如下),以及一行或多行定义字节。这些定义字节之间以逗号分隔,最后以 0 结束。
*2,11,MARK
082,10,4,050,002,008,1,2,007,1,0
保存该文件。
(2) 在AutoCAD 2002中对该文件重新进行编译和载入,具体步骤同实例一。
(3) 在AutoCAD 2002中插入形“MARK”,结果如图33-5所示。
下面是ACAD帮助中的内容
每个形或字符的形说明语法都不考虑形说明的最后用法(用作形或字体)。如果形定义文件被用作字体文件,则文件中的第一个条目必须描述字体本身,而不是该文件中的形;如果第一个条目描述一个形,则该文件被用作形文件。
简单的形定义字节在一个定义字节(一个specbyte字段)中包含矢量长度和方向的编码。每个矢量的长度和方向代码是一个三字符的字符串。第一个字符必须为 0,用于指示 AutoCAD 将后面的两个字符解释为十六进制值。第二个字符指定矢量的长度。有效的十六进制值的范围是从 1(1 个单位长度)到 F(15 个单位长度)。第三个字符指定矢量的方向。下图展示了方向代码。
命令:shape
输入形名称(或 ?):dbox
指定插入点:1,1
指定高度<当前值>:2
指定旋转角度<当前值>:0
结果形如下图所示:
代码 0 标识形定义结束。
代码 1 和 2 控制绘制模式。绘图模式在绘制每个形的开始时激活。当绘图模式打开(代码 1)时,一个矢量说明将绘制一条直线;当绘图模式关闭(代码 2)时,矢量说明只移到新位置,而不绘制直线。
9,(3,1),(3,2),(2,-3),(0,0)
必须用 (0,0) 对终止XY位移对序列,使 AutoCAD 能识别后面的法向矢量或特殊代码。
表33-1 特殊代码及意义
代码(十六进制)
代码(十进制)
意义
000
0
表示形定义结束
001
1
表示激活绘图模式(落笔)
002
2
表示停止绘图模式(提笔)
003
3
表示用代码的下一字节去除矢量长度,即比例缩小
004
4
表示用代码的下一字节去乘矢量长度,即比例放大
005
5
将当前位置压入堆栈,即保存当前位置
006
6
注意 所谓矢量长度是指沿X轴方向或Y轴方向的长度,斜线的矢量长度应以其在X轴或Y轴上的投影长度为准。例如图33-1中16条线段的矢量长度的相同的。
(2) 特殊代码:矢量长度和方向代码所定义的长度和方向仅为十几种,为了创建更丰富的形,AutoCAD提供了14种特殊代码(可使用十六进制或十进制),用于创建其他格式或指定特定操作。特殊代码的具体种类和意义如表1-1所示。
代码 3 和 4 控制每个矢量的相对尺寸。SHAPE命令指定的高度最初被当作单个正交矢量(方向为 0、4、8 或 C)的长度。代码 3 将矢量长度除以下一个字节。代码 4 将矢量长度乘以下一个字节。代码 3 和 4 后跟一个定义字节,该字节包含一个整数缩放比例(1 到 255)。如果要用形高度来指定整个形的尺寸,并要用矢量长度 10 绘制,则可用 3,10 缩放高度定义。缩放比例在同一形中是累计的,即,乘以 2 后再乘以 6,结果缩放比例为 12。通常用户需要在形的结尾恢复原缩放比例,尤其是对子形和字体形。AutoCAD 不会为用户自动重置缩放比例。
(6) 在命令行输入:shape,并根据提示输入:
Enter shape name or [?]: triangle Enter(指定形名)
Specify insertion point:0,0 Enter(指定插入点)
Specify height <1.0000>: Enter(指定形的比例系数)
Specify rotation angle <0>: Enter(指定形与水平方向的夹角)
相关主题