基于cad和vba地表移动观测站数据处理系统-毕业论文

上传人:仙*** 文档编号:206231782 上传时间:2023-05-03 格式:DOC 页数:58 大小:2.90MB
收藏 版权申诉 举报 下载
基于cad和vba地表移动观测站数据处理系统-毕业论文_第1页
第1页 / 共58页
基于cad和vba地表移动观测站数据处理系统-毕业论文_第2页
第2页 / 共58页
基于cad和vba地表移动观测站数据处理系统-毕业论文_第3页
第3页 / 共58页
资源描述:

《基于cad和vba地表移动观测站数据处理系统-毕业论文》由会员分享,可在线阅读,更多相关《基于cad和vba地表移动观测站数据处理系统-毕业论文(58页珍藏版)》请在装配图网上搜索。

1、安徽理工大学毕业论文本科毕业论文基于CAD和VBA的地表移动观测站数据处理系统DATA PROCESSING SYSTEM ON MINING AREA SURFACE MOVEMENT STATION BASED ON AUTOCAD VBA学院(部): 测绘学院 专业班级: 测绘09-1班 学生姓名: 刘石磊 指导教师: 王磊讲师 2013 年 5 月 31 日53基于CAD和VBA的地表移动观测站数据处理系统摘 要采用AutoCAD VBA二次开发技术,实现了地表移动观测数据处理、成图自动一体化。克服了传统方法成图只能查看、不易定量分析的缺点。在输出下沉、倾斜、曲率、水平移动、水平变形计

2、算结果的同时,将其各曲线以一定比例在CAD中成图,可从曲线上量取任意点的对应值。且图中按原比例绘出对应地下煤层开采情况,可很方便地从图中直接量取各角量参数,距离参数。生成的曲线图更有利于直观现时地分析开采对地表的影响。关键词:AutoCAD VBA;二次开发;地表移动变形;数据处理DATA PROCESSING SYSTEM ON MINING AREA SURFACE MOVEMENT STATION BASED ON AUTOCAD VBA ABSTRACTAutoCAD VBA secondary development technique is used to realize the

3、mining area surface movement observation data fast processing and automatic mapping in this paper. This way can overcome traditional methods shortcomings which only can make the map for watching, but not for quantitative analysis. The mining surfaces subside, lean, curvature, horizontal moving and h

4、orizontal deformation is calculated. And the all results are put out. At the same time each curve is drawn in AutoCAD with certain proportion. Any points value can be taken from the AutoCAD form. By the way, the underground coal mining condition is painted in the map with original proportion. So ang

5、le parameters and distance parameters can be easily measured and marked. All of the above can make the visual description on the surface deformation of the underground mining convenient and immediate.Key words: AutoCAD VBA; secondary development; surface movement and deformation; data processing目录摘

6、要IIABSTRACTIII绪论11研究背景概述11.1研究意义11.2研究现状21.2.1 国外研究现状21.2.2 国内研究现状31.3研究内容41.4拟采用的研究思路与方法41.4.1研究思路与方法41.4.2技术路线图52观测数据处理原理62.1坐标规划62.2移动和变形的计算62.2.1 下沉72.2.2倾斜72.2.3曲率72.2.4水平移动72.2.5水平变形83软件实现93.1 AutoCAD VBA简介93.2实现步骤93.2.1 确定煤层采动信息93.2.2 确定观测线基准点坐标103.2.3读入观测数据进行坐标规划113.2.4文件的打开,文件的导出与程序的退出113.2

7、.4 计算移动和变形123.2.5 曲线图的绘制124实例应用314.1矿区概况314.1.1地理交通314.1.2生产情况314.1.3地形地貌324.2矿井地质采矿条件324.2.1煤层赋存情况324.2.2 东坪煤矿15412工作面地质采矿条件334.3地表移动观测站设计344.3.1观测站设计依据和原则344.3.2观测线长度及位置的确定354.3.3 观测站点位布置情况364.4地表移动观测站的观测工作374.4.1连接测量374.4.2全面观测384.4.3日常观测工作404.5观测站数据处理414.6地表移动参数的求取454.6.1角量参数的求取454.6.2 动态参数的求取46

8、结论51参考文献:52致 谢53绪论开采沉陷的研究对国民经济的发展和人民生活水平的提高有着重要的意义,然而随着开采沉陷研究的规模越大,有关开采沉陷的信息量也相应的增加,对这些信息的存储和管理也就相当繁琐。 传统的人为管理模式会导致开采沉陷数据管理上的混乱,人力和物力的过多浪费,开采沉陷信息管理的费用也会增加,从而造成该企业单位的负担过重,影响整个工程的进展速度。目前很多的开采沉陷信息数据都是用Word、Excel或者其他软件进行数据管理和处理并存储在计算机中,但再对这些信息进行查看和处理时很不方便和直观。如何有效地对开采沉陷信息管理和利用起来,如何使得开采沉陷的信息能够在更大范围内安全地进行传

