如何用SSGET(或其它VL函数)获取指定编组名的所有成员
请教大家一个问题如何用SSGET这个函数获取指定编组名的所有成员呢?
中文:谢谢
英文:3Q
韩文:汪汪
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 zark的微博 Ref:
http://4d-technologies.com/techcenter/index.htm
==> Groups Andyhon 发表于 2011-12-28 23:15 static/image/common/back.gif
Ref:
http://4d-technologies.com/techcenter/index.htm
==> Groups
哇,太感谢了。看到GROUPS了,谢谢。
美中不足,里面没有LI_ITEM函数,不过GOOGLE了一下
(defun LI_mitem (Code entl / Lst itm)
(setq Lst '())
(foreach itm entl
(if (= (car itm) Code)
(setq Lst (cons (cdr itm) Lst))
)
)
(if Lst
(reverse Lst)
nil
)
) 全英文看不懂啊! Andyhon 发表于 2011-12-28 23:15 static/image/common/back.gif
Ref:
http://4d-technologies.com/techcenter/index.htm
==> Groups
全英文看不懂啊! 本帖最后由 zark 于 2011-12-29 00:11 编辑
(defun ZA:GetEnsByGroup (GroupName / LI_mitem GR_GetAllGroups ENS ENSLST NLST TLST)
(defun LI_mitem (Code entl / Lst itm)
(setq Lst '())
(foreach itm entl
(if (= (car itm) Code)
(setq Lst (cons (cdr itm) Lst))
)
)
(if Lst (reverse Lst) nil)
)
(defun GR_GetAllGroups (/ grp GroupLst GroupEname GroupMembLst)
(setq grp (dictsearch (namedobjdict) "ACAD_GROUP")
GroupLst (LI_mitem 3 grp)
GroupEname (LI_mitem 350 grp)
GroupMembLst (mapcar '(lambda (x) (LI_mitem 340 (entget x))) GroupEname)
)
(if GroupLst (list GroupLst GroupEname GroupMembLst) nil)
)
(if (And
(= (type GroupName) 'STR)
(setq NLst (GR_GetAllGroups))
(setq TLst (member (strcase GroupName) (car NLst)))
)
(progn
(setq EnsLst (nth (- (length NLst) (length TLst)) (last NLst)))
(setq ens (ssadd))
(foreach x EnsLst
(ssadd x ens)
)
)
)
Ens
) 被CAOYIN两行解决,太牛了
(setq *groups* (vla-get-groups(vla-get-activedocument (vlax-get-acad-object))))
(setq EnsLst (vlax-for X (vla-item *groups* name) (setq lst (cons (vlax-vla-object->ename X) lst)))) ssget "X" "group" (8. 该如何编写呢,你上面发的都是单独的功能,没有使用说明 (command "_.Select" "G" groupname "")
(ssget "P")
页:
[1]