1、第九章地形图的绘制9.1地形图绘制的基本知识一、绘图坐标系的约定在第五章中我们已经知道了AutoCAD有两个坐标系统:一个称为世界坐标系(WorldCoordinateSysytm,简称WCS的固定坐标系和一个称为用户坐标系(UserCoordinateSysytm,简称UCS的可移动坐标系。在WCS,X轴是水平的,指向由左向右,Y轴是垂直的,正向朝上,Z轴垂直于XY平面,原点是图形左下角X轴和Y轴的交点。UCS坐标系是依据WCS通过移动原点和旋转坐标轴来定义的,以方便用户根据自已的需要绘制图形。启动AutoCAD后,缺省情况下UCS与WCS重合
2、,其坐标系图标见图91。虽然上述WCS坐标系与我们在测量学中定义的测量坐标系从本质上说是一致的,但容易想象得到,在AutoCAD中,按照相同坐标绘制的图形,其方位与我们想象中的并不一致,这是由于两个坐标系视点的不同所造成的。例如,将测量坐标系中正北方向上两点P1和P2的坐标输入到AutoCAD中,就会发现该两点在正东方向上。1、定义用户坐标系一次绕Y所示的为了解决AutoCAD中图形显示(视点不同)问题,可以采用用户坐标系。借助前面学过的“UCS命令,将WCS别进行坐标轴和Z坐标轴旋转即可得到如图92测量坐标系。具体操作命令如下:命令:UCS当前UCS名称:*世界*图9-2
3、UCS测量坐标系图标输入选项_I新建(N)/移动(M)/正交(G)/上一个(P)/恢复(R)/保存(S)/删除(D)/应用(A)//世界(W)世界:n指定新UCS的原点或Z轴(ZA)/三点(3)/对象(0B)/面(F)/视图(V)/X/Y/Z0,0,0:y指定绕Y轴的旋转角度0:180命令:UCS当前UCS名称:*没有名称*输入选项新建(N)/移动(M)/正交(G)/上一个(P)/恢复(R)/保存(S)/删除(D)/应用(A)//世界(W)世界:n指定新UCS的原点或Z轴(ZA)/三点(3)/对象(OB)/面(F)/视图(V)/X/Y/Z0,0,0:z指定绕Z轴的旋
4、转角度0:90命令:ucs当前UCS名称:*没有名称*输入选项|新建(N)/移动(M)/正交(G)/上一个(P)/恢复(R)/保存(S)/删除(D)/应用(A)//世界(W)世界:s输入保存当前UCS的名称或:survey操作中前两个UCS是分别绕Y轴和Z轴旋后一个UCS命令是将旋的UCS坐标系用“survey”名称保存,ucsman命令查看或在UCS中切换(图93)。定义了UCS坐标系有的坐标输入都使用当图9-3UCS管理对话框命令转,最转后可用WCS和后所、八刖ucs因此用户可按照测量坐标进行输入和输出以及图形绘制。但是要特别强调的是,在进行文字注记和图
5、案(地物)符号填充时还应将UCS切换到WC肿来,否则文字和图案符号的方向与实际不一致,增加编辑和修改的工作量。2、约定坐标系虽然通过自定义UCS坐标系解决了图形显示问题,但是UCS坐标系并不是通用的坐标系,不利于多个用户共享,而且在绘图过程中还要频繁地在两个坐标系中切换,并不方便。为此,我们可以采用约定坐标系,即直接将wcS乍为测量坐标系来使用,只不过这里有个约定:需要把WC防的Y轴(垂直向上)当作测量坐标系中的X轴,相应地把WCS中的X轴(水平向右)当作测量坐标系中的Y轴。或者说,在AutoCAD中输入测量坐标时,将Y坐标放在X坐标之前,当然在AutoCAD中输出坐标时,也要按照
6、测量坐标系中的Y、X和H的顺序来理解。这样约定之后,对后续的所有绘图工作都是非常方便的。事实上,国内所有的基于AutoCAD二次幵发的地形地籍成图系统都是采用这种约定的坐标系。这就是为什么几乎所有初学者初次接触到成图软件时都要问同样一个问题:为什么测量点的Y坐标要放在X坐标之前!进一步理解,其实测量坐标系中的X轴和Y轴只是人为定义的两个坐标轴的符号,只是为了方便表示,自然也可以用其它字符表示。相信所有的测量人员一定注意到所有的全站仪并没有出现X和Y,取而代之的是用N(North)和E(East)来代表测量中的X和Y坐标;另外在国外的测量教科书中也都是用字符N和E来表示坐标的,
7、其意义不言自明。二、绘图比例尺比例尺的定义是图上距离与相应实地水平距离之比,是地形图、地籍图等图件的一个非常重要的尺度参数。有了比例尺,就可以把地面上的地物和地貌的实际尺寸,按照比例尺缩小绘在图纸上,供人们阅读和使用;同时比例尺还代表了图件所达到的精度,例如要把一条0.5米宽的小路用双线绘在比例尺为1:1000的纸质图上就十分困难,或者说,我们不可能在比例尺为1:1000的纸质图上量出0.5米的双线小路来。可见,比例尺既是人们用图的需要(图纸不必太大),也是人们绘图的必然选择(绘图精度限制)。因此,比例尺对于传统的纸质图来说是非常重要的。那么在AutoCAD中,比
8、例尺是如何确定的?举一个简单的例子,在手工绘图时,如果取比例1:500,那么在图纸上100毫米长的线段实际代表了50米长的线。如果在AutoCAD中也象手工绘图那样画出100毫米长的线,这显然是不方便的。从前面学过的内容知道,在AutoCAD中线段的长度单位是图形单位,并没有规定实际单位是米,分米还是厘米,这就给用户带来非常大的方便。于是,要确定图形比例尺首先要确定AutoCAD中图形单位是多少。1、确定图形单位为了在AutoCAD中表示地面两点间的距离,需要确定AutoCAD中一个图形单位对应的实际长度。直观上看,测量中点的坐标或线段长度都是以米为单位的,自然应该这样选取最合理
9、:AutoCAD中1个图形单位=实地1米。这种一对一的简单关系给实际绘图带来相当大的好处。在上述例子中,只要在AutoCAD中绘50个图形单位长度的线,而不去理会它换算到图纸上是多少毫米的线段。或者说,AutoCAD中某线段有多少个图形单位的长度就等于实地上多少米的距离,不要去管它比例尺是多少,如何折算。事实上,作为用户而言,用图目的就是要知道地面的真实情况,当你用鼠标在图上进行量距定点时,就象你在野外用全站仪量距定点一样,为什么非要通过比例尺在图上和实地之间来回地换算呢?【例91】设P1、P2两点坐标分别为(50.0,100.0)和(100.0,200.0),试分别用PO
10、INT命令展绘出两点,并命令操作如下:命令:point当前点模式:PDMODE=2PDSIZE=0.000指定点:100,50命令:point当前点模式:PDMODE=2PDSIZE=0.000指定点:200,100命令:dist指定第一点:指定第二点:距离=111.803,XY平面中的倾角=27DIST命令量取两点之间的长度。与XY平面的夹角=0+P1图9-4展绘测量坐标点X增量=100.000,Y增量=50.000,Z增量=0.0002、确定图形比例前面说过,在展绘测量坐标点或绘制线段长度时,直接按实际坐标或实地长度展绘,不要去管它比例尺是多少。从这个意义上来理解
11、,可以认为图形的比例尺为1:1。然而绘图的目的是供其他用户阅读和使用的,不同地物符号的大小,线状地物的粗细以及各类注记的大小等,在图式规范中均有相应的规定,这样绘制出的图才能布局匀称,疏密合理,图面清晰。由于图式中标注的尺寸是以毫米为单位的,因此需要弄清AutoCAD中1个图形单位输出到纸质图上相应的长度是多少。先做个实验,在AutoCAD中画一个边长等于1个图形单位的正方形,在绘图仪上按1:1比例输出后,用三角尺量取正方形边的宽度,结果都等于1毫米;如果按1:2比例输出后,用三角尺量取正方形边的宽度,其结果等于2毫米。这个例子说明:在AutoCAD图形中,对于所
12、有的独立地物、植被符号、线状地物的线宽、线型比例,以及各类注记等都要考虑比例尺,而对于野外测量的点的坐标和线段的长度却不需考虑比例尺。因此,在AutoCAD中,所谓绘图比例就是指用SCALE(缩放)、PLINEWID(线宽)和LTSCALE(线型比例)、HPSCAL(填充比例)等命令执行地物的比例缩放操作时所确定的比例,同传统的图上量距定点无关。进一步说明的是,与手工绘图方式不同,在AutoCAD中绘图并不是采用绝对比例尺,而是采用一种所谓相对比例尺。因为前面已约定了1个图形单位等于实地距离1米,而AutoCAD中采用公制时1个图形单位可选择1毫米(按出图比例1:1),这样相
13、当于隐藏了一个事实上的比例尺1:1000。于是对于比例尺1:1000约定SCALELTSCALE和HPSCAL的值为1.0,PLINEWID的值为图式规范中规定的线宽。其它比例尺时所采用的值则相对1:1000进行变换这里先说明一下,由于约定比例尺1:1000的有关变量的值,自然形成了其它比例尺的基准,因此后面的自定义线型、自定义图案以及独立地物符号都是在SCALELTSCAL侨口HPSCAL的值为1.0的情况下定制的。下表91为当比例尺为1:5001:2000所对应的SCALELTSCALEHPSCALE口PLINEWID所采用的值,以及作用的对象。国内各测绘公司幵发
14、的地形地籍成图系统,如广州南方CASS武汉拓普康EDMS以及北京威远图WELLTO等均采用这种约定。1:5001:2000对应的SCALELTSCALEHPSCAL和PLINEWID所采用的值表比例尺SCALE作用对象1:5000.5倍尺寸独立地物符号、注记0.5LTSCALE作用对象线状地物的比例,如小路、坎状线型等0.5HPSCALE作用对象地类填充符号,如旱地、菜地等PLINEWID0.5倍的标准线作用对象线状地物的宽度,如道路、等高(深)线等+叱4-/7-t1:1000规范亍标注尺寸独立地物符号、注记1.0线状地物的比例,如小路、坎状线型等1.0地类
15、填充符号,如旱地、I菜地等线状地物的宽度,如道路、等*高(深)线等h*/图9-51:500局部地形图,+胪I1”#rJ+11:500、1:1000和1:2000绘制的地3、绘图比例与屏幕缩放1:20002.0倍尺寸独立地物符号、注记2.0线状地物的比例,如小路、坎状线型等2.0地类填充符号,如旱地、菜地等2.0倍的标准线宽线状地物的宽度,如道路、等高(深)线等【例92】下图根据相同的数据文件分别按形图I,-丘*-L--11*二J图9-61:2000局部地形图比例由于AutoCAD绘图视窗有限,在当前视窗范围内不可能全部清楚地显示整幅地
16、形图。反过来,如果整幅地形图全部显示在当前视窗内,对于那些地形复杂的图形,根本无法看清其中某一细小部分的内容。为了解决这个问题,AutoCAD提供了屏幕缩入命令ZOOM方便用户对当前视窗进行缩放。既然用ZOOM命令可以进行屏幕缩放,肯定存在着一个屏幕缩放比例。屏幕缩放比例实际上就是用ZOOM命令进行屏幕缩放前后的当前视窗放大或缩小的倍数。当该比例大于1时,屏幕就放大,当前视窗内的实体也呈放大显示。当该比例小于1时,屏幕就被缩小,当前视窗内的实体也呈缩小显示。从视觉的角度来看,当放大屏幕时,就相当于当前视窗内的实体从远处移至近处,以便让用户看清楚。同理,当缩小屏幕时,就相当于当前视窗
17、内的实体从近处移至远处,这样在用户的视野内,所看到的实体就呈缩小状态。屏幕缩放比例与绘图比例有着本质的区别。绘图比例改变了独立地物符号、植被填充符号以及各类注记的相对大小,也改变了线状地物的线宽和比例;但是屏幕缩放比例只改变了当前视窗的大小,各类地物的实际几何尺寸并没有变化。打个比方,屏幕缩放比例相当于我们用放大镜看物体时的放大倍数,虽然物体并没有真正放大,但却在视觉方面看得更清楚。因此,我们无需在意屏幕缩放比例的大小。三、地类与自定义图层使用图层来管理和控制复杂的图形,是AutoCAD最突出的特点。在AutoCAD绘图中,可以将不同种类和用途的图形分别置于不同的图层中,从而实现对
18、相同类图形的统一管理。这种以图层为管理单元的思想与测量上我们对地类的分类管理是一致的,自然我们就想到将不同的地类置于不同的图层中,并利用图层的特性,如不同的颜色、线型和线宽来区分不同的对象,这为地形图和地籍图的绘制提供了极大的方便。1:5001:10001:2000地形图图式将地类共分十大类,分别是:测量控制点、居民地和垣栅、工矿建(筑)物及其它设施、交通及附属设施、管线及附属设施、水系及附属设施、境界、地貌和土质、植被、注记。如果考虑到实际绘图的需要,也可增加其它图层,如等高线层、高程点层、展点号层、图框层等。图层的创建可用LAYEF命令,在图层管理对话框中进行,十分方
19、便。下面演示图9-8创建测量控制点(KZD图层如何创建测量控制点层。在命令行layer回车后,打幵图层特性管理器对话框(如图98)后,在中间的空白区中按鼠标右键,点击屏幕菜单“新建图层”,在名称输入框中键入字符“KZD作为图层名称,然后用鼠标左键点击“白色”,在颜色对话框中点击“红色”方框,按确定返回图层管理对话框。这里要说明的是,图层的命名可用汉字,也可用英文或汉语拼音标示,但通常都是简写,方便应用。下表92是CASS4.0定义的图层及名称,英文是作者添加的,供参考。CASS4.0中定义的图层、名称及颜色表92序号汉语图层名称拼音图层名称英文图层名称索引颜色号1测量控制点
20、KZDCONTROLPOINT12居民地和垣栅JMDRESIDENCE63工矿建(筑)物及其它设施DLDWBUILDING114交通及附属设施DLSSROAD45管线及附属设施GXYZPIPELINE26水系及附属设施SXSSWATER57境界JJBORDER28地貌和土质DMTZRELIEF39植被ZBTZVEGETATION310注记ZJANNOTATION711高程点GCDHEIGHTPOINT112展点号ZDHPOINTNUMBER113三角网SJWTIN114等高线DGXCONTOUR215等深线DSXISOBATH216面积注记MJZJAREA417界址点JZDBOUNDARYMA
21、RK118图框TKMAPFRAME49.2定制地形图线型与填充图案AutoCAD提供了标准线型库(文件)和填充图案库(文件),以供大多数用户选用。在AutoCAD2004版本之前,这两个库文件都是以文本文件形式保存在AutoCAD的安装目录下面,到AutoCAD2004版本时,这两个文本文件就隐藏在C:DocumentsandSettingsAdministratorApplicationDataAutodeskAutoCAD2008R17.1chsSupport目录之中。对于需要定制的用户,可以直接打幵它,并对它们进行修改和定制自已的线型库和填充图案库。一、定制地形图线型Auto
22、CAD提供的标准线型是由名为ACAD.LIN的标准线型库文件定义的。用记事本打幵该文件,可以发现标准线型库包含有通用线型、ISO线型和复合线型三大类。其中含通用线型24种,ISO线型14种,另有包含形定义的复合线型7种。由于库中提供的大多数线型在地形图图式中不可用,为此需要根据图式要求重新进行各类线型设计。1、线型文件的结构在设计线型之前先弄清楚线型文件的结构。AutoCAD中规定,线型文件可以包含多个线型定义,空行和分号后面(注释)的内容在编译时均被忽略。每一定义具有如下形式的标题行:*线型名,线型形状描述后跟如下形式的格式行:Alignment,dash-1,dash
23、-2,例如,定义一线型,结构为:短划线,0.5个绘图单位长;空格,0.25个绘图单位长;占;八、,空格,0.25个绘图单位长。则该线型可以定义成如下形式:*DD1,____A,0.5,-0.25,0,-0.25其中DD1是线型名,线型形状描述字段是由LAYERLtype命令序列所显示的线型描述。在这里描述只是短划线“_”和圆占“”的组合。形状描述是可选择项,可以是占、空格和短划线的序列,也可以是说明,如“小路”等,用户对线型的描述不能超过47个字符。形状描述也可以省略,此时线型名后不能有逗号。Alignment字段为直线、圆和圆弧指定对齐方式。到目前为止,
24、AutoCAD只支持一种对齐方式,通过在字段幵头输入“A”来指定。使用A型对齐,保证直线的端占和弧的起占及终占处为短划线。这种对齐方式,首短线划的值应大于等于0(即占或下笔段),第二个短划线的值应小于0(提笔段),并从第一个短划线说明开始,至少要有2个短划线结构说明。Dash-n字段指定组成线型的段的长度。若长度为正,则表示是下笔段,即为要.LIN文画出的线段;若长度为负,则表示为一提笔段;长度为零则画出一个占。在件中,每个线型定乂应限制在280个字符以内图9-9地形图图式中的小路形图图99所示的小路2、简单线型定义了解了线型定义的结构后,下面以地式中的小路为例,介
25、绍通过编辑线型文件ACAD丄IN的方法来了解建立小路的过程。【例93】根据线型定义构造出图由图可知,地形图图式中的小路是一虚线,由短划线和空格组成。其中短划线长为4mm空格宽为1mm线宽为0.3mm首先说明的是,此处小路的线宽0.3mm是无需考虑的,因为线宽可以在AutoCAD绘图时来控制。由于牵涉到图形比例尺,这里短划线长4mm空格宽1mm是如何控制的呢?前面已讲过,对于这类线型必须考虑到线型比例,那么线型比例LTSCALE勺值为多少才合适?显然从表91中可以看出,取LTSCALB的值为1时最合适,于是图式中的小路可按1:1的比例来设计。换句话说,就是在设计小路时直接采用图式
26、中规定的值。第一步:打幵ACAD.LIN文件,并在文件的最后输入下面两行;*FOOTPATHA,4,-1第二步:保存此文件退出文本编辑器,同样方法修改ACADISO.LIN(必须保持两文件相同)。第三步:加载FOOTPAT线型上面的例子完成了给ACAD.LIN文件加入新的线型定义,但并没有将它加到图形的线型符号表中,即没有应用于对象。要加载FOOTPATHS型到当前绘图中,在命令行键入Linetype命令,弹出线型管理器对话框如图910,点击“加载(L)”按钮,在acadiso.lin或acad.lin文件的可用线型中找到FOOTPATH按确定返回线型管理器,此时FOOTPAT已在
27、线型列表框中。下面作为练习,请读者按照下面的命令操作,绘制出线型后用DIST命令分别量出FOOTPAT线型的短划线和空格的长度,以及该线型的宽度。图9-10加载自定义线型FOOTPATH命令:-linetype当前线型:ByLayer输入选项/创建(C)/加载(L)/设置(S):s指定线型名或:footpath输入选项/创建(C)/加载(L)/设置(S):命令:pline指定起点:0,0当前线宽为0.0指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):w指定起点宽度:0.3指定端点宽度:指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(
28、U)/宽度(W):10,10指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):3、复合线型定义对于虚线和点虚线类的线型,如建设中的等级公路、大车路、乡村路、内部道路、村界等可按前面定义小路的方法进行自定义。但是对于复杂的线型,如陡坎、斜坡、栅栏、铁丝网、篱笆、不依比例围墙、国界等,在AutoCAD中要采用复合点划线型的定义方法。复合点划线型功能是线型的定义不再局限于线划、点、空格。用户可在定制的线型中嵌入单个文本字符串或由SHX文本定义的形。复合线型定义语法的幵头与前述简单线型相同,在定义行的方括号内增加了特殊参数以告诉AutoCAD如何插入文本或形。
29、例如:下面的线型定义,将显示出两种线型的形式。*GAS_LINE,__GAS_GAPS_GASA,0.5,-0.2,GPS,STANDARD,S=0.1,R=0.0,X=-0.1,Y=0.05,-0.25*FENCE_LINE,_-_0__A,0.25,CIRC1,LTYPESHP.SHX,S=0.1,-0.2,1绘制出线型如下图911、912所示:二旦2L-S二二EZ-S图9-11GAS_LINE图9-12FENCELINE_LINE复合线型嵌入文本字符串的语法为:string,style,R=n,A=n,S=n,X=n,Y=n嵌入形的语法是:shape,
30、shape_file,R二n,A=n,S=n,X=n,Y=n“string”是双引号中的由一个或多个字符组成的文本串,shape是shape_file文件中的形名。shape_file中必须有形,否则AutoCAD不允许用户使用此线型。Style是文本式样的名字,shape_file为AutoCADSHX形文件。如果当前图形中没有style,AutoCAD则不允许使用此线型。如果shape_file没有位于库搜索路径中,AutoCAD会提示并要求用户选择另外一个SHX文件。在shape_file中可以包括路径。其余五个字段R二、A二、S=X=Y二可为选择的转换分
31、类。每种转换分类后面的n表示任意数字。R=n表示文本或形相对于当前线段方向的转角。默认时为0表示AutoCAD文本或形的方向与线段方向一致。A=n表示文本或形相对于世界坐标系的X轴的绝对转角。当希望文本或形总是以水平形式出现,与线段的方向无关时,可采用A=0o用户可以指定只=和A=,但两者不能同时指定值。如果两个都没有指定值,AutoCAD采用R=d只=和A二转角以“度”为单位,如果希望以弧度或梯度作为单位,数字后面必须加R或GS=n确定文本或形的比例系数。如果使用固定高度的文本式样,AutoCAD将此高度乘以no如果使用的是可变高度(即0度)的式样,CASS则会把n看作绝对
32、高度。对于形而言,S二缩放系数会使形从其缺省缩放系数1.0按此值往大或往小变化。在任何情况下,AutoCAD通过S=缩放系数与LTSCALE(例如:0.5)和CELTSCAL的乘积来确定高度或缩放系数。因此,应该将S二确定成正常LTSCALE(例如:0.5)下以1:1为输出比例时所对应的值。这样当在比例不同的图中使用复合线型且将LTSCALE设成与各图比例相对应的值时,这些文本或输出的图纸上以相对应的尺寸出现。X=n和Y=n为可选项,它们确定相对于线型分类中的当前点的偏移量。默认时AutoCAD将文本串的左下角点或形的插入点放在此当前点。两个偏移量分别沿着当前线段方向(对于X
33、=),和沿着与当前线段垂直方向(对于Y=)度量,就象有一个局部坐标系,它的X轴从当前线段的第一个端点指向第二个端点。因此正的X=偏移量会使文本或形朝着当前线段的第二个端点的方向移动,正的Y=偏移量会使文本或形朝着X二方向的90度方向(逆时针)移动。这两个偏移量使文本或形的定位更精确。由于复合线型涉及到形文件,下面先对形文件作一简要介绍。然后以地形图图式中的陡坎为例详细介绍陡坎线型是如何创建的。4、形文件的结构(1)形的概念形是一种能用直线、圆弧和圆来定义的特殊实体,它可很方便地被绘入图形中,并可按需要依比例系数及旋转角度,以获得不同的位置和大小。在AutoCAD中,形从定义到绘入
34、图中需经以下几个步骤:按规定格式进行形定义用文本编辑器或字处理器建立形文件。形文件类型为“.SHP”。对已生成的形文件进行编译,生成“.SHX”文件。装入编译后的形文件(“.SHX”文件)。使用形。(2)定义形定义形的文件称为形文件,它是一种“.SHP类型的文件,并具有一定格式。AutoCAD将忽略所有空行及分号右边的内容。建立或修改形文件可使用文本编辑器或字处理器,用文本保存文件。(3)形定义的格式形定义具有一定的格式和规定,用户必须严格遵守。每个形的定义包含有一个标题行和若干形描述行。标题行以“*”开始,说明形的编号、大小及名称。格式如下:*形编号,字节数,
35、形名称形编号:每个形都定义有一个编号,占用一个字节,编号范围在1255之间。也就是说,一个形文件最多定义255个形。字节数:是用于描述一个形所需的数据字节数,包括形描述结束符“0”所占用的字节。每个形的定义字节数不得超过2000。-形名称:每个形必须有一个名字,且这个形名必须大写,否则形名会被忽略描述行在标题行之后,它是用数字或字述形所包含的线段、弧的大小及方向。数字分成一个一个字节,字节之间用逗号分幵。以“0”结束。每一形描述的字节数不能超个,包括结束符“0”。描述行的格式如下:长度及方向码,特殊码,3cr图9-13矢量方向编码母来描和字母描述行过2000描述一个直线矢量的
36、长度和方向需用3个字符,第一个必须是0,它表示后边-长度及方向码两个字符是十六进制数,第二个字符代表矢量的长度,有效值为1F(115个单010TjTI1*018图9-14形DBOX的形。知,该形位长),第三个字符代表矢量的方向,方向编码见图913【例94】根据矢量方向编码构造图914所示先按1:1的比例绘出矩形图,根据矢量方向编码可的完整描述如下:*230,6,DBOX014,010,01C,018,012,0第一行为标题行,它说明形编号是230,定义所占用字节数为6,形名为“DBOX.第二行为描述行,用5个字节描述五条线段,每个字节的第一位“0”代表后边两位数是十六进制数,第二位
37、“1”表示矢量长度的单位长度,第三位数字表示矢量方向,最后一个字节“0”表示形定义的结束。特殊码为定义不同对象,如直线段、圆弧以及描述各种状态,如抬笔、落笔和形定义结束等,AutoCAD设定了一些特殊描述码。这些码是专用的,前两个字符均为0它们是:000形定义结束001激活绘图模式(落笔)002关闭绘图模式(抬笔)003用下一个字节除矢量长度004用下一个字节乘矢量长度005将当前位置压入栈006将栈中内容弹出当前位置007画出由下一个字节给出的子形008下两个字节给出(X,Y)位移量009由(0,0)结束的多个X-Y位移00A由下两个字节定义八分弧00B由下五
38、个字节定义的小段弧00C由(X,Y)位移和凸度定义的弧00D多个指定凸度的弧00E只在垂直文本方式处理下一个命令下面详细介绍这些专用码的意义:代码0:形结束该码只是标志形定义的结束。代码1和代码2:绘图模式控制这些码控制绘图模式:当形的开始和代码为1时,绘图模式为打开。当绘图模式为打开时,落笔画线;代码为2时,绘图模式为关闭,此时只移动新位置而不画线。代码3和代码4:尺寸控制代码3和代码4控制每一个矢量的相对尺寸。在shape命令中指定的高度是水平或垂直矢量(0,4,8,c)的初始长度。代码3和代码4后面附带一个包含整数的比例因子(从12
39、55)的字节。如果想用形的高度来确定整个形的大小,并用10个矢量长度来绘制它,可以用3,10来指定高度比例。代码5和代码6:位置的保存与恢复代码5和代码6用于画形时把当前坐标压入(保存)和弹出(重置)。这样就能从形中的后面的点返回到原先的位置。弹出时必须把压入栈中的所有内容全部弹出。位置栈只能放4个值。当栈满(由于过多的压栈或忘记弹栈)并画形时,就显示如下信息:Positionstackoverflowinshapennn(形编号nnn栈溢出)相反,如果堆栈已空还要进行弹出操作或弹出的数量超过所压入的数量,将产生下溢,在画形时将显示如下信息
40、:Positionstackunderflowinshapennn(形编号nnn栈下溢)代码7:子形代码7是子形调用。附在代码7后面的是一个从1255的形编号。这时就画出该形编号所代表的形(这些形必须在同一个形文件中)。注意,绘图模式对新的形并不复位。当完成子形之后,恢复当前形的绘制代码8和代码9:X-Y位移正常的矢量字节只画16个方向,最长的长度为15。这些限制有助于使形定义更简单,因为这样的线段都是前面所说的标准线段。但这样会产生一些局限。因此,代码8和9允许使用X-Y位移量来画非标准的矢量。代码8后面必须跟下列格式的两个字节:8,X_displac
41、ement,Y_displacementX和Y方向位移的变化范围是-128+127,正数前面的“+”号是可选的,而括号用于提高可读性。例如,8,(-10,3)将导致一个向左移动10个单位并向上移动3个单位的矢量被画出。两个位移量字节之后形返回到正常矢量模式。当需画出一系列非标准矢量时,使用代码9。该码后面可跟任意个(X,Y)位移对,并由一个(0,0)对结束。例如:9,(3,1),(3,2),(2,-3),(0,0)画出三个非标准矢量后,返回到正常的矢量模式。为了让AutoCAD识别正常的矢量或特殊码,所有的(X,Y)位移对序列以(0,0)结束。代码00A:绘制八分弧被
42、叫做八分弧,是因为它的跨度是一个或多个45度图9-15八分弧方向的编号弧,并弧从时特殊码00A(或10)使用下面的两个字节来定义一段弧。这种类型的弧之所以以八分弧边界幵始和终止。如图915所示,八分钟上的三点钟位置逆时针方向编号。弧的说明是:10,radius,(-)0SC行中的10即为八分弧的专用码(00A的十进数),半径radius的值可以是1255,S为起始八的任何一个值。下一个字节指出弧的方向(正是逆时针,负是顺时针)分弧的符号,其值为07,C是该八分弧的跨度,该值是一个07的值,0意味着有八个八分弧或一整弧,括号可用来提高可读性例如,考察下列形定义段:012,10,(
43、1,-032),01E这段程序将向右上方绘制一图9-16八分弧示例位矢量,然后从第三个八分弧幵始绘制半径为一个单位的两段八分弧,最后沿右下方向绘制一个单位的矢量,如图916所示。代码00B:非标准弧特殊码00B(11)用于画那些起始位置和终了位置是非八分圆角边界的弧。该定义使用五个字节:(-)0SC11,Star_offset,end_offset,high_radius,low_radius,起始和终了偏移Start_offset和end_offset表示弧的幵始处和结束处离八分弧边界的距离。而high_radius则为半径值的高8位标记,若半径值小于255各单位值,
44、该值将为零。除此之外,半径、控制字节与八分弧规范完全一样。八分弧(C)是包含这段弧的八分弧个数,而且0亦即为&通过计算起始八分弧的边界(45度的倍数)与弧的起点的度数的差,可以决定起始偏移量。然后将该差值乘以256再除以45。若弧的起点在八分弧的边界上,则起始偏移为0。终止偏移角的计算与起始偏移角的计算相似,只是使用最后八分弧的边界值与弧的终止角的差值。若弧在八分弧上终止,则终止偏移角为零。例如,一个55度至95度半径为三个单位的非标准弧编码如下:11,(56,28,0,3,012)解释:起始八分弧=1=45度结束八分弧=2=90度起始偏移角=56=(55-45)*256
45、/45取整终止偏移角=28=(95-90*256/45取整代码00C和代码00D(12和13):凸弧特殊码00C及00D提供在形定义中包含部分弧的另一种方法。它们近似于代码8与代码9,允许指定(X,Y)位移。但是代码00C与00D允许在画弧时把凸起因子应用到偏移矢量中。代码00C画一个单段弧,而代码00D直到被(0,0)结束之前画多个单段圆弧。代码00C后面必须跟三个字节并用其描述该弧,如下所示:0C,X_displacement,Y_displacement,BulgeX和Y的位移值变化范围可以是-127+127,用于指出弧的曲度的凸起度917所段中点如果弧(bulge),
46、其变化范围也是从-127+127。如图示,如果由位移量所指定的线段的长度为D,线H的垂直高度为H,则凸起度为(2*H/D)*127)。从当前位置到新的位置是顺时针方向,则符号为图9-17半圆弧负。半圆的凸度为127(或-127),也是使用这些码所能表示的最大弧。凸度为零的弧也是有效的,它表示一条直线多段弧代码(00D或13)后跟零或多个圆弧且由一个(0,0)位移终止。例如,字母S的形描述可由下列序列来定义:13,(0,5,127),(0,5,-127),(0,0)在多段弧中,零凸起度由于其能表示直线段,所以非常有用,它比终止一个多段弧,插入一直线段再幵始新的多弧段效
47、率更高。代码00E(14):标志垂直文本命令代码OOE(14)用于双方向的文本字体描述中,这时字体可以用于水平方向和垂直方向。当在字符定义中碰到该特殊码时,下一个码是处理还是被跳过,将取决于文本是水平方向还是垂直方向书写。若是垂直方向书写,则处理;否则,则跳过。对于水平方向文本,每一个字符的起点是基线的左端;而对于垂直方向文本,起点则是字符的顶部中心。在每个字符的结尾,必须提笔直到下一个字符的起点。对水平文本来说,结尾在右边;对垂直文本来说,结尾在下面。特殊码00E(14)主要用于调整起始点与终止点的差。允许同一字符形定义既可以用在水平方向,也可以用在垂直方向。如下例所示,大写D
48、既可以用于水平方向,也可以用于垂直方向。5、形文件的编译与调用第一步:建立形文件形文件是一个ASCII码的文件,按照上面所讲形的定义格式利用文本编辑器或字处理器来建立一个.shp文件。第二步:编译形文件用文本编辑器建立的.shp形文件,不能被AutoCAD直接调用,必须经过编译才行。编译形文件就是把ASCII码的.shp文件转换成LOAD或STYLE命令所接受的格式,即生成.shx文件。对形文件进行编译的命令及格式为:命令:compileAutoCAD将显示“选择形或字体文件”对话框,提示用户输入要编译的.shp形文件名。编译完成后,屏幕上显示如下信息:编译形/字体说明文件编译成功。输
49、出文件桌面ltypeshp.shx|包含103字节。被编译后形成的文件名与原定义的文件名相同,只是扩展名变成.shx,这是一个可被LOAD命令装入AutoCAD系统的文件。注意:如用户要直接使用形文件需执行第三、四步。如果只是调用形来定义线型符号,到此即可编辑线型文件。第三步:加载形文件编译后的形文件在被使用前必须被加载到AutoCAD系统中。加载形文件的命令为LOAD它的功能是将.shx文件后,系统将自动将其加载。第四步:插入形当形文件被加载后,我们就可以用shape命令把形插入当前绘制的图形中去。形被插入时,可以放大、缩小或改变其方向,与插入块相同。6、陡坎线型符号的建立【例95】根
50、据形的定义建立陡坎线型符号如图917由地形图图式中的陡坎符号可知,相邻两个齿牙间的间距为2mm齿牙高为一III匹1mm图9-18未加固陡坎第一步:建立形文件先将陡坎线型符号分解成单个的“丄”形符号,然后按10:1的比例画出“丄”码,写出其形符号的形状(如图919),并对照标准矢量方向编形的完整定义如下:*100,9,RIDGE003,00A,001,0a0,002,058,001,054,0解释如下:形的编号为100,共9个字节,形名为RIDGE描述行的前两个字节是(3,10),其含义是后面所有矢量均被10除。字节1为落笔画线,后面的OaO表示沿水平方向画长度为10个单位的矢量
51、。字节2为抬笔不画线,后面的058表示将笔水平向左移动到“丄”形符号的底部中心。后面的字节1为落笔画线,054表示向上画长度为5个单位的矢量,最后的0表示形定义结束。将上述定义写入记事本,并以“MyLine.shp”保存在AutoCAD的support目录下。第二步:编译形文件件这文面O型在命令行键入compile命令,输入形文“MyLine.shp”按确定,编译好的“MyLine.shx”就出现在相同的目录下图9-20加载RIDGE线型打幵记事本,输入下面两第三步:建立陡坎线件行陡坎线型的完整定义,然后以“MyLine.lin”保存在AutoCAD的supp
52、ort目录下。*RIDGE,-|-|-A,1,RIDGE,MYLine.SHX,S=2,1第四步:加载“MyLine.lin”线型文件,并将名为RIDGE的线型设置为当前线型。启动pline画线命令,我们所期待的陡坎线型就这样制作好了。下面给出栅栏线型符号的形的完整定义,其它线型可仿此建立。*101,4,FENCEA003,00A,0aC,0*102,9,FENCEB003,00A,002,050,001,00A,(005,000),0对应的线型文件中线型定义如下:*FENCE,-1(|(|(-A,4.5,FENCEA,Myline.SHX,Y=1,4.5,-0.5
53、,FENCEB,Myline.SHX,-0.5、定制植被填充图案且线型1/严/“丿//0准图案//相对位1肌盯XaVIIiaJX参数决的图案图9-21定义阴影填充图案的参数准线与AutoCAD提供的标准图案填充是由名为ACAD.PAT的标准图案库文件定义的。标准图案库包含有通用的各种图案。由于库中提供的填充图案在地形图式中不可用,为此需按照定义线型的方法对图案进行设计。ACAD.PAT与ACAD.LIN一样,也是一个文本文件,直接用记事本打幵可进行修改和编辑,以满足我们的需要。1、图案的的构成一个阴影填充图案由一簇或几簇有规律线组成,每一簇图案线中的各条线相互平行相同。因此,只要确定了该线簇中的一条基线的方、线型及其相邻平行线与该基准线的置,则这一簇图案线就唯一确定。在AutoCAD中,基准图案线的方位由三个定,即基准线起点在绘图坐标中的坐标及基X轴的夹角A(逆时针方向为正)。基准图案线的线型与AutoCAD线型库中线型参数完全相同。当线型为实线时可以不定义。在基准图案线确定以后,相邻平行线与基准图案线的相对位置由两个参数确定,即相邻平行线起点与基准图案线起点在线的长度方向上的距离dL和平行