peraperson 发表于 2013-12-13 09:48:13

请问如何在if语句中并列多个判断值

本帖最后由 peraperson 于 2013-12-13 10:14 编辑

比如我想在选择集中找到处于图层 a b c d 的图元
尝试了(if (= (cdr (assoc 8 endata)) "a,b,c,d")这种写法,结果不可行
请问应该怎么写
另外如何通过框选建立图层集代替 a b c..

自贡黄明儒 发表于 2013-12-13 09:53:12

(if (wcmatch (cdr (assoc 8 endata)) "a,b,c,d")行吗?

peraperson 发表于 2013-12-13 10:00:44

本帖最后由 peraperson 于 2013-12-13 10:03 编辑

自贡黄明儒 发表于 2013-12-13 09:53 static/image/common/back.gif
(if (wcmatch (cdr (assoc 8 endata)) "a,b,c,d")行吗?
非常谢谢黄兄
可以了 但是如果是要判断不等于呢?
还有 如果我不想通过写a b c d到lisp里(因为 a b c d等未定),希望通过框选图中多个元素得到相应的图层储存起来(即图层集)作为判断值 请问有什么方法呢
谢谢

llsheng_73 发表于 2013-12-13 10:02:40

(if (member (cdr (assoc 8 endata)) '("a" "b" "c" "d")))

ll_j 发表于 2013-12-13 10:05:19

(setq lan(cdr (assoc 8 endata)))
(if (or (= lan "a")
         (= lan "b")
....

或者:
(if (member lan '("a" "b" "c" "d"))
...

peraperson 发表于 2013-12-13 10:07:04

llsheng_73 发表于 2013-12-13 10:02 static/image/common/back.gif
(if (member (cdr (assoc 8 endata)) '("a" "b" "c" "d")))

谢谢 试了一下可行
如果我不想通过写a b c d到lisp里(因为 a b c d等未定),希望通过框选图中多个元素得到相应的图层储存起来(即图层集)作为判断值 请问有什么方法呢

peraperson 发表于 2013-12-13 10:08:16

ll_j 发表于 2013-12-13 10:05 static/image/common/back.gif
(setq lan(cdr (assoc 8 endata)))
(if (or (= lan "a")
         (= lan "b")


谢谢 请问如何通过框选建立图层集代替 a b c...

llsheng_73 发表于 2013-12-13 10:17:00

本帖最后由 llsheng_73 于 2013-12-13 10:22 编辑

peraperson 发表于 2013-12-13 10:08 http://bbs.mjtd.com/static/image/common/back.gif
谢谢 请问如何通过框选建立图层集代替 a b c...

;;'("a" "b" "c" "d")这一部分你可以自己定义一个图层名表
;;比如你选了一堆东东得到一个选择集S,通过SSLENGTH S得到它的长度n
(setq n(sslength s)m 0ls nil)
(while (< m n)(setq ly(cdr(assoc 8(entget(ssname s m))))
                  m(1+ m)
                  ls(if(member ly ls)ls(cons ly ls))))

(if (member (cdr (assoc 8 endata)) ls)
    (progn真 )
    (progn假)
)

ll_j 发表于 2013-12-13 10:25:43

peraperson 发表于 2013-12-13 10:08 static/image/common/back.gif
谢谢 请问如何通过框选建立图层集代替 a b c...

框选的时候需要用ssget的逻辑判断组码-4了,
(ssget (list '(-4 ."<or") '(8 . "a") ... '(-4 . "or>)))

Andyhon 发表于 2013-12-13 10:27:14

试试 (ssget '((8 . "")))
详情 得究 WcMatch 的帮助
页: [1] 2 3
查看完整版本: 请问如何在if语句中并列多个判断值