9、输、共享和管理,一直是很多企业单位急需解决的问题。1研究背景概述1.1研究意义在矿区,为保护地面建筑物、水体及铁路,免受地下开采活动的影响,减少地下资源损失,就必须研究地下开采所引起的岩层与地表移动规律。目前是最直接有效的方法是建立地表移动观测站,定期对观测站上的监测点及控制点进行观测。在确保野外观测数据的正确性后,计算出各观测点的移动变形信息,最终将计算结果绘制成曲线图,以描述沿观测线的地表移动和变形的分布特征及其发展过程,以便对开采损害做出评价。地下煤层被开采出来以后,岩体内部形成一个采空区,导致周围岩体的原有应力平衡状态受到破坏,引起应力的重新分布,使岩体产生移动和破坏,直到达到新的平衡

10、。此过程中,上覆岩层将产生移动、变形与破坏,当开采面积达到一定范围时,移动变形将波及地表,形成地表移动盆地1。造成地表建筑物损害和塌陷区生态环境破坏,给周边人民的生产、生活带来了不同程度的影响。为了有效预防和治理这类沉陷灾害,需要获取地表移动规律。建立地表移动观测站是研究开采沉陷和建筑物破坏规律的最可靠手段。鉴于煤矿从未有过地表移动观测资料,使得矿井在合理留设保护煤柱和开展“三下”采煤设计方面缺乏科学依据。为此,根据煤矿安全规程和建筑物、水体、铁路及主要井巷煤柱留设与压煤开采规程中的有关规定,在煤矿工作面上方建立地表移动观测站,开展地表移动规律研究,以期获得本区的地表移动盆地角值参数、动态变形

11、参数和概率积分法预计参数,为煤矿各类保护煤柱留设和开采沉陷预测研究提供科学依据。在矿区,为保护地面建筑物、水体及铁路,免受地下开采活动的影响,减少地下资源损失,就必须研究地下开采所引起的岩层与地表移动规律。目前是最直接有效的方法是建立地表移动观测站,定期对观测站上的监测点及控制点进行观测。在确保野外观测数据的正确性后,计算出各观测点的移动变形信息,最终将计算结果绘制成曲线图,以描述沿观测线的地表移动和变形的分布特征及其发展过程,以便对开采损害做出评价。采用AutoCAD VBA二次开发技术,实现了地表移动观测数据处理、成图自动一体化。克服了传统方法成图只能查看、不易定量分析的缺点。在输出下沉、

12、倾斜、曲率、水平移动、水平变形计算结果的同时,将其各曲线以一定比例在CAD中成图,可从曲线上量取任意点的对应值。且图中按原比例绘出对应地下煤层开采情况,可很方便地从图中直接量取各角量参数,距离参数。生成的曲线图更有利于直观现时地分析开采对地表的影响。文中AutoCAD进行二次开发,应用VBA计算出各观测点的各期移动变形值,各种变形曲线依不同比例在CAD中成图,且对应绘出地下煤层采动情况。需要求取的地表移动参数,可在图中直接精确量取和标注。1.2研究现状1.2.1 国外研究现状 国外早开始了开采沉陷方面的研究工作,特别是比利时、前苏联、波兰、德国、澳大利亚、加拿大、美国等采矿业比较发达的国家对开

13、采沉陷理论和实践都进行了较深入研究。 据参考文献,早在1825年,比利时的工程师们在调查Liege市地表裂缝的原因时,证实了矿山巷道和地表之间300英尺的距离足以阻止地表沉陷,开始了最早的开采沉陷工作的研究2。在1838年,多里斯提出了开采沉陷的第一个理论“垂线理论”。1885年法国矿长H.Fay总结了开采沉陷时间的矛盾意见3。1903年, Halbaum将采空区上方岩层作为悬臂梁,提出了地表应变与曲率半径成反比的理论。1900年Wachsmann首次提出了开采沉陷的现代观点,即煤层开采时底部煤层最先崩塌,中部煤层下沉且破裂,上部煤层下沉但不破裂。1907年, Korten发表了他自己的观测成

