张大锤 发表于 2018-6-12 16:30:56

求教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:40:32

本帖最后由 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)
))

张大锤 发表于 2018-6-12 16:58:22

Andyhon 发表于 2018-6-12 16:40
试试 函数 member

请问一下 member 书写格式要怎么写 这个函数没有用过,,,
(member p62 (30 121))
这样写吗?

Andyhon 发表于 2018-6-12 17:10:35

如用 member
(setq clrss (Cons clra clrss))
(if (member clrb clrss)
...
)

张大锤 发表于 2018-6-12 18:42:09

Andyhon 发表于 2018-6-12 17:10
如用 member
(setq clrss (Cons clra clrss))
(if (member clrb clrss)


感谢感谢 上边的那个已经解决了 我的问题
下边的 我研究一下 感谢感谢

(ssname   我只写过 0或者n 没有写过 1 原来还可以这样

ysq101 发表于 2018-6-17 22:46:19

发现楼主非常好学...
同为新手的我   建议你看一下我发的主题贴(不要再追问我了,因为太久没玩LISP 我也忘光了)

张大锤 发表于 2018-6-18 09:10:37

ysq101 发表于 2018-6-17 22:46
发现楼主非常好学...
同为新手的我   建议你看一下我发的主题贴(不要再追问我了,因为太久没玩LISP 我也忘 ...

3Q 感谢 现在去看看
页: [1]
查看完整版本: 求教IF判断的问题 如何判断2根不一样的线