朽木大师 发表于 2013-8-29 15:31:32

在已选中的图元中删除某一个,怎么处理

如选通过ssget 选择了十个图元

(setq ObjSet (ssget))
(setq data(entsel))
........

增加判断,如data已在objset中,则将data从objset中删掉,如不在,则objset不变

这个代码怎么写啊

newbuser 发表于 2013-8-29 15:36:35

(defun c:test ()
(setq ss1 nil ss2 nil)
(if (setq ss1 (ssget '((0 . "LINE,circle"))))
    (foreach itm (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))
      (if (= (cdr (assoc 0 (entget itm))) "CIRCLE")
      (progn
          (or ss2 (setq ss2 (ssadd)))
          (ssadd itm ss2)
          (ssdel itm ss1)
      )
      )
    )
)
)


这是nonsmall阁下的同时获取两种选择集的范本,希望对您有所帮助

ll_j 发表于 2013-8-29 15:46:54

看看函数ssdel。

ahwx0814 发表于 2013-8-29 15:48:12

不管在不在选择集里面,都可以用ssdel 删除
(setq ObjSet (ssget))
(setq data (entsel))
(if data (ssdel (car data) ObjSet ))
(sssetfirst nil ObjSet);;测试

朽木大师 发表于 2013-8-29 16:46:53

感谢,感谢,已了解
页: [1]
查看完整版本: 在已选中的图元中删除某一个,怎么处理