14、果,提出了水平移动和水平变形的分布规律4。本世纪20至30年代,斯奇米茨、凯因斯特和巴斯研究了开采影响的作用面积及分带,可作为影响函数法的初级阶段;凯因斯特又提出了水平移动的算式,即U =Wtg (地表点到开采中心连线与铅垂线的夹角)。1931年德国高等学校的矿业学院开始讲授“开采沉陷学”这门课程。英国自1930年开始了移动变形的观测并于1950年发现了观测和地表变形之间关系的重要性,建立了不同采动程度下的下沉系数修正体系。学者K.Wardell改进了沉陷观测的方法,并对开采沉陷的的理论方法也做出了巨大贡献5。 另外, 60年代初,英国学者Berry和Sales将岩体视为均质弹性体,分为平面各

15、向同性、横观各向同性与空间问题3类进行分析,提出了计算岩体下沉的方法6。南非的Salamon应用弹性理论提出了面元原理,将连续介质力学与影响函数法相结合,为现在的边界单元法奠定了基础。90年代至今,随着科学的发展和研究手段的进步,又掀起了矿山开采沉陷的再一次研究热潮。在西方发达国家,利用信息技术开发出了一批适用于矿山的应用软件如加拿大的LYNX系统,用于地质学研究从勘探资料分析地质特征;英国的Datamine用于矿山开采设计及数据处理;澳大利亚的Mine TER以及Mine Map,用于矿山设计和绘制工程图,三维开采模拟。国外很多国家用基于概率基本法7预计计算来指导建筑物下、水体下和铁路下采煤

16、。 随着计算机和3S技术的广泛应用,将新技术应用于开采沉陷观测和数据处理也成为国际上普遍研究的的一个重要方面。B.N.Whittaker、D.J.Reddish和D.Fitzpatrick等采用计算程序计算了长壁式工作面采煤沉陷的地表应力模式8。德国将数字摄影测量技术和遥感技术手段应用到鲁尔矿区的开采沉陷数据采集和处理9。如国际著名的有限元分析软件ADINA、ANSYS以及专门用于岩土工程问题数值分析的FLAC、UDEC等10。1.2.2 国内研究现状 我国是以煤炭为能源的国家,自新中国成立以来就开始开采沉陷方面的研究,80、90年代至今,我国开采沉陷理论和实践研究出现了日新月异的发展。何国淸

17、、马伟民、王金庄建立了碎块体理论地表沉陷的威布尔分布。周国铨、虞万波、崔继宪等提出了负指数函数法计算地表移动。邹友峰对地表下沉预计方法进行研究。王金庄等建立了用于预计主断面地表下沉的典型曲线法。谢和平应用有限元分析岩层移动规律。刘天泉提出和发展了矿山岩体采动影响与控制工程学。杨伦提出了岩层二次压缩理论,将地表下沉直接与岩体的物理力学性质联系起来。李增琪建立了岩层移动的三维层状模型。张玉卓提出了岩层移动的位错理论。杨硕建立采动损害空间的力学模式。邓喀中提出了岩体开采沉陷的结构效应。吴立新、王金庄提出了条带开采覆岩破坏的托板理论。于广明从非线性科学角度认识开采沉陷的复杂性。徐乃忠、郭惟菇研究了采动

18、覆岩离层形成的基本规律和离层注浆控制地表下沉的理论与实践11。 随着计算机技术的发展和生活的需要许多和能源相关的高校和研究机构都开始对开采沉陷监测数据的计算机处理方面做过很多的研究,特别是中国矿业大学、山东科技大学、安徽理工大学等工矿类院校的研究已经取得一些重要理论和实际效果。 陈宜金,黄绍东对开采沉陷信息处理软件系统各模块间关系和设计原则进行了探讨12。王卷乐,吴侃把空间数据可视化思想引入开采沉陷的防治中,对数据的可视化的视觉表达和分析进行了分析13。 曹化平等研究者采用基于概率积分法开采沉陷预计结果, 利用ArcGIS的ArcScene模块实现地表变形预计数据的三维可视化表达, 并以预计的

19、下沉量为例进行可视化结果的等值线绘制、任意剖面图制作、任意点位形变信息提取应用分析14。郑艳等人提出智能信息处理系统在开采沉陷预测中的应用,通过建立基于遗传算法的改进BP神经网络开采沉陷预测模型,利用矿区大量的地表沉陷实际观测数据样本对该神经网络进行训练和学习,并用该网络对几组数据进行采动地表沉陷预测,改进的BP神经网路具有收敛速度快、预测参数精度高的优点等15。 郝长胜等研究者利用VB作为系统开发前台,基于GIS桌面软件MapInfo及MapX组件来进行系统二次开发设计:根据模块各功能应尽量共享、数据相互调用、减少资源内存储量等原则,该系统煤矿开采沉陷预计分析整体流程分为数据管理、变形预计参

