第三章:AutoCAD开发环境配置与搭建

说明:本篇内容由SudoMe根据AutoCAD官方开发文档整理修改而来,如有内容表述不准确或理解错误的,请及时反馈。

AutoCAD开发环境简述

AutoCAD开发环境是在AutoCAD开发过程中可以创建窗体、编辑代码、引用库、调试运行项目的地方,基于VB语法结构的主要有两个。

  • VBA交互开发环境(VBE)
    VBE依附于开发软件本身,AutoCAD的VBA模块在安装后即可使用,可以通过AutoCAD功能区的“管理”选项卡→“应用程序”面板→“Visual Basic 编辑器”或在AutoCAD命令行,输入VBAIDE命令打开,可生成在AutoCAD中加载的dvb格式的代码文件。
  • VB集成开发环境(VB6.0)
    独立的开发软件,界面基本与VBE类似,开发前必须要引入相应的库,才能使用软件的对象,可以开发独立的EXE软件。

重要的视图窗口

它跟常用的软件一样,都有菜单栏、工具栏以及各种窗口,在这里面尤其重要的三个窗口是工程资源管理器窗口、属性窗口、代码窗口,如果找不到对应的窗口,可以在视图中选择。

工程资源管理器
这是管理项目组件地方,默认情况下,它默认包含了Thisdrawing对象,在这里添加我们可以添加“窗体”、“模块”和“类模块”对象。
引用参考:使用项目资源管理器 (VBA) | Microsoft Learn

项目组件如下:

组件 描述
Thisdrawing对象(VBE) 表示VBA代码将访问的文档。对于AutoCAD VBA项目,ThisDrawing表示当前的AutoCAD图形。
窗体 用于项目而构建的自定义对话框。
标准模块 代码模块组件包含通用的过程和函数。标准模块也称为代码模块,或简称为模块。
类模块 类模块组件包含您自己的所有对象,这些对象被定义为类。

注意:可以导入窗体、模块或类模块。窗体以FRM文件导入,模块以BAS文件导入,类模块以CLS文件导入。如果导入的组件同名,导入会自动添加编号。

属性窗口
可以设置对象的属性值。
引用参考:使用属性窗口 (VBA) | Microsoft Learn

代码窗口
编写代码的地方,在代码窗口可以选择对象及触发的事件。代码是由一系列的指令和操作组成的,在VBA中一段代码用sub过程或function过程表示,常用的就是sub 过程名()....end sub
引用参考:(VBA) 创建过程 | Microsoft Learn
引用参考:代码窗口 | Microsoft Learn

引用类库与项目

引用第三方库和项目的方法如下:

  1. 从“工具(VBE)/工程(VB6.0)”菜单中,单击“引用”。
  2. 在“引用”对话框中,单击“浏览”。
  3. 在“添加引用”对话框中,选择要引用的类库/项目文件,然后单击“打开”。
  4. 单击“确定”按钮以完成引用添加。

引用参考:(VBA) 设置对类型库的引用 | Microsoft Learn

项目与项目文件命名(VBE)

项目名称在VBA IDE的“属性”窗口中设置。
注意:默认项目名称:ACADProject;默认项目文件名:Project.dvb

VBA IDE重命名项目方法:

  1. 在VBA IDE的“工程资源管理器”窗口中,选择要更改的项目。
  2. 右键单击该项目,然后单击“<工程名称>属性”。
  3. 在“<工程名称>-工程属性”对话框的“工程名称”文本框中,编辑项目的名称。单击“确定”。

VBA IDE重命名项目文件方法:

  1. 在VBA IDE中,单击“文件”菜单→“保存”。
  2. 在“另存为”对话框中,输入项目文件的新名称和位置。单击保存。

窗体组件

项目窗体

窗体可以为应用程序创建自定义对话框,一般用于提供信息、获取信息或控制应用程序。

模式窗体与无模式窗体
用户窗体可以是模式的,也可以是无模式的。窗体的ShowModal属性确定它是模式还是无模式的。在AutoCAD VBA中将对话框定义为模式时,用户必须先响应该对话框,然后才能继续应用程序的其他部分。在通过Hide或Unload方法关闭模式对话框之前,不会执行后续代码。无模式窗体允许窗体在用户交互时保持显示状态,类似于浮动调色板。
注意:模式窗体显示时禁用应用程序中的其他窗体,但其他应用程序不会禁用。

创建窗体的方法如下:

  1. 打开“工程资料管理器”窗口,然后选择项目。
  2. 从“插入”菜单中,单击“用户窗体”。将创建窗体并将添加到项目中。

