横断面图绘制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、横断面图绘制

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

相关文档
最新文档