20、数计算、图形输出、三维显示及预计结果分析五大模块。马天勤利用Surfer软件来实现开采沉陷可视化的效果,在Surfer软件平台基础上,实现地表沉陷观测和预计数据的可视化管理,实现等值线图绘制、立体图绘制和简单空间分析(图解分析、量算分析、数理统计分析等),提高了用户对信息的管理效率,可更直观、有效地对沉陷数据进行分析应用16。王兆亮等人利用GIS技术设计和开发了土地管理信息系统,系统利用Visual Studio.NET和ArcGIS Server为开发平台,综合运用Web GIS技术、Internet技术和数据库技术(ArcSDE+SQLServer),并利用ASP.NET2.0和Arcgi

21、sserverADFfor .NET进行界面设计实现该信息管理系统。此外,还有很多学者对开采沉陷数据处理、管理和预算等这一方面的研究。例如贾小敏、余学祥等讨论了应用Visual Basic和Auto CAD二次开发技术进行矿区地表移动变形值计算和变形曲线绘制的方法,实现了在此环境下变形值的计算和曲线的1.3研究内容VBA ( visual basic for application) 是由Microsoft创建的,用来自动执行任务的一个编程环境,它提供了一些用来创建图形用户界面的可拖拉工具和用来与AutoCAD对象交换的编程语言。其最大特点在于两个方面:第一,与VB有着几乎相同的开发环境和语法

22、,具备功能强大和易于掌握的特点;第二,在于它的for Application功能,针对性强,它驻留在主程序的内部,使其结构精简,且代码运行效率高,使语言的引擎在技术上与开发环境分离。AutoCAD自R14.01版本开始就支持VBA作为二次开发工具。对AutoCAD进行二次开发,应用VBA计算出各观测点的各期移动变形值,各种变形曲线依不同比例在CAD中成图,且对应绘出地下煤层采动情况。需要求取的地表移动参数,可在图中直接精确量取和标注1.4拟采用的研究思路与方法1.4.1研究思路与方法以矿区实测数据为例,应用VBA 与AutoCAD 二次开发技术进行矿区地表移动变形值的解算, 分析绘制地表移动变

23、形曲线图的理论和方法, 并以VBA 为基础, 实现了矿区地表移动变形值的快速求解, 从而达到了对地下开采造成的地表移动变形的直观性描述。1.4.2技术路线图收集资料,学习理论知识 收集整理数据 检验数据质量 输出相关曲线 数据处理求取移动变形值 求取预计参数 地表移动特征分析 求取角量参数 求取动态参数 结论与建议 下沉水平移动 倾斜水平变形 曲率 边界角 移动角 充分采动角 超前影响距 超前影响角 下沉速度曲线 下沉系数 主要影响角正切 拐点偏距 水平移动系数图1.1 技术路线图2观测数据处理原理2.1坐标规划目前,已广泛应用全站仪、GPS对地表移动观测站进行坐标观测,而不再是相邻两点间的水

24、平距离和各测点偏离观测线方向的支距1。由于各点或多或少要偏离观测线,而要计算的则是各点沿观测线方向的移动和变形,因此本文中采用首先将各点规划到观测线方向上,之后再进行变形量的计算。图1中JZ1和JZ2是为确定观测线方向,在观测线两端选取的两基准点。N为观测线上的一观测点,N为N受地下开采影响后的点。n、n为N、 N在观测线方向上的投影,即规划到观测线上的点位。12为观测线方位角,S为N 到基准点JZ1的距离。图1 坐标规划示意图设点JZ1、JZ2的坐标为(x1,y1),(x2,y2),N、n坐标为(x,y)、(x,y)。方位角12、,S的求取在此就不给出了。则n的坐标为x=x1+Scos12

25、(2-1)y=y1+Ssin12 (2-2)其中,S=Scos,=12同理可求出n的坐标。然后由n、n的坐标计算该点的移动变形量。该方法使用坐标观测量进行计算,避免了复杂的支距改正,提高了计算精度。2.2移动和变形的计算观测数据经规划后,便可计算观测线上各测点和测点间的移动和变形。移动和变形的计算主要包括:各测点的下沉和水平移动,相邻两测点间的倾斜和水平变形,相邻三点的曲率变形2-4。2.2.1 下沉各点的下沉以本次与首次的标高差表示,单位mm,则m次观测n点的下沉Wn为 Wn = Hn 0 Hn m (2-3)式中,Hn 0,Hn m分别为首次和m次观测时n点的高程。2.2.2倾斜地表下沉盆

