资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
CAD 上标输入cad 上标如何输入 cad 上标如何输入 输入多行文字命令,然后输入 m2,选中 m,然后再选择 a/b 按扭就 OKTEXT 方法摘要 在各种操作系统下的所有 AutoCAD 版本,都不能直接写出带上下标的文字,并根据工作实践,介绍了该文提出了解决这一问题的方法。关键词 AutoCAD 文字 文字上下标在 AutoCAD 中,用于存放所绘图形的文件被称为图形文件 ,实体是组成这种文件的基本单位,文字(Text)是其中最常用的实体之一。一、术语为叙述方便先定义几个与文字有关的术语,在 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)文字解释器将取出的数据按其数据定义边解释边写入图中。CAD 上标输入要扩充 TEXT 命令,且又不修改 AutoCAD 程序,那么只能从此命令所使用的数据上作文章,由以上给出的处理过程可知:TEXT 命令所使用的主要数据为形文件(西方字库、汉字字库), 即从形文件上作文章。为此,必须要了解形文件,不仅要了解文件格式,更重要的是要了解其中数据的定义。形文件由形及索引组成,形由形定义命令和向量数据组成,AutoCAD 中共有两种形文件:一种是普通形文件(Shape),用单字节作索引(用单个字节作为取出数据的索引 ),用于建立西方字库,最多可拥有 256 个形;另一种为多字形文件,(big fo nt)其含义为可容纳许多文字的形文件,用双字节作索引,用于建立汉字字库,最多可拥有 256256=65536 个形。虽然这两种文件格式稍有不同,但其形定义完全一样 ,本篇统称形文件。从形定义命令表(表 1)可以看出,1 与 2、3 与 4、5 与 6 是三组互为逆操作的命令,分别用于落笔与抬笔控制、向量数据的缩小与放大、当前位置的保存与恢复。在文字解释器中,用到两个重要的变量:一个是比例因子, 为正实型数,其初数与形文件中的特殊形( 见表 2)有关 ,用于向量数据的比例,其值可由形定义命令 3 与 4 加单字节整数(1255)数据来改变,通过 3 与 4 的组合可以为比例因子设置不同的值;另一个是当前位置, 其初值为使用者输入的文字的参考点,其值在写文字过程中随着形定义的变化而随时被改变,其值还可由抬笔加位移来人为地改变,每个文字的起点都由此变量给出,命令 5 与 6 可把此变量进栈与出栈 ,用于此变量的保存与恢复。值得注意的问题是在一个形中 3 与4、 5 与 6 都不一定要成对使用,这是解决问题的关键所在。现以写同时带上标和下标的文字为例(参考表 3),设上标和下标的文字高度均为基本文字的 1/2 倍,使用上述 3 组形定义命令 ,说明 TEXT 命令直接写出带上下标文字的方法。以下是 TEX T 命令中文字解释器的工作过程:(1)在 A 点落笔(使用形定义命令 1),开始写前导文字,当前位置为 A 点,比例因子为文字高度/基线上方向量长度(2)写完前导文字 BASE 后,当前位置为 B 点;(3)B 点位置进栈(命令 5);(4)进行写上标文字前的位置调整,将写上标文字的起点(当前位置) 调整到 D 点,在 B 点笔( 命令 2)、位移到 C 点( 数据 OA4)、再位移到 D 点( 数据(010) ;(5)调整上标文字的高度,将比例因子除 2(命令 3、数据 2),使其高度缩小 2 倍;(6)在 D 点落笔(命令 1)后,开始写上标文字 SUPPER,写完后当前位置为 E 点;(7)B 点位置出栈(命令 6),回到 B 点并使其成为当前位置;(8)进行写下标文字前的位置调整,将写下标文字的起点(当前位置) 调整到 G 点,在 B 点笔( 命令 2)、位移到 F 点 (数据 04C)、再位移到 G 点( 数据 0 20);(9)在 G 点落笔(命令 1)后,开始写下标文字 SUB,写完后当前位置为 H 点;(10)恢复后续文字的高度,将比例因子乘 2(命令 4、数据 2),使其高度放大 2 倍,恢复到基本文字的原有高度;(11)进行写后续文字前的位置调整,将后续文字的起点(当前位置)调整到 J 点,在 H 点抬笔(命令 2)、位移到 I 点( 数据 010)、再位移到 J 点( 数据 024);(12)在 J 点落笔(命令 1)后,开始写后续文字 DATA,写完后当前位置为 K 点;CAD 上标输入(13)到 K 点整个写文字过程结束。对写带上标或带上下标的文字。从以上的过程可以看出:不修改AutoCAD 程序,只利用 AutoCAD 现有的功能,已有可能使 TE XT 命令直接写出带上下标的文字。三、分隔文字在包含前导文字、上标文字、下标文字和后续文字的带上下标文字中,显然必须只要用 3 个特殊文字来分隔它们,称为分隔文字,取名为 上下标开始 、上下标隔 和上下标结束。在包含前导文字、下标文字和后续文字的带上标文字中,要用两个分隔文字上标开始 和上标结束 。在包含前导文字、下标文字和后续文字的带下标文字中,同样也要用两个分隔言文字下标开始 和下标结束 。对带上下标的文字,在前导文字和上标文字之间有分隔文字上下标开始,这之间要进行上标文字位置和高度的调整;在上标文字和下标文字之间有上下标分割, 这之间要进行下标文字位置的调整;在下标文字和后续文字之间有上下标结束,这之间要进行后续文字位置和高度的调整。如果这 3 个分隔文字能完成这些指定功能,那么 TEXT 命令就能直接写出带上下标的文字。在带上下标、上标和下标的文字中,并要用到 7 个分隔文字。如果单个字符表示只能将其插 Z 入西文字库,而西文字库中的字符有些输入不方便、有些常用不可替代、有些与汉字冲突,可供使用的字符不多,用单个字符表示不方便。如果两个字符表示可将其插入汉字字库,考虑到输入的方便性和直观性,这 7 个分隔文字用下划线加括号组成,分别为:_( 上下标开始) 、_|(上下标分隔) 和_( 上下标结束)、_(上下标开始)和_)( 上标结束)、_(下标开始) 和_(下标结束) 。实质上,分隔文字可以看作是特殊的形。在带上下标文字中用到的 3 个形(分隔文字),定义如下。上下标开始为:(1)2(抬笔);(2)5(B 点位置进栈);(3)0A4(从 B 点位移到 C 点);(4)0 10 (再位移到 D 点)(5)3 及2(向量数据缩小 2 倍);(6)0(定义结束) 。上下标分隔 为:(1)2(抬笔);(2)6(B 点位置出栈);(3)04C(从 B 点位移到 F 点);(4)020( 再位移到 G 点);(5)0( 定义结束) 。此时,由于向量数据已被缩小 2 倍;实际长度仅有原来的1/2,故 F 点到 G 点的位移 020 与 C 点到 D 点的位移 010 相同,这样才能保证上标和下标的起点在一条垂线上。 上下标结束为:(1)2(抬笔);(2)3 及 2(向量数据放大 2 倍);(3)5(B 点位置进栈);(4)010(从 H 点位移到 I 点);(5)024( 再位移到 J 点);(6)0(定义结束)。在写带上标和带下标文字中用到的另外 4 个形。上述用作分隔文字的 7 个形有了明确的定义。因此只要将这 7 个形插入到多字形文件( 汉字字库)中,就能用 TEXT 命令直接写出带上下标的文字。形文件有严格、固定、不可阅读的格式,形并不能直接插入,因此只有将这 7 个形插入到形文件的源文件(SHP 文件)中,并对源文件的第一行作相应修改,重新编译后才可使用。表 2 给出的数据是相对于 12(基线上方向量长度)而言的,如果在你的多字形文件中此值不是 12,如果你对上下标的位置和高度不满意,可对数据适当修改。使用时,要写同时带上标和下标的文字,只要输入一行文字:BASE_SUPPER_|SU _DATA;要写带上标的文字,输入:BASE_(SUPPER_)DATA;要写带下标的文字,输入:BASE_ SUB_DATA。使用中需注意的问题是:(1)在行未的分隔文字可省略;CAD 上标输入(2)在带上下标的文字中,如下标文字个数比上标文字少要用空格补足;(3)由于分隔文字被放在多字形文件中,所以只有使用这个多字形文件,即将这个多字形文件设置成当前字体,才能写出带上下标的文字。在 AutoC AD 中,多字体文件与普通形文件要配套使用,并按此顺序取数据,由于下划线字符_ 已被用在分隔文字中 ,被多字形文件占用,在普通形文件中这个字符就无法被使用 ,为确保完整性,必须在多字形文件中对这个字符重新定义(见表 2),重新定义后用-表示-。使用这种方法扩充 TEXT 命令,有很多好处:(1)不必修改 AutoCAD 程序;(2)对 AutoCAD 的所有命令(包括 TEXT 命令)都没有任何影响;(3)适用于各种操作系统下的所有 AutoCAD 版本;(4) 使用方便,用一个 TEXT 命令一次就能直接写出带上标、下标或上下标的文字;(5)写入图中的基本文字及上下标是一个实体,所以修改方便;(6)所有文字(西文字符、汉字)都可作为基本文字、上标文字、下标文字或上下标文字 ;(7)在一行文字中前导文字、后续文字、上标文字、下标文字或上下标文字均可省略或多次使用;(8)TEXT 命令中所有输入方法都可使用;(9)文字的所有属性对上下标文字仍然适用;(10)适用所有能产生、改变文字的 AutoCAD 命令,如尺寸标注命令 DIM;(11)上下标都可以嵌套使用(例子见表 3),即上下标文字都可以再带上下标;(12)节省存储空间;(13)由于上下标位置和高度非人为控制,所以能确保图中所有文字的上下标完全一致。最后,要说明的是此方法还可进一步推广,比如在一行文字中实现变字高(不同高度文字) 输入等.
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号