基于Visual LISP的工业广场保护煤柱设计软件
2015-12-27王出
王出
(运城职业技术学院 山西运城 044000)
基于Visual LISP的工业广场保护煤柱设计软件
王出
(运城职业技术学院 山西运城 044000)
本文利用AutoCAD中的Visual LISP语言编制了工业广场保护煤柱设计软件,实现利用垂直剖面法和垂线法自动设计出保护煤柱,避免了在绘制矿图中复杂的计算及繁琐的绘图步骤。
Visual LISP 保护煤柱 垂线法 垂直剖面法
文章引言
Visual LISP是基于AutoCAD环境用于二次开发的编程语言。它扩展和延伸了Auto LISP语言,支持ActiveX技术和反应器技术,还支持DCL对话框设计语言,因此成为AutoCAD二次开发的有利工具。相对于VBA而言,Visual LISP能灵活而充分地使用AutoCAD的现有功能,方便调用AutoCAD中的命令,交互操作性强。
本文介绍利用Visual LISP编程并结合留设保护煤柱的两种算法编制了计算保护煤柱软件,实现了保护煤柱的自动计算和绘制。
1.留设保护煤柱的两种计算方法
1.1 垂直剖面法的计算方法
首先,根据受保护建筑物矩形确定保护边界,第二步按保护等级留设围护带,得到围护带边界;然后在沿煤层倾斜方向根据上下山移动角,松散层厚度,煤层倾角等参数计算出保护煤柱梯形的高;然后在沿煤层走向方向根据走向移动角,松散层厚度,松散层移动角等参数计算出保护煤柱梯形的上底和下底;最后在AutoCAD中绘制出保护煤柱梯形。
1.2 垂线法的计算方法
首先,确定建筑物边界的位置和尺寸,再按护等级留设围护带,得到围护带边界,然后根据松散层厚度和松散层移动角确定松散层边界宽度,并得到松散层保护边界。然后根据上、下山移动角,保护面积边界与煤层走向所夹锐角计算伪倾斜移动角,根据上山和下山方向的垂线长度,分别计算出围护带边界四点的垂线长度,并过这些垂线的端点作直线,这些直线的四个交点相连,即可确定保护煤柱边界。
2.用Visual LISP编制计算保护煤柱软件
编制该软件的思路是先设计输入参数对话框,然后设计对话框驱动程序和两种计算保护煤柱的算法,最后绘制计算保护煤柱的边界。
2.1 用DCL语言设计输入参数对话框
DCL语言用来设计对话框进行交互性输入,用AutoLISP程序驱动。利用DCL语言设计输入参数对话框,得到“bhmz.DCL”。用户通过该对话框输入绘制保护煤柱的方法及所需参数。设计的对话框如下图:
图1.设计保护煤柱对话框
2.2 设计对话框驱动程序和两种计算保护煤柱的算法
设计对话框驱动程序时首先定义获取输入对话框中参数的子函数getdata(),然后加载对话框,获取数据。
两种计算保护煤柱的算法的部分代码:
;垂直剖面法:
(setq mn(-yaaa ybbb)qk(-xddd xaaa)) ;确定围护带的宽qk,高 mn
(setq mcqj(/(*pi mcqj)180)) ;将煤层倾角度数转换为弧度
(setq hm(-ha(*bhdj(tan mcqj))))
(setq hn(+hm(*(/mn(cos mcqj))(sin mcqj))));确定建筑物边界c点与煤层的垂直距离
;垂线法:
;求伪倾角
(setq xsydjw(sqrt(+(*(expt(cot xsydj)2)(expt(cos zxjj)2))(*(expt (cot zxydj)2)(expt(sin zxjj)2)))))
(setq ssydjw(sqrt(+(*(expt(cot ssydj)2)(expt(cos zxjj)2))(*(expt(cot zxydj)2)(expt(sin zxjj)2)))))
(setq xsydjw1(sqrt(+(*(expt(cot xsydj)2)(expt(cos zxjj1)2))(*(expt (cot zxydj)2)(expt(sin zxjj1)2)))))
(setq ssydjw1(sqrt(+(*(expt(cot ssydj)2)(expt(cos zxjj1)2))(*(expt (cot zxydj)2)(expt(sin zxjj1)2)))))
(setq qx(/xsydjw(+1(*xsydjw(tan mcqj)(cos zxjj)))))
(setq lx(/ssydjw(-1(*ssydjw(tan mcqj)(cos zxjj)))))
(setq qx1(/xsydjw1(+1(*xsydjw1(tan mcqj)(cos zxjj1)))))
(setq lx1(/ssydjw1(-1(*ssydjw1(tan mcqj)(cos zxjj1)))))
(setq qa1(*(-haaa btchd)qx))
(setq qa2(*(-haaa btchd)qx1))
2.3 绘制保护煤柱边界线
绘制煤柱边界线时,可以在VisualLISP中直接调用AutoCAD中“pline”命令。代码如下:(command"pline"da db dc dd"c"),在AutoCAD中绘制的结果如下图:
图2.运行结果
结束语
本文首先简单介绍了Visual LISP二次开发语言,然后介绍了设计保护煤柱的两种方法,并用Visual LISP设计了相应的算法,实现了用户输入参数即可绘制出保护煤柱边界。通过本例可以体会到Visual LISP二次开发快速、简捷、能充分灵活调用AutoCAD命令的优点。目前Visual LISP在AutoCAD中的二次开发应用还有很大的发展潜力,希望以后会有更高效的开发实例出现。
[1]李学志.Visual LISP程序设计[M].北京:清华大学出版社,2010.
[2]林在康,郑希贵.矿业信息技术基础[M].徐州:中国矿业大学出版社,2009.
[3]林海飞,陈勇.Surfer和AutoCAD软件在编制矿井瓦斯地质图中的应用[J].中国煤炭,2010,36:23-25.
王出(1988-11-17-),男,山西运城人,助教,学士,2010年毕业于西安科技大学采矿工程专业,现从事采矿CAD教学工作