26、地沿某一方向的坡度叫倾斜,用i表示,单位mm/m,相邻两点间的倾斜为 (2-4)式中,lnn+1n号点至n+1号点的水平距离;Wn,Wn+1分别为n号点和n+1号点的下沉量。2.2.3曲率观测线下沉的弯曲程度叫曲率,用K表示,单位mm/m2,则n号点附近的曲率,即n -1点至n+1号点之间的曲率为 (2-5)式中,in+1n,inn-1分别为n+1号点至n号点和n号点至 n-1号点的倾斜;ln+1n,lnn-1分别为n+1号点至n号点和n号点至 n-1号点的水平距离。2.2.4水平移动下沉盆地内,某点沿某一水平方向的位移叫水平移动,用U表示,单位mm,则m次观测n点的水平移动为Un= Ln m

27、 Ln 0 (2-6)式中,Ln m,Ln 0分别为m 次观测时和首次观测时 n 号点至观测线控制点间的水平距离,直接用坐标求得。2.2.5水平变形下沉盆地内两点间单位长度的水平移动差称之为水平变形,以表示,单位为 mm/m。则 n 号点至 n+1 号点间的水平变形为 (2-7)式中,(l n+1 n)m,(l n+1 n)0分别为n+1号点至n号点在首次和m 次观测时的水平距离。3软件实现3.1 AutoCAD VBA简介VBA ( visual basic for application) 是由Microsoft创建的,用来自动执行任务的一个编程环境,它提供了一些用来创建图形用户界面的可拖

28、拉工具和用来与AutoCAD对象交换的编程语言5。其最大特点在于两个方面:第一,与VB有着几乎相同的开发环境和语法,具备功能强大和易于掌握的特点;第二,在于它的for Application功能,针对性强,它驻留在主程序的内部,使其结构精简,且代码运行效率高,使语言的引擎在技术上与开发环境分离6。AutoCAD自R14.01版本开始就支持VBA作为二次开发工具。3.2实现步骤基于上文所述计算原理,在AutoCAD 2008下使用VBA实现数据计算及成图。程序界面如图2 。3.2.1 确定煤层采动信息为反应地下开采与地表移动和变形规律,在进行各项计算之前应当首先确定观测数据所对应的地下开采情况。

29、煤层信息有平均采深、采厚、倾角;采动信息有沿走向线上开切眼坐标、推进距离,沿倾向线上一边界坐标、倾向宽度。图2 软件界面3.2.2 确定观测线基准点坐标在观测线两端选取两点,坐标可在cad观测线布置图中直接获取。计算观测线方向代码如下:读入基点坐标,计算规划方向JX1 = Val(UserForm1.TextJZ1x.Text)JY1 = Val(UserForm1.TextJZ1y.Text)JX2 = Val(UserForm1.TextJZ2x.Text)JY2 = Val(UserForm1.TextJZ2y.Text)a = Atn(JY2 - JY1) / (JX2 - JX1)3

30、.2.3读入观测数据进行坐标规划数据文件编辑成txt文档,首次观测平面坐标及高程在前,第m次观测在后。首次和第m次观测的平面坐标规划实现代码如下: 数组gX1、gY1为首次观测的规划后平面坐标,数组hX2、hY2为第m次观测的规划后平面坐标gx(i) = Format(Sqr(CDbl(arr(1) - JX1) 2 + (CDbl(arr(2) - JY1) 2) * Cos(a) + JX1, 0.000) gy(i) = Format(Sqr(CDbl(arr(1) - JX1) 2 + (CDbl(arr(2) - JY1) 2) * Sin(a) + JY1, 0.000) ds(i

31、) = Format(Sqr(gx(i) - JX1) 2 + (gy(i) - JY1) 2), 0.000) hx(i) = Format(Sqr(CDbl(arr(4) - JX1) 2 + (CDbl(arr(5) - JY1) 2) * Cos(a) + JX1, 0.000) hy(i) = Format(Sqr(CDbl(arr(4) - JX1) 2 + (CDbl(arr(5) - JY1) 2) * Sin(a) + JY1, 0.000) hs(i) = Format(Sqr(hx(i) - JX1) 2 + (hy(i) - JY1) 2), 0.000) ws(i)

32、= hs(i) - ds(i)3.2.4文件的打开,文件的导出与程序的退出1)文件的打开代码Private Sub CommandButton1_Click()Dim strtext As StringCommonDialog1.Filter = 文本文件(*.txt)|*.txtCommonDialog1.ShowOpen If CommonDialog1.FileName Then TextBox17.Text = Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1) Line Input #1, strtext T

