一、横断面图绘制
1.已知数据见表11-3。
横断面数据表11-3
2.VB程序编制和数据文件
(1)VB程序框图(见图11-12)
图11-12 绘制横断面的流程图
2)程序源代码
……
Close
Dim I, j, tjwjh As Integer
tzwjh = 99
Open 目录名+ "横断面设计图.scr" For Output As #tzwjh
Open 目录名+ "hd-dmx.txt" For Input As #89
Open 目录名+ "hd-sjx.txt" For Input As #90
'读入地面线数据
Input #89, NuMdm'读入断面个数
ReDim Ldmx(NuMdm, 20), Ldmy(NuMdm, 20), Rdmx(NuMdm, 20), Rdmy(NuMdm, 20), zhanghao(NuMdm), dmg(NuMdm), Lnum(NuMdm), Rnum(NuMdm) As Single
ReDim lSJX(NuMdm, 20), LSJy(NuMdm, 20), RSJx(NuMdm, 20), RSJy(NuMdm, 20), SJG(NuMdm), Lsjnum(NuMdm), Rsjnum(NuMdm) As Single
For I = 1 To NuMdm
Input #89, zhanghao(I), dmg(I) '读入桩号和地面高
Input #89, Lnum(I) '读入左侧的特征点个数
For j = 1 To Lnum(I)
Input #89, Ldmx(I, j), Ldmy(I, j) '读入各点平距和高差
Next j
Input #89, Rnum(I)
For j = 1 To Rnum(I)
Input #89, Rdmx(I, j), Rdmy(I, j)
Next j
Input #90, zhanghao(I), SJG(I) '读入桩号和中桩设计高
Input #90, Lsjnum(I) '左侧路基的特征点个数
For j = 1 To Lsjnum(I)
Input #90, lSJX(I, j), LSJy(I, j) '相邻各特征点连线的平距和坡度
lSJX(I, j) = lSJX(I, j)
LSJy(I, j) = -lSJX(I, j) * LSJy(I, j) '计算相邻特征点的高差
Next j
Input #90, Rsjnum(I)
For j = 1 To Rsjnum(I)
Input #90, RSJx(I, j), RSJy(I, j)
RSJx(I, j) = RSJx(I, j)
RSJy(I, j) = RSJx(I, j) * RSJy(I, j)
Next j
Next I
'绘制横断地面线
zzwz = 0 '中桩的横向位置
For I = 1 To NuMdm
Call plinestart(tzwjh, "center", zzwz, (I - 1) * 20 + dmg(I), 0, 0.02)
Call plinexdmid(tzwjh, zzwz, 5)
Call plineend(tzwjh)
Call plinestart(tzwjh, "con", zzwz, (I - 1) * 20 + dmg(I), 0.05, 1)
For j = 1 To Lnum(I)
Call plinexdmid(tzwjh, Ldmx(I, j), Ldmy(I, j))
Next j
Call plineend(tzwjh)
Call plinestart(tzwjh, "con", zzwz, (I - 1) * 20 + dmg(I), 0.05, 1) For j = 1 To Rnum(I)
Call plinexdmid(tzwjh, Rdmx(I, j), Rdmy(I, j)) Next j
Call plineend(tzwjh)
Next I
'绘制横断设计线
For I = 1 To NuMdm
Call plinestart(tzwjh, "con", zzwz, (I - 1) * 20 + SJG(I), 0.1, 1) For j = 1 To Lsjnum(I)
Call plinexdmid(tzwjh, lSJX(I, j), LSJy(I, j))
Next j
Call plineend(tzwjh)
Call plinestart(tzwjh, "con", zzwz, (I - 1) * 20 + SJG(I), 0.1, 1) For j = 1 To Rsjnum(I)
Call plinexdmid(tzwjh, RSJx(I, j), RSJy(I, j))
Next j
Call plineend(tzwjh)
Next I
Close
'标注桩号
……
3)数据文件
①地面线数据
3
10100,97.500
2
-4.47,0.39,-4.21,0.05
3
3.39,-0.43,2.79,-0.11,5.05,-1.19
10120,98.000
2
-4.29,-1.20
-5.43,-0.19
1
10.20,2.85
10140,99.500
1
-13.62,-3.09
1
14.33,3.25
②设计线数据
10100,98.500
3
-3.5,-0.02,-0.75,-0.03,-7.5,-0.6667 3
3.5,-0.02,0.75,-0.03,7.5,-0.6667 10120,98.500
3
-3.5,-0.02,-0.75,-0.03,-7.5,-0.6667
7
3.5,-0.02,0.75,-0.03,1,-1.0,1,0,1,1,1,0,5,2
10140,98.500
6
-3.5,-0.02,-0.75,-0.03,-1,-1.0,-1,0,-1,1,-1,0
7
3.5,-0.02,0.75,-0.03,1,-1.0,1,0,1,1,1,0,5,2
3.输出成果(见图11-13)
在得到图11-13的图形后,利用剪切和延长命令,可以使设计线的效果显得更加合理,如果在VB程序中增加插值计算和线性方程组求解子程序,则可以直接绘制出设计线的外端线,使绘图一步到位。
图11-13 公路路基横断面图。