excel VBA 打开 NanoCAD 应用程序

问题描述 投票:0回答:2

我想尝试在 NanoCAD 中自动生成多个绘图。有很多资源可以帮助您使用 AutoCAD,但有关 NanoCAD 的资源却很少。 例如,有人可以给我下面的等效代码(我们可以用它来打开 Autocad)来打开 NanoCAD 吗?

我已经正确完成了 NanoCAD 命令的参考。就像我们为 Autocad 所做的那样。

Sub opencad()
    Dim ACAD As AcadApplication 'Create ACAD variable of type AcadApplication
    On Error Resume Next 
    Set ACAD = GetObject(, "AutoCAD.Application") 
    On Error GoTo 0 
    If ACAD Is Nothing Then 
        Set ACAD = New AcadApplication 
        ACAD.Visible = True 
    End If
    ACAD.ActiveDocument.Utility.Prompt "ZOOM ALL " 
End Sub
excel vba cad nano
2个回答
1
投票

你必须使用这样的代码:

Dim app As nanoCAD.Application
Set app = GetObject("", "nanoCAD.Application")

另外,不要忘记将 nanoCAD 类型库 (NCAuto.dll) 包含到您的项目中(菜单“工具”-“参考”..)


0
投票

您有多种选择来创建新实例或控制 nanoCAD 的活动实例,使用早期或后期绑定(参考)。

使用早期绑定,您必须将(VBE -> 菜单工具 -> 参考)“NCauto.dll”(“nanoCAD Type Library”或“nanoCAD x64 TypeLibrary”)引用到您的 VBA 项目。

    ' All following are always right variable declarations
    ' without a type
    Dim app

    ' with a type
    'Dim app As nanoCAD.Application

    ' with a generic Object
    'Dim app As Object

    ' create new instance or use an active instance
    ' using the referenced Class "nanoCAD.Application"
    Set app = New nanoCAD.Application

使用后期绑定变量将在运行时分配/分配,不需要对类型库的引用,但对于自动完成和智能感知很有用

    ' All following are always right variable declarations
    ' without a type
    Dim app

    ' with a type
    'Dim app As nanoCAD.Application ' nice to have for autocompletion

    ' with a generic Object
    'Dim app As Object

    ' create new instance or use an active instance
    ' using the function "GetObject"
    Set app = GetObject("", "nanoCAD.Application")

    ' or using the function "CreateObject"
    'Set app = CreateObject("nanoCAD.Application")

    ' and also specifying a release of nanoCAD (5.0)
    'Set app = GetObject("", "nanoCAD.Application.5.0")
    'Set app = CreateObject("nanoCAD.Application.5.0")

如果您需要自动化不同版本的 nanoCAD,后期绑定非常有用。

如果您必须为特定版本创建一些 VBA 代码,那么早期绑定是很好的选择。

当然,对于复杂的项目,您可以在编写代码时使用条件编译来获得自动完成/智能感知。

© www.soinside.com 2019 - 2024. All rights reserved.