您的位置:网站首页 > CAD教程 > 常见问题

cad中分解编组 group,分解所有编组包括无名组,编程解决

时间:2011-02-10 08:22:41 来源:未知

有时候在CAD中遇到炸不开的组,需要分解,请输入group命令,选择组,点击分解即可,但大量的组的话,需要编程解决。

代码:
(defun Example_Groups()
;;; 这个范例找出当前的Groups集合
;;; 接着将新的群组添加到该集合
  (VL-LOAD-COM)
  (setq AcadObject(vlax-get-acad-object)
        AcadDocument(vla-get-ActiveDocument Acadobject)
        mSpace(vla-get-ModelSpace AcadDocument)
  )
  (setq GroupColl(vla-get-Groups AcadDocument))
)
;;; 分解所有组,假如想单独分解无名组,需另外判别f1是否以*开头,然后依次增加i

(defun c:qqq ()
  (example_groups)
  (setq q1 (vla-get-count groupcoll))
  (setq i 0)
  (repeat q1
    (setq a1 (vla-item groupcoll i))
    (setq f1 (vla-get-name a1))
    (command "_.group" "e" f1)
  )
)


;;; 只是分解无名组
(defun c:qq ()
  (example_groups)
  (setq q1 (vla-get-count groupcoll))
  (setq i 0)
  (repeat q1
    (setq a1 (vla-item groupcoll i))
    (setq f1 (vla-get-name a1))
    (if (= (substr f1 1 1) "*")
      (command "_.group" "e" f1)
      (setq i (1  i))
    )
  )
)