・ グループ名の有無  グループに属する図形名の取得
・ オブジェクトを選択してグループ名を取得
・ 選択セットをグループ化

グループ名の一覧を取得するには
(setq lst_groupe (dictsearch (namedobjdict) "ACAD_GROUP"))

グループ名 gn が存在するかどうかは
(member (cons 3 gn) lst_groupe)

グループに属するオブジェクトの図形名リスト
(setq g_en (cdr (assoc 350 (member (cons 3 gn) lst_groupe))))
(setq g_ed (entget g_en))
(while (setq en (assoc 340 g_ed))
  (setq lst_en (cons (cdr en) lst_en))
  (setq g_ed (cdr (member en g_ed)))
  )
(reverse lst_en)

オブジェクトを選択してのグループ名を取得
;サブルーチン 図形名から、その図形が所属するグループ名リストを返す;
;              引数       en:図形名                               ;
;              返値 lst_gname:グループ名リスト                     ;
;                             グループに属さない場合は nil を返す  ;
;              使用例:(setq ret (Jof_get_gname (car (entsel))))    ;
(defun Jof_get_gname ( en / ed gen lst_groupe lst_gname)
  (setq ed (entget en))
  (while (and (not gen) (setq ed (member (assoc 330 ed) ed)))
    (if (= "GROUP" (cdr (assoc 0 (entget (cdar ed)))))
      (setq gen (cdar ed))
      )
    (setq ed (cdr ed))
    )
  (if (and
gen
(setq lst_group (reverse (dictsearch (namedobjdict) "ACAD_GROUP")))
)
    (while (setq lst_group (member (assoc 350 lst_group) lst_group))
      (if (member (cons 340 en) (entget (cdar lst_group)))
(setq lst_gname (cons (cdadr lst_group) lst_gname))
)
      (setq lst_group (cdr lst_group))
      )
    )
  lst_gname
  )
 

選択セットをグループ化
;***********************************************************************************************;
  ;サブルーチン(en以降のエンティティーをグループ化)  ;
  (defun Jos_make_group ( en / lst_groupe hn gn ss )
    (setq lst_groupe (dictsearch (namedobjdict) "ACAD_GROUP"))
    (setq hn (cdr (assoc 5 (entget en))))
    (setq gn hn)
    (setq n 1)
    (while (member (cons 3 gn) lst_groupe);グループ名が重複しないように;
      (setq gn (strcat hn "-" (itoa n)))
      (setq n (1+ n))
      )
    (setq ss (ssadd))
    (while en
      (ssadd en ss)
      (setq en (entnext en))
      )
    (command "-GROUP" "c" gn "" ss "")
    (setq ss nil)
    )