要更新用于 VB 的代码示例,必须先引用 AutoCAD 类型库。 若要在 VB 中执行此操作,请从“项目”菜单中选择“引用”选项以启动“引用”对话框。从“参照”对话框中,选择 AutoCAD 的文字库,然后单击“确定”。 接下来,在代码示例中,将所有引用替换为引用活动文档的用户指定的变量。为此,请为 AutoCAD 应用程序 () 和当前文档 () 定义一个变量。然后,将应用程序变量设置为当前 AutoCAD 应用程序。ThisDrawingacadAppacadDoc 如果 AutoCAD 正在运行,则在指定 AutoCAD 版本号时,VB 函数将检索 AutoCAD 应用程序对象。如果AutoCAD未运行,则会出现错误,该错误(在本例中)被捕获,然后清除。然后,该函数将尝试创建 AutoCAD 应用程序对象。如果成功,则启动AutoCAD;如果失败,则消息框将显示错误说明。GetObjectCreateObject 运行多个AutoCAD进程时,该函数将在Windows运行对象表中返回AutoCAD的第一个实例。有关验证 返回的会话的详细信息,请参阅有关运行对象表 (ROT) 和函数的 Microsoft VBA 文档。GetObjectGetObjectGetObject 必须将 AutoCAD 应用程序的特性设置为 TRUE 才能显示 AutoCAD 图形窗口。Visible 如果创建AutoCAD的新实例(即,发出 AutoCAD 时 AutoCAD 尚未运行),则无法设置为 TRUE 将导致 AutoCAD 应用程序不可见;AutoCAD 甚至不会出现在 Windows 任务栏上。GetObjectGetObjectVisible 注意:使用与版本相关的 ProgID。如果 or 函数使用与版本无关的 ProgID,请将该函数更改为使用与版本相关的 ProgID。例如,如果使用 ,则更改为 。此外,如果方法使用与版本无关的 ProgID,则必须将该方法更改为使用与版本相关的 ProgID。CreateObjectGetObjectCreateObjectCreateObject("AutoCAD.Application")CreateObject("AutoCAD.Application.24")GetInterfaceObject
从 Visual Basic 6 及更高版本连接到 AutoCAD下面的代码示例使用 的 和 属性。如果您的编码环境不支持这些属性,则需要相应地修改示例:ClearDescriptionErr Sub Ch2_ConnectToAcad()
Dim acadApp As AcadApplication
On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application.24")
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application.24")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
MsgBox "Now running " + acadApp.Name + _
" version " + acadApp.Version
End Sub
接下来,将文档变量设置为AutoCAD应用程序中的对象。该对象由该对象的属性返回。DocumentDocumentActiveDocumentApplication Dim acadDoc as AcadDocument Set acadDoc = acadApp.ActiveDocument 从此时开始,使用变量参照当前 AutoCAD 图形。acadDoc VBA 与 VB 比较代码示例下面的代码示例演示如何在 VBA 和 VB 中创建一行。 使用 VBA 创建行: Sub Ch2_AddLineVBA()
' This example adds a line
' in model space
Dim lineObj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
' Define the start and end
' points for the line
startPoint(0) = 1
startPoint(1) = 1
startPoint(2) = 0
endPoint(0) = 5
endPoint(1) = 5
endPoint(2) = 0
' Create the line in model space
Set lineObj = ThisDrawing. _
ModelSpace.AddLine _
(startPoint, endPoint)
' Zoom in on the newly created line
ZoomAll
End Sub
使用 VB 创建行: Sub Ch2_AddLineVB()
On Error Resume Next
' Connect to the AutoCAD application
Dim acadApp As AcadApplication
Set acadApp = GetObject(, "AutoCAD.Application.24")
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application.24")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
' Connect to the AutoCAD drawing
Dim acadDoc As AcadDocument
Set acadDoc = acadApp.ActiveDocument
' Establish the endpoints of the line
Dim lineObj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
startPoint(0) = 1
startPoint(1) = 1
startPoint(2) = 0
endPoint(0) = 5
endPoint(1) = 5
endPoint(2) = 0
' Create a Line object in model space
Set lineObj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
ZoomAll
acadApp.visible = True
End Sub
相关概念 |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-10-29 08:51
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.