基于 64 位 AutoCAD 2015 的产品及更高版本中的 Visual LISP 与 32 位 Visual LISP 完全兼容。现有的 Visual LISP 代码无需更改即可在 64 位 AutoCAD 中运行。
64 位 AutoCAD 中 VBA 的行为不能保证与 32 位 AutoCAD 中 VBA 的行为相同。当 VBA IDE 处于活动状态或显示模型窗口时,AutoCAD 窗口的重绘可能会有轻微的延迟。
在基于 AutoCAD 2015 的产品之前,对象 ID 由 64 位值表示。在 32 位 VBA 中访问这些值将导致编译错误。作为替代方法,VBA 应用程序可以使用对象的句柄而不是其对象 ID。以下示例演示您将使用对象的句柄而不是对象 ID:
‘ Original code
Set objId = someObject.ObjectID
Set tempObj = ThisDrawing.ObjectIdToObject(objId)
‘ Code ported for 64-bit compatibility
Set objHandle = someObject.Handle
Set tempObj = ThisDrawing.HandleToObject(objHandle)
您应该不再需要担心使用句柄而不是对象 ID,但如果需要使用相同的代码库,使用句柄将允许您支持早期版本。
危险:VBA 将在 AutoCAD 的未来版本中删除。VBA 开发人员应该准备将他们的 VB 代码移植到 VB.NET。
本教程中的主题