AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用

上传人:汽*** 文档编号:563567664 上传时间:2023-06-26 格式:DOCX 页数:5 大小:110.23KB
返回 下载 相关 举报
AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用_第1页
第1页 / 共5页
AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用_第2页
第2页 / 共5页
AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用_第3页
第3页 / 共5页
AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用_第4页
第4页 / 共5页
AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用》由会员分享,可在线阅读,更多相关《AutoLISP与VBA交叉编程技术在铁路保护煤柱留设中的应用(5页珍藏版)》请在金锄头文库上搜索。

1、AutoLISP 与 VBA 交叉编程技术在铁路保护煤柱留设中的应用田迎斌(煤炭科学研究总院唐山研究院,河北 唐山,063012)摘 要:本文介绍了 AutoLISP 与 VBA 语言的各自优势,对其在铁路保护煤柱留设中的主要编程思 路及两者的数据传输进行了研究,实现了绘制铁路保护煤柱竖向剖面图的程序化,并举例介绍了其在绘制 铁路剖面图中的应用,对工程设计人员具有参考意义。关键词:AutoLISP ; VBA ;铁路保护煤柱1 引言留设保护煤柱是保护地表建(构)筑物的最有效的方法之一。目前,对于铁路保护煤柱一般采 用垂直剖面法进行留设,而其关键就是绘制垂直于铁路纵向的竖向剖面图。绘制剖面图的目

2、的就是 为了获得某一剖面处铁路两侧受护边界与铁路保护煤柱边界水平投影的距离,然后再转绘到平面图 上,将各关键点顺次连线后即得平面图中铁路保护煤柱边界。绘制剖面图时涉及参数较多,过程虽 然简单,但对于需要绘制大量的剖面图时,就显的费时费力。本文针对铁路保护煤柱的留设,利用 AutoLISP与VBA交叉编程技术探讨在CAD中绘制剖面图的程序化,从而使铁路保护煤柱留设变得 简单易行。2 AutoLISP与VBA交叉编程技术简介AutoLISP是一种嵌入式语言,运行于AutoLISP环境之下。AutoLISP语言不仅具有一般高级语言 的基本结构和功能,又具有一般高级语言所没有的强大图形处理能力,它可以

3、实现对AutoCAD当前 图形数据库的直接访问和修改、定义新命令、实现参数化绘图、扩充AutoCAD现有功能,可以直接 调用几乎全部的AutoCAD命令,是开发AutoCAD的强有力的工具。通过AutoLISP程序可以加载 并运行 VBA 程序。AutoCAD的VBA是一个面向对象的编程环境,提供了和VB相似的丰富编程功能,VBA应用 窗体设计简单灵活,包括了 VB中的所有标准控件。VBA通过ActiveX Automation接口与AutoCAD 进行通讯,实现VBA与AutoCAD的交互,就将VBA的面向对象的程序设计技术引入到AutoCAD 的程序设计开发中,丰富了 AutoCAD 的开

4、发手段。AutoLISP与VBA交叉编程技术的核心即是利用AutoLISP编制自定义绘图程序;利用VBA进 行用户界面制作,实现人机交互中获得设计参数。这种技术应用的关键在于如何成功地在 VBA 程 序及VLISP程序中进行数据与信息传递。本文以绘制铁路保护煤柱垂直剖面为例来说明此种交叉编程技术的实现过程。3 利用 AUTOLISP 编程自定义绘制铁路垂直剖面图的命令通过对建筑物、水体、铁路及主要井巷煤柱留设与压煤开采规程中附录九例8 的分析,可以得出要绘制一个标准的剖面图需要如表1 所示的11个主要参数。表 1 绘制铁路保护煤柱垂直剖面所需参数表序号参数意义序号参数意义路堤时:两侧坡脚间距离

5、1T+2m; 路堑时:两侧堑顶边缘间 距离。7上山移动角()2w维护带宽度(m)8P下山移动角()3h第四系厚度( m)9d走向移动角()4H1剖面中左侧铁路受护点埋深( m)10e围护边界与煤层 走向所夹之锐角()5H2剖面中右侧铁路受护点埋深( m)11X剖面图名称6爭松散层移动角()12pt剖面图中铁路地表中心点AutoLISP 的核心内容实际上就是利用系统提供的内部函数,编写自定义函数,用自定义函数来 解决工程中遇到的各种设计和绘图问题。在此,根据表1中的参数编写了名称为“CZPM”的自定 义命令,将这些程序写在 TLPMPLOT.lsp 的文本文件中。在剖面图中只要给出一点,如某一剖