33、extBox17.Text = TextBox17.Text & strtext & Chr(13) & Chr(10) Loop Close #1 End IfEnd Sub2)文件的导出代码:Private Sub CommandButton2_Click()CommonDialog1.Filter = 文本文件(*.txt)|*.txtCommonDialog1.ShowSaveIf CommonDialog1.FileName Then Open CommonDialog1.FileName For Output As #1 Print #1, TextBox17.Text Close

34、 #1End IfEnd Sub3)程序的退出代码:Private Sub CommandButton4_Click()EndEnd Sub3.2.4 计算移动和变形各点规划至观测线方向后,根据公式(2-3)(2-6)计算出移动和变形。从界面窗口中可以看到移动和变形的计算信息,同时各计算结果会自动保存在txt文档里。3.2.5 曲线图的绘制首先依原比例绘出煤层采动信息,及煤层与测点的空间关系。煤层绘制的部分代码如下:1) 煤层走向信息绘制Private Sub OptionButton1_Click()Dim layer1 As AcadLayerSet layer1 = ThisDrawin

35、g.Layers.Add(坐标)layer1.color = 255ThisDrawing.ActiveLayer = layer1Call MCCall CKQTCEnd Sub2)煤层倾向信息绘制Private Sub OptionButton2_Click()Dim layer1 As AcadLayerSet layer1 = ThisDrawing.Layers.Add(坐标)layer1.color = 255ThisDrawing.ActiveLayer = layer1Call mcqCall QXTCEnd SubPublic Sub MC()Dim HZ#, ZD#, KX

36、#, KY#, JX1#, JY1#, SKQ#, CH# 煤层中间点采深,平均采厚 煤层走向推进距离,开切眼坐标,基准点坐标,开切眼至基准点距离Dim plineObj As AcadLWPolylineDim points(0 To 19) As DoubleHZ = Val(UserForm1.TextCS.Text)CH = Val(UserForm1.TextCH.Text)ZD = Val(UserForm1.textJL.Text)KX = Val(UserForm1.textKX1.Text)KY = Val(UserForm1.textKY1.Text)JX1 = Val(U

37、serForm1.TextJZ1x.Text)JY1 = Val(UserForm1.TextJZ1y.Text)沿走向SKQ = Sqr(KX - JX1) 2 + (KY - JY1) 2)points(0) = 0: points(1) = -HZpoints(2) = 1000: points(3) = -HZpoints(4) = 1000: points(5) = -HZ - CHpoints(6) = 0: points(7) = -HZ - CHpoints(8) = 0: points(9) = -HZpoints(10) = SKQ: points(11) = -HZpoi

38、nts(12) = SKQ + ZD: points(13) = -HZpoints(14) = SKQ + ZD: points(15) = -HZ - CHpoints(16) = SKQ: points(17) = -HZ - CHpoints(18) = SKQ: points(19) = -HZSet plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)ZoomAllEnd Sub煤层走向代码如下:Public Sub CKQTC()Dim HZ#, ZD#, KX#, KY#, JX1#, JY1#, SK

39、Q#, CH# 煤层中间点采深,平均采厚 煤层走向推进距离,开切眼坐标,基准点坐标,开切眼至基准点距离 HZ = Val(UserForm1.TextCS.Text)CH = Val(UserForm1.TextCH.Text)ZD = Val(UserForm1.textJL.Text)KX = Val(UserForm1.textKX1.Text)KY = Val(UserForm1.textKY1.Text)JX1 = Val(UserForm1.TextJZ1x.Text)JY1 = Val(UserForm1.TextJZ1y.Text)沿走向SKQ = Sqr(KX - JX1)

40、2 + (KY - JY1) 2)Dim solidObj As AcadSolidDim point1(0 To 2) As DoubleDim point2(0 To 2) As DoubleDim point3(0 To 2) As DoubleDim point4(0 To 2) As Double 定义实体point1(0) = SKQ: point1(1) = -HZ - CH: point1(2) = 0point2(0) = SKQ + ZD: point2(1) = -HZ - CH#: point2(2) = 0point3(0) = SKQ: point3(1) = -H

41、Z: point3(2) = 0point4(0) = SKQ + ZD: point4(1) = -HZ: point4(2) = 0 在模型空间中创建实体对象Set solidObj = ThisDrawing.ModelSpace.AddSolid(point1, point2, point3, point4)ZoomAllEnd Sub煤层倾向代码如下:Public Sub mcq()Dim HZ#, D#, QBX#, QBY#, JX1#, JY1#, Q#, CH#, j# 煤层中间点采深,平均采厚 煤层走向推进距离,开切眼坐标,基准点坐标,开切眼至基准点距离Dim plineO

