可以先创建一个类模块,在其中编写事件的触发代码。

- [FONT=courier new]
- '类模块Class1
- Option Explicit
- Public acadDoc As AcadDocument
- Public WithEvents Line As AcadLine ' 使用 Modified 事件示例
- Sub Example_Modified()
- ' 示例在模型空间创建一条直线,然后修改直线的颜色,触发 Modified 事件。
-
- Dim sPt(0 To 2) As Double
- Dim ePt(0 To 2) As Double
-
- ' 定义起点和终点坐标
- sPt(0) = 1: sPt(1) = 1: sPt(2) = 0
- ePt(0) = 4: ePt(1) = 4: ePt(2) = 0
-
- ' 在模型空间创建一条直线
- '
- ' * 注意: 将返回的对象存放入模块级变量。才允许外部事件过程与对象进行关联,触发事件。
- Set Line = acadDoc.ModelSpace.AddLine(sPt, ePt)
-
- acadDoc.Application.ZoomAll
-
- ' 修改直线的颜色。
- Line.Color = acRed
- acadDoc.Regen acAllViewports
-
- End Sub
- Private Sub Line_Modified(ByVal pObject As AutoCAD.IAcadObject)
- ' 示例接收对象的修改事件。.
- MsgBox "You just modified an object with an ID of: " & pObject.ObjectID
-
- End Sub
- [/FONT]
然后再创建一个模块中,在其中编写与 AutoCAD 的接口。

- [FONT=courier new]
- '模块Module1
- Option Explicit
- Sub Main()
- '创建类模块的引用
- Dim c As Class1
- Set c = New Class1
- '创建 AutoCAD 的引用,设置类中的 acadDoc 对象为 AutoCAD 中新添加文档对象。
- Dim acadApp As AcadApplication
- Set acadApp = CreateObject("AutoCAD.Application")
- acadApp.Visible = True
- Set c.acadDoc = acadApp.Documents.Add
- '调用类中创建直线和修改颜色的过程。
- c.Example_Modified
- End Sub
- [/FONT]
|