最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

用VB编写CAD绘图插件

来源:懂视网 责编:小OO 时间:2024-11-25 22:13:16
文档

用VB编写CAD绘图插件

一、创建一个ACTIVEX DLL项目cadPro。二、添加一个模块,命名为ModCad。代码如下:```vb;Public acadApp As Object。Public acadDoc As Object ';这里建立一个新模块主要是为了以后在多个窗体、类或者多个工程中调用。```;三、添加一个类ClsTest,代码如下:```vb;Public Function MenuMain(MenuIndex As Integer)。';下面的判断在VB中测试时可以用到,在生成DLL后VBA调用时可注释。If ModCad.acadApp Is Nothing Or ModCad.acadDoc Is Nothing Then。ConnectToAcad()。End If;
推荐度:
导读一、创建一个ACTIVEX DLL项目cadPro。二、添加一个模块,命名为ModCad。代码如下:```vb;Public acadApp As Object。Public acadDoc As Object ';这里建立一个新模块主要是为了以后在多个窗体、类或者多个工程中调用。```;三、添加一个类ClsTest,代码如下:```vb;Public Function MenuMain(MenuIndex As Integer)。';下面的判断在VB中测试时可以用到,在生成DLL后VBA调用时可注释。If ModCad.acadApp Is Nothing Or ModCad.acadDoc Is Nothing Then。ConnectToAcad()。End If;

操作步骤:
一、创建一个ACTIVEX DLL项目cadPro。
二、添加一个模块,命名为ModCad。代码如下:
```vb
Public acadApp As Object
Public acadDoc As Object ' 这里建立一个新模块主要是为了以后在多个窗体、类或者多个工程中调用
```
三、添加一个类ClsTest,代码如下:
```vb
Public Function MenuMain(MenuIndex As Integer)
' 下面的判断在VB中测试时可以用到,在生成DLL后VBA调用时可注释
If ModCad.acadApp Is Nothing Or ModCad.acadDoc Is Nothing Then
ConnectToAcad()
End If
Select Case MenuIndex
Case 1
AutoCADTest()
Case 2
' 添加其他选项
End Select
End Function
Public Function ConnectToAcad()
On Error Resume Next
Set ModCad.acadApp = GetObject(, "AutoCAD.Application.16.2") ' 16.2是CAD的版本
If Err Then
Err.Clear
Set ModCad.acadApp = CreateObject("AutoCAD.Application.16.2")
End If
If Err Then
Err.Clear
Set ModCad.acadApp = GetObject(, "AutoCAD.Application")
End If
If Err Then
Err.Clear
Set ModCad.acadApp = CreateObject("AutoCAD.Application")
End If
If Err Then
Unload Me
End If
ModCad.acadApp.Visible = True
Set ModCad.acadDoc = ModCad.acadApp.ActiveDocument
End Function
Public Function setApps(acadObj As AcadApplication)
Set ModCad.acadApp = acadObj
Set ModCad.acadDoc = acadApp.ActiveDocument
End Function
' VB中要在CAD中实现的功能
Private Function AutoCADTest()
Dim cadLine As AcadLine
Dim cadPoint As Variant
cadPoint = ModCad.acadDoc.Utility.GetPoint(, "请选取一个插入点:")
ModCad.acadDoc.ModelSpace.AddCircle(cadPoint, 5)
End Function
```
四、如果要在VB中调试,添加一个EXE工程,引用ACTIVEX工程,并添加一个窗体。在窗体上添加一个按钮,代码如下:
```vb
Private Sub Command1_Click()
Dim Rec As New cadPro.MenuMain
Rec.MenuMain(1)
End Sub
```
五、生成DLL文件,并在VBA中调用。在“工具”->“设定引用”项目中加入生成的DLL。代码如下:
```vb
Option Explicit
Private clsGre As New cadPro.ClsTest
Public Sub cadtest()
On Error Resume Next
clsGre.setApp(ThisDrawing.Application)
clsGre.MenuMain(1)
End Sub
```
按照以上步骤,就可以实现VB与AutoCAD的连接。
以上程序在本机测试通过。
操作系统:Windows XP SP2
AutoCAD版本:AutoCAD 2006

文档

用VB编写CAD绘图插件

一、创建一个ACTIVEX DLL项目cadPro。二、添加一个模块,命名为ModCad。代码如下:```vb;Public acadApp As Object。Public acadDoc As Object ';这里建立一个新模块主要是为了以后在多个窗体、类或者多个工程中调用。```;三、添加一个类ClsTest,代码如下:```vb;Public Function MenuMain(MenuIndex As Integer)。';下面的判断在VB中测试时可以用到,在生成DLL后VBA调用时可注释。If ModCad.acadApp Is Nothing Or ModCad.acadDoc Is Nothing Then。ConnectToAcad()。End If;
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top