AutoCAD中特殊工程符号的编制及调用 赵海涛 刘艳 2000年 第20期   计算机绘图是计算机应用的一个重要分支,用计算机不仅可以绘制出清晰、漂亮的图形,而且可以优化设计,提高图形设计的质量。目前国际上广泛流行的工程制图软件是AutoDESK公司的AutoCAD软件或以它为平台的进行二次开发的其它专业设计绘图软件。   在使用AutoCAD绘图中,经常需要标注文字和符号。AutoCAD为我们提供了常用的文字、字母、阿拉伯数字及符号,它们存储于AutoCAD的FONT子目录中的各个形文件中,如HZTXT.SHX、TXT.SHX、SIMPLEX.SHX等,可以使用TEXT或DTEXT等命令输入文字或符号,使用DDEDIT命令来编辑修改已输入的文字符号。但在工程设计中,常常用到一些与文字在一起的特殊符号,如建筑结构中的二级钢筋符号“^20050201d^”,工字钢的符号“^20050201e^”等,在现成的形文件中没有这些符号的代码。遇到这种情况,大多数AutoCAD用户都采用LINE,ARC,CIRCLE等基本绘图命令来“画”出这些符号,并通过比例缩放SCALE等编辑命令,使这些符号与其它文字说明在大小、高度上基本相同。这样做有两个缺点:(1)“画”这些符号比较繁琐,并且浪费时间,降低工作效率。(2)修改编辑这些符号不方便,无法与其它文字一起编辑(因为它们是基本图形,而不是字体文件),而且在出图打印时,容易出现错位现象。   笔者通过多年的CAD经验和对字体文件的研究发现,修改字体文件可实现直接标注、调用特殊符号,并可与其它文字共同编辑修改,克服了以上列举的两项缺点。   AutoCAD中所有的字体、符号都是用形文件编制的,它的后缀为SHX。它的源文件叫作形描述文件,格式为文本文件,后缀为SHP,一般位于\Autocad\Source子目录中。每个.SHX都对应一个.SHP,可用DOS的全屏幕编辑命令EDIT来编辑.SHP文件,但这个字体文件中没有“^20050201d^”“^20050201e^”等特殊工程字符。如果CAD中西方字型定义为SIMPLEX.SHX,则我们可以在SIMPLEX.SHP中加入如下几行:   *200,20,FAI   2,8,(7,21),1,03C,10,(7,024),10,(7,064),09C,09C,078,070,070,2,070,0   *201,17,GZG   2,8,(0,21),1,070,070,078,07C,07C,07C,078,070,070,2,070,0   编辑并存盘,启动AutoCAD后,执行COMPILE(编译)命令,将SIMPLEX.SHP编译为SIMPLEX.SHX,执行LOAD命令,加载SIMPLEX.SHX后,当需要调用“^20050201d^”“^20050201e^”时,使用DTEXT命令,键入%%200及%%201即可分别标注“^20050201d^”“^20050201d^”,并能够与其它文字,符号共同编辑修改。   形描述文件同样可以用来编制其它特殊符号,其规定及含义如下:形描述文件.SHP是由一个或多个形定义组成的,每个形的定义包括一个标题行和若干个描述行。 一、标准行的规定如下:   *〈形编号〉,〈定义字节数〉,〈形名称〉   形编号是1到255的整数值,形定义字节数是包括结束符0在内的描述形所需要的数据字节数目,规定每个形的字节数不得超过1000。形的名称由英文字母或数字组成。   二、描述行是由若干用逗号分开的字节组成的,并以0为形定义的结束字节。带有前导零的字节是十六进制的,无前导零的字节是十进制的,如2为十进制,而00A则为十六进制。字节包含着进行编码的矢量长度和方向;高4为表示矢量方向,低4为表示矢量长度。矢量长度和方向的编码如^20050201a^1。除了绘制矢量外,形描述还需专用码,常用码的含义如下:   ●码0表示形结束。   ●码1和2用来控制绘图方式。1为启动绘图方式(笔落下),2为退出绘图方式(笔抬起)。   ●码8表示由下两个字节给出X—Y位移,取值范围为-128~+127。   ●码10或(00A)表示用后边两个字节定义一段八分圆弧。所谓“八分圆弧”是将一个圆分成八等分,每等分是45度弧;矢量为圆弧,且开始和结束都在八分弧的界限上,编号如^20050201b^2,其格式为:10,RADIUS,-0SC。代码10或00A后边跟的第一个字节是半径(1~255),第2个字节是弧的方向(正数为逆时针,负数为顺时针),它的开始八分弧号(S的值是0~7),和所占的八分弧数目(C的值是0~7)。为了易看懂,可以加上括号()。例如10,(1,-032)所画的弧为^20050201c^3中粗实线所示。灵活巧妙地使用形描述码及矢量,可编制出各种特殊工程符号,从而方便制图,提高设计效率。最后强调的是形一般采用控制码方式(用双百分号后面加形编号)来调用。