09大纲《计算机地图制图》实验指导书测绘0914Word文档下载推荐.docx
- 文档编号:18858524
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:23
- 大小:254.27KB
09大纲《计算机地图制图》实验指导书测绘0914Word文档下载推荐.docx
《09大纲《计算机地图制图》实验指导书测绘0914Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《09大纲《计算机地图制图》实验指导书测绘0914Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
1.要写明自己实验的过程,以及实验过程中计算的具体数据
2.填写误差统计表
图像纠正误差统计表
图幅名称
图幅编号
控制点理论坐标
纠正后实际坐标
误差
X坐标
Y坐标
△X
△Y
中误差
误差原因分析说明:
附:
实验二数据文件读写
AutoLISP综合了人工智能语言LISP的特性和AutoCAD强大的图形编辑功能的特点。
通过本次实验,掌握AutoLISP语言的语法规则和AutoLISP语言的简单编程规则,能够编写简单的实用程序,实现对文本文件的读写操作。
2.实验地点在机房,每人一机,实验软件AutoCAD2005。
1.掌握文件打开与关闭函数,文件的读行和写行函数使用方法;
2.掌握常用的字符串处理函数使用方法;
3.掌握command函数使用方法;
4.掌握常用的表处理函数使用方法。
1.读取文本文件展绘碎部点
(defunC:
zhsbd(/)
(setqpf(getfiled"
pathFile"
"
"
txt"
2))
(ifpf
(progn
(setqfp(openpf"
r"
))
(setqreco(read-linefp))
(whilereco
(setqdh(substrreco12))
(setqx(substrreco67))
(setqy(substrreco147))
(setqz(substrreco226))
(setqpt(list(atofx)(atofy)))
'
(command"
layer"
m"
yuan"
c"
67"
)
(command"
circle"
pt0.5)
dh"
90"
text"
(polarptpi1)20dh)
)
(princ)
(closefp)
zoom"
e"
图1展点数据文件
图2展绘碎部点图
2.提取高程点写入文本文件
tqgcd(/)
保存数据文件"
4))
(ifpf
w"
))
(setqss(ssget"
X"
((0."
TEXT"
)(8."
p831"
))))
(ifss
(progn
(setqn(sslengthss)i0)
(while(<
in)
(setqdata(entget(ssnamessi)))
;
;
获取插入点坐标(10500656.04.01739e+0068.18)
(setqdata1(assoc10data))
CAD的X坐标,字符串形式
(setqx(rtos(cadrdata1)24))
CAD的Y坐标,字符串形式
(setqy(rtos(caddrdata1)24))
(setqz(rtos(cadddrdata1)24))
获取高程值的文字注记
(setqstr(cdr(assoc1data)))
(setqi(+i1))
(setqstr(strcat(itoai)"
y"
x"
str))
(write-linestrfp)
)
(prompt(strcat"
\n共提取"
(itoai)"
高程点"
图3离散高程点图
图4提取出的离散高程点数据文件
实验三符号制作
在学习计算机地图制图的同时,综合运用所学知识,利用CAD软件提供的功能制作地形图点状、线状和面状符号,掌握CAD菜单的开发,加深对地形图符号的认识。
1.实验学时数4学时。
1.掌握CAD下形的制作方法、掌握CAD下形的使用方法和能够熟练运
用CAD下形制作点状符号。
2.掌握线状符号制作的基本理论、CAD下线状符号的制作方法,能够分
析出常用符号的构造方法,运用工具实现。
3.掌握面状符号制作的理论方法、能够熟练运用CAD下面状符号制作工具,在掌握面状制作原理的基础上具体实现其中的几种。
1.独立符号的制作
(1)利用图块建立符号库
图1下水井(定位点:
圆心)
图2路灯(定位点:
下方圆形的圆心)
图3纪念碑(定位点:
下方直线的中点)
(2)利用形建立符号
图4汉字“中”的形描述
*130,17,ZHONG
3,5,2,020,1,054,2,029,1,02C,040,024,048,2,04E,010,0
图5汉字“电”的形描述
*131,23,DIAN1
3,1,2,034,1,060,064,068,06C,2,061,1,068,2,053,1,0AC,01E,030,012,2,01E,0
或者
*132,34,DIAN2
3,1,2,034,1,060,064,068,06C,2,061,1,068,2,8,(3,5),1,9,(0,-10),(1,-1),(3,0),(1,1),(0,0),2,8,(1,-1),0
2.线状符号的制作
(1)定制线型法
1)每个线型文件可定义多个线型,每个线型有一个标题行和一个定义行。
a)标题行的格式如下:
*ltype-name[,description]
其中,“*”是标记行的标记,它后面紧跟线型名,逗号之后是对这个线型的注释。
b)定义行的格式如下:
A,dash-1,dash-2,…,dash-n
其中,“A”表示为两端对齐方式,dash-1,dash-2、…为短划线序列的每段长度。
当dash-i>
0,表示是实线段;
dash-i<
0,表示是空白线段;
当dash-i=0,表示是一个点。
2)小路符号的建立如下:
*XIAOLU————
A,4,-1
图6小路符号
图7点划线符号
*DASHDOT,_____._____._____
A,0.5,-0.25,0,-0.25
(2)复合线型的开发
复合线型定义的具体格式如下:
*线型名[,线型描述]
Alignment,dash-1,dash-2,…[嵌入的文本字符串或形定义],dash-n,…
其中,嵌入文本字符串的定义语法为:
[“string”,style,R=n,A=n,S=n,X=n,Y=n]
嵌入形的定义语法为:
[Shapename,shape_file,R=n,A=n,S=n,X=n,Y=n]
string是双引号中的由一个或多个字符组成的文本字符串,shapename是shape_file文件的形名。
Shape_file文件中必须有形,否则AutoCAD不允许用户用此线型。
Style是文本式样的名字,shape_file为AutoCAD的.SHX形文件。
如果当前图形中没有style,AutoCAD则不允许使用此线型。
如果shape_file文件没有位于库搜索路径中,AutoCAD会提示并要求用户选择另外一个.SHX文件。
在shape_file文件中可包含路径。
其余5个字段R=、A=、S=、X=和Y=为可选择的转换分类。
每个转换分类后面的n表示所需数字。
R(Rotate)=n表示文本或形相对于当前线段方向的转角。
缺省时为零,表示AutoCAD文本或形的方向与所给线段方向一致。
A(Angle)=n表示文本或形相对于世界坐标系的X轴的绝对的转角。
当希望文本或形总是以水平形式出现而与线段的方向无关时,可采用A=0。
用户可以指定R和A,但两者不能同时指定值。
如果两个都没有指定值,则AutoCAD采用R=0。
R和A以度为单位。
如果希望以弧度或梯度作为单位,那么数字后面必须加R和G。
S=n确定文本或形的比例系数。
X=n和Y=n为可选项,它们确定相对于线型分类中的当前点的偏移量。
缺省时AutoCAD将文本字符串的左下角点或形的插入点放在此当前点。
两个偏移量分别沿着当前线段方向(对于X)和沿着与当前线段方向垂直的方向(对于Y)度量,就像有一个局部坐标系,它的X轴从当前线段的第一个端点指向第二个端点。
因此正的X偏移量会使文本或形朝着当前线段的第二个端点的方向移动,正的Y偏移量使文本或形沿着正X方向的90度方向(逆时针)移动。
这两个偏移量将使文本或形的定位更精确。
例如:
定义栅栏符号
图8栅栏符号
例1:
定义形文件aaa.shp,编译compile。
*2,3,2
1,01C,0
*3,7,3
3,2,1,10,1,000,0
同时建立文件zhalan1.lin
*zhalan1,--|---@---|---@---|---@---|---@---|---@---|---@------
A,4.5,[2,c:
\aaa.SHX,Y=1],4.5,-0.5,[3,c:
\aaa.SHX,X=0.5],-0.5
例2:
定义形文件bbb.shp,编译compile.
*3,9,3
3,2,2,010,1,10,1,000,0
同时建立文件zhalan2.lin
*zhalan2,--|---@---|---@---|---@---|---@---|---@---|---@------
\bbb.SHX,Y=1],4.5,-0.5,[3,c:
\bbb.SHX],-0.5
(3)编程开发法
图9栅栏符号
zl(/p1p2p3p4sfs0ni)
(setqp1(getpoint"
\n请指定点1"
(setqp2(getpointp1"
\n请指定点2"
(setqs(distancep1p2)
f(anglep1p2)
(setqn(+(fix(/s10.0))1))
(setqs0(/sn))
(setqi0)
p10.5)
line"
(polarp1f0.5)(polarp1f(-s00.5))"
(setqp3(polarp1f(/s02))
p4(polarp3(+f1.57)1)
p3p4"
(setqp1(polarp1fs0))
(setqi(1+i))
3.面状符号库的制作
(1)图案填充法
一个图案的文件可存放多个图案的定义。
每个图案有一个标题行和若干个定义行。
1)标题行的格式如下:
*pattern-name[,description]
其中,“*”是标题行的标记,它后面紧跟图案名,图案名之后是关于这个图案的注释。
2)定义行的格式如下:
angle,x-origion,y-origion,delta-x,delta-y[,dash-1,dash-2,…,dash-n]
图案的定义行解释如下:
angle:
该组平行线与水平方向的夹角。
x-origin、y-origin:
该组平行线中必有一条经过此点。
delta-x:
相邻两平行线沿线本身方向的偏移。
delta-y:
相邻两平行线的距离。
[,dash-1,dash-2,…,dash-n]:
该组平行线的线型。
若为实线,无此部分。
(a)六角星图案定义如下:
图9六角星符号
*STARS,star
0,0,0,0,0.2165,0.125,-0.125
60,0,0,0,0.2165,0.125,-0.125
120,0.0625,0.10825,0,0.2165,0.125,-0.125
(b)草地图案定义如下:
图10草地符号
*H142,Caodi
90,0,0,0.01,0.01,0.0015,-0.0185
90,0.0008,0,0.01,0.01,0.0015,-0.0185
(c)特种房屋图案定义如下:
图11特种房屋符号
*H251,TezhongFangwu
45,0,0,0,0.0015
135,0,0,0,0.0015
(2)INSERT命令
把各种植被符号做成“块”,然后调用“INSERT”命令插入相应的图块。
这种作法很简单,使用小范围内的符号填充,而对于大范围的填充一则效率太低,二则不能保证符号之间相对位置关系,填充的图案不规范,不美观。
(3)编程自动插入符号
计算pt点与多边形内各边的交点排序返回JDB(X1X2X3X4)
(defunpb_jdb(ptdbxpt/pt1pt2pt3pt4kmdspt0x0x1)
(setqpt1(polarpt01000)pt2(polarptpi1000)k0)
(setqds(lengthdbxpt)jdb'
())
;
求交点PT0
kds)
(setqpt3(nthkdbxpt))
(if(=k(-ds1))
(setqpt4(nth0dbxpt))
(setqpt4(nth(+k1)dbxpt))
(setqpt0(interspt1pt2pt3pt4))
(ifpt0(setqjdb(cons(carpt0)jdb)))
(setqk(1+k))
交点排序
(setqp00)
(ifjdb(progn
(setqds(lengthjdb)k0)
k(-ds1))
(setqx0(nthkjdb)m(1+k))
mds)
(setqx1(nthmjdb))
(if(<
x0x1)(progn
(setqjdb(subst-1x1jdb))
(setqjdb(substx1x0jdb))
(setqjdb(substx0-1jdb))
(setqx0x1)
))
(setqm(1+m))
jdb
判断PT点在交点表中的位置偶数在外奇数在内
(defunpb_pt(ptjdb/kds)
(setqk0ds(lengthjdb))
(while(and(<
kds)(<
(carpt)(nthkjdb)))(setqk(1+k)))
(setqp0(remk2))
p0
面状符号填充
(defuntc(km/djdbptx0y0xnynhwxyx1pt0pt1pt2ssi)
(db)
(if(andd(>
(lengthd)2))(progn
(setqds(lengthd)i1)
(setqpt(nth0d)x0(carpt)y0(cadrpt)xnx0yny0)
ids)
(setqpt(nthid)x(carpt)y(cadrpt))
xx0)(setqx0x))
yy0)(setqy0y))
(if(>
xxn)(setqxnx))
yyn)(setqyny))
(if(=km"
SD"
)
(setqw(*blc4)h(*blc2))
(setqw(*blc20)h(*blc10))
(setqy0(*(fix(1+(/y0h)))h))
(setqx0(*(fix(1+(/x0w)))w))
(setqyy0x1(/w4))
yyn)
(setqjdb(pb_jdb(listx0y)d))
(if(=(rem(fix(/yh))2)0)(setqx2x1)(setqx2(*x1-1.0)))
(setqx(+x0x2))
xxn)
(if(=(pb_pt(listxy)jdb)1)(progn
(setqpt0(listxy)
pt1(polarpt00.785(*blc2))
pt2(polarpt03.925(*blc2))
(command"
point"
pt0)
insert"
kmpt0blcblc0))
(setqx(+xw))
(setqy(+yh))
(entdelename)
捕捉PLINE线生成顶点表D并且把线所在层设置为当前层
(defundb(/sutlbbptcmbhpt1if1f2)
(if(=kg0)(setqename(car(entsel"
\n选择实体:
))))
(ifename(progn
(setqdnillb(entgetename)bh(cdr(assoc70lb)))
(setqb(cdr(assoc0lb))cm(cdr(assoc8lb)))
(command^c^c)
s"
cm"
(if(=b"
POLYLINE"
(setqsut(entnextename))
(while(/=(cdr(assoc0(entgetsut)))"
SEQEND"
(setqpt(cdr(assoc10(entgetsut))))
(setqd(consptd))
(setqsut(entnextsut))
(if(=bh1)(setqd(cons(lastd)d)))
LINE"
(setqd(cons(cdr(assoc10lb))d)d(cons(cdr(assoc11lb))d)))
CIRCLE"
)(progn
(setqpt(cdr(assoc10lb))
r(cdr(assoc40lb)))
=i360)
(setqpt1(polarpt(/i57.0)r))
(setqd(conspt1d))
(setqi(+i5))
LWPOLYLINE"
(setqnn(lengthlb)kk1)
kknn)
(if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机地图制图 09 大纲 计算机 地图 制图 实验 指导书 测绘 0914