42、bj As AcadLWPolylineDim points(0 To 19) As DoubleHZ = Val(UserForm1.TextCS.Text)CH = Val(UserForm1.TextCH.Text)D = Val(UserForm1.QD.Text)j = Val(UserForm1.QJ.Text)QBX = Val(UserForm1.QX.Text)QBY = Val(UserForm1.QY.Text)JX1 = Val(UserForm1.TextJZ1x.Text)JY1 = Val(UserForm1.TextJZ1y.Text)沿走向Q = Sqr(QB

43、X - JX1) 2 + (QBY - JY1) 2)points(0) = 0: points(1) = -HZpoints(2) = 1000: points(3) = -HZ + 1000 * Tan(j * 3.1415926 / 180)points(4) = 1000: points(5) = -HZ - CH / Cos(j * 3.1415926 / 180) + 1000 * Tan(j * 3.1415926 / 180)points(6) = 0: points(7) = -HZ - CH / Cos(j * 3.1415926 / 180)points(8) = 0:

44、points(9) = -HZpoints(10) = Q: points(11) = -HZ + Q * Tan(j * 3.1415926 / 180)points(12) = Q + D * Cos(j * 3.1415926 / 180): points(13) = -HZ + Q * Tan(j * 3.1415926 / 180) + D * Sin(j * 3.1415926 / 180)points(14) = Q + D * Cos(j * 3.1415926 / 180): points(15) = -HZ + Q * Tan(j * 3.1415926 / 180) +

45、D * Sin(j * 3.1415926 / 180) - CH / Cos(j * 3.1415926 / 180)points(16) = Q: points(17) = -HZ + Q * Tan(j * 3.1415926 / 180) - CH / Cos(j * 3.1415926 / 180)points(18) = Q: points(19) = -HZ + Q * Tan(j * 3.1415926 / 180)Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)ZoomAllEnd Sub

46、煤层倾向采空区填充Public Sub QXTC()Dim HZ#, D#, QBX#, QBY#, JX1#, JY1#, Q#, CH#, j# 煤层中间点采深,平均采厚 煤层走向推进距离,开切眼坐标,基准点坐标,开切眼至基准点距离Dim plineObj As AcadLWPolylineDim points(0 To 19) As DoubleHZ = Val(UserForm1.TextCS.Text)CH = Val(UserForm1.TextCH.Text)D = Val(UserForm1.QD.Text)j = Val(UserForm1.QJ.Text)QBX = Val

47、(UserForm1.QX.Text)QBY = Val(UserForm1.QY.Text)JX1 = Val(UserForm1.TextJZ1x.Text)JY1 = Val(UserForm1.TextJZ1y.Text)沿走向Q = Sqr(QBX - JX1) 2 + (QBY - JY1) 2)Dim solidObj As AcadSolidDim point1(0 To 2) As DoubleDim point2(0 To 2) As DoubleDim point3(0 To 2) As DoubleDim point4(0 To 2) As Double 定义实体poi

48、nt1(0) = Q: point1(1) = -HZ + Q * Tan(j * 3.1415926 / 180): point1(2) = 0point2(0) = Q + D * Cos(j * 3.1415926 / 180): point2(1) = -HZ + Q * Tan(j * 3.1415926 / 180) + D * Sin(j * 3.1415926 / 180): point2(2) = 0point4(0) = Q + D * Cos(j * 3.1415926 / 180): point4(1) = -HZ + Q * Tan(j * 3.1415926 / 1

49、80) + D * Sin(j * 3.1415926 / 180) - CH / Cos(j * 3.1415926 / 180): point4(2) = 0point3(0) = Q: point3(1) = -HZ + Q * Tan(j * 3.1415926 / 180) - CH / Cos(j * 3.1415926 / 180): point3(2) = 0 在模型空间中创建实体对象Set solidObj = ThisDrawing.ModelSpace.AddSolid(point1, point2, point3, point4)ZoomAllEnd Sub3)曲线绘制

50、代码1.下沉曲线绘制代码如下:Private Sub CommandButton5_Click()Dim layer1 As AcadLayerSet layer1 = ThisDrawing.Layers.Add(下沉曲线)layer1.color = acRedThisDrawing.ActiveLayer = layer1Call ZSDim wn() As DoubleDim AQ() As DoubleDim ds() As DoubleDim gx() As DoubleDim gy() As DoubleDim n As Doublen = Val(UserForm1.TextB

51、ox10.Text)JX1 = Val(UserForm1.TextJZ1x.Text)JY1 = Val(UserForm1.TextJZ1y.Text)JX2 = Val(UserForm1.TextJZ2x.Text)JY2 = Val(UserForm1.TextJZ2y.Text)a = Atn(JY2 - JY1) / (JX2 - JX1)Dim ss As Stringss = UserForm1.TextBox18.TextSet fso = CreateObject(Scripting.FileSystemObject)Set ttfile = fso.opentextfi

