乐筑天下

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

如何删除图层状态?

[复制链接]

57

主题

235

帖子

3

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
463
发表于 2006-9-7 12:08:44 | 显示全部楼层 |阅读模式
我有一个名为 LayerState (Temp) 的 LayerState。
如何使vba删除它?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2006-9-7 12:33:29 | 显示全部楼层
我不认为你可以。 根据我的记忆,LayerStates不会暴露给VBA
回复

使用道具 举报

28

主题

249

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
361
发表于 2006-9-7 12:38:40 | 显示全部楼层
您可以通过命令行将其自动化
您可以打开图层管理器,然后使用sendkeys,字母“r”将打开状态管理器
进入tere后,您可以使用alt和sndkeys访问命令,因为字母带有下划线<这应该行得通。
回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2006-9-7 12:40:02 | 显示全部楼层
以下是我如何在lisp(ActiveX)中获得它们的列表,我认为您可以很容易地将其转换为VBA<br>和<pre>
  1. (setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
  2. (setq LayCol (vla-get-Layers ActDoc))
  3. (setq LayDict (vla-GetExtensionDictionary LayCol))
  4. (setq LayStDict (vl-catch-all-apply 'vla-Item (list LayDict "ACAD_LAYERSTATES")))

如果“LayStDict”不是错误,则当前图形中存在图层状态。希望这有帮助。
回复

使用道具 举报

3

主题

88

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2006-9-7 12:46:10 | 显示全部楼层
快速插入命令行一:
  1. Public Sub DeleteLaterStateTemp()
  2.         ThisDrawing.SendCommand "-layer" & vbCr
  3.         ThisDrawing.SendCommand "a" & vbCr
  4.         ThisDrawing.SendCommand "d" & vbCr
  5.         ThisDrawing.SendCommand "temp" & vbCr & vbCr & vbCr
  6.         
  7. End Sub

回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2006-9-7 22:25:00 | 显示全部楼层
这似乎在 v2004 中有效。 也许它会有所帮助
  1. Public Sub DelLayerState()
  2.     Dim colLayers As AcadLayers
  3.     Dim objDict As AcadDictionary
  4.     Dim objLayerStates As AcadDictionary
  5.     Dim objXrec As AcadXRecord
  6.    
  7.     Set colLayers = Me.Layers
  8.     If colLayers.HasExtensionDictionary Then
  9.        Set objDict = colLayers.GetExtensionDictionary
  10.        Set objLayerStates = objDict("Acad_LayerStates")
  11.        objLayerStates("temp").Delete
  12.    End If
  13. End Sub

需要更多的错误检查,还没有经过充分的测试
回复

使用道具 举报

57

主题

235

帖子

3

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
463
发表于 2006-9-7 23:03:23 | 显示全部楼层
美好的
回复

使用道具 举报

3

主题

88

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2006-9-8 08:50:39 | 显示全部楼层
戴夫,
谢谢你的帮助,但是……Vba被“我.层”的想法噎住了
吗?
回复

使用道具 举报

57

主题

235

帖子

3

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
463
发表于 2006-9-8 09:01:21 | 显示全部楼层
请尝试
  1. ThisDrawing.Layers

回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2006-9-11 16:17:33 | 显示全部楼层
工作漂亮!
谢谢!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 12:27 , Processed in 0.477614 second(s), 72 queries .

© 2020-2025 乐筑天下

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