马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[XML] 纯文本查看 复制代码
(defun c:b2r (/ _ss2list vk_creategroup ce h ss ss2 qa)
(defun vk_creategroup (name entslist selflag / groupdic entname)
(if (and entslist
(setq groupdic (cdadr (member (cons 3 "ACAD_GROUP") (entget (namedobjdict)))))
;; RJP changed vl-position to member since OP needs vanilla lisp
(not (and name (member (cons 3 name) (entget groupdic))))
(setq entname (entmakex (append (list (cons 0 "GROUP")
(cons 100 "AcDbGroup")
(cons 300 "")
(cons 70
(if name
0
1
)
)
(cons 71 selflag)
)
(mapcar (function (lambda (e) (cons 340 e))) entslist)
)
)
)
(entmod (append (entget groupdic)
(list (cons 3
(if (null name)
"*"
name
)
)
(cons 350 entname)
)
)
)
)
(if name
name
(cdadr (member (cons 350 entname) (reverse (entget groupdic))))
)
)
)
(defun _ss2list (ss / n out)
(if (= (type ss) 'pickset)
(repeat (setq n (sslength ss)) (setq out (cons (ssname ss (setq n (1- n))) out)))
)
)
(if (setq ss (_ss2list (ssget ":L" '((0 . "insert")))))
(progn (setq ce (getvar 'cmdecho))
(setq qa (getvar 'qaflags))
(setvar 'cmdecho 0)
(setvar 'qaflags 0)
(foreach e ss
(setq h (cdr (assoc 5 (entget e))))
(command "_.explode" e)
(if (setq ss2 (_ss2list (ssget "_P")))
(vk_creategroup h ss2 1)
)
)
(setvar 'cmdecho ce)
(setvar 'qaflags qa)
)
)
(princ)
) |