本帖最后由 荒野孤行 于 2017-9-1 22:32 编辑
 - ;;;***改图层名 程序开始***
- (defun C:T1 ()
- (princ "\n功能:快速更改图层名。")
- (setvar "cmdecho" 0)
- (initget "D S")
- (if (not (setq kw
- (getkword
- "\n选择方式:[更改当前图层名(D)/更改所选图元所在图层的名称(S)]<D>"
- )
- )
- )
- (setq kw "D")
- )
- (if (= kw "D")
- (setq laynam (getvar "CLAYER")) ;获取当前图层
- (progn
- (setq ent (entsel "\n请选择需要修改图层名的图元对象:")
- entnam (car ent)
- entdat (entget entnam)
- )
- (setq laynam (cdr (assoc 8 entdat))) ;获取所选图元的图层名
- )
- )
- (setq newlaynam
- (getstring (strcat "\n请输入新的图层名:"))
- ) ;输入新的图层名
- (if (and (not (tblsearch "LAYER" newlaynam)) (/= laynam "0"))
- ;若新图层名与图档中的图层名未重名,且对象图层不是0图层时;那么执行更改图层名
- (command "rename" "la" laynam newlaynam)
- (progn (princ "\n所选当前层可能为0图层或者图层名与已有的图层名相重复,程序无效。\n")
- (exit)
- )
- )
- (princ)
- )
- ;;;***改图层名 程序结束***
|