监理在工程计量中实现自动绘制横断面图的方法
摘要:本文阐述了监理在工程计量中,通过编制一个简单的Visul Basic程序,将横断面数据转换成绘制横断面图的脚本文件,在AutoCAD中调用该脚本文件,从而实现自动绘制横断面图的方法。
论文关键词:横断面,脚本文件,数据文件格式,程序
1、 横断面数据的输入
1.1数据的采集
数据的采集是断面测量的第一步,是断面测量的基础。其常规方法有:经纬仪视距法、钢尺量距水准测定高程法和全站仪测量,但经纬仪视距法比后面两种方法测量精度较低。全站仪是测量断面最理想的工具,它不仅可以测量角度、距离、坐标,带内存的全站仪还可以进行数据存储、通讯,而且精度高、效率高。
1.2数据文件的格式
数据文件是计算机编程绘图的依据,它的格式是根据程序需要设计为便于计算机工作
的一组数据块。无论采取哪种测量方法,其最终编辑成数据文件的格式是固定的。本文阐述的程序所需要的数据文件格式与横断面数据成果表对照如下:
横断面数据成果表
*.txt数据文件格式
桩号
距中距离
高程
-20.5,84.5
-10,84.3
0,80
8.2,75.6
e (表示这一条结束)
0,80 (表示中桩位置)
0+000 (表示桩号)
…… (下一条同上)
0+000
-20.5
84.5
-10
84.3
0
80
8.2
75.6
横断面数据如果是全站仪采集并存储,则可编一个简单的转换程序把从全站仪传输到电脑中的数据转换成上面数据文件的格式。
2、 脚本文件的生成
编程思路:对横断面数据文件进行“读”操作,获得绘制横断面的数据。根据这些数据对脚本文件进行“写”操作,先画横断面线,再对横断面线进行高程标注、尺寸标注、中桩位置标注以及桩号注记,然后对下一条横断面数据进行操作。源程序代码如下:
Private Sub Command3_Click()
Open Text1.Text For Input As #1(打开横断面数据文件,以顺序读出其中数据)
Open Text2.Text For Output As #2(打开脚本文件,以顺序写入数据)
Dim ch As Integer
Dim zhuanghao As String, n As Integer, m As Integer
Dim juli As String, gaocheng As Single, min As Single, i As Integer, j As Integer, position As Integer
Dim array1(1 To 500) As Single, array2(1 To 500) As Single(以上为定义变量)
Let i = 1
Print #2, 'pline'
Do Until EOF(1)
Input #1, juli, gaocheng
If juli <> 'e' And juli <> 'E' Then
array1(i) = Val(juli)
array2(i) = gaocheng
i = i + 1
Write #2, Val(juli), gaocheng (以上判断一条横断面数据是否结束,如没结束,则对脚本文件继续进行写操作)
ElseIf juli = 'e' Or juli = 'E' Then
position = Seek(1)
Seek #1, position - 1(设置读出数据文件的位置)
min = array2(1)
For j = 2 To i - 1
If min > array2(j) Then
min = array2(j)
Else
min = min
End If
Next j (以上通过for...to循环语句,获得这条横断面数据高程的最小值)
Input #1, juli, gaocheng
Input #1, zhuanghao
Write #2,
Print #2, 'line'
Write #2, Val(juli), gaocheng + 2
Print #2,
'@0,4' Write #2,
Print #2, 'text'
Write #2, Val(juli) + 0.2, gaocheng + 4.5
Write #2, 0.6
Write #2, 0
Print #2, '中'
Print #2, 'text'
Write #2, Val(juli) + 0.2, gaocheng + 3.5
Write #2, 0.6
Write #2, 0
Print #2, '桩'(以上标注中桩位置)
Print #2, 'text'
Write #2, Val(juli) - 0.5, min - 7
Write #2, 0.6
Write #2, 0
Print #2, zhuanghao
Print #2, 'line'
Write #2, Val(juli) - 0.5, min - 7.2
Print #2,
'@2.5,0' Write #2,
Print #2, 'line'
Write #2, Val(juli) - 0.5, min - 7.4
Print #2,
'@2.5,0' Write #2, (以上注记桩号)
For j = 1 To i - 1
Print #2, 'pline'
Write #2, array1(j), array2(j)
Print #2,
'@-0.4,0.693' Print #2,
'@0.8,0' Print #2, 'Close'
Print #2, 'text'
Write #2, array1(j) + 0.45, array2(j) + 0.793
Write #2, 0.5
Write #2, 0
Write #2, array2(j)
Next j(以上标注横断面线各拐点高程)
Print #2, '_dimaligned'
If array1(1) <> array2(2) Then
Write #2, array1(1), min - 2
Write #2, array1(2), min - 2
Print #2,
'@0,-2.5' n = 2
Else
Write #2, array1(1), min - 2
Write #2, array1(3), min - 2
Print #2,'@0,-2.5'
n = 3
End If
Print #2, '_dimcontinue'
For j = n To i - 2
m = j + 1
If array1(m) <> array1(m + 1) Then
Write #2, array1(m), min - 2
Else
Write #2, array1(m + 1), min - 2
j = m + 1
End If
Next j(以上标注横断面线各拐点之间尺寸)
Print #2,
Print #2,
Print #2, 'ucs'
Print #2, 'o'
Write #2, 0, -50
Print #2, 'pline'
i = 1(以上改变坐标原点,画下一条横断面图)
Else
End If
Loop
Close #1
Close #2
ch = MsgBox('转换成功,谢谢使用!', vbOKOnly)
Exit Sub
End Sub
程序界面如图1,通过运行该程序,便可生成横断面脚本文件。
横断面
图1 程序界面
3、 横断面图的生成
进入AutoCAD,首先根据需要对尺寸标注格式进行调整;然后点击下拉菜单Tools中的Run Script,便会弹出一个对话框,在对话框中选中绘制横断面图的脚本文件,单击“打开”按钮,便会自动绘制一系列如图2所示横断面图。当然也可以在AutoCAD提示符“Command”状态下,直接键入Script来运行脚本文件。
横断面
图2 横断面图
http://www.youerw.com/ 4、 横断面图的比例调整
通过运行横断面脚本文件,绘制的横断面图其比例为1:1000,需要改变比例时,可用“Scale”命令进行缩放,或出图时控制打印比例也可。
5、 结 语
上述程序代码,笔者已在Visul Basic中调试通过。并在鹧鸪江堤横断面图的绘制,得到了充分的运用。效果良好,省时省事,实用性强,绘制横断面图快捷方便,准确美观。
监理在工程计量中实现自动绘制横断面图的方法下载如图片无法显示或论文不完整,请联系qq752018766