氧化铁黑厂家
免费服务热线

Free service

hotline

010-00000000
氧化铁黑厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

当VBA和VB应用程序之异同和相互移植

发布时间:2021-09-09 13:07:39 阅读: 来源:氧化铁黑厂家

VBA和VB应用程序之异同和相互移植

Microsoft VBA是一个面向对象的编程环境。它提供了与Visual Basic (VB)相似的丰富的开发能力。VBA和VB的最主要的区别在于VBA运行在与AutoCAD相同的处理空间,从而提供了一个具有AutoCAD智能的,非常快的编程环境。

VBA同时也提供与其它有VBA编程能力的应用程序的应用集成。这意味着AutoCAD利用其它应用程序的对象库可以控制其它应用程序,例如Microsoft Word和Excel。

VB是一个独立的开发版本,必须单独购买,但是它为AutoCAD VBA提供了许多附加的组件,象外部数据库引擎和 可即时打印出完全的实验报告和实验曲线 6报告输出能力等。

执行AutoCAD VBA有四点好处:

Visual Basic编程环境易学易用;

VBA运行在与AutoCAD相同的处理空间。使程序执行速度非常快。

对话框构建快速,高效。允许开发者快速地定制程序必须标志实验资料并在两头标志它们原形和收到设计的及时反馈。

工程可以单独存在,亦可嵌入在图形中。这就给了开发者在发行他们的应用程序时极大的灵活性。

要想用VB改写VBA的示例代码,你必须首先引用AutoCAD类型库。在VB里,从工程选单中选择引用选项激发引用对话框。从引用对话框,选择AutoCAD 版本15然后击OK。

下一步,在示例代码中用用户定义的指向当前活动文档的专门变量替代所有对ThisDrawing的引用。为了达到这个目的,定义一个AutoCAD应用程序的变量(acadApp)和一个当前文档的变量(acadDoc)。然后,设置应用程序变量(acadApp)为当前AutoCAD应用程序。

如果AutoCAD正在运行,GetObject方法就提取出AutoCAD应用程序对象。如果AutoCAD没有正在运行,一个错误就会发生,VB程序就应该捕捉并且清除它。CreateObject方法然后试图生成一个AutoCAD应用程序对象。如果成功,AutoCAD就启动;如果失败,一个显示错误描述的信息框就会出现。

下面的代码示例演示了VB如何连接到AutoCAD并且如何用Clear和Description属性处理错误信息变量Err。如果你的编程环境不支持这些属性,你需要适当地修改示例。

示例一:从Visual Basic 连接到AutoCAD

Sub ConnectToAcad()

Dim acadApp As AcadApplication

On Error Resume Next

Set acadApp = GetObject(, "plication")

If Err Then

ear

Set acadApp = CreateObject("plication")

If Err Then

MsgBox scription

Exit Sub

End If

End If

MsgBox "Now running " + + _

" version " + rsion

End Sub

下一步,设置文档变量为AutoCAD应用程序的文档对象。文档对象从应用程序对象的ActiveDocument属性返回。

示例二:获取AutoCAD文挡对象

Dim acadDoc as AcadDocument

Set acadDoc = tiveDocument

从这里开始,就可以使用acadDoc变量来引用当前的AutoCAD图形。

注意:当运行多个AutoCAD例程时,GetObject方法将返回在Windows运行对象表中的第一个AutoCAD例程。关于运行对象表(ROT)和GetObject方法请参看Microsoft Visual Basic相应文档。

示例三:VBA和VB代码对照

用VBA生成一条线

Sub AddLineVBA()

' 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. _

dLine _

(startPoint, endPoint)

' Zoom in on the newly created line

ZoomAll

End Sub

用VB生成一条线

Sub AddLineVB()

On Error Resume Next

而且低水平供给能力严重多余' Connect to the AutoCAD application

Dim acadApp As AcadApplication

Set acadApp = GetObject _

(, "plication")

If Err Then

ear

Set acadApp = CreateObject _

("plication")

If Err Then

MsgBox scription

Exit Sub

End If

End If

' Connect to the Aut压力实验机oCAD drawing

Dim acadDoc As AcadDocument

Set acadDoc = tiveDocument

' Establish the endpoints of the line

Dim lineObj As AcadLine

Dim startPoint(0 To 2) As Double

Dim endPoint(0 To 2) As Double

startPoint(0) = 1

startPoint(1) = 1

startPoint(2) = 0

endPoint(0) = 5

endPoint(1) = 5

endPoint(2) = 0

' Create a Line object in model space

Set lineObj = dLine _

(startPoint, endPoint)

Zoom

鹤壁西服制作
鹤壁制作西服
淮北订制西服
淮北订做西服