当您在设计时已经绑定了类型库时,尝试后期绑定时,这可能是一个问题。
试试这个:
- Function GetAcadObject(Optional ByVal AcadVersion As Variant) As Object
- On Error Resume Next
- Set GetAcadObject = GetObject(, "AutoCAD.Application" & AcadVersion)
- If Err 0 Then
- Err.Clear
- Set GetAcadObject = CreateObject("AutoCAD.Application" & AcadVersion)
- If Err 0 Then
- MsgBox "Could not load or find AutoCAD.", vbExclamation
- End
- End If
- End If
- End Function
现在确保在完成代码编写后删除对AutoCAD类型库的所有引用,此外,每当您需要在程序中将AutoCAD实体作为对象包含时,请确保将其引用为“对象”,而不是AcadApplication或AcadLWPolyline或任何Acadxxxxxxx,因为如果所需的类型ibrary与设计时类型库不同,它会导致问题。
您还需要维护对创建(或引用)的 AcadObject 的有效引用,以使程序正常运行。例如:如果将 AC 设置为 AutoCAD 应用程序对象,则需要使用 AC.property 或 AC.method,而不是直接引用方法或属性。
如果您需要特定版本的AutoCAD来使用您的程序,则可以这样称呼它:
- Set AC = GetAcadObject(".15")
对于与版本无关的引用
|