;;;;“c:”后数字即为命令,“change_layer”后引号内字母即为图层,一个命令对应一个图层。 ;;;;执行命令时,选中实体则实体变到设定的图层;未选中实体时则当前层变为设定的图层。 (defun c:10 (/) (change_layer "AXIS_TEXT")) (defun c:11 (/) (change_layer "AXIS")) (defun c:12 (/) (change_layer "DOTE")) (defun c:13 (/) (change_layer "TEXT")) (defun c:14 (/) (change_layer "REIN")) (defun c:15 (/) (change_layer "DEFPOINTS")) (defun c:16 (/) (change_layer "NOTE")) (defun c:21 (/) (change_layer "ZH")) (defun c:22 (/) (change_layer "DB")) (defun c:23 (/) (change_layer "DBZ")) (defun c:24 (/) (change_layer "JK")) (defun c:25 (/) (change_layer "HJD")) (defun c:26 (/) (change_layer "DJ")) (defun c:27 (/) (change_layer "DJZ")) (defun c:28 (/) (change_layer "XJ")) (defun c:31 (/) (change_layer "COLU")) (defun c:311 (/) (change_layer "COLU1")) (defun c:32 (/) (change_layer "HATCH")) (defun c:33 (/) (change_layer "WALL")) (defun c:34 (/) (change_layer "BEAM")) (defun c:35 (/) (change_layer "LDM")) (defun c:36 (/) (change_layer "DIM")) (defun c:37 (/) (change_layer "GZ")) (defun c:38 (/) (change_layer "DK")) (defun c:39 (/) (change_layer "POU")) (defun c:40 (/) (change_layer "STAIR")) (defun c:41 (/) (change_layer "DBDJ")) (defun c:42 (/) (change_layer "DBMJ")) (defun c:43 (/) (change_layer "BDJ")) (defun c:44 (/) (change_layer "BMJ")) (defun c:45 (/) (change_layer "HLJ")) (defun c:46 (/) (change_layer "ZLJ")) (defun c:47 (/) (change_layer "ZDM")) (defun c:48 (/) (change_layer "ZQJ")) ;;;;;;;;;;;;改图层函数 (defun change_layer (layer / object) (if layer (progn (if (= (tblsearch "layer" layer) nil) (progn (princ "\n 图层不存在,正在创建...") (command "-layer" "n" layer "")) ) (if (= 4 (cdr (assoc 70 (tblsearch "layer" layer)))) (alert (strcat "\n选定图层" "\"" layer "\"已被锁定,程序未能执行。")) (progn (princ (strcat "\n选定图层为:" "\"" layer "\"。直接按确定键将设此图层为当前图层。")) (setq object (ssget)) (if (/= object nil) (COMMAND "CHANGE" object "" "P" "LA" layer "") (if (= 1 (cdr (assoc 70 (tblsearch "layer" layer)))) (alert (strcat "\n选定图层" "\"" layer "\"已被冻结,程序未能执行。")) (setvar "CLAYER" layer) ) ) ) ) ) ) (princ) )