本帖最后由 作者 于 2010-9-18 15:44:46 编辑
;;;师兄 QQ 361865648 版本20100918
;;;师兄 QQ 361865648 版本20100918
(defun c:TEST() ;;;用新的组码值替换原值 (defun dxfupd (ent dxfcode newval / elst newlst) (setq elst (entget ent)) (setq newlst (append elst (list (cons dxfcode newval)))) (entmod newlst) (entupd ent) )
;;;将实体移动到0层,并保持实体的线型和颜色不变 (defun updcolandlt (ent / entlst layername laylst laycol ltype) (setq entlst (entget ent)) (setq layername (cdr (assoc 8 entlst))) (setq laylst (tblsearch "layer" layername)) (setq laycol (cdr (assoc 62 laylst))) (setq ltype (cdr (assoc 6 laylst))) (if (not (assoc 6 entlst)) (dxfupd ent 6 ltype) )
(if (assoc 62 entlst) (dxfupd ent 8 "0") (progn (dxfupd ent 62 laycol) ) ) )
(setq entss (ssget "x" '((0 . "~insert")))) ;_非块 (if (not entss) (vl-exit-with-value 0))
(setq i 0) (repeat (sslength entss) (setq curent (ssname entss i)) (setq i (1+ i)) (updcolandlt curent) (dxfupd curent 8 "0") )
(setq blkss (ssget "x" '((0 . "insert")))) (if (not blkss) (vl-exit-with-value 1)) (setq i 0) (repeat (sslength blkss) (setq curblk (ssname blkss i)) (setq i (1+ i)) (setq blklst (entget curblk)) (setq blkname (cdr (assoc 2 blklst))) ;_块名 (setq blkdef (tblsearch "block" blkname)) ;_块定义 (setq einblk (cdr (assoc -2 blkdef))) ;_块中第一个图元 (updcolandlt einblk) (dxfupd einblk 8 "0") (while (and (setq einblk (entnext einblk)) (setq elst (entget einblk))
(/= (cdr (assoc 0 elst)) "SEQEND") )
(updcolandlt einblk) (dxfupd einblk 8 "0") ) (dxfupd curblk 8 "0") )
;;;删除其余的层 (setq layer(tblnext "layer" t)) (setq layname(cdr(assoc 2 layer)));_层名 ;;; (setq layent(tblobjname "layer" layername));_第一个层 (setq laylst(list layname)) (while (setq layer(tblnext "layer")) (setq layname(cdr(assoc 2 layer))) (setq laylst(cons layname laylst)) )
(mapcar '(lambda (x) (if (/= "0" x) (progn (setq err(vl-catch-all-apply 'vla-delete (list (vlax-ename->vla-object (tblobjname "layer" x))))) (if (VL-CATCH-ALL-ERROR-P err)(princ (strcat "\n不能删除 " x " 层")) (princ (strcat "\n " x " 层已成功删除!")))
)) (princ) )
laylst)
(princ) )
命令名: test
花了二十分钟简单的写了一下,程序没有防错功能,自已完善一下,支持单层图块 |