乐筑天下

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

[编程交流] 切换层

[复制链接]

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:41:57 | 显示全部楼层 |阅读模式
我希望切换一个有h前缀的层选择。
在网上找到这个,但它似乎只打开了一层。
有什么我错过的吗?
 
谢谢
 
 
  1. (
  2. defun c:test ()
  3. (if LAYGROUPTOGGLE
  4. (progn
  5.    (command "_.-layer" "off" "h-*" "")
  6.    (setq LAYGROUPTOGGLE 1)
  7. )
  8. (progn
  9.    (command "_.-layer" "on" "*h-*" "")
  10.    (setq LAYGROUPTOGGLE NIL)
  11. )
  12. ))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 22:46:33 | 显示全部楼层
欢迎来到CADTutor。
 
这足以去掉以h-*
 
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:49:04 | 显示全部楼层
啊,我不是想达到这个目的。
我相当尝试自动地分配和关闭这些层。
我的想法是:
-检查这些层是否打开,然后将其关闭;检查图层是否已关闭,然后将其打开
-手动创建一个变量,每次运行lisp时,该变量的值都会切换:其中,如果variable=nil,则关闭layer;变量=1,打开图层
 
非常感谢。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 22:51:56 | 显示全部楼层
切换Tharwat,这里的关键是切换我的朋友
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 22:56:24 | 显示全部楼层
 
是否必须全部匹配层名称才能切换?如果其中一些关闭了,而另一些没有呢?
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 22:58:15 | 显示全部楼层
是的,全部匹配。如果其中一些已经打开/关闭,对我来说并不重要。
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:03:37 | 显示全部楼层
噢,谢谢塔瓦的热烈欢迎。
我很惊讶你注意到了
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:07:03 | 显示全部楼层
试试这个。
 
  1. (defun c:on-off (/ on_off l nm layers v e)
  2. ;;    Tharwat 22.July.2014        ;;
  3. ;; Toogle Layers that their names is    ;;
  4. ;; started with h-            ;;
  5. (defun on_off (code ent) (entmod (subst (cons 62 code) (assoc 62 ent) ent)))
  6. (while (setq l (tblnext "LAYER" (not l)))
  7.    (if (wcmatch (setq nm (cdr (assoc 2 l))) "h-*")
  8.      (setq layers (cons nm layers))
  9.    )
  10. )
  11. (foreach layer layers
  12.    (if (minusp (setq v (cdr (assoc 62 (setq e (entget (tblobjname "LAYER" layer)))))))
  13.      (on_off (abs v) e)
  14.      (on_off (- v) e)
  15.    )
  16. )
  17. (princ)
  18. )
回复

使用道具 举报

3

主题

14

帖子

11

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 23:08:32 | 显示全部楼层
我似乎无法运行它,也不了解足够的代码来检查是否有任何错误。REGEN没有帮助。卸下所有其他口吃,排除任何冲突。
 
以下是我的命令列表:
 
还有什么我能帮忙的吗?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:13:08 | 显示全部楼层
 
你是怎么做的?你能解释一下步骤吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:17 , Processed in 0.916992 second(s), 72 queries .

© 2020-2025 乐筑天下

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