玩软件 > CAD技巧
+

AutoCAD VBA二次开发(3)

2012-01-15    作者:未知    来源:网络文摘

3  VBA二次开发实例

在学习了AutoCAD VBA基础知识后,接下来介绍一个简单实例。通过该实例的学习,我们可以初步掌握开发VBA应用程序的一般过程。

训练1  应用VBA编写输入起点和终点坐标绘制直线的参数化程序。

应用VBA程序绘制直线的方法为:AddLine(StartPoint, EndPoint),其中StartPoint, EndPoint为起点、终点坐标,必须为3元素列表(即数组)。

操作步骤如下:

(1) 打开VBA管理器,单击“新建”按钮,添加名称为“ACADProject”、位置为“Global2的新工程,如图12所示。选中该工程后,再单击“另存为”将之保存于D盘,名称为“DrawLine.dvb”。

AutoCAD_VBA二次开发

12  VBA管理器

(2) 打开VBA IDE,在“插入”菜单中选择“用户窗体”插入新窗体。

(3) 打开“工具箱”(如图13所示),点击“框架”按钮,在窗体中建立两个框架,分别用于起点和终点坐标的输入;再点击“标签”和“文字框”按钮,在两个框架中分别建立用于输入起点和终点坐标的标签和对话框;再点击“命令按钮”按钮,在用户窗体中建立“确定”和“结束”按钮。

AutoCAD_VBA二次开发

13  “用户窗体”编辑窗口

(4) 打开“属性窗口”(如图14所示),在“用户窗体”中依次点击控件,在其“属性窗口”中设置相应属性。按表1所示设置窗体及控件的相应属性。

AutoCAD_VBA二次开发

14  “属性”设置窗口

1  绘制直线的窗体及控件属性设置

窗体及控件名称

属性

设置值

作用

窗体

Name

frmLine

Caption

参数化绘直线练习

框架

Name

fraSPfraEP

Caption

起点坐标,终点坐标

标签

Name

lblXSlblYSlblZS

lblXElblYElblZE

Caption

x_starty_startz_start

x_endy_endz_end

提示输入直线起点、终点坐标值

文本

Name

txtXStxtYStxtZS

txtXEtxtYEtxtZE

Text

10100404040

输入直线起点、终点坐标值

命令按钮

Name

cmdOK_ClickcmdEnd_Click

Caption

确定,结束

点击按钮

(5) 双击“确定”按钮打开“代码窗口”,在行Private Sub cmdOK_Click( )和行End Sub之间输入以下代码:

ThisDrawing.Application.Documents.Add  ’ 打开新图形

Dim StartPoint(0 To 2) As Double     ’ 定义起点坐标

Dim EndPoint(0 To 2) As Double     ’ 定义终点坐标

StartPoint(0) = txtXS               ’ 提取起点x坐标

StartPoint(1) = txtYS               ’ 提取起点y坐标

StartPoint(2) = txtZS               ’ 提取起点z坐标

EndPoint(0) = txtXE               ’ 提取终点x坐标

EndPoint(1) = txtYE               ’ 提取终点y坐标

EndPoint(2) = txtZE               ’ 提取终点z坐标

Dim LineObj As AcadLine          ’ 定义Line对象

设置Line对象

Set LineObj = ThisDrawing.ModelSpace.AddLine (StartPoint, EndPoint)

ThisDrawing.SaveAs("D:\Line_Ex.dwg")  ’ 保存图形

(6) 双击“结束”按钮打开“代s窗口”,在行Private Sub cmdEnd_Click( )和行End Sub之间输入代码“End”,用于结束程序。

步骤(5)(6)输入的代码如图15所示。

(7) VBA IDE运行菜单中选择运行子程序/用户窗体选项或按F5键来运行程序。

(8) 当程序运行<时,AutoCAD应用程序将置于最前。此时可在图形中看到直线且图形的文件名称为Line_Ex.dwg

AutoCAD_VBA二次开发

15  实例的代码窗口

注:VBA中的出错处理方法

阅读:3652    评论:0
  • 相关文章
  • 热门文章
  • 相关评论
网站地图

免责申明:我要玩起网旨在提供一个相互学习交流的平台,是一个完全免费的网站,部分原创作品,欢迎转载,部分内容来自互联网,如果侵犯了您的权利请尽快通知我们!邮箱:279459762@qq.com Copyright 2018-2021我要玩起网

湘ICP备17006802号-2
【电脑版】  【回到顶部】