6、面铁 路地表中心点,则剖面图中其他关键的交点或端点都可以根据几何关系求得。在程序中主要完成绘 图所需参数的输入、剖面图上下山伪移动角的计算及剖面图形的输出等。其主程序格式如下:(defun c: CZPM( )(setq t (getreal “n 请输入 T:”)(setq w (getreal “n 请输入 w:”)(setq pt (getpoint “n 请输入剖面图插入点 pt:”)(setq pl1 (getpoint“n请点击平面图中剖面线与围护边界之交点PL1【左侧】:”)(setq pl2 (getpoint “n 请沿剖面线点击 PL1 外侧之任一点 PL2:”)(setq

7、 prl (getpoint “n请点击平面图中剖面线与围护边界之交点PR1【右侧】:”)(setq pr2 (getpoint “n请沿剖面线点击PR1外侧之任一点PR2:”)在AutoCAD主菜单中选择工具加载应用程序加载TLPMPLOT.lsp文件,或者将TLPMPLOT.lsp 源程序文件加载到应用程序的“启动组”中,这样每当启动AutoCAD时系统会自动加载该文件。然 后在CAD命令行输入“CZPM”命令,则CAD会依次提示用户输入如表1所示的所有参数,然后 进行图形输出。但是,这样以调用自定义命令并且逐个输入参数的方式,有其局限性和不足,就是 逐个输入参数的方式不够直观,且一旦输入

8、回车后则不能够进行修改,除非退出命令,重新执行该 命令。4 利用 VBA 开发面向对象的参数输入对话框虽然AutoLISP可以驱动AutoCAD的DCL(Dialog Control Language)文件,创建自己的对话框, 但其缺点是用户界面编制较麻烦,所以在此采用VBA进行对话框的设计。VBA 提供了许多控件工具,以便用户方便地设计界面。在 VBA 编程环境中,通过拖曳的方式 从控件箱中选择控件,调整其位置和大小(如图 1 所示)。建立 VBA 的宏程序,命名为 “TLMZ.alternation”,供程序运行时调用。分别为各控件及命令添加代码。然后将工程保存为,并将该文件置于CAD支持

9、文件搜索路径之下。61+坡脚间距离T+l Qn):10TO围护带宽度怖)61下山移动角叽)70确定受护点煤层埋深M2Gn):顽铁路保护煤柱留设 之 垂直制面法计算依据;題筑物、水体、铁路及主要井巷煤柱留设与压煤开采规程X第四章及附录九.灌毂层楼动角举住啥话例如,图名为剖面图,则只需輸入AS卩可.中国煤炭科工集团唐山研究院矿山测量研究所退出存类型1 :艰则剖面类型举?单侧剖面距离参数角量蠱第四系厚度圖了:受护点煤层埋深皿6): poi上山移动角f贮走向移动角斑跻諜麟關走剖面图名称图 1 自定义用户界面5 VBA程序的调用及向Auto LISP的数据传递在AutoLISP中是通过“vbarun”命

10、令来运行VBA工程的,可以在TLPMPLOT.lsp中添加如下代 码:(defun c:TLMZ()(command _vbarun TLMZ.alternation) ;运行 VBA 工程)当运行“TLMZ”自定义命令时,程序就会在AutoCAD环境中调出如图1所示的自定义用户界 面,输入所有要求的参数完毕且单击“确定”按钮后,就会触发“确定”按钮的 Click 事件, VBA 将会把表1中序号为111的相关参数按照与“CZPM”命令要求的顺序传递到“CZPM”命令中, 随后隐藏对话框界面,将控制权交给CAD命令行进而接着运行“CZPM”命令的后续命令,即要求 输入表1中的序号为12的剖面图

11、插入点的参数,之后,实现在CAD模型空间剖面图的绘制。这是 交叉编程实现参数化设计的关键。当触发确定按钮的Click事件时,VBA是通过SendCommand方法来实现VBA向AutoLISP的数 据传递的。使用SendCommand方法可以将自定义命令“CZPM”传送到AutoCAD的命令行,在执 行该命令的同时,将对话框中文本框内的数值按照“CZPM”命令的提示顺序依次进行传递赋值。 其关键代码如下:ThisDrawing.SendCommand _czpm & vbCr & TextBox1.Text TextBox11.Text & vbCr上述代码中TextBox1.Text为第一个

12、文本框的属性值,TextBox2.Text为第二个文本框的属性值, 依次类推。 vbCr 的作用相当于回车键, & 为文本连接符。6 应用实例以绘制某铁路横向垂直剖面保护煤柱(如图 2)为例,实现过程如下:首先在命令行输入自定 义命令“TLMZ”,弹出如图1所示的对话框,然后在文本框内输入相关参数,单击确定按钮,隐藏 对话框返回CAD命令行;当CAD命令行中提示要求输入剖面图的插入点时,可以用光标点击CAD 模型空间任一合适位置,则立刻得到一个双侧的标准剖面图如图3 所示,并且在该剖面图中对上山 和下山伪移动角及煤柱边界在地表的投影点与围护边界的水平距离(D)进行了标注;接着根据CAD 命令行

13、提示将得到的距离D标注到铁路平面图1-1剖面线的两侧,且在线段的端点绘制一圆圈作 为标识。所有剖面图的绘制与上述步骤相同,只需重复运行该命令,输入该剖面处的铁路及岩层移 动的相关参数即可。107.3m1-剖面图jfl = 2 3 0 0图2铁路平面图及1-1剖面线图31-1剖面铁路保护煤柱设计图7 结论本文兼顾了 AutoLISP 的简单便利的编程绘图输出功能及 VBA 在制作界面上的方便可行之优 点,用VBA开发用户界面,用AutoLISP编制自定义绘图程序,通过SendCommand方法从VBA向 AutoLISP自定义命令传递数据,进行了剖面图的可视化参数设计及绘图输出,简单快捷地实现了

14、铁 路保护煤柱留设线的绘制,其交叉编程技术也为工程技术人员在绘图工作中提供了一种新的开发手 段。参考文献1 国家煤炭工业局建筑物、水体、铁路及主要井巷煤柱留设与压煤开采规程M.北京:煤炭工业出版社,20002 何国清,等矿山开采沉陷学M.徐州:中国矿业大学出版社,1991.郭秀娟,等.AutoLISP语言程序设计M.北京:化学工业出版社,20084曾洪飞,等.AutoCAD VBA & VB.NET开发基础与实例教程M.北京:中国电力出版社,2008作者简介田迎斌(1981-),男,助理工程师, 2005 年毕业于中国矿业大学土木工程专业,目前从事“三下”采煤、矿 区建筑物抗变形设计、土地复垦等工作。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号