52、le(ss, 1)read = ttfile.ReadAllread = Replace(read, , )Do While InStr(1, read, String(2, vbTab) 0 read = Replace(read, String(2, vbTab), vbTab)LoopMsgBox readbrr = Split(read, vbCrLf)ReDim wn(UBound(brr)ReDim AQ(3 * UBound(brr) - 1)ReDim ds(UBound(brr)ReDim gx(UBound(brr)ReDim gy(UBound(brr)For i = L

53、Bound(brr) To UBound(brr) If brr(i) Then arr = Split(brr(i), vbTab) If UBound(arr) 5 Then dn = arr(0) wn(i) = Format(CDbl(arr(6) - CDbl(arr(3), 0.000) gx(i) = Format(Sqr(CDbl(arr(1) - JX1) 2 + (CDbl(arr(2) - JY1) 2) * Cos(a) + JX1, 0.000) gy(i) = Format(Sqr(CDbl(arr(1) - JX1) 2 + (CDbl(arr(2) - JY1)

54、 2) * Sin(a) + JY1, 0.000) ds(i) = Format(Sqr(gx(i) - JX1) 2 + (gy(i) - JY1) 2), 0.000) mystr = mystr & dn & , & ds(i) & , & wn(i) & vbCrLf End If End If Next For k = LBound(brr) To UBound(brr) - 1 AQ(3 * k) = ds(k): AQ(3 * k + 1) = wn(k) / n: AQ(3 * k + 2) = 0 NextUserForm1.TextBox17.Text = mystrDi

55、m splineObj As AcadSplineDim startTan(0 To 2) As DoubleDim endTan(0 To 2) As DoublestartTan(0) = 0: startTan(1) = 0: startTan(2) = 0endTan(0) = 1500: endTan(1) = 0: endTan(2) = 0Set splineObj = ThisDrawing.ModelSpace.AddSpline(AQ, startTan, endTan)End Sub2.倾斜曲线绘制代码如下:Private Sub CommandButton6_Click

56、()Dim layer3 As AcadLayerSet layer3 = ThisDrawing.Layers.Add(倾斜曲线)layer3.color = acBlueThisDrawing.ActiveLayer = layer3Call qxqxDim wn() As DoubleDim wi() As DoubleDim AQ() As DoubleDim ds() As DoubleDim gx() As DoubleDim gy() As DoubleDim n As DoubleDim j As Integern = Val(UserForm1.TextBox11.Text)

57、JX1 = Val(UserForm1.TextJZ1x.Text)JY1 = Val(UserForm1.TextJZ1y.Text)JX2 = Val(UserForm1.TextJZ2x.Text)JY2 = Val(UserForm1.TextJZ2y.Text)a = Atn(JY2 - JY1) / (JX2 - JX1)Dim ss As Stringss = UserForm1.TextBox18.TextSet fso = CreateObject(Scripting.FileSystemObject)Set ttfile = fso.opentextfile(ss, 1)r

58、ead = ttfile.ReadAllread = Replace(read, , )Do While InStr(1, read, String(2, vbTab) 0 read = Replace(read, String(2, vbTab), vbTab)Loopbrr = Split(read, vbCrLf)ReDim wn(UBound(brr)ReDim AQ(3 * UBound(brr) - 4)ReDim ds(UBound(brr)ReDim gx(UBound(brr)ReDim gy(UBound(brr)ReDim wi(UBound(brr) - 1)For i

59、 = LBound(brr) To UBound(brr) If brr(i) Then arr = Split(brr(i), vbTab) If UBound(arr) 5 Then dn = arr(0) wn(i) = Format(CDbl(arr(6) - CDbl(arr(3), 0.000) gx(i) = Format(Sqr(CDbl(arr(1) - JX1) 2 + (CDbl(arr(2) - JY1) 2) * Cos(a) + JX1, 0.000) gy(i) = Format(Sqr(CDbl(arr(1) - JX1) 2 + (CDbl(arr(2) - JY1) 2) * Sin(a) + JY1, 0.000) ds(i) = Format(Sqr(gx(i) - JX1) 2 + (gy(i) - JY1) 2), 0.000) End If End If Next For j = LBound(brr) To UBound(brr) - 2 wi(j) = (wn(j + 1) - wn(j) / (ds(j + 1) - ds(j) Next For k = 0 To UBound(brr) - 2 AQ(3 * k) = (ds

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!