创建无模式窗体的方法如下:

  1. 打开“项目”窗口,然后选择项目。
  2. 从“插入”菜单中,选择“用户窗体”,并将“显示模式”属性更改为“False”。
  3. 将AcFocusCtrl (AcFocusCtrl.dll) 添加到“工具箱”中,然后将控件拖到窗体上。AcFocusCtrl在用户交互期间将焦点保持在窗体上。

关于显示和隐藏窗体

必须先显示用户窗体,然后才能使用,然后在不再需要它时隐藏它。显示窗体是通过Show方法完成的。
默认情况下,创建的窗体是模式窗体,因此在显示窗体时,用户将无法直接与AutoCAD交互。要允许用户访问AutoCAD图形,使用Hide方法隐藏窗体,允许用户对AutoCAD进行有限访问。

以下示例显示名为“UserForm1”的窗体:

Public Sub MyApplication()
    UserForm1.Show
End Sub

子过程现在可以作为宏从VBARUN命令或AutoCAD用户界面调用。

以下示例隐藏名为“UserForm1”的窗体:

Public Sub MyAppHide()
    UserForm1.Hide
End Sub

关于加载和卸载窗体
若要加载窗体但不显示它,使用Load方法。然后,使用Show方法可使窗体可见。如果调用Show方法并且尚未加载窗体,则将自动加载它。
卸载窗体会从内存中删除该窗体,并回收与该窗体关联的所有内存。当窗体不再使用且想要回收内存时,可以卸载窗体。隐藏方法不执行卸载。应用程序结束且窗体尚未卸载时,将自动卸载窗体。
窗体显示、隐藏、加载、卸载方法比较如下:

方法 描述
Show 显示窗体。如果窗体尚未加载,则会自动加载。
Hide 隐藏窗体。窗体不会从内存中卸载。
Load 将窗体加载到内存中但不显示它。
Unload 从内存中卸载窗体。这可以从Unload方法中显式完成,也可以在应用程序终止时自动完成。

窗体控件

在窗体上创建控件需要控件工具箱,在工具箱中选定控件拖拽放置到窗体上即可。

常见操作

  • 控件大小设置
    单击选择控件,选择边框上夹点,将夹点拖动到新位置,控件的大小将调整到该位置。若要移动或调整多个控件,按住Shift键同时选择控件。
  • 控件格式设置
    “格式”菜单上有设置控件格式的功能,可以设置控件的对齐格式,使用Shift可以一次选择多个控件。
  • 控件属性设置
    “属性”控制控件的各种特征,例如控件的大小、形状、颜色、标签和默认值。
  • 控件添加代码
    双击“窗体”窗口中的控件可添加代码。“代码”窗口打开后,会创建默认事件的子过程,也可以从“代码”窗口右上角的事件下拉列表中选择其他事件。

常用控件

命令按钮(CommandButton)

  • Caption:标题。
  • Picture、 DownPicture、 DisabledPicture:分别代表正常、按下、不可用状态时显示的图片。

文本框(TextBox)

  • MultiLine:确定控件是否能够接受和显示多行文本。
  • PasswordChar:返回或设置一个值,该值指示输入的字符或占位符在文本框控件中是否要显示出来,返回或设置用作占位符。
    注意:如果MultiLine属性被设为True,那么设置PasswordChar属性将不起作用。
Private Sub Text1_LostFocus()
    If Val(Me.Text1.Text) <= 0 Or Val(Me.Text1.Text) > 20 Then
        Me.Text1.Text = ""
        Me.Text1.SetFocus
        MsgBox("请输入1到20的数字")
    End If
End Sub

标签(Lable)
用来显示标题或说明性的文字。常用属性是Caption,默认属性也是Caption,因此可以用省略的写法,比如Label1 = "VB程序设计开始"

复选框(CheckBox)

  • Value:确定复选框控件的状态。0为没有选中,默认值;1为已选中;2为不可用。

以下示例为复选框控制文本框中文字是否为斜体字和加下划线。

Private Sub Form_Load()
    Me.Text1.Text = "复选框控件应用"
    Me.Text1.Font.Size = 12
    Me.Text1.Font.Bold = True
    Me.Check1.Caption = "斜体字"
    Me.Check2.Caption = "加下划线"
End Sub

Private Sub Check1_Click()
    If Me.Check1.Value = 1 Then
        Me.Text1.Font.Italic = True
    Else
        Me.Text1.Font.Italic = False
    End If
End Sub

Private Sub Check2_Click()
    If Me.Check2.Value = 1 Then
        Me.Text1.Font.Underline = True
    Else
        Me.Text1.Font.Underline = False
    End If
End Sub

单选按钮(OptionButton)

Private Sub Form_Load()
    Me.Text1.Text = "单选框控件应用"
    Me.Option1.Caption = "8号字"
    Me.Option2.Caption = "15号字"
