试了一下,在ACAD.DVB中的过程要等到VBA IDE启动之后才会运行。因而,最好放到Lisp中执行。
在Application的NewDrawing事件中,由于新文档刚创建时AutoCAD还没有创建层表,故不能其操作,需要一个延迟的操作,比如定时器来控制。
使用文档的激活事件来处理吧,对于新文档,创建之后就会自动触发这个事情。
- ' 文档激活时触发的过程
- Private Sub AcadDocument_Activate()
- Dim LayerObj As AcadLayer
- Dim bFound As Boolean
- ' 判断层是否存在
- For Each LayerObj In ThisDrawing.Layers
- If LayerObj.Name = "Test_CreateLayer" Then
- bFound = True
- Exit For
- End If
- Next
- Set LayerObj = Nothing
- If bFound = False Then ThisDrawing.Layers.Add "Test_CreateLayer"
- End Sub
|