664571221 发表于 2018-10-6 15:05:49

如下程序,目的是删除除你好* 和我好*图层以外的所有图层上的图元,如何修改

本帖最后由 664571221 于 2018-10-7 10:52 编辑

如何在程序里面加上我好*的图层,删除除了你好*和我好*以外的所有图层上的图元
(defun c:xx ( / ss)
(if (or
      (setq ss (ssget "_P" '((8 . "~你好*"))))
      (ssget '((8 . "~你好*")))
      )
    (command ".erase" ss "")
)
)

@辰雨@ 发表于 2018-10-8 14:36:41


(setq ss (ssget    "x"   (list '(-4 . "<or")
                                      (cons 8 "你好")
                                        (cons 8 "我好")
                                         '(-4 . "or>")
                                 )
            )
);先选出“你好”和“我好”图层图元
(command ".select" "all" "r" ss "");再反选图元
(command ".erase""");最后删除

@辰雨@ 发表于 2020-10-23 16:32:37

@辰雨@ 发表于 2018-10-8 14:36
(setq ss (ssget    "x"   (list '(-4 . "")
                                 )
            )


使用编辑器查看下括号的中英文,全角的都改半角就行

664571221 发表于 2018-10-7 14:49:01

852456 发表于 2018-10-7 11:22
(defun c:xx ( / ss)   (if (setq ss (ssget "X" (list'(8 . "你好*,我好*"))))   (command ".erase" " ...

可以了少了个括号,谢谢你

Andyhon 发表于 2018-10-6 15:14:05

看看 wcmatch 函数有无您想要的组合

664571221 发表于 2018-10-6 15:17:46

Andyhon 发表于 2018-10-6 15:14
看看 wcmatch 函数有无您想要的组合

你好大神,我不太懂程序

时见申 发表于 2018-10-6 16:07:52

这还用写程序吗?CAD完全可以做到的,太依赖程序了吧

evayleung 发表于 2018-10-6 20:05:23

'((8 . "~你好*,~我好*"))试试这样可以么?

fangmin723 发表于 2018-10-7 10:33:24

本帖最后由 fangmin723 于 2018-10-7 10:40 编辑

删掉图层的话有点麻烦,首先要看看图层上是否有图元,如果有图元是删不掉的,删除图元的话很简单!

664571221 发表于 2018-10-7 10:39:46

fangmin723 发表于 2018-10-7 10:33
(defun c:xx ( / ss)
(if (setq ss (ssget "_P" (list'(8 . "~你好*,~我好*"))))
    (command ".era ...

你好,好像不行,吧全部图层都删除了

fangmin723 发表于 2018-10-7 10:40:39

664571221 发表于 2018-10-7 10:39
你好,好像不行,吧全部图层都删除了

删掉图层的话有点麻烦,首先要看看图层上是否有图元,如果有图元是删不掉的,删除图元的话很简单!

664571221 发表于 2018-10-7 10:44:51

fangmin723 发表于 2018-10-7 10:40
删掉图层的话有点麻烦,首先要看看图层上是否有图元,如果有图元是删不掉的,删除图元的话很简单!

嗯 就是删除图层上的图元,删除除了这两个图层以外的所有图元

664571221 发表于 2018-10-7 10:45:28

664571221 发表于 2018-10-7 10:44
嗯 就是删除图层上的图元,删除除了这两个图层以外的所有图元

不是吧图层删除,就是删除这两个图层外的图层上的图元
页: [1] 2
查看完整版本: 如下程序,目的是删除除你好* 和我好*图层以外的所有图层上的图元,如何修改