明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3702|回复: 4

将新建图层自动设置为当前层的程序

[复制链接]
发表于 2003-9-1 21:42:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2010-8-10 22:11:16 编辑

以下程序使用了事件以便自动执行,在制图时如果用户新建图层,则程序会自动提示用户是否将刚新建的图层设置为当前层。方便有些用户的制图习惯:
  1. Option Explicit
  2. Dim LayerCount As Integer
  3. '图层设置开始前调用GetLayerCount过程
  4. Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
  5.   If CommandName = "LAYER" Or CommandName = "-LAYER" Then
  6.     Call GetLayerCount
  7.   End If
  8. End Sub
  9. '图层设置结束后调用SetLayerCurrent过程
  10. Private Sub AcadDocument_EndCommand(ByVal CommandName As String)
  11.   If CommandName = "LAYER" Or CommandName = "-LAYER" Then
  12.     Call SetLayerCurrent
  13.   End If
  14. End Sub
  15. '将当前图层数量保存到一个变量中
  16. Private Sub GetLayerCount()
  17.   LayerCount = ThisDrawing.Layers.Count
  18. End Sub
  19. '比较图层设置前后的图层数量,如果增加,则提示是否将新增的图层设置为当前层
  20. Private Sub SetLayerCurrent()
  21.   Dim LastLayerName As String
  22.   Dim Lastlayer As AcadLayer
  23.   Dim SetCutLayer As Integer
  24.   If ThisDrawing.Layers.Count > LayerCount Then
  25.     Set Lastlayer = ThisDrawing.Layers(ThisDrawing.Layers.Count - 1)
  26.     LastLayerName = Lastlayer.Name
  27.     SetCutLayer = MsgBox("是否将刚新建的“" & LastLayerName & "”图层设置为当前层?", _ vbOKCancel, "设置当前层")
  28.     If SetCutLayer = vbOK Then
  29.       ThisDrawing.ActiveLayer = Lastlayer
  30.     End If
  31.   End If
  32. End Sub
发表于 2003-10-3 16:37:00 | 显示全部楼层
好程序!非常实用!
发表于 2003-10-6 23:20:00 | 显示全部楼层
的确!向版主学习
发表于 2010-8-10 12:26:00 | 显示全部楼层
多谢啊,我正在为如何使用新建的图层发愁呢。
发表于 2013-9-18 08:02:41 来自手机 | 显示全部楼层
看看是使用什么方法。学习学习。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:21 , Processed in 0.159368 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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