



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实例:利用AutoCAD帮助信息快速开发巷道断面轮廓软件一、前言AutoCAD是国内外煤炭企事业单位最广泛使用的工程绘图软件之一。目前常用的AutoCAD版本有2004、2005、2006。AutoCAD帮助信息中包含了丰富的绘图信息。其中AutoCAD 2004的帮助信息中用VBA编制的824个小程序十分实用,为初学者提供了丰富的技术资料和快速开发实用软件的捷径。根据我们长期从事采矿CAD教学科研的经验,走出了一条利用AutoCAD帮助信息快速开发采矿软件的成功之路。具体地说,首先从AutoCAD的帮助信息中得到软件的VBA代码,将其复制到AutoCAD的VBA编辑器中。其次,在VBA编辑器中调试运行成功后再复制到VB6的“代码”区域中。在VB6中“添加模块”、增加必要的控件、按VB6规定适当修改代码,调试运行成功后按VB格式存储。最后编译并得到实用软件的可执行文件。用这种方法已开发了40余个(套)采矿软件。本文结合开发绘制半圆拱巷道断面轮廓软件的实例详细地介绍上述全过程。二、实例与分析图1设一半圆拱巷道断面轮廓尺寸为:巷道净宽B=4000,墙高h=1400,标志性的五个点坐标分别为:a(0,1400),b(0,0),c(4000,0),d(4000,1400),e(2000,1400),见图1。该巷道断面轮廓线由三条直线和一段圆弧组成。只要能写出用VB6编程绘制直线和圆弧的代码,并输入正确的参数,就能绘制出巷道断面轮廓图形。而对于初学者来讲,VB6编程的代码、格式、控件、引用和属性的设置等等任何一个环节出了错都会导致编程的失败。本文提供的思路可帮助初学者解决编程的入门问题。具体地步骤是:第一步,找到绘制直线的VBA源代码,先绘制一条直线,再绘制三条直线。第二步,找到绘制圆弧的VBA源代码,并绘制一段圆弧。第三步,合并绘制直线和圆弧的VBA源代码,输入a、b、c、d、e各点组成的直线和圆弧,绘制出半圆拱巷道断面轮廓图形。第四步,在VB6中将编程的代码、格式、控件、引用和属性的设置好,使程序实用。第五步,在VB6中将全部内容编译成可执行文件。问题的关键在于找到绘制直线和圆弧的VBA源代码。三、AutoCAD中的帮助信息1查找绘制对象的VBA源代码正常打开AutoCAD 2004,按以下步骤找到绘制直线的VBA源代码。1)按F1键,打开AutoCAD中的帮助信息。2)点击目录“自定义手册ActiveX Automation 和VBA”,出现相关内容。3)点击目录“ActiveX Automation and VBA Reference”,提供关于 ActiveX 对象模型及其相关接口部件的参考信息。4)点击目录“Code Examples”,列出了824个AutoCAD提供的应用实例。实例按英文字母A-Z排列。5)找到并点击目录“AddLine Example”(绘制直线实例),出现以下VBA源代码:Sub Example_AddLine() This example adds a line in model space Dim lineObj As AcadLine Dim startPoint(0 To 2) As Double Dim endPoint(0 To 2) As Double Define the start and end points for the line startPoint(0) = 1#: startPoint(1) = 1#: startPoint(2) = 0# endPoint(0) = 5#: endPoint(1) = 5#: endPoint(2) = 0# Create the line in model space Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint) ZoomAll End Sub这是一组完整的绘制一条直线的VBA代码,直线的起点为(1,1),终点为(5,5)。2运行VBA代码只有将上述VBA代码复制到AutoCAD中的VBA编辑器中才能运行。1)在AutoCAD中,点击菜单“工具宏Visual Basic编辑器”,出现无代码窗口的Visual Basic编辑器界面。2)点击Visual Basic编辑器的菜单“视图代码窗口”,出现有空白代码页面的Visual Basic编辑器界面。3)将上述VBA代码复制到AutoCAD中的VBA编辑器的空白代码页面中,即可进行第一次运行。4)在VBA编辑器中,有三种运行方式:(1)将光标放在本段代码的任何地方,点击工具栏处的“运行子过程”三角图标。(2)将光标放在本段代码的任何地方,点击菜单“运行运行子过程”。(3)将光标放在本段代码的任何地方,按F5键。5)在AutoCAD中,有一种运行方式:点击菜单“工具宏宏”,选中“全局1!ThisDrawing.Example_ AddLine”,点击“运行”按钮。3修改绘制直线实例将“AddLine Example”中绘制直线语句作相应的修改(代码见后)。4绘制圆弧实例同理,点击目录“AddArc Example”(绘制圆弧实例),找到完整的绘制圆弧的VBA代码,并将代码复制到AutoCAD中的VBA编辑器中,再将“AddArc Example”中的参数设置为:中心点e(2000,1400),半径 2000,起始角0,结束角180。将“AddArc Example”中绘制圆弧的语句作相应的修改(代码见后)。5绘制巷道断面轮廓将“AddL ine Example”和“AddArc Example”二者合并,组成绘制“巷道断面轮廓”的VBA代码:Sub Example_AddHangDao() 巷道断面轮廓 Dim lineObj As AcadLine Dim startPoint1(0 To 2) As Double 定义直线起点 Dim startPoint2(0 To 2) As Double Dim startPoint3(0 To 2) As Double Dim endPoint1(0 To 2) As Double定义直线终点 Dim endPoint2(0 To 2) As Double Dim endPoint3(0 To 2) As Double Dim arcObj As AcadArc Dim centerPoint(0 To 2) As Double定义圆弧中心点 Dim radius As Double定义圆弧半径 Dim startAngleInDegree As Double定义圆弧起始角 Dim endAngleInDegree As Double定义圆弧结束角 Define the start and end points for the line A(0,1400),B(0,0),C(4000,0),D(4000,1400)直线各点坐标 startPoint1(0) = 0: startPoint1(1) = 0: startPoint1(2) = 0直线起点 startPoint2(0) = 0: startPoint2(1) = 0: startPoint2(2) = 0 startPoint3(0) = 4000: startPoint3(1) = 0: startPoint3(2) = 0 endPoint1(0) = 0: endPoint1(1) = 1400: endPoint1(2) = 0直线终点 endPoint2(0) = 4000: endPoint2(1) = 0: endPoint2(2) = 0 endPoint3(0) = 4000: endPoint3(1) = 1400: endPoint3(2) = 0 Create the line in model space Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint1, endPoint1) 绘制直线 Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint2, endPoint2) Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint3, endPoint3) centerPoint(0) = 2000: centerPoint(1) = 1400: centerPoint(2) = 0圆弧中心点 radius = 2000圆弧半径 startAngleInDegree = 0圆弧起始角 endAngleInDegree = 180圆弧结束角 Convert the angles in degrees to angles in radians Dim startAngleInRadian As Double定义圆弧起始角(弧度) Dim endAngleInRadian As Double定义圆弧结束角(弧度) startAngleInRadian = startAngleInDegree * 3.141592 / 180圆弧起始角(弧度) endAngleInRadian = endAngleInDegree * 3.141592 / 180圆弧结束角(弧度) Create the arc object in model space Set arcObj = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngleInRadian, endAngleInRadian) 绘制圆弧 ZoomExtentsAutoCAD全界面显示 End Sub运行此代码,即可绘制出如图1所示的图形。四、将VBA程序调入VB6中从AutoCAD中的帮助信息中得到的VBA代码,复制到AutoCAD中的VBA编辑器中即可运行。但此时的VBA代码是不能编译的解释性语言。解释性语言主要用于调试程序,其运行速度、实用性和保密性都不理想。Visual Basic 6(VB6)是Windows平台上使用的优秀编程软件(本文不详细介绍VB6的基础知识)。本文提及的采矿工程软件都是用VB6编译过的可执行文件,运行速度快、实用性和保密性都很理想。1在VB6中编辑软件1)打开VB6编程软件,将AutoCAD中的VBA编辑器中的源代码复制到VB6中“窗体”的Form1中的“查看代码”区域中。图22)在VB6中加入“添加模块”,加入代码,见图2。此模块的作用是将VB6与AutoCAD相连接并设置当前文件和模型空间(详见文献1)3)在VB6的Form1中添加必要的控件,即:巷道净宽B和墙高h,见图3。4)在VB6的菜单“工程引用”中,选择“AutoCAD2004 Type Library”5)在VB6的菜单“工程工程1属性启动对象”中,选择“Sub Main”6)将源代码中的相关语句按VB6要求作适当修改(详见文献1)。请读者仔细将这两段代码加以对比,找出各语句的区别(注意下面代码后面加*号的语句)。修改后代码如下:Private Sub Command1_Click() 巷道断面轮廓*图3 Dim lineObj As AcadLine Dim startPoint1(0 To 2) As Double 定义直线起点 Dim startPoint2(0 To 2) As Double Dim startPoint3(0 To 2) As Double Dim endPoint1(0 To 2) As Double 定义直线终点 Dim endPoint2(0 To 2) As Double Dim endPoint3(0 To 2) As Double Dim B As Integer 定义巷道净宽* Dim h As Integer 定义墙高* Dim arcObj As AcadArc Dim centerPoint(0 To 2) As Double 定义圆弧中心点 Dim radius As Double 定义圆弧半径 Dim startAngleInDegree As Double 定义圆弧起始角 Dim endAngleInDegree As Double 定义圆弧结束角 B = Text1.Text 给巷道净宽赋值* h = Text2.Text 给墙高赋值* startPoint1(0) = 0: startPoint1(1) = 0: startPoint1(2) = 0 直线起点 startPoint2(0) = 0: startPoint2(1) = 0: startPoint2(2) = 0 startPoint3(0) = B: startPoint3(1) = 0: startPoint3(2) = 0* endPoint1(0) = 0: endPoint1(1) = h: endPoint1(2) = 0 直线终点* endPoint2(0) = B: endPoint2(1) = 0: endPoint2(2) = 0* endPoint3(0) = B: endPoint3(1) = h: endPoint3(2) = 0* Create the line in model space Set lineObj = moSpace.AddLine(startPoint1, endPoint1) 绘制直线* Set lineObj = moSpace.AddLine(startPoint2, endPoint2) * Set lineObj = moSpace.AddLine(startPoint3, endPoint3) * centerPoint(0) = B / 2: centerPoint(1) = h: centerPoint(2) = 0 圆弧中心点* radius = B / 2 圆弧半径* startAngleInDegree = 0 圆弧起始角 endAngleInDegree = 180 圆弧结束角 Convert the angles in degrees to angles in radians Dim startAngleInRadian As Double 定义圆弧起始角(弧度) Dim endAngleInRadian As Double 定义圆弧结束角(弧度) startAngleInRadian = startAngleInDegree * 3.141592 / 180 圆弧起始角(弧度) endAngleInRadian = endAngleInDegree * 3.141592 / 180 圆弧结束角(弧度) Create the arc object in model space Set arcObj = mo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2309-2025重点排放单位碳计量审查规范
- 2025年第2批次浙江宁波前湾产业集团有限公司招聘9人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025福建厦门市集美区幸福幼儿园招聘1人模拟试卷(含答案详解)
- 2025年甘肃省武威市事业单位招聘628人【教育岗48人】模拟试卷及一套参考答案详解
- 2025江苏宿迁市泗洪县卫健系统面向社会招聘工作人员5人模拟试卷有完整答案详解
- 安全培训教室证书课件
- 2025年5月四川西南石油大学考试招聘事业编制辅导员15人考前自测高频考点模拟试题及一套完整答案详解
- 安全培训教学资料课件
- 2025辽宁本溪高新区国有企业招聘6人模拟试卷及完整答案详解
- 2025北京大学医学部总务处房地产管理中心宿舍管理员招聘1人考前自测高频考点模拟试题及完整答案详解
- CNN 卷积神经网络介绍
- 北师大版五年级上册数学《练习四》
- 新概念英语第二册优质课件Lesson5 NCE2新概念2
- 铸剑先生行为分析技术
- 11、2015年10月25日广东省直机关公开遴选公务员笔试真题解析
- 有理数的乘法说课课件(说课一等奖)
- 口腔颌面外科学第十章 口腔颌面部损伤
- JJG 520-2005粉尘采样器
- stata回归结果详解-stata回归解释
- 审计综合实训(周海彬)答案项目三+货币资金审计程序表
- 药品经营质量风险分析评估报告
评论
0/150
提交评论