⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 图层控制.lsp

📁 坐标标注图层线条修改图形减肥提取坐标至到文件
💻 LSP
字号:
;-------------------------------------------------------
;LZYCAD原创之---图层控制                                
;-------------------------------------------------------
(defun c:cv( / e n)
(setvar "cmdecho" 0)
(setq e (car (entsel "\n将选择对象所在图层设为当前图层,请选择对象:")))
(if e (progn 
(setq e (entget e))
(setq n (cdr (assoc 8 e)))
(command"layer" "set" n "")
))
(setvar "cmdecho" 1)
(princ))

(defun c:cx(/ ss ent la)
(setvar "cmdecho" 0)
(princ "\n匹配对象图层或将选择对象的图层修改为当前图层.")
(setq ss (ssget))
(if (and ss (> (sslength ss) 0))
 (progn 
  (setq ent (entsel "\n选择匹配对象:"))
   (if ent (setq la (cdr(assoc 8 (entget (car ent)))))
           (setq la (getvar "clayer"))
   )
  (command ".chprop" ss "" "layer" la "")
);progn
);if
(setvar "cmdecho" 1)
(princ))

;;; --------------------------------------------------------------------------
(defun c:lli (/ es en el a fl)
(setvar "cmdecho" 0)
 (princ "\n显示选择对象所在图层.")
 (setq es (ssget))
 (if es (progn
 (setq a 0 en "" el nil fl nil)
 (while (/= en nil)
 (setq en (ssname es a) el (cons en el) a (1+ a)))
 (setq el (cdr el) fl (cdr (assoc ' 8 (entget (car el)))) el (cdr el))
 (repeat (- a 2)
 (setq en (cdr (assoc ' 8 (entget (car el))))
  fl (strcat en "," fl) el (cdr el)) )
 (command "layer" "off" "*" "y" "on" (eval fl) "")
 ));if es
 (setvar "cmdecho" 1)
(princ))


(defun  c:llo (/ ss ct len cl la ct)
  (setvar "cmdecho" 0)
  (prompt"\n关闭选择对象所在图层.")
  (setq ss (ssget))
  (if (and ss (> (sslength ss) 0))
    (progn 
     (setq ct 0 len (sslength ss) cl (getvar "clayer"))
     (command ".layer")
     (while (< ct len)
         (setq la (cdr (assoc 8 (entget (ssname ss ct)))))
         (if (/= cl la)(command "off" la)
                       (progn (prompt "\n图层")
                              (prompt la)
                              (prompt "为当前图层!")
                       )  ;end of progn
         )                ;end of if
         (if (= old nil)(setq old la)(setq old (strcat old "," la)))
         (setq ct (1+ ct))
       )                  ;end of while
       (command"")
     )                  ;end of progn
 )                      ;end of if
(setvar "cmdecho" 1)
(princ))


(defun c:llf (/ es en el a fl)
 (setvar "cmdecho" 0)
 (princ "\n冻结选择对象所在图层.")
 (setq es (ssget))
 (if es (progn
 (setq a 0 en "" el nil fl nil)
 (while (/= en nil)
 (setq en (ssname es a) el (cons en el) a (1+ a)))
 (setq el (cdr el) fl (cdr (assoc ' 8 (entget (car el)))) el (cdr el))
 (repeat (- a 2)
 (setq en (cdr (assoc ' 8 (entget (car el))))
  fl (strcat en "," fl) el (cdr el)) )
 (command "layer" "f" (eval fl) "")
 ));if es
(setvar "cmdecho" 1)
(princ))


(defun c:llk (/ es en el a fl)
 (setvar "cmdecho" 0)
 (princ "\n锁定选择对象所在图层.")
 (setq es (ssget))
 (if es (progn
 (setq a 0 en "" el nil fl nil)
 (while (/= en nil)
 (setq en (ssname es a) el (cons en el) a (1+ a)))
 (setq el (cdr el) fl (cdr (assoc ' 8 (entget (car el)))) el (cdr el))
 (repeat (- a 2)
 (setq en (cdr (assoc ' 8 (entget (car el))))
  fl (strcat en "," fl) el (cdr el)) )
 (command "layer" "lo" (eval fl) "")
 ));if es
 (setvar "cmdecho" 1)
(princ))



;----------------------------------------------
;采用有LYZCAD内部函数,请与LZYCAD配合使用       
;需要安装LZYCAD                                
;----------------------------------------------
(defun c:flk (/ ss ee num nam ent lay laylst lst fl n m)
 (setvar "cmdecho" 0)
 (prompt "\n反锁定图层,by LZYCAD")
 (setq ss (ssget))
 (if ss (progn
 (setq ee 0 num (sslength ss) laylst nil fl "")
 (while (< ee num)
  (setq nam (ssname ss ee)
        ent (entget nam)
        lay (cdr (assoc 8 ent))
        laylst (append laylst (list lay))
  );setq
  (setq ee (1+ ee))
 );while
 (setq laylst (LZY_del_lst_item laylst 0.01));函数为LYZCAD内部通用函数
 (setq lst (LZY_get_tblnext_tblname_list "layer") );函数为LYZCAD内部通用函数
 (setq m 0)
 (repeat (length laylst)
   (setq lst (vl-remove (nth m laylst) lst))
   (setq m (1+ m))
 );repeat
 (setq n 0)
 (repeat (length lst)
   (if (= n (1- (length lst)))
    (setq fl (strcat fl (nth n lst) ))
    (setq fl (strcat fl (nth n lst) ","))
   );if
  (setq n (1+ n))
 );repeat
 (if lst
  (command "layer" "lo" fl "")
  (prompt "\n***您选择了全部图层,反锁图层没有***")
 );if
 ));if es
 (setvar "cmdecho" 1)
(princ))



(defun c:llu (/ es en el a fl)
       (setvar "cmdecho" 0)
       (princ "\n解锁选择对象所在图层.")
       (setq es (ssget))
       (if es (progn
       (setq a 0 en "" el nil fl nil)
       (while (/= en nil)
       (setq en (ssname es a) el (cons en el) a (1+ a)))
       (setq el (cdr el) fl (cdr (assoc ' 8 (entget (car el)))) el (cdr el))
       (repeat (- a 2)
       (setq en (cdr (assoc ' 8 (entget (car el))))
       fl (strcat en "," fl) el (cdr el)) )
       (command "layer" "u" (eval fl) "")
       ));if
       (setvar "cmdecho" 1)
(princ))


(defun c:oa ()
  (setvar "cmdecho" 0)
     (prompt "\n图层全部开.")
       (command "layer" "on" "*" "")
   (setvar "cmdecho" 1)
(princ))


(defun c:ll ()
   (setvar "cmdecho" 0)
     (prompt "\n图层全部解锁.")
       (command "layer" "unlock" "*" "")
   (setvar "cmdecho" 1)
(princ))


(defun c:fl ()
   (setvar "cmdecho" 0)
     (prompt "\n图层全部解冻.")
        (command "layer" "thaw" "*" "")
    (setvar "cmdecho" 1)
 (princ))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -