乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 91|回复: 5

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

[复制链接]

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2003-12-9 18:39:00 | 显示全部楼层 |阅读模式
本人刚学习VBA,有个问题想请教大家:我想在每一次打开软件的时候和每一次点击新建图纸的时候让它自动生成指定的几个图层,就像天河软件一样,如何才能达到这种效果?我会点VBA,想通过VBA来实现。
回复

使用道具 举报

3kd

7

主题

40

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
68
发表于 2003-12-9 18:42:00 | 显示全部楼层
不用这么麻烦吧?只要在新建时使用模板文件就可以了呀
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-12-9 18:42:00 | 显示全部楼层
一种方法是做在模板,保存为DWT格式的。
另一种编写一个创建图层的程序,打开AutoCAD时自动运行,以及在Document_New事情(新建文档时)中调用创建图层的程序。
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2003-12-9 19:22:00 | 显示全部楼层
楼上:
   如何使自己的程序随AutoCAD自动运行呢?我只会点VBA,在ACAD.DVB中加载吗?好象是不能实现。Document_New事情(是AddNew事件吧)好象也行不通
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 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
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2003-12-10 12:49:00 | 显示全部楼层
楼上:
   我是想采取你说的办法,我也知道可以这么做,可惜自己不会Lisp,目前也没有Lisp的书籍。
   我有一个问题:能不能在AutoCAD的启动组中加入一个VBA工程文件呢,这样可以在启动AutoCAD时就初始化VBA?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 14:23 , Processed in 1.235723 second(s), 65 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表