End Sub

Private Sub Option1_Click()
    Me.Text1.Font.Size = 8
End Sub

Private Sub Option2_Click()
     Me.Text1.Font.Size = 15
End Sub

组合框(ComboBox)

  • Style:指示控件的显示类型和行为,只能在属性窗口设置。0,下拉式组合框,可以在列表中选择或文本框中输入,为默认值;1,简单组合框,不能下拉;2,下拉式列表框,只能下拉选择。
  • AddItem方法:将项目添加到ComboBox控件中。
  • RemoveItem方法:从ComboBox控件中删除一项。
  • Clear方法:清除ComboBox控件中的所有项目。

列表框(ListBox)

  • Style:指示控件的显示类型和行为,只能在属性窗口设置。0,标准式,为默认值;1,复选框式,可以选择多项。

定时器(Timer)
定时器控件可以使程序自动地间隔一段时间执行一次代码。该控件在运行时不在窗体上出现,一个窗体可以同时应用多个定时器控件。

  • Interval:(最重要)确定每次发生Timer事件的时间间隔,单位为毫秒,默认值为0。
    注意:Timer控件没有方法,只有Timer事件。只要Timer的Enabled属性设置为True,且Interval大于0,则Timer事件以Interval属性指定的时间间隔发生。
Private Sub Form_Load()
    Me.Timer1.Interval = 1000
    Me.Command1.Caption = "显示系统时间"
    Me.Command2.Caption = "停  止"
End Sub

Private Sub Timer1_Timer()
    Me.Text1.Text = Time
End Sub

Private Sub Command1_Click()
    Me.Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
    Me.Timer1.Enabled = False
End Sub

公共对话框(CommonDialog)
公共对话框控件是ActiveX控件(Microsoft Common Dialog Control 6.0),提供一组标准的Windows对话框,比如打开和保存文件、设置打印选项、选择颜色和字体、显示帮助等操作,对话框控件用6种方法提供不同类型的对话框样式。

方法 对话框类型
ShowOpen 打开对话框
ShowSave 另存为对话框
ShowColor 颜色对话框
ShowFont 字体对话框
ShowPrinter 打印或打印选项对话框
ShowHelp 调用Windows帮助引擎
  • 公共属性
    • DialogTitle:返回或设置该对话框标题栏所显示的字符串,比如另存为对话框默认标题为另存为。
  • 打开、另存为对话框
    • FileName:返回或设置所选文件的路径和文件名。
    • InitDir:为打开或另存为对话框指定初始的目录,如果此属性没有指定,则使用当前目录。比如:Me.CommonDialog1.InitDir = App.Path
    • Filter:返回或设置在对话框的类型列表框中所显示的过滤器。语法为“提示信息|*.扩展名”,若有多种文件,使用管道(|)符号将其隔开。比如:CommonDialog1.Filter ="文本文件(*.txt)|*.txt|图形文件(*.bmp;*.ico)|*.bmp;*.ico|所有文件(*.*)|*.*"
    • DefaultExt:当没有指定扩展名时,自动给该文件添加指定的扩展名。

以下代码为打开对话框简单示例:

Private Sub Command1_Click()
    On Error Resume Next
     With Me.CommonDialog1
        .DialogTitle = "打开图形文件"
        .Filter = "图形文件(*.bmp;*.ico)|*.bmp;*.ico|所有文件(*.*)|*.*"
        .InitDir = "C:\我的应用程序"
        .ShowOpen
    End With
    Me.Text1.Text = CommonDialog1.FileName
    Me.Picture1.Picture = LoadPicture(Me.CommonDialog1.FileName)
End Sub

注意:在打开或另存为对话框中选择一个文件,并不能将该文件打开或保存,它仅用来返回或设置用户在对话框中选择的路径和文件名。

  • 颜色对话框
Private Sub Command1_Click()
    Me.CommonDialog1.Flags = cdlCCFullOpen
    Me.CommonDialog1.ShowColor
    Me.Circle(2000,2000),500,Me.CommonDialog1.Color
End Sub
  • 字体对话框
    • FontName:字体名称。
    • FontSize:字体大小。
    • FontBold:值为True时选择粗体。
    • FontItalic:值为True时选择斜体。
    • FontStrikethru:值为True时选择删除线。
    • FontUnderline:值为True时选择下划线。
    • Color:字体颜色。要使用此值,必须将 Flags 属性设置为cdlCFEffects。
  • 打印或打印选项对话框
    • Copies:打印份数。
    • FromPage:打印的起始页。
    • ToPage:打印的结束页。
    • hDC:选定打印机的设备句柄。
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空