原标题:如何把 VBA 代码转换成 .Net/iLogic
"
大部分时候,我们是在VBA里面写自动化设计的示例代码,原因如下:
VBA 是 Inventor 自带的 SDK,是 Inventor 的一部分。
VBA 有智能语法提示。
可以设置断点,调试代码方便。
可以用 Watches 窗口查看变量值和对象。
可以通过 Object Browser 查看所有 Inventor 对象的属性和方法。
我们在VBA里面完成代码工作以后,想要在iLogic或者.Net环境里面运行代码,此时,就需要把VBA的代码的转换。
不做转换会有什么情况发生呢?让我们来试试看。
如下是一段VBA代码,如果直接在iLogic环境里运行:
Sub MySubMethod
Dim doc As Document
Set doc = ThisApplication.ActiveDocument
Call MsgBox(doc.DisplayName)
End Sub
Sub MyMainMethod
' Do something
' Then call another method
Call MySubMethod
End Sub
问题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 Next
Dim doc As PartDocument
doc = 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
"
(来源:欧特克大视界)返回搜狐,查看更多
责任编辑: