版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
———CAD的字体与字库的介绍与设置(二)形和字体的格式及编码
1、形的基本概念
形(SHAPES)是一种特别实体,可使用线、弧及圆来定义它们。对CAD来说,Shapes在存储和绘图方面比另一种实体块更有效。在必需频繁的插入一个简洁的零件和速度很重要的状况下,用户定义的形很有用。它的一个变种是用于确定文本字体。
在上面已提到形都是由简洁的对象组成。这些对象是单一的直线、圆弧和圆。简化使用这些对象的缘由是在指定方向和距离值时,不能使用小数和建筑单位,而只能使用整数和整型的分数。例如,一条线的距离等于1除以2的平方根(值为.7071068),而分数70/99(等于.7070707),近似于线的距离值,因此可用此分数值代替。
形和字体都以同一种方式编写,并都保存在扩展名为.SHP文件中。SHP文件必需编译为SHX文件才能被调用。也就是说,SHX是通过CAD将文本格式的SHP文件编译成二进制的SHX文件。其目的是将SHP内的形(包括字形)定义予以适当的排列及组织为二进制文件格式,以便利及加速CAD的存取。
实际上,形文件分为三种:形、ASCII字型及大字型文件。三者在设计时唯一的差别是文件头的声明行(下节解释),而在使用时的主要区分在于调用它们的命令不同。形使用SHAPE命令通过字形名称调用,而字体在插入文本时才被调用,如执行TEXT和DIM命令。ASCII字型文件以1Byte的字形码调用,也就是常说的英文字型文件,大字型文件以2Byte的字形码调用,也就是常说的中文字型文件。不管是用SHAPE命令调用的形,还是作为一个字符插入时,输入的形名既可以大写也可以是小写。
2、SHP文件的格式
对SHP文件而言,形、ASCII字型及大字型文件三者在文件格式上是相近的,主要区分在于文件头的声明行不同。三种SHP形文件的格式如下:
2.1、形文件的形定义格式
单个的字符以ASCII码的形式编写并保存。.SHP文件或.SHX文件可以包含255个字符,每个字符定义有一个标题行,如下所示:
*形编号,字节数,形名称
标题行的下一行将用一行或多行代码定义字符。简洁的形只用一行或两行就可表达清晰。
标题行中每一项的含义为:
形编号可从1到255,但不能重复。形编码的数值不行为0,此为特别码。
字节数定义一形符号使用的字节数,包括末尾的0表示形定义结束。在定义形字符时使用的字节数最多不能超过2000。字节之间以逗号分隔。还可将一对数值用括号括起来,增加可读性,但括号无其他含义,也不占用一个字节。
外形文件是以名称调用,即用SHAPE命令调用形,形名必需大写。在使用SHAPE命令时要输入形名,正如在BLOCK命令中使用块名一样。
2.2、ASCII字形文件的形定义格式
ASCII字型在上述基础上增加了文件头声明,增加的声明为:
*0,4,字符集名称
上高,下高,种类,0
含义为:
0:特别的字型码,声明此为字型文件的文件头
4:长度值,其值固定,Bytes
字符集名称:任意的字符串,不要太长。
上高:文字基准线上方可允许的高度。
下高:文字基准线下方可允许的高度。
种类:0—仅供横向方向书写的文字集
1--仅供竖向方向书写的文字集
2—同时可供横向和竖向两个方向书写的文字集
对于ASCII字型文件,形名称可以使用小写字母,这样在编译并保存到内存中时,CAD将忽视这些名称,可节省SHX文件的空间。在字形文件中,形名称只用于便利SHP文件的阅读。
ASCII形文件与上述的形文件一样,一个文件中只能包含255个字符,每个字符定义有一个标题行,同2.1。
2.3、大字型文件的形定义格式
有些语言如日语、朝鲜语,具有数千个非ASCII码文字。为了写这种文字,CAD供应了一个形定义的专用格式文件,即大字型文件(big-font)。大字型文件除了与ASCII字型文件一样拥有特别码0,在文件的第一行还肯定要有如下的声明:
*BIGFONT字数,字码区间数,区间一,区间二,。。。
其余同ASCII字型文件。
其中:字数:字型文件内的大约字数,与实际数误差〈10%.
字符区间数:以字符的HighByte为主,内分为几个区间。
区间一、区间二:HighByte的上下范围。
本文主要争论ASCII码的扩充,对大字型文件在此不多加争论。
3、形文件的编码
SHP文件是采纳一系列的外形描述字和专用码来编码的,程序员使用正文编辑程序或字处理程序来输入。
3.1、外形描述字
外形描述字包括一个字节的笔运动矢量长度和方向代码。用二进制代码指定笔运动的矢量长度和方向代码可以组成一个形-字符。每一个二进制代码是一个字节。代码0到16不是矢量-方向代码,而是专用的编写形定义的代码。
每个矢量的长度和方向代码是一个三字符的字符串。在代码字符串中,第一个字符必需为0,其次个字符指定矢量的长度,它相对于外形的”高度”而言。矢量长度受到比例因子的影响,矢量长度和比例因子的积是实际的距离值。第三个字符指定矢量的方向。在使用时,有16个可用的标准方向。图2-1所示为16个标准方向。
图中全部矢量都是以同一长度规格来绘制的。对角线矢量被“延长”来匹配最接近正交矢量X或Y的位移量。例如;让我们建立一个命名为DBOX外形号为230的外形。见图2-2
*230,6,DBOX
014,010,01C,018,012,0
留意除了可以使用矢量-方向代码外,还可使用特别代码8和9定义一对由X和Y增量组成的位移值。
3.2、专用代码
专用代码可以是十进制也可以是十六进制,指定的代码可以从0到16或从000到00E。以0打头的三位二进制数是十六进制的特别代码。代码10是十进制的特别代码,而010等于十进制数的16,但最重要的是010被CAD解释为矢量-方向代码,表示矢量的长度为1,方向为0度。等于10的十六进制数是00A。各专用代码的含义如下。
代码0:形定义的结束,形定义的结束标记是0。
代码1和2:抬笔和落笔落笔(即绘图)模式在绘制每个形的开头时激活。当绘图模式打开时,一个矢量说明将绘制一条直线;当绘图模式关闭时,矢量说明只移到新位置,而不绘制直线。
代码3和4:比例因子根据下面指定的整数因子放大或缩小形中的一个(或一组)矢量的尺寸。代码3告知CAD用下一矢量除以紧随代码3后的比例因子,代码4告知CAD用下一矢量乘以紧随代码4后的比例因子。比例因子在同一形中是累计的。
代码5和6:保存和恢复位置形定义中的每一位置都与上一个位置关联。一旦笔被移到了一个特别的位置上,在移动前可在形定义中记录当前的位置供以后使用。这用于当一个对象在同一个位置上开头或结束多次的状况。例如,组合使用代码5和6将特别便利地绘制一个带有辐条的车轮,用代码5定义车轮的中心,绘制辐条,然后用代码6返回车轮的中心连续绘制。
保存和恢复位置也就是将当前位置压入堆栈或从堆栈中弹出的过程。堆栈中一次最多可保存四个位置。从堆栈中弹出的挨次与压入堆栈的挨次相反,且每个压入堆栈的位置必需弹出。
假如由于过多的压入操作、弹出而造成堆栈溢出,则在绘制形时将显示错误信息
代码7:子形在SHP/SHX文件中定义的一个形,该形可包含在同一个形文件中的另一个形定义中,代码7后面紧跟插入的形的编号。
代码8和9:X-Y位移一般矢量只能绘制在16个预定义的方向上,并且最大长度为15。通过代码8和9可用X-Y位移绘制非标准矢量。代码8后必需跟两个定义字节,分别为X位移与Y位移。倒如,8,(7,-8)表示将笔沿X轴正向移动7个单位,沿Y轴负向移动8个单位。这里的括号是可选的,只是为了增加可读性。用代码9可绘制一系列非标准矢量。此代码后面可跟任意数量的X-Y位移对,由(0,0)对终止。例如,9,(7,-8),(14,9),(-17,3),(0,0)表示按当前的模式使用三对位移值,用(0,0)对返回一般矢量模式。
代码00A:八分圆弧代码00A(或10)告知CAD用下两个字节定义一个圆弧,此圆弧称为八分圆弧,由于它跨越一个或多个45°的八分圆。八分圆弧的起点和端点都在八分圆边界上。图2-3所示为各八分圆的代码编号。绘制八分圆弧的格式如下所示:
10,半径,(-)0SC
半径可以是1到255之间的任意值。第3个字节以0打头,指定圆弧的方向(顺时针方向为负,逆时针方向为正)、起始八分圆(S)和跨越的八分圆数(C)的值为0到7。其中,0等于八个八分圆或整个圆。图18-48所示的弧用以下代码绘制:
10,(2,-043)
绘制的圆弧半径为2,从八分圆4处开头,顺时针旋转135°(跨越了三个八分圆)。
代码00B:不规章圆弧代码00B(11)绘制不规章的圆弧,其起点和端点不肯定在八分圆边界上。其定义格式为:
11,start_offset,end_offset,high_radius,low_radius,(-)0SC
start_offset和end_offset表示从圆弧起点和端点到所在的八分圆边界的距离。high_radius假如为非0值,表示半径大于255。low_radius和最终定义的字节与八分圆弧的定义(代码00A,如前所述)一样,负数依旧表示顺时针方向。
代码00C和00D:指定凸度的圆弧代码00C和00D(12和13)供应了另一种不同于八分圆的绘制圆弧的方式。在代码00C和00D中通过将凸度因子应用到位移矢量来绘制圆弧。代码00C和00D是由X位移和Y位移确定圆弧的端点,由凸度确定圆弧的曲率。凸度由连接圆弧两个端点的直线确定。凸度的取值范围为-127到+127。最大和最小值(127或-127)定义了180°的圆弧(半个圆)。小值对应小度数的圆弧。意思是,假设指定的凸度值为x,用x乘以180再除以127,即得到对应的角度值。凸度值为0表示定义一条直线。
代码00C绘制一段圆弧,而代码00D绘制多段圆弧(polyarcs)。它们与代码8和9相像。代码00D与009一样,必需用(0,0)对终止。代码00D后面可跟0或多个圆弧段定义,其中0凸度值用于绘制直线。
代码00E正文垂直标记命令。专用码00E(14)仅用于双向文字字体描述中,即文字可以在水平和垂直两个方向上表示。当该码用到字符定义中,假如文字垂直写,则对下一个码进行处理。假如文字是水平写的,则下一个码就跳过不予处理。
在水平文字中,每个字符的起始点在其基线左端,而在垂直文字中,起始点在字符顶部中心。在每个字符结束时,“抬笔”段一般要回到下一个字符的起始点。对于水平文字要向右,对垂直文字要向下。专用码00E主要用来调整起点和终点的差别,使同一字形可用在水平和垂直两个方向上。
3、SHX文件的存储格式
了解SHX文件的格式,有助于事半功倍地解决实际问题。
ASCII字体文件和大字体文件的SHX格式分别见表2-1和表2-2
表2-1ASCII字体文件存储格式
序号起始及终止字节数据内容
11∽20Shape文件版本标识字符串,“CAD-86shapes1.0”
221∽23CR+LF+EOF(16进制的0D0A1A)
324∽25最小的字型码(0)
426∽27最大的字型码
528∽29字型码总数N,包括字符集的声明(Code0)
630∽(33+4m)M为0到(N-1),每四个Bytes一字,前2Butes为字型码,后2Bytes为字型定义的长度,均为整数。
7(33+4n-1)∽依长度摆放各字型定义
表2-2大字体文件存储格式
序号起始及终止字节数据内容
10∽21Shape文件版本标识字符串,“CAD-86bigfont1.0”
222∽24CR+LF+EOF(16进制的0D0A1A)
325∽26(0800)
427∽28字型码总数N,包括字符集的声明(Code0)
52∽30字型码区间数K
631∽(31+4m)M为0到(k-1),每四个Bytes一组存放区间的起始与结尾字码,各2Bytes。
731+4k∽(31+4k+8L-1)L为0到(N-1),每8位一笔存放字型的字码2Bytes、长度2Bytes与字型定义的地址(4Bytes)等数据。
8最终依长度摆放各字型定义
推举阅读:CAD机械制图应用基础之平面图形绘图基础(一)
推举阅读:CAD培训
形和字体的格式及编码
1、形的基本概念
形(SHAPES)是一种特别实体,可使用线、弧及圆来定义它们。对CAD来说,Shapes在存储和绘图方面比另一种实体块更有效。在必需频繁的插入一个简洁的零件和速度很重要的状况下,用户定义的形很有用。它的一个变种是用于确定文本字体。
在上面已提到形都是由简洁的对象组成。这些对象是单一的直线、圆弧和圆。简化使用这些对象的缘由是在指定方向和距离值时,不能使用小数和建筑单位,而只能使用整数和整型的分数。例如,一条线的距离等于1除以2的平方根(值为.7071068),而分数70/99(等于.7070707),近似于线的距离值,因此可用此分数值代替。
形和字体都以同一种方式编写,并都保存在扩展名为.SHP文件中。SHP文件必需编译为SHX文件才能被调用。也就是说,SHX是通过CAD将文本格式的SHP文件编译成二进制的SHX文件。其目的是将SHP内的形(包括字形)定义予以适当的排列及组织为二进制文件格式,以便利及加速CAD的存取。
实际上,形文件分为三种:形、ASCII字型及大字型文件。三者在设计时唯一的差别是文件头的声明行(下节解释),而在使用时的主要区分在于调用它们的命令不同。形使用SHAPE命令通过字形名称调用,而字体在插入文本时才被调用,如执行TEXT和DIM命令。ASCII字型文件以1Byte的字形码调用,也就是常说的英文字型文件,大字型文件以2Byte的字形码调用,也就是常说的中文字型文件。不管是用SHAPE命令调用的形,还是作为一个字符插入时,输入的形名既可以大写也可以是小写。
2、SHP文件的格式
对SHP文件而言,形、ASCII字型及大字型文件三者在文件格式上是相近的,主要区分在于文件头的声明行不同。三种SHP形文件的格式如下:
2.1、形文件的形定义格式
单个的字符以ASCII码的形式编写并保存。.SHP文件或.SHX文件可以包含255个字符,每个字符定义有一个标题行,如下所示:
*形编号,字节数,形名称
标题行的下一行将用一行或多行代码定义字符。简洁的形只用一行或两行就可表达清晰。
标题行中每一项的含义为:
形编号可从1到255,但不能重复。形编码的数值不行为0,此为特别码。
字节数定义一形符号使用的字节数,包括末尾的0表示形定义结束。在定义形字符时使用的字节数最多不能超过2000。字节之间以逗号分隔。还可将一对数值用括号括起来,增加可读性,但括号无其他含义,也不占用一个字节。
外形文件是以名称调用,即用SHAPE命令调用形,形名必需大写。在使用SHAPE命令时要输入形名,正如在BLOCK命令中使用块名一样。
2.2、ASCII字形文件的形定义格式
ASCII字型在上述基础上增加了文件头声明,增加的声明为:
*0,4,字符集名称
上高,下高,种类,0
含义为:
0:特别的字型码,声明此为字型文件的文件头
4:长度值,其值固定,Bytes
字符集名称:任意的字符串,不要太长。
上高:文字基准线上方可允许的高度。
下高:文字基准线下方可允许的高度。
种类:0—仅供横向方向书写的文字集
1--仅供竖向方向书写的文字集
2—同时可供横向和竖向两个方向书写的文字集
对于ASCII字型文件,形名称可以使用小写字母,这样在编译并保存到内存中时,CAD将忽视这些名称,可节省SHX文件的空间。在字形文件中,形名称只用于便利SHP文件的阅读。
ASCII形文件与上述的形文件一样,一个文件中只能包含255个字符,每个字符定义有一个标题行,同2.1。
2.3、大字型文件的形定义格式
有些语言如日语、朝鲜语,具有数千个非ASCII码文字。为了写这种文字,CAD供应了一个形定义的专用格式文件,即大字型文件(big-font)。大字型文件除了与ASCII字型文件一样拥有特别码0,在文件的第一行还肯定要有如下的声明:
*BIGFONT字数,字码区间数,区间一,区间二,。。。
其余同ASCII字型文件。
其中:字数:字型文件内的大约字数,与实际数误差〈10%.
字符区间数:以字符的HighByte为主,内分为几个区间。
区间一、区间二:HighByte的上下范围。
本文主要争论ASCII码的扩充,对大字型文件在此不多加争论。
3、形文件的编码
SHP文件是采纳一系列的外形描述字和专用码来编码的,程序员使用正文编辑程序或字处理程序来输入。
3.1、外形描述字
外形描述字包括一个字节的笔运动矢量长度和方向代码。用二进制代码指定笔运动的矢量长度和方向代码可以组成一个形-字符。每一个二进制代码是一个字节。代码0到16不是矢量-方向代码,而是专用的编写形定义的代码。
每个矢量的长度和方向代码是一个三字符的字符串。在代码字符串中,第一个字符必需为0,其次个字符指定矢量的长度,它相对于外形的”高度”而言。矢量长度受到比例因子的影响,矢量长度和比例因子的积是实际的距离值。第三个字符指定矢量的方向。在使用时,有16个可用的标准方向。图2-1所示为16个标准方向。
图中全部矢量都是以同一长度规格来绘制的。对角线矢量被“延长”来匹配最接近正交矢量X或Y的位移量。例如;让我们建立一个命名为DBOX外形号为230的外形。见图2-2
*230,6,DBOX
014,010,01C,018,012,0
留意除了可以使用矢量-方向代码外,还可使用特别代码8和9定义一对由X和Y增量组成的位移值。
3.2、专用代码
专用代码可以是十进制也可以是十六进制,指定的代码可以从0到16或从000到00E。以0打头的三位二进制数是十六进制的特别代码。代码10是十进制的特别代码,而010等于十进制数的16,但最重要的是010被CAD解释为矢量-方向代码,表示矢量的长度为1,方向为0度。等于10的十六进制数是00A。各专用代码的含义如下。
代码0:形定义的结束,形定义的结束标记是0。
代码1和2:抬笔和落笔落笔(即绘图)模式在绘制每个形的开头时激活。当绘图模式打开时,一个矢量说明将绘制一条直线;当绘图模式关闭时,矢量说明只移到新位置,而不绘制直线。
代码3和4:比例因子根据下面指定的整数因子放大或缩小形中的一个(或一组)矢量的尺寸。代码3告知CAD用下一矢量除以紧随代码3后的比例因子,代码4告知CAD用下一矢量乘以紧随代码4后的比例因子。比例因子在同一形中是累计的。
代码5和6:保存和恢复位置形定义中的每一位置都与上一个位置关联。一旦笔被移到了一个特别的位置上,在移动前可在形定义中记录当前的位置供以后使用。这用于当一个对象在同一个位置上开头或结束多次的状况。例如,组合使用代码5和6将特别便利地绘制一个带有辐条的车轮,用代码5定义车轮的中心,绘制辐条,然后用代码6返回车轮的中心连续绘制。
保存和恢复位置也就是将当前位置压入堆栈或从堆栈中弹出的过程。堆栈中一次最多可保存四个位置。从堆栈中弹出的挨次与压入堆栈的挨次相反,且每个压入堆栈的位置必需弹出。
假如由于过多的压入操作、弹出而造成堆栈溢出,则在绘制形时将显示错误信息
代码7:子形在SHP/SHX文件中定义的一个形,该形可包含在同一个形文件中的另一个形定义中,代码7后面紧跟插入的形的编号。
代码8和9:X-Y位移一般矢量只能绘制在16个预定义的方向上,并且最大长度为15。通过代码8和9可用X-Y位移绘制非标准矢量。代码8后必需跟两个定义字节,分别为X位移与Y位移。倒如,8,(7,-8)表示将笔沿X轴正向移动7个单位,沿Y轴负向移动8个单位。这里的括号是可选的,只是为了增加可读性。用代码9可绘制一系列非标准矢量。此代码后面可跟任意数量的X-Y位移对,由(0,0)对终止。例如,9,(7,-8),(14,9),(-17,3),(0,0)表示按当前的模式使用三对位移值,用(0,0)对返回一般矢量模式。
代码00A:八分圆弧代码00A(或10)告知CAD用下两个字节定义一个圆弧,此圆弧称为八分圆弧,由于它跨越一个或多个45°的八分圆。八分圆弧的起点和端点都在八分圆边界上。图2-3所示为各八分圆的代码编号。绘制八分圆弧的格式如下所示:
10,半径,(-)0SC
半径可以是1到255之间的任意值。第3个字节以0打头,指定圆弧的方向(顺时针方向为负,逆时针方向为正)、起始八分圆(S)和跨越的八分圆数(C)的值为0到7。其中,0等于八个八分圆或整个圆。图18-48所示的弧用以下代码绘制:
10,(2,-043)
绘制的圆弧半径为2,从八分圆4处开头,顺时针旋转135°(跨越了三个八分圆)。
代码00B:不规章圆弧代码00B(11)绘制不规章的圆弧,其起点和端点不肯定在八分圆边界上。其定义格式为:
11,start_offset,end_offset,high_radius,low_radius,(-)0SC
start_offset和end_offset表示从圆弧起点和端点到所在的八分圆边界的距离。high_radius假如为非0值,表示半径大于255。low_radius和最终定义的字节与八分圆弧的定义(代码00A,如前所述)一样,负数依旧表示顺时针方向。
代码00C和00D:指定凸度的圆弧代码00C和00D(12和13)供应了另一种不同于八分圆的绘制圆弧的方式。在代码00C和00D中通过将凸度因子应用到位移矢量来绘制圆弧。代码00C和00D是由X位移和Y位移确定圆弧的端点,由凸度确定圆弧的曲率。凸度由连接圆弧两个端点的直线确定。凸度的取值范围为-127到+127。最大和最小值(127或-127)定义了180°的圆弧(半个圆)。小值对应小度数的圆弧。意思是,假设指定的凸度值为x,用x乘以180再除以127,即得到对应的角度值。凸度值为0表示定义一条直线。
代码00C绘制一段圆弧,而代码00D绘制多段圆弧(polyarcs)。它们与代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47488-2026皮革物理和机械试验收缩温度的测定
- 6.3 树立正确的择业观
- 与个人签外包合同
- 中软外包合同
- 人力咨询外包合同
- 代驾服务外包合同
- 信息流设计外包合同
- 公司强制转外包合同
- 公司饭菜外包合同
- 军训外包合同
- DL∕T 1151.10-2012 火力发电厂垢和腐蚀产物分析方法 第10部分:二氧化硅的测定
- 海关代理服务费合同
- 2024燃煤电厂深度调峰设备安全防护技术导则
- 中国蚕丝绸文化智慧树知到期末考试答案章节答案2024年浙江大学
- 邮政营销摊派报告
- 计算机辅助设计AutoCAD绘图-课程教案
- Unit6Craftsmanship+Listening+an课件-中职高教版(2021)基础模块2
- 影视美学-课件
- 中文版-ASTM-A123-A123M-02-铁和钢制品镀锌层
- 血液透析室(中心)的人员配置及职责
- GB/T 12642-2013工业机器人性能规范及其试验方法
评论
0/150
提交评论