基于Visual LISP与C#的水工挡土墙计算软件开发
2017-01-24施晓欢侯婧
施晓欢 侯婧
摘 要:根据水工挡土墙的相关规范,分析水工挡土墙设计中的计算过程,利用visual lisp读取河道挡土墙断面中墙身、底板、水位等图元,提取几何信息,再运用C#编程计算得出挡墙的抗滑稳定安全系数、抗倾覆稳定安全系数、基底应力等计算结果。此程序的优点在于无需输入挡土墙尺寸相关的大量几何数据,需要输入的数据仅是物理性质参数,更加方便简洁
关键词:挡土墙;水利工程;抗滑系数;VISUALLISP;C#;软件开发
DOI:10.16640/j.cnki.37-1222/t.2017.01.090
1 概论
随着国内水利工程的发展,河道挡墙的设计也随着周边地区的发展而不断的优化和改进,从而挡墙的形状随着比如景观的要求而非简单的几何形状,因此在输入挡墙结构尺寸时,由于某些软件界面的局限性,必然要对挡墙尺寸做一些简化和取舍,这样势必会对计算结果造成不可避免的误差。并且为了计算挡墙的物理尺寸而输入的参数的个数繁多,导致设计人员机械的重复劳动。
针对上述情况和问题,本文主要通过AUTOCAD的二次开发和C#的界面设计和编程计算,尽最大的可能节省水工挡土墙计算的单位时间,提高计算结果的准确性,并相应的导出计算表格以便复核软件计算,并且为了配合底板加桩的结构,输出挡墙底板中心点的水平力竖向力弯矩,输入其他商业软件来配合计算桩顶位移和承载力是否满足规范要求。
2 编程语言简介
VISUAL LISP是AUTOCAD自带的一个autolisp开发环境,可以实时调试AUTOLISP命令。
C#是由C和C++衍生出来的面向对象的编程语言。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
3 计算软件的构造与说明
3.1 C#连接并控制AUTOCAD功能代码
Dim acadApp As Object
Dim acadDoc As Object
On Error Resume Next
acadApp = GetObject(, "AutoCAD.Application")
If Err.Number Then
MsgBox("请先打开一个AutoCAD")
End If
acadDoc = acadApp.ActiveDocument
acadApp.Visible = True
3.2 AUTOCAD导入lsp文件并显示窗口功能代码
Dim path As String = Replace(Application.StartupPath, "\", "\\")
acadDoc.SendCommand("(load " & Chr(34) & path & "\\jgjs.lsp" & Chr(34) & ")" & vbCr)
acadDoc.SendCommand("(setq lisppath " & Chr(34) & path & Chr(34) & ")" & vbCr)
3.3 lsp文件获取AUTOCAD图形中两点距离的代码
(defun c:ttqc (/)
(setq qqswp1 (getpoint "\n第一点"))
(setq qqswp2 (getpoint qqswp1 "\n第二点"))
(setq qqsw (abs (- (cadr qqswp1) (cadr qqswp2))))
(princ (strcat "\nqqsw," (rtos qqsw)) ffn)
)
3.4 软件概况
软件计算原理,以抗滑系数为例:
流程Ⅰ的作用是通过cad二次开发的思路获取一个挡土墙的所有几何参数,例如各关键点的坐标,高度,断面面积及断面的形心等。
流程Ⅱ的作用即物理参数的输入,如挡土材料的容重和土的cφ值,墙后荷载,以及图中尺寸和实际标准单位(m)的比例尺。
4 结论
此软件无需输入常规工程计算类软件中大量的几何数据,像某些高度还得手动计算高程差再填入数据,但此软件需要输入的数据仅是一些物理参数,此外挡墙可以任意形状,所画即所得,图形化较直观,能动态修改cad中图元尺寸,再得出结果,通过不断的比选得出最优方案,能够导出excel计算表格,一者能够验算,二者能再加软件所不及的外部荷载输入excel中手算得出结果。但是,此软件尚无存档的功能,有待进一步研究。
参考文献:
[1]邱荣茂,王大鸣,周乔勇.基于AutoCAD的线路缓和曲线的自动绘制[J].工程图学学报,2005(01).
[2]王茂.挡土墙(重力式)CAD系统集成[J].中南公路工程,2004(03).
[3]戴学臻,杨洁,陈君.挡土墙设计软件关键技术及框架设计[J].山西交通科技,2004(01).
[4]涂鹏,蒋红斐.AutoCAD二次开发及在公路设计中的应用[J].山西建筑,2004(04).
[5]刘苏.VB语言在公路勘测平面线形计算机辅助设计中的算法[J].公路,2004(01).
[6]齐荣.公路路线计算机辅助设计[J].山西建筑,2003(02).
[7] 王立峰等编著.软件工程理论与实践[M].清华大学出版社,2003.