b = Int(a / 1000)
c = Format((a - b * 1000), "000.000")
'd = a - Int(a)
E = "+" + Format(c, "000.000")
If c = 0 Then E = "K" + LTrim(Str(b))
txtStr = E
txtHeight = 4
textObj.Rotation = 3.14159 / 2
insPnt = ksPnt
Set textObj = ThisDrawing.ModelSpace.AddText(txtStr, insPnt, txtHeight)
If cells(i, 2) = "" Then textObj.Delete
'插入地面高程
txtStr = Format(cells(i, 2).Value, "###0.##0")
txtHeight = 4
textObj.Rotation = 3.14159 / 2
insPnt = dmPnt
Set textObj = ThisDrawing.ModelSpace.AddText(txtStr, insPnt, txtHeight)
i = i + 1
Loop
ZoomAll
'该语句用来等待查看显示结果
MsgBox "按‘确定’键将关闭Excel的运行!"
'保存传过来的数据
ExcelWorkbook.Close
ExcelWorkbook.Save
'关闭Excel应用程序
Excel.Application.Quit
'删除Excel应用程序实例
Set Excel = Nothing
End Sub
5.4 运行上述代码后,将会弹出窗口,提示输入Excel文件的路径;输入后回车,就可以生成纵断面地面线,可以进行路线纵坡设计。
5.5 本程序需要Microsoft Excel 2000和AutoCAD2000运行环境,编译后通过。
6 结束语
6.1 在经过综合分析、反复比较定出设计纵坡之后,可以确定各变坡点及其高程、竖曲线要素。在上述代码中,加入合适的词句,可以完整地绘制公路纵断面设计图。
6.2 公路工程设计中,经常遇到许多类似的大量的、重复的、有逻辑性的操作,只要合理利用VBA,发挥其强大的功能,实现AutoCAD与Excel应用程序的无缝连接,快速交换数据,就可以在短时间内完成所需的设计工作,达到事半功倍的效果。