乐筑天下

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

[编程交流] 关闭除选定层之外的层

[复制链接]

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 14:59:16 | 显示全部楼层 |阅读模式
你好
 
首先,我不想在这里使用LAYISO。这是因为我需要设置关闭图层的设置。。。一些用户可能会将其设置为锁定。
 
无论如何。。。
 
这是我的lisp,它拾取实体,当拾取实体时,除拾取之外的所有实体都将关闭。
当我选择它们时,我在屏幕上看不到它们被标记为已选择。只有在命令行中,我才能看到拾取了什么对象。
如何修改它以将拾取的实体显示为拾取的实体。
 
  1. (defun c:off_layEXC ()
  2. (setvar "cmdecho" 0)
  3. (setq ent nil
  4. lista nil
  5. typ_ent nil
  6. lager nil
  7. typ_lager nil
  8. namn nil
  9. nr_lista nil
  10. namn_lista
  11. nil
  12. )
  13. (setq ent T)
  14. (setvar "clayer" "0")
  15. (while (/= ent nil)
  16.    (setq ent (car (entsel "\nChoose object: ")))
  17.    (if ent
  18.      (progn
  19. (setq typ_lager (cdr (assoc 8 (entget ent))))
  20. (prompt (strcat " Layer " typ_lager " chosen"))
  21. (setq lista (append lista (list typ_lager)))
  22.      )
  23.      (setq ent nil)
  24.    )
  25. )
  26. (setvar "clayer" (nth 0 lista))
  27. (command "_layer" "off" "*" "n" "")
  28. (setq nr 1)
  29. (while (< nr (length lista))
  30.    (command "_layer" "on" (nth nr lista) "")
  31.    (setq nr (1+ nr))
  32. )
  33. (princ)
  34. )
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 15:52:32 | 显示全部楼层
我不确定我是否理解你的目标
试试这个编辑过的版本,你可以看到如何
使用夹点选择图元,另一段代码
你可以自己编辑
 
  1. (defun c:off_layEXC (/ en ent lista nr typ_lager ss)
  2. (setvar "cmdecho" 0)
  3. (setq ss (ssadd))
  4. (setq ent T)
  5. (setvar "clayer" "0");--> do you need restore this setting after?
  6. (while (/= ent nil)
  7.    (setq ent (entsel "\nChoose object: "))
  8.    (if ent
  9.      (progn
  10. (setq en (car ent))
  11. (setq typ_lager (cdr (assoc 8 (entget en))))
  12. (ssadd en ss)
  13. (sssetfirst nil ss)
  14. (prompt (strcat " Layer " typ_lager " chosen"))
  15. (if (not (member typ_lager lista)); to avoid to put duplicate layer name into layer name list
  16. (setq lista (append lista (list typ_lager))))
  17.      )
  18.      )
  19.    )
  20. (setq ent nil)
  21. (setvar "clayer" (nth 0 lista))
  22. (command "_layer" "off" "*" "n" "")
  23. (alert "Rest code block goes here")
  24. (setq nr 1)
  25. (while (< nr (length lista))
  26.    (command "_layer" "on" (nth nr lista) "")
  27.    (setq nr (1+ nr))
  28. )
  29. (setvar "cmdecho" 1)
  30. (princ)
  31. )

 
~'J'~
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 16:06:43 | 显示全部楼层
或者像这样-大卫
  1. [b][color=BLACK]([/color][/b]defun c:offelay [b][color=FUCHSIA]([/color][/b]/ ss i ll en ln ls[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]setvar [color=#2f4f4f]"HIGHLIGHT"[/color] 1[b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not ss[b][color=NAVY])[/color][/b]
  4.         [b][color=NAVY]([/color][/b]princ [color=#2f4f4f]"\Select Entities To Show..."[/color][b][color=NAVY])[/color][/b]
  5.         [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"CTAB"[/color][b][color=RED])[/color][/b]
  6.                                   [b][color=RED]([/color][/b]cons 410 [b][color=PURPLE]([/color][/b]getvar [color=#2f4f4f]"CTAB"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  7.                                   [b][color=RED]([/color][/b]cons 67 [b][color=PURPLE]([/color][/b]- 1 [b][color=TEAL]([/color][/b]getvar [color=#2f4f4f]"TILEMODE"[/color][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  8. [b][color=FUCHSIA]([/color][/b]setq i [b][color=NAVY]([/color][/b]sslength ss[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  9. [b][color=FUCHSIA]([/color][/b]setq ll [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  10. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]minusp [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]1- i[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  11.         [b][color=NAVY]([/color][/b]setq en [b][color=MAROON]([/color][/b]ssname ss i[b][color=MAROON])[/color][/b]
  12.               ln [b][color=MAROON]([/color][/b]cdr [b][color=GREEN]([/color][/b]assoc 8 [b][color=BLUE]([/color][/b]entget en[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  13.         [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]member ln ll[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  14.             [b][color=MAROON]([/color][/b]setq ll [b][color=GREEN]([/color][/b]cons ln ll[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  15. [b][color=FUCHSIA]([/color][/b]setq ls [color=#2f4f4f]""[/color][b][color=FUCHSIA])[/color][/b]
  16. [b][color=FUCHSIA]([/color][/b]foreach l ll [b][color=NAVY]([/color][/b]setq ls [b][color=MAROON]([/color][/b]strcat ls l [color=#2f4f4f]","[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  17. [b][color=FUCHSIA]([/color][/b]command [color=#2f4f4f]"_.LAYER"[/color] [color=#2f4f4f]"_OFF"[/color] [b][color=NAVY]([/color][/b]strcat [color=#2f4f4f]"~"[/color] [b][color=MAROON]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [color=#2f4f4f]"_ON"[/color] ls [color=#2f4f4f]""[/color][b][color=FUCHSIA])[/color][/b]
  18. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 22:05 , Processed in 0.417147 second(s), 58 queries .

© 2020-2025 乐筑天下

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