计算机绘图地形图图例符号绘制.ppt
第四章 地形图符号绘制,主要内容1.形和复合线型定义与调用方式2.图案充填方式3.菜单文件基本知识4.地形图符号定制方法5.命令文件,4.1 概述,一、AutoCAD二次开发目的,(1)大型的二次开发。定制软件界面(菜单、工具条、对话框);添加所需要的计算绘图功能;编制地形图符号(点、线、面)。(2)小型二次开发。为了使用更加方便和实际问题需要,改变AutoCAD界面、增减菜单或工具条的内容、编制图形符号等。,二、AutoCAD中的主要文件,4.2 用形定义符号,一、形的概述“形”是AutoCAD中一种特殊的图形对象,与块相比,形构成较简单,占用空间较小,绘制速度较快。用形定义多次重复使用的图形,使用方便。形定义文件是以“.shp”为扩展名的ASCII文件。形定义文件需要编译为形文件后才能为AutoCAD使用,编译后的形文件与形定义文件同名,其扩展名为“.shx”。,1.形的作用,定制图形符号和文本字符。如地形图中的点状符号可以用形来编制(也可以用块)。此外,在复合线型定义时,也要用到形。如图4-1所示。,2.形的特点(1)用形定义的符号可以存放在一个形文件(*.SHP)中,作为符号库使用,管理方便、占用空间少。(2)形的制作过程不直观,定制中一定要细心;不能对插入的形直接修改(而块被打散后(EXPLODE)却可以直接编辑修改)。(3)编辑形文件时要特别注意格式。,二、形的定义,1.形的定义格式形的定义由“标题行”和若干个“描述行”组成,即:*形编号,形定义的字节数,形名称(标题行)控制码1,矢量1描述码,矢量2描述码,控制码2,矢量i描述码,控制码n,0(描述行),形的定义格式说明:(1)标题行:标题行以“*”为开始标记,用于说明形的编号、大小和名称。其中各项意义如下:形的编号:取值范围是1258;在同一文件中每个形编号应保持唯一,不能重名。形定义的字节数:表示形定义描述行的数据字节数,包括末尾的零;最大值为2000。形的名称:必须大写。(2)描述行:由描述代码(控制码和矢量描述码)组成,代码之间由“,”分开,最后以0结束。定义字节行可以有一行或多行。(3)形定义文件的每一行最多可包含128个字符,超过此长度的行不能编译。AutoCAD忽略空行和分号右边的文字。,举例:如图所示,定义“十字”形。,;十字(注释行)*10,10,SZ(标题行)2,018,1,020,2,018,014,1,02c,0(描述行),注意:(1)形定义格式;(2)什么是控制码和 矢量描述码;(3)形名称必须大写。,2.控制码控制码的作用是控制笔的起笔或落笔。告诉系统怎么绘图,解决了怎么画问题。有15个控制码,用十进制或十六进制表示,如下表4-2。3.形的描述方式矢量描述码的作用是控制绘图的长度和方向,解决了画什么的问题。形是由直线段和圆弧组成的,采用不同的编码来描述。直线段采用标准矢量方式和非标准矢量方式;圆弧采用八分圆弧方式和非八分圆弧方式。,(1)标准矢量方式(画线段)矢量描述码由三个数字组成。第一个必须为0,表示后面的两个字符为十六进制值;第二个给出了矢量的长度,取值为1F;第三个表示矢量的方向,取值为1F,具体含义如图4-4所示。,图4-4矢量方向代码,注意:所谓矢量长度是指沿X轴方向或Y轴方向的长度,斜线的矢量长度应以其在X轴或Y轴上的投影长度为准。基点的概念。就是形的插入点,在定义形时要考虑好。,举例:如图所示,形定义如下:;方框*32,9,K2,014,1,010,02c,028,024,010,0,课堂练习:编写如图所示的四个形,要求基点为图形的中心,各线段长为2个图形单位。,参考答案:*1,7,SX1,014,2,01c,1,01c,0*2,11,T01C,2,014,1,014,010,2,018,1,018,0*3,9,FK2,014,1,010,02C,028,024,010,0*4,10,FKC012,02C,026,02C,012,01E,028,022,028,0,注意:(1)形名称必须大写;(2)形编号不得相同;(3)必须从基点开始;(4)用记事本编辑保存(.shp)。,(2)非标准矢量方式(画线段),在标准方式中,只能用16个矢量方向代码,且每个向量的长度不能大于15。为了解决这一不足,采用008、009两个控制码,按非标准矢量方式。其描述行格式:008,(X,Y)或008,X,Y009,(X1,Y1),(X2,Y2),(Xn,Yn),(0,0),注意:(1)008只产生一个相对位移;(2)009产生多个相对位移,且要用(0,0)结束;(3)008,009完成后自动回到标准矢量方式;(4)X,Y取值-128127。,举例1:如图4-5的“中”字形定义为:*30,25,ZHONG002,008,(2,2),001,009,(0,4),(4,0),(0,-4),(-4,0),(0,0),002,008,(2,6),001,008,(0,-8),0,举例2:如图所示图形(长宽均为2,基点在左下角)的定义如下:*31,17,TIAN024,020,02c,028,2,8,(0,1),1,020,2,8,(-1,1),1,02c,0,非标准矢量方式和标准矢量方式可以混合使用,括号增加可读性,不计字节数。,举例3:画箭头(介绍控制码“3”);箭头*33,16,JT3,23,080,0F0,2,0F8,014,1,9,(-8,-1),(8,-1),(0,0),0,控制码“3”是除法运算码,其后的数是除数。去除其后的各矢量长度,使线段长度缩小。,(3)八分圆弧方式,这种方式是画圆弧的,控制码用00A(10)。图4-6八分圆弧划分 其描述行格式如下:10,(半径,+/-0SC),其中:10:是控制码(十进制,十六进制为00A);半径:圆弧的半径,1255整数;,+/-0SC:+(可省略)表示逆时针;-表示顺时针;0(数字零)为十六进制标志;S表示起始边界位置码见下图;C表示跨过八分圆弧的个数。,举例:画图4-7所示的圆弧(粗线部分),其定义为:*40,6,BFYH012,10,(1,-032),01E,0,思考:描述行为:10,(3,-044)或10,(2,064)的圆弧又是什么形式的?,八分圆弧方式如何画整圆?0SC中使C为0,S根据插入点选择适当的数。如:*50,4,YR 10,(4,-040),0,大家想想,八分圆弧方式有何不足之处?,如何定义下列圆(插入基点不同)?插入基点分别是A、B、C、D,*51,4,YR110,(4,-040),0,*52,4,YR210,(4,-020),0,*53,4,YR310,(4,-000),0,*54,4,YR410,(4,-060),0,定义下列形,*30,16,HFK014,010,01c,018,012,01b,015,01f,019,013,01d,017,010,017,01e,0,*35,28,DHFK024,020,02c,028,022,02b,025,02f,029,023,02d,027,020,027,02e,027,7,30,01C,7,30,028,7,30,014,7,30,0,*40,32,TXY2,018,1,10,(1,-040),018,10,(2,-040),018,10,(3,-040),018,10,(4,-040),018,10,(5,-040),018,10,(6,-040),018,10,(7,-040),070,0,;石质陡崖*45,20,SZDY2,084,1,02c,018,2,010,1,02c,028,2,020,1,02c,038,2,030,1,02c,0,石质陡崖,独立树,;独立树*46,9,DGS050,2,058,1,074,10,(4,060),0,通过独立树说明形的运用注意事项,(1)图例符号规格尺寸(2)插入比例(3)绘图比例(4)编程调用(defun c:dyx()(setq xmc(getstring输入形名:)(setq p(getpoint输入点:)(setq bl(getreal输入比例:)(command shape xmc p bl 0),(4)非八分圆弧方式当所画圆弧的起点或终点不在八分圆弧的界点时,只能用非八分圆弧方式定义。控制码是00B(11)。其描述行格式:11,起点偏移,终点偏移,高位半径,低位半径,(-)0SC其中:起点偏移弧起始角度-起点所在八分圆弧界点角度25645(取整);终点偏移弧终点角度-终点所在八分圆弧界点角度25645(取整);高位半径只有当半径大于255时,它才不为0;低位半径可以理解为所画圆弧的半径;(-)0SC同八分圆弧。,举例:按逆时针画图4-8所示的(粗线部分)的圆弧,其半径为3,起始角是20,终止角为140。,起点偏移=(20-0)25645=113.8取整为114终点偏移=(140-135)25645=28.4取整为28高位半径(3255)取0低位半径是3本例中(-)0SC为:004。描述行为:11,(114,28,0,3,004),0,三、形的创建与调用 形的定义文件(*.SHP)是ASCII格式的,因此,可以使用任一文本编辑器(如记事本)直接打开或创建形文件。从编写到调用形,通常要经过五个步骤,即:编写编辑(记事本)编译(compile)装载(load)插入(shape),注意:(1)必须从“记事本”第一行最左边开始;文件中最后一行要回车,否则编译出错。(2)插入点、插入比例和旋转角。,四、举例,通过绘制右图,介绍控制码4、5、6、7、12、13。,;半径为1的圆*20,7,YUAN2,01C,1,10,(1,060),0;方块*25,9,FK12,01C,1,010,024,028,02C,010,0*26,11,FK22,01c,1,010,024,028,02c,010,2,014,0;形26画笔回到插入基点,;在25形上插入20形(控制码7)*30,8,YF17,25,2,014,1,7,20,0;在26形上插入20形(控制码7)*31,5,YF27,26,7,20,0画半圆(控制码12)*35,5,BY12,(2,0,-127),0;画S(控制码13)*40,10,S13,(0,5,127),(0,5,-127),(0,0),0,*45,13,CA(控制码5与6)5,5,5,5,012,6,016,6,01a,6,01e,6,0*50,10,POP(控制码5与6)5,5,5,012,6,014,6,016,6,0;箭头(控制码3)*55,16,JT3,23,080,0F0,2,0F8,014,1,9,(-8,-1),(8,-1),(0,0),0;同心圆(控制码7与4)*60,10,TXY7,20,2,014,1,4,2,7,20,0,4.3 线型与图案填充,一、线型和线型文件概述 AutoCAD中的线型是以线型文件(也称为线型库)的形式保存的,其类型是以“.lin”为扩展名的ASCII文件。可以在AutoCAD中加载已有的线型文件,并从中选择所需的线型;也可以修改线型文件或创建一个新的线型文件。线型包括复杂线型和简单线型。,二、简单线型的定义 1.简单线型定义 线型定义由标题行和模式行(或叫定义行)两部分组成。(1)标题行:由线型名称和线型描述组成,标题行以“*”为开始标记,线型名称和描述由逗号分开,其格式为:*线型名称,线型描述(2)定义行:由对齐码(A)和线型定义组成,中间由逗号分开,其格式为:A,线型定义,,举例:*CENTER,Center-A,1.25,-.25,.25,-.25,注意:(1)*是标题行开始标记,必须有。(2)CENTER是线型名称,紧跟*后面。线型名称可以是字母、数字和$、减号(-)等符号的组合。(3)Center-是线型描述,可有可无。与线型名称之间用“,”隔开。(4)A对齐码,必须有,且只能是A(大小写均可)。,正值表示:下笔,即短划线负值表示:抬笔,即空白0表示:画一点,(5)1.25,-.25,.25,-.25是线型定义。A与数字、数字与数字之间用“,”隔开,不能有空格。这些数字(线型定义)的含义是:(6)A后面的第一个数字必须是0或正数;重复部分只定义一次。(7)注意比较与形定义格式的区别。,2.线型的创建和加载步骤 以下列线型为例:*dhx,-.-.-.-.-A,15,-7.5,0,-7.5*SDHX,_._._._.A,12,-3,0,-3,0,-3第一步:打开Windows附件中的“记事本”。第二步:添加上述内容并保存。第三步:加栽(LINETYPE),三、复合线型,复合线概念:复合线型是在简单线型中嵌入符号、字符串或形等其它元素而成的。,复合线类型:字符串复合线型和形复合线型。,1.形复合线型的定义格式 形复合线型定义也是由标题行和定义行两部分组成。但必须把形名称、形文件名、旋转角度、比例、X偏移、Y偏移等形属性包含在线型定义中。,定义格式:标题行同简单线型,定义行格式如下:ShapeName,ShapeFile,Scale,Rotation,X-Offset,Y-Offset,(1)Shape Name(形名称):这是沿着线条所要插入的形名称。形的名称必须存在,否则,沿着线条将无形生成。,(2)Shape File(形文件):这是经过编译的形文件的名称(.SHX),它包含插入线条中的形的定义。形文件所在的子目录的名称必须在ACAD的搜索路径内。(3)Scale(比例):这是个比例因子,定义的形尺寸按照它来缩放。如果该比例为1,形的尺寸将和形定义(.SHP文件)中指定的尺寸相同。(4)Rotation(旋转):这是形相对于正X轴的旋转角度。(5)X-Offset(X偏移):这是从线段的终点开始,沿着线条的方向测量到形的插入点之间的距离。,(6)Y-Offset(Y偏移):这是从线段的终点开始,沿着与线条垂直的方向测量到形的插入点之间的距离。如果线条是水平的,则Y-Offset距离就沿着Y轴测量。在图4-15中,Y-Offset的距离值为0。,铁丝网篱 笆栏 杆,2.形复合线型的创建方法步骤如下:第一步:确定线条的规格。第二步:使用记事本编写形文件的定义。文件的扩展名必须为.SHP。下面的文件就是XWJ.SHP文件的清单。形的名称分别是SZ、SX、YR。;十字*10,10,SZ 2,018,1,020,2,018,014,1,02c,0;竖线*20,2,SX 014,0;圆*25,4,YR 10,(1,000),0,第三步:使用COMPILE命令编译形文件(XWJ.SHP)。第四步:使用记事本编写形复合线型的定义。可以将该定义加入到ACAD.LIN文件中或建立一个单独的文件。文件的扩展名必须为.LIN(如:XT.LIN)。*篱笆a,8,sz,xwj.shx,s=0.5,r=0,x=1,y=0,-2*铁丝网a,8,sz,xwj.shx,s=0.5,r=45,x=1,y=0,-2*栏杆a,4.5,sx,xwj.shx,s=1,r=0,x=0,y=0,4.5,yr,xwj.shx,s=0.5,r=0,x=1,y=0,-1,第五步:为了检验线型,使用LINETYPE命令装载线型,并绘制一个线条,检查该线条是否按照给定的规格绘制。,四、图案填充 1.填充图案的定义 与线型定义类似,填充图案的定义由标题行和定义行两部分组成。(1)标题行:由填充图案名称和填充图案描述组成,标题行以“*”为开始标记,填充图案名称和描述由逗号分开,其格式为:*填充图案名称,填充图案描述,(2)定义行:由图案直线定义和填充线的控制信息组成,一个填充图案中可以定义多种类型的图案直线(AutoCAD对图案直线的数量没有限制。),其格式为:Angle,X-origin,Y-origin,D1,D2,dash-1,dash-2,.,图4-18,其中各项意义如下:Angle:填充线图案直线与水平方向的夹角。X-origin、Y-origin:第一条图案直线经过的坐标点。D1:相邻的两条图案直线沿画线方向上的偏移值。D2:相邻的两条图案直线之间的偏移值。dash-1,dash-2,.:图案直线的规格说明,与上节中简单线型的定义相同。,例如:在acad.pat文件中对SQUARE图案的定义如下:*SQUARE,对齐的小方块0,0,0,0,.125,.125,-.12590,0,0,0,.125,.125,-.125,2.填充图案的创建 第一步:打开Windows附件中的“记事本”。第二步:在“记事本”中输入下列内容:*USER,the custom pattern by user0,0,0,0,1,1,-1 0,0,0.5,0,2,1,-1 90,0,0,0,1,1,-1 90,0.5,0,0,2,1,-1第三步:将该文件保存在AutoCAD主文件夹的“SUPPORT”子文件夹中,并命名为“user.pat”。第四步:进入AutoCAD,打开“Boundary Hatch(边界填充图案)”对话框,在“Type(类型)”下拉列表中选择“Custom(自定义)”项,对话框中将自动显示出用户定义的“USER”填充图案的信息。,4.4 菜单文件介绍,一、菜单文件简介 菜单是人机交互的主要方式。主要菜单下拉菜单和快捷菜单工具栏屏幕菜单其它菜单定点设备按钮菜单图像控件菜单数字化仪菜单帮助字符串和工具栏提示 键盘加速键,在AutoCAD启动时,系统自动装入ACAD.MNC(或ACAD.MNS、ACAD.MNU)。用户可以根据需要通过修改菜单文件来定制菜单,也可以创建自定义的菜单文件。二、菜单文件的类型AutoCAD系统中,可以看到如下几种类型的菜单文件:ACAD.MNU、ACAD.MNC、ACAD.MNR、ACAD.MNS、ACAD.MNL。主要是:ACAD.MNU和ACAD.MNL,三、下拉菜单文件的结构菜单文件中的下拉菜单部分用“*POP1”“*POP499”标签进行标识;以ACAD.MNU为例,四、菜单文件的加载加载基本菜单的方法为:命令行:menu加载局部菜单的方法为:菜单:【Tools(工具)】【Customize(自定义)】【Menu(菜单)】命令行:menuload卸载局部菜单的方法为:菜单:【Tools(工具)】【Customize(自定义)】【Menu(菜单)】命令行:menuunload,4.5 命令文件介绍,命令文件也叫脚本文件,类似于DOS操作系统中的批处理文件,其作用是将不同的AutoCAD命令组合起来,并按确定的顺序自动连续地执行。脚本文件是文本文件,扩展名为“.SCR”,用户可使用“记事本”来创建脚本文件。,一、命令组文件的格式(1)脚本文件中以“;”开始的行都被当作注释行,在运行时被忽略。(2)脚本文件扩展名为“*.SCR”。(3)脚本文件中空格有特殊意义,代表回车换行,所以,脚本文件中所有包含空格的文件名都必须被括在双引号中。(4)脚本文件在每行的结尾,保存时都会自动添加一个空格。(5)脚本文件中大小写意义相同。,二、运行命令组文件 1.运行脚本文件有两种方式 菜 单:选择【工具】【运行脚本】命令行:SCRIPT(或SCR)2.运行中的脚本文件在按Esc键时,或在调用另一个SCRIPT命令时被终止。如果脚本文件被取消,或脚本文件遇到错误,并且造成该文件的执行被悬挂时,RESUME命令将跳过导致出错的命令,并继续执行剩余的脚本文件。,三、实例说明(1)使用“记事本”创建一个脚本文件“LC.scr”。(2)在该文件中添加如下内容。;DRAW A LINE AND CIRCLE LINE 0,0 10,10 CIRCLE 10,10 3.5 ZOOM W-15,-15 15,15(3)运行脚本文件,演示1,演示2,4.6 地形图符号的定制方法,建立符号库的目的是为了快速、方便、规范的绘制地形图符号。一般有两种方法:(1)利用AutoCAD的图快和定义线型功能;(2)根据符号特征,编写程序建立符号库。根据符号特征,地形图符号可以分为点状、线状、面状三类。,一、建立点状符号库 有些点状符号可以组合,具有方向性,并能按比例缩放。按图式规范和尺寸要求,选择定位点作为插入基点,定义成块,存入图库文件中。除了用图块方式外,还可以用形定制点状符号。,二、建立线状符号库 线状符号在地形图中占的比重较大,包括管线、垣栅、境界、道路、水系等。建立线状符号一般用复合线型或AutoLISP程序实现。,三、建立面状符号库 面状符号有房屋、植被、土质等。在地图制图中,结合要素属性,可以把AutoCAD的封闭线理解为“面”,即面状符号,可以用封闭线型表达面状符号。对于类似房屋、池塘面符号,就是用面边界表示。对于类似植被、土质等面符 号,既要定义边界,又要填充 描述,如“草坪”。填充图案是建 立面符号主要方法。,草坪,