AutoCAD 文字 文字上下标在AutoCAD中,用于存放所绘图形的文件被称为图形文件,实体是组成这种文件的基本单位,文字(Text)是其中最常用的实体之一,
AutoCAD中文字的上标与下标
。一、术语
为叙述方便先定义几个与文字有关的术语,在BASESUPPER DATA(带上标的文字)、BASES UB DATA(带下标的文字)、BASESUPPERSUB DATA(带上下标的文字)的例子中,BASE和DATA称为基本文字,其中BASE又称前导(基本)文字、DATA又称后续(基本)文字,SUPPER称为上标文字, SUB称为下标文字,文字上下标在这里包括文字的上标(Superscript)、下标(Subscript)和上下标。
在AutoCAD中,文字是具有相同高度、高宽比(宽度)、旋转角度、倾斜角度、线型、颜色和字体等属性的字符串,由1个及多个字符组成。由于上下标文字与基本文字高度不同,按此定义,AutoCAD文字显然不能带上下标,因此给使用者带来了很多麻烦。在实际使用中,前导文字、上标文字、下标文字和后续文字必须分多次来写,虽然这样可以应付使用,但是有很多不便:
(1)由于要分次来写所以比较烦琐;
(2)由于基本文字与上下标文字分属不同的实体所以修改起来也比较烦琐;
(3)由于精确定位困难所以图中文字的上下标很难完全一致。
二、扩充TEXT命令
在AutoCAD各版本中,TEXT命令用于在图中写文字(字符串),只能直接写出基本文字,而不能直接写出带上下标的文字。能否用TEXT命令,在不对AutooCAD程序作任何修改的情况下,扩充TEXT命令的功能,使其也能直接写出带上下标的文字呢?本文得出的结论是肯定的。
要扩允TEXT命令,必须先弄清楚此命令写文字的处理过程:
(1)确定文字(西文字符、汉字)的各种属性;
(2)置"文字解释器"(Translater for text)初值;
(3)读入一行文字;
(4)对此行文字中的每个文字(西方字符为单个字符、汉字为两个字符)按其先后顺序逐个进行以下操作;
(5)落笔(置写方式);
(6)从形文件(西文字符从普通形文件、汉字从多字形文件)中取出对应数据;
(7)文字解释器将取出的数据按其数据定义边解释边写入图中,
工程
《AutoCAD中文字的上标与下标》(http://meiwen.anslib.com)。要扩充TEXT命令,且又不修改AutoCAD程序,那么只能从此命令所使用的数据上作文章,由以上给出的处理过程可知:TEXT命令所使用的主要数据为形文件(西方字库、汉字字库),即从形文件上作文章。为此,必须要了解形文件,不仅要了解文件格式,更重要的是要了解其中数据的定义。
形文件由形及索引组成,形由形定义命令和向量数据组成,AutoCAD中共有两种形文件:一种是普通形文件(Shape),用单字节作索引(用单个字节作为取出数据的索引),用于建立西方字库,最多可拥有256个形;另一种为多字形文件,(big fo nt)其含义为可容纳许多文字的形文件,用双字节作索引,用于建立汉字字库,最多可拥有256×256=65536个形。虽然这两种文件格式稍有不同,但其形定义完全一样,本篇统称形文件。
从形定义命令表(表1)可以看出,1与2、3与4、5与6是三组互为逆操作的命令,分别用于落笔与抬笔控制、向量数据的缩小与放大、当前位置的保存与恢复。
在文字解释器中,用到两个重要的变量:一个是"比例因子",为正实型数,其初数与形文件中的特殊形(见表2)有关,
用于向量数据的比例,其值可由形定义命令3与4加单字节整数(1~255)数据来改变,通过3与4的组合可以为比例因子设置不同的值;另一个是"当前位置",其初值为使用者输入的文字的参考点,其值在写文字过程中随着形定义的变化而随时被改变,其值还可由抬笔加位移来人为地改变,每个文字的起点都由此变量给出,命令5与6可把此变量进栈与出栈,用于此变量的保存与恢复。值得注意的问题是在一个形中3与4、5与6都不一定要成对使用,这是解决问题的关键所在。