【实用技巧】如何把VBA代码转换成.Net/iLogic
大部分时候,我们是在 VBA 里面写自动化设计的示例代码,原因如下:
- VBA 是 Inventor 自带的 SDK,是 Inventor 的一部分。
- VBA 有智能语法提示。
- 可以设置断点,调试代码方便。
- 可以用 Watches 窗口查看变量值和对象。
- 可以通过 Object Browser 查看所有 Inventor 对象的属性和方法。
我们在 VBA 里面完成代码工作以后,想要在 iLogic 或者 .Net 环境里面运行代码,此时,就需要把 VBA 的代码的转换。
不做转换会有什么情况发生呢?让我们来试试看。
如下是一段 VBA 代码,如果直接在 iLogic 环境里运行:
问题 1:需要 Sub Main()
解决办法:如果我们有多个方法,第一个方法应该是程序最先被执行的地方,这个方法需要命名为 Sub Main()。
在上面这段代码里面,我们需要把 Sub MyMainMethod 移到最上面,然后改名为 Sub Main()
问题 2:没有 Let/Set
解决办法:我们需要从代码里把“Set” 关键字删除掉。
最后得到如下代码:
Sub Main() ' Do something ' Then call another method
Call MySubMethod
End Sub
Sub MySubMethod()
Dim doc As Document doc = ThisApplication.ActiveDocument
Call MsgBox(doc.DisplayName)
End Sub
还有一点,也许不是必要的,但我觉得可以值得一试的是,把On Error Resume Next改成Try/Catch.
比如这段代码:
On Error Resume NextDim doc As PartDocumentdoc = ThisApplication.ActiveDocument
If Err.Number = 0 Then
Call MsgBox(doc.DisplayName)
Else
Call MsgBox("No active part document")
End If
On Error Goto 0
我们可以切换成这样:
Dim doc As PartDocument
Try doc = ThisApplication.ActiveDocument
Call MsgBox(doc.DisplayName)
Catch Call MsgBox("No active part document")
End Try请点这里↓↓↓
|
|
|
|
|