第4章计算机绘图地形图图例符号绘制
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课堂练习:编写如图所示的四个形,要求基 点为图形的中心,各线段长为2个图形单位。
参考答案:
*1,7,SX
1,014,2,01c,1,01c,0
*2,11,T 01C,2,014,1,014,010,2,018,1,018,0
*3,9,FK 2,014,1,010,02C,028,024,010,0
三、形的创建与调用
形的定义文件(*.SHP)是ASCII格式的,因此, 可以使用任一文本编辑器(如记事本)直接打开或创 建形文件。
从编写到调用形,通常要经过五个步骤,即: 编写→编辑(记事本)→编译(compile) →装载(load)→插入(shape) 注意:
(1)必须从“记事本”第一行最左边开始;文件中最 后一行要回车,否则编译出错。
注意:所谓矢量长度 是指沿X轴方向或Y轴 方向的长度,斜线的 矢量长度应以其在X轴 或Y轴上的投影长度为 准。
②基点的概念。就是形的插入点,在定义形时要考虑好。
图4-4矢量方向代码
举例:如图所示,形定义如下:
;方框
*32,9,K
2,014,1,010,02c,028,
024,010,0
基点在中心,边长为2。
置
007
7
引用其它形,代码的下一字节指定了被引用形的编号
008
8
由当前位置绘制线段,代码的下两个字节指定了线段在X、Y
方向上的相对位移
009
9
由当前位置开始绘制一系列的线段,代码后面的字节分别指
定了各个线段在X、Y方向上的相对位移,最后以(0,0)为
结束符
00A
10
绘制八分圆弧
00B
11
绘制分数圆弧
2.形的特点
(1)用形定义的符号可以存放在一个形文 件(*.SHP)中,作为符号库使用,管理方便、 占用空间少。
(2)形的制作过程不直观,定制中一定要 细心;不能对插入的形直接修改(而块被打 散后(EXPLODE)却可以直接编辑修改)。
(3)编辑形文件时要特别注意格式。
二、形的定义
1.形的定义格式
*40,32,TXY 2,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,SZDY 2,084,1,02c,018,2,010,1,02c,028,2,020,1,02c,038,2,030,1,02c,0
非标准矢量方式和标准矢量方式可以混 合使用,括号增加可读性,不计字节数。
举例3:画箭头(介绍控制码“3”)
;箭头
*33,16,JT
8 23
3,23,080,0F0,2,0F8,
014,1,9,(-8,-1), 基点
(8,-1),(0,0),0
1
1 23
控制码“3”是除法运 算码,其后的数是除数。 去除其后的各矢量长 度,使线段长度缩小。
;在25形上插入20形(控制码7) *30,8,YF1 7,25,2,014,1,7,20,0
;在26形上插入20形(控制码7) *31,5,YF2 7,26,7,20,0
画半圆(控制码12) *35,5,BY 12,(2,0,-127),0
;画S(控制码13) *40,10,S 13,(0,5,127),(0,5,-127),(0,0),0
形的定义由“标题行” 和若干个“描述行” 组成,即:
*形编号,形定义的字节数,形名称 (标题行)
控制码1, 矢量1描述码, 矢量2描述码,…,
控制码2, 矢量i描述码,…,
控制码n,…,0
(描述行)
形的定义格式说明:
(1)标题行:标题行以“*”为开始标记,用于说明形的编 号、大小和名称。
其中各项意义如下:
举例:按逆时针画图4-8所示的(粗线部分)的圆弧, 其半径为3,起始角是20°,终止角为140°。
起点偏移=(20-0)×256÷45=113.8 取整为114 终点偏移=(140-135)×256÷45=28.4 取整为28 高位半径(3<255)取0 低位半径是3 本例中(-)0SC为:004。 描述行为:11,(114,28,0,3,004),0
大家想想,
插入点
八分圆弧方
式有何不足
之处?
如何定义下列圆(插入基点不同)?
插入基点分别是A、B、C、D
B
A
C
*51,4,YR1 *52,4,YR2 *53,4,YR3 *54,4,YR4 10,(4,-040),0 10,(4,-020),0 10,(4,-000),0 10,(4,-060),0
举例1:如图4-5的“中” 字形定义为: *30,25,ZHONG 002,008,(2,2),001,009, (0,4),(4,0),(0,-4), (-4,0),(0,0),002, 008,(2,6),001,008, (0,-8),0
(6)
(2)
(3)
(1) (5)
(4) (7)
举例2:如图所示图形(长宽均为2,基点在左下角) 的定义如下: *31,17,TIAN 024,020,02c,028,2,8,(0,1),1,020, 2,8,(-1,1),1,02c,0
第四章 地形图符号绘制
主要内容
1.形和复合线型定义与调用方式 2.图案充填方式 3.菜单文件基本知识 4.地形图符号定制方法 5.命令文件
§4.1 概述
一、AutoCAD二次开发目的
(1)大型的二次开发。定制软件界面(菜单、 工具条、对话框);添加所需要的计算绘图 功能;编制地形图符号(点、线、面)。
举 例 : 画 图 4-7 所 示 的 圆 弧 (粗线部分),其定义为: *40,6,BFYH 012,10,(1,-032),01E,0
思考:描述行为: 10,(3,-044)或10,(2,064)的
圆弧又是什么形式的?
八分圆弧方式如何画整圆? 0SC中使C为0, S根据插入点选择适当的数。如: *50,4,YR 10,(4,-040),0
形定义文件是以“.shp”为扩展名的ASCII文 件。形定义文件需要编译为形文件后才能为 AutoCAD使用,编译后的形文件与形定义文件 同名,其扩展名为“.shx”。
1.形的作用
定制图形符号和文本字符。如地形图中的点状符 号可以用形来编制(也可以用块)。此外,在复合 线型定义时,也要用到形。如图4-1所示。
矢量描述码;
基点
(3)形名称必须大写。
2.控制码
控制码的作用是控制笔的起笔或落笔。告诉系 统怎么绘图,解决了怎么画问题。有15个控制 码,用十进制或十六进制表示,如下表4-2。
3.形的描述方式
矢量描述码的作用是控制绘图的长度和方向, 解决了画什么的问题。形是由直线段和圆弧组 成的,采用不同的编码来描述。直线段采用标 准矢量方式和非标准矢量方式;圆弧采用八分 圆弧方式和非八分圆弧方式。
(3)形定义文件的每一行最多可包含128个字符,超过此长 度的行不能编译。AutoCAD忽略空行和分号右边的文字。
举例:如图所示,定义“十字”形。
;十字
(注释行)
*10,10,SZ
(标题行)
2,018,1,020,2,018,014,1,02c,0 (描述行)
注意:
(1)形定义格式;
(2)什么是控制码和
(2)小型二次开发。为了使用更加方便和实 际问题需要,改变AutoCAD界面、增减菜单或 工具条的内容、编制图形符号等。
二、AutoCAD中的主要文件
§4.2 用形定义符号
一、形的概述
“形”是AutoCAD中一种特殊的图形对象, 与块相比,形构成较简单,占用空间较小, 绘制速度较快。用形定义多次重复使用的图 形,使用方便。
(3)八分圆弧方式
这种方式是画圆弧的,控制码用00A(10)。 图4-6八分圆弧划分
其描述行格式如下: 10,(半径,+/-0SC)
其中: ①10:是控制码(十进制,十六进制为00A); ②半径:圆弧的半径,1~255整数;
③+/-0SC:+(可省略)表示逆时针;-表示顺时针;0 (数字零)为十六进制标志;S表示起始边界位置码见 下图;C表示跨过八分圆弧的个数。
定义下列形
黑方块(HFK)
黑方块(DHFK)
同心圆(TXY)
*30,16,HFK 014,010,01c,018,012,01b,015,01f,019,013,01d,017,010,017,01e,0
*35,28,DHFK 024,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
00C
12
根据由X、Y位移和凸度绘制圆弧
00D
13
多个指定凸度的圆弧
00E
14
仅适用于垂直文字,用来将下一个字符绘制在前一个字符的
下面
(1)标准矢量方式(画线段)
矢量描述码由三个数字组成。第一个必须为0,表 示后面的两个字符为十六进制值;第二个给出了矢 量的长度,取值为1~F;第三个表示矢量的方向, 取值为1~F,具体含义如图4-4所示。
(4)非八分圆弧方式
当所画圆弧的起点或终点不在八分圆弧的界点时,只 能用非八分圆弧方式定义。控制码是00B(11)。
其描述行格式:
11,起点偏移,终点偏移,高位半径,低位半径,(-)0SC 其中: 起 点 偏 移 ——[ 弧 起 始 角 度 - 起 点 所 在 八 分 圆 弧 界 点 角 度]×256÷45(取整); 终 点 偏 移 ——[ 弧 终 点 角 度 - 终 点 所 在 八 分 圆 弧 界 点 角 度]×256÷45(取整); 高位半径——只有当半径大于255时,它才不为0; 低位半径——可以理解为所画圆弧的半径; (-)0SC——同八分圆弧。
代码
代码
(十六进制) (十进制)
意义
000
0
形定义结束
001
1
激活绘图模式(落笔)
002
2
ቤተ መጻሕፍቲ ባይዱ
停止绘图模式(提笔)
003
3
用代码的下一字节去除矢量长度,即比例缩小
004
4
用代码的下一字节去乘矢量长度,即比例放大
005
5
将当前位置压入堆栈,即保存当前位置
006
6
从堆栈弹出当前位置,即恢复由代码005保存的最后一个位
*4,10,FKC
注意:
(1)形名称必须大 写; (2)形编号不得相 同; (3)必须从基点开 始; (4)用记事本编辑 保存(.shp)。
012,02C,026,02C,012,01E,028,022,028,0
(2)非标准矢量方式(画线段)
在标准方式中,只能用16个矢量方向代码,且每 个向量的长度不能大于15。为了解决这一不足,采 用008、009两个控制码,按非标准矢量方式。其描 述行格式:
①形的编号:取值范围是1~258;在同一文件中每个形编号 应保持唯一,不能重名。
②形定义的字节数:表示形定义描述行的数据字节数,包括 末尾的零;最大值为2000。
③形的名称:必须大写。
(2)描述行:由描述代码(控制码和矢量描述码)组成,代 码之间由“,”分开,最后以0结束。定义字节行可以有一行 或多行。
(2)插入点、插入比例和旋转角。
四、举例
通过绘制右图, 介绍控制码4、5、 6、7、12、13。
;半径为1的圆 *20,7,YUAN 2,01C,1,10,(1,060),0
;方块 *25,9,FK1 2,01C,1,010,024,028,02C,010,0
*26,11,FK2 2,01c,1,010,024,028,02c,010,2,014,0 ;形26画笔回到插入基点
008,(△X,△Y)或008,△X,△Y
009, (△X1,△Y1),(△X2,△Y2),… , (△Xn,△Yn),(0,0)
注意:(1)008只产生一个相对位移; (2)009产生多个相对位移,且要用(0,0)结束; (3)008,009完成后自动回到标准矢量方式; (4)△X,△Y取值-128~127 。
;独立树 *46,9,DGS 050,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 "" ) )