求教IF判断的问题 如何判断2根不一样的线
本帖最后由 张大锤 于 2018-6-12 16:34 编辑(setq sx_1 (getpoint))(setq sx_2 (getcorner sx_1 ))
(setq sx_3 (ssget "c" sx_1 sx_2 '((-4 . "<AND")(0 . "LWPOLYLINE")(-4 . "<or")(62 . 121)(62 . 30)(-4 . "or>")(-4 ."AND>")))) ;选择pl线 121和30颜色的
(setq sx_4 (sslength sx_3)) ;判断选择到几根
(setq n 0)
(repeat (sslength sx_3)
(setq ent (ssname sx_3 n))
(setq en (entget ent))
(setq p62 (cdr(assoc 62 en )))
(if (= sx_4 2) ;判断选择到了2根
(progn
2根线 颜色都是 30 = (alert "30线*2")
2根线 颜色都是121 = (alert "121线*2 ")
如果2根线 1根30 1根121 提示(alert "30+121 各1根")
请问各位这个地方 要怎么判断? 我现在只能判断出1跟 不能判断出2根
))
本帖最后由 Andyhon 于 2018-6-12 16:58 编辑
(cond
((= sx_4 2)
(setq clrA (cdr (assoc 62 (entget (ssname sx_3 0))))
clrB (cdr (assoc 62 (entget (ssname sx_3 1))))
)
(= ClrA ClrB)
))
Andyhon 发表于 2018-6-12 16:40
试试 函数 member
请问一下 member 书写格式要怎么写 这个函数没有用过,,,
(member p62 (30 121))
这样写吗? 如用 member
(setq clrss (Cons clra clrss))
(if (member clrb clrss)
...
) Andyhon 发表于 2018-6-12 17:10
如用 member
(setq clrss (Cons clra clrss))
(if (member clrb clrss)
感谢感谢 上边的那个已经解决了 我的问题
下边的 我研究一下 感谢感谢
(ssname 我只写过 0或者n 没有写过 1 原来还可以这样 发现楼主非常好学...
同为新手的我 建议你看一下我发的主题贴(不要再追问我了,因为太久没玩LISP 我也忘光了) ysq101 发表于 2018-6-17 22:46
发现楼主非常好学...
同为新手的我 建议你看一下我发的主题贴(不要再追问我了,因为太久没玩LISP 我也忘 ...
3Q 感谢 现在去看看
页:
[1]