明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 858|回复: 1

【K:ChgSSgetOrder】选择集对象置顶OR置底

[复制链接]
发表于 2023-9-14 16:49:26 | 显示全部楼层 |阅读模式
分享一个函数:
  1. ;CorLst:颜色列表
  2. ;LayLst:图层列表
  3. ;Type:置顶"F"或置底"B"
  4. (defun K:ChgSSgetOrder (CorLst LayLst Type / TmpLay CorLayLst SS)
  5.   (if CorLst
  6.     (progn
  7.         (setq CorLayLst Nil)
  8.         (while (setq TmpLay (tblnext "LAYER" (null TmpLay)))
  9.           (if (member (cdr (assoc 62 TmpLay)) CorLst)
  10.             (setq CorLayLst (cons (cdr (assoc 2 TmpLay)) CorLayLst))
  11.           )
  12.         )
  13.     )
  14.   );获取符合颜色列表的图层
  15.   (if (or CorLst LayLst)
  16.     (progn
  17.       (setq SS
  18.         (ssget "X"
  19.           (append
  20.             (if (eq 1 (getvar "cvport")) (list (cons 410 (getvar "ctab"))) (list (cons 410 "Model")));模型OR布局
  21.             (list (cons -4 "<OR"))
  22.               (if CorLst
  23.                 (append
  24.          
  25.                   (list (cons -4 "<OR"))
  26.                   (mapcar '(lambda (x) (cons 62 x)) CorLst)
  27.                   (list (cons -4 "OR>"))
  28.                 )
  29.               )
  30.               (if LayLst
  31.                 (append  
  32.                   (list (cons -4 "<OR"))
  33.                   (mapcar '(lambda (x) (cons 8 x)) LayLst)
  34.                   (list (cons -4 "OR>"))
  35.                 )
  36.               )
  37.               (if CorLayLst
  38.                   (append  
  39.                     (list (cons -4 "<and"))
  40.                       (list (cons 62 256));随层
  41.                       (list (cons -4 "<OR"))
  42.                       (mapcar '(lambda (x) (cons 8 x)) CorLayLst)
  43.                       (list (cons -4 "OR>"))
  44.                     (list (cons -4 "and>"))
  45.                   )
  46.               )
  47.             (list (cons -4 "OR>"))
  48.           )
  49.         )
  50.       )
  51.       (command "_DrawOrder" SS "" Type)
  52.     )
  53.   )
  54.   (princ)
  55. )


;用法参考
  1. (K:ChgSSgetOrder
  2.     '(8 250 251 252 253 254 255);灰色对象
  3.     '("LayNam1" "LayNam2");图层列表:不知道为什么不能包含"0"图层
  4.     "B" ;置底
  5. )

发表于 2023-9-14 20:56:39 | 显示全部楼层
感谢大佬分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 05:38 , Processed in 0.142318 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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