王出
(運城職業技術學院 山西運城 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 垂直剖面法的計算方法
首先,根據受保護建筑物矩形確定保護邊界,第二步按保護等級留設圍護帶,得到圍護帶邊界;然后在沿煤層傾斜方向根據上下山移動角,松散層厚度,煤層傾角等參數計算出保護煤柱梯形的高;然后在沿煤層走向方向根據走向移動角,松散層厚度,松散層移動角等參數計算出保護煤柱梯形的上底和下底;最后在AutoCAD中繪制出保護煤柱梯形。
1.2 垂線法的計算方法
首先,確定建筑物邊界的位置和尺寸,再按護等級留設圍護帶,得到圍護帶邊界,然后根據松散層厚度和松散層移動角確定松散層邊界寬度,并得到松散層保護邊界。然后根據上、下山移動角,保護面積邊界與煤層走向所夾銳角計算偽傾斜移動角,根據上山和下山方向的垂線長度,分別計算出圍護帶邊界四點的垂線長度,并過這些垂線的端點作直線,這些直線的四個交點相連,即可確定保護煤柱邊界。
編制該軟件的思路是先設計輸入參數對話框,然后設計對話框驅動程序和兩種計算保護煤柱的算法,最后繪制計算保護煤柱的邊界。
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教學工作