马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×

- [FONT=courier new]
- ;|
- 命令:XDTB_LayerMerge
- 功能:图层合并,合并到目标层后将删除原来图层
- |;
- (defun c:XDTB_LayerMerge (/ e lyr e1 lyrl)
- (xdrx_begin)
- (setq clayer (getvar "clayer"))
- (while (setq e (xdrx_entsel "\r拾取要合并图层上的实体<结束>:"))
- (setq lyr (xdrx_getentdxf 8)
- e1 (xdrx_object_get "layer" lyr)
- tf (xdrx_getentdxf 70)
- )
- (if (not (member lyr lyrl))
- (cond
- ((= lyr "0")
- (prompt "\n不能合并"0"层!\n")
- )
- ((= clayer lyr)
- (prompt "\n不能合并当前层!\n")
- )
- ((= "DEFPOINTS" (strcase lyr))
- (prompt "\n不能合并尺寸定义点图层!\n")
- )
- ((= 16 (logand 16 tf))
- (prompt "\n不能合并外部引用图层!\n")
- )
- (t
- (setq lyrl (cons lyr lyrl))
- (prompt (strcat "\n选中了图层:"" (setq sLyrl
- (xdrx_String_Join
- (reverse lyrl)
- ","
- )
- )
- ""\n"
- )
- )
- (setq el (cons e1 el))
- (xdrx_Pickset_Redraw (ssget "x" (list (cons 8 lyr))))
- )
- )
- )
- )
- (if (and
- lyrl
- (setq sLyrl (xdrx_String_Join lyrl ",")
- ss (ssget "x" (list (cons 8 sLyrl)))
- )
- (setq e1 (xdrx_entsel "\n请拾取目标图层<退出>:"))
- (setq lyr (xdrx_getentdxf 8))
- (= 1 (xdrx_yesorno "\n合并图层将删除原图层定义,是否继续" 0))
- )
- (progn
- (xdrx_entity_setlayer ss lyr)
- (xdrx_PickSet_Redraw ss t)
- (foreach n lyrl
- (setq e1 (xdrx_object_get "layer" n))
- (if (not (xdrx_object_hasreferences e1))
- (xdrx_object_delete e1)
- )
- )
- (prompt (strcat "\n成功合并了图层: "" sLyrl "" 到目标层 "" lyr """))
- )
- )
- (xdrx_PickSet_Redraw ss t)
- (xdrx_end)
- (princ)
- )
- [/FONT]
|