明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1735|回复: 5

[求助]:如何在打开AutoCAD2002时自动生成特定图层?

[复制链接]
发表于 2003-12-9 18:39:00 | 显示全部楼层 |阅读模式
本人刚学习VBA,有个问题想请教大家:我想在每一次打开AutoCAD软件的时候和每一次点击新建图纸的时候让它自动生成指定的几个图层,就像天河软件一样,如何才能达到这种效果?我会点VBA,想通过VBA来实现。
发表于 2003-12-9 18:42:00 | 显示全部楼层
不用这么麻烦吧?只要在新建时使用模板文件就可以了呀
发表于 2003-12-9 18:42:00 | 显示全部楼层
一种方法是做在模板,保存为DWT格式的。
另一种编写一个创建图层的程序,打开AutoCAD时自动运行,以及在Document_New事情(新建文档时)中调用创建图层的程序。
 楼主| 发表于 2003-12-9 19:22:00 | 显示全部楼层
楼上:
   如何使自己的程序随AutoCAD自动运行呢?我只会点VBA,在ACAD.DVB中加载吗?好象是不能实现。Document_New事情(是AddNew事件吧)好象也行不通
发表于 2003-12-9 21:23:00 | 显示全部楼层
试了一下,在ACAD.DVB中的过程要等到VBA IDE启动之后才会运行。因而,最好放到Lisp中执行。
在Application的NewDrawing事件中,由于新文档刚创建时AutoCAD还没有创建层表,故不能其操作,需要一个延迟的操作,比如定时器来控制。

使用文档的激活事件来处理吧,对于新文档,创建之后就会自动触发这个事情。

  1. ' 文档激活时触发的过程
  2. Private Sub AcadDocument_Activate()
  3.     Dim LayerObj As AcadLayer
  4.     Dim bFound As Boolean
  5.     ' 判断层是否存在
  6.     For Each LayerObj In ThisDrawing.Layers
  7.         If LayerObj.Name = "Test_CreateLayer" Then
  8.             bFound = True
  9.             Exit For
  10.         End If
  11.     Next
  12.     Set LayerObj = Nothing
  13.     If bFound = False Then ThisDrawing.Layers.Add "Test_CreateLayer"
  14. End Sub
 楼主| 发表于 2003-12-10 12:49:00 | 显示全部楼层
楼上:
   我是想采取你说的办法,我也知道可以这么做,可惜自己不会Lisp,目前也没有Lisp的书籍。
   我有一个问题:能不能在AutoCAD的启动组中加入一个VBA工程文件呢,这样可以在启动AutoCAD时就初始化VBA?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 12:51 , Processed in 0.165914 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表