|
做了隱藏和顯示兩個命令.我編寫的簡單,功能不太全.你看著用吧復(fù)制下列代碼,創(chuàng)建acad.lsp.放在在CAD安裝目錄第一層文件夾下,可自動加載啊:;在命令行輸入該命令hidsel,然后選擇圖元,結(jié)果沒選的被改到隱藏層(defun C:hidsel(/ all;所有圖元 xs;非隱藏圖元 yc;隱藏圖元 n nam dat) (setvar "CMDECHO" 0);關(guān)閉命令回顯 (command "_layer" "n" "臨時隱藏圖層" "")(command "_layer" "off" "臨時隱藏圖層" "") (setvar "CMDECHO" 1) (setq all (ssget "x"));選擇所有 (setq xs (ssget));選擇非隱藏圖元 (setq n -1 yc all);運算隱藏圖元 (repeat (sslength xs) (setq n (+ n 1)) (setq nam (ssname xs n));返回第N個圖元的名稱 (setq yc (ssdel nam yc)) ) (setq N -1);隱藏 (repeat (sslength yc) (setq N (+ n 1)) (setq nam (ssname yc n));返回第N個圖元的名稱 (setq dat (entget nam));DAT儲存第N個圖元數(shù)據(jù) (entmod (subst (cons 8 "臨時隱藏圖層") (Assoc 8 dat) dat));將yc集合隱藏 ) (setq all nil xs nil yc nil n nil nam nil dat nil);清除數(shù)據(jù)占用內(nèi)存 (princ));顯示所有圖元(defun c:shoal(/ all n nam dat) (setq all (ssget "x"));選擇所有 (setq N -1);隱藏 (repeat (sslength all) (setq N (+ n 1)) (setq nam (ssname all n));返回第N個圖元的名稱 (setq dat (entget nam));DAT儲存第N個圖元數(shù)據(jù) (entmod (subst (cons 8 "0") (Assoc 8 dat) dat));將yc集合隱藏 ) (setvar "CMDECHO" 0) (COMMAND "PURGE" "LA" "臨時隱藏圖層" "Y" "Y" "") (setvar "CMDECHO" 1) (setq all nil n nil nam nil dat nil);清除數(shù)據(jù)占用內(nèi)存 (princ) ) |
|