张大锤 发表于 2018-9-4 17:02:16

请问如何使用 if 判断 表

(setq AA (SSGET ":s" '((0 . "INSERT"))))
(setq AA2 (cdr (assoc 2 (entget (ssname AA 0)))))
(if (and (= AA0 "INSERT")(= AA2 "注記6"))
(alert "标注")
)
(if (and (= AA0 "INSERT")(/= AA2 "注記6"))
(alert "其他块")
)
-------------------------------------------------华丽的分割线
因为AA2 块的名字很多 注記1-50   1,2,5 很麻烦 每次添加呢 还需要改2次
可不可以:
(setq KMZ (list "注記1" "注記2" "注記3" "注記4" "注記5" "注記6"))
请问KMZ 这里要怎么写?


(if (and (= AA0 "INSERT")(= AA2 KMZ))
(alert "标注")
)
(if (and (= AA0 "INSERT")(/= AA2 KMZ))
(alert "其他块")
)










张大锤 发表于 2018-9-5 15:37:32

本帖最后由 张大锤 于 2018-9-5 15:39 编辑

Andyhon 发表于 2018-9-5 15:27
(setq AA (SSGET '((0 . "INSERT")(2 . "注記#"))))
(setq BB (SSGET '((0 . "INSERT")(2 . "立柱#"))))
...
讨论一下嘛

(setq AA (SSGET '((0 . "INSERT")(2 . "注記#"))))
(setq BB (SSGET '((0 . "INSERT")(2 . "立柱#"))))
这俩个需要选择2次
(setq AA (SSGET '((0 . "INSERT")(2 . "注記#,立柱#"))))
可以这样读 2 if (= 2 注記#)

这个我明白 但是还想探讨一下 表里如何使用符号这块:hug: 总之还是很谢谢长老了 之前的问题是主要的问题 已经帮我很大忙了

我突然想到了:
'((-4 . "<OR")(-4 . "<AND")(0 . "LINE")(8 . "*表記")(-4 . "AND>")(-4 . "<AND")(0 . "INSERT")(2 . "dsd*,cu*")(-4 . "AND>")(-4 . "OR>"))))




张大锤 发表于 2018-9-5 08:14:23

Andyhon 发表于 2018-9-4 17:20
先试试
(setq AA (SSGET ":s" '((0 . "INSERT")(2 . "注記#"))))
(setq AA (SSGET '((0 . "INSERT")(2 ....

辛苦了 谢谢你
* # 这些 我明白 汉字有很多种不光是这一种
这个想法主要是 因为lisp 写的比较长
这俩个地方相隔很远 每次添加或调整 找到一次很麻烦
昨天想如果在上边 用一个这样的方式 就可以修改起来比较方便
上边一改 下边2个地方就都变了

张大锤 发表于 2018-9-5 14:57:55

Andyhon 发表于 2018-9-5 14:29
...未窥全像...

您想从什么转成什么


好滴
比如:(setq KMZ (list "注記1" "注記2" "注記3" "注記4" "注記5" "注記6"))

是否可以:(setq KMZ (list "注記*" "立柱*" ))
"注記*" 包含 :注記1 注記2 注記3 注記4.....
"立柱*" 包含: 立柱1 立柱2 立柱3 立柱4....

Andyhon 发表于 2018-9-4 17:20:23

先试试
(setq AA (SSGET ":s" '((0 . "INSERT")(2 . "注記#"))))
(setq AA (SSGET '((0 . "INSERT")(2 . "注記#"))))

Andyhon 发表于 2018-9-5 08:22:23

未窥全象
再猜是调用 'member

vectra 发表于 2018-9-5 08:58:16

(if (= AA0 "INSERT")
(if (member AA2 KMZ)
    (alert "标注")
    (alert "其它块")
)
)

张大锤 发表于 2018-9-5 10:48:02

vectra 发表于 2018-9-5 08:58


3Q 谢谢你 和Andyhon 说的一样 需要用member函数 很感谢 达到要的效果了:victory: 学习了

masterlong 发表于 2018-9-5 11:26:51

楼主代码里 IF 中的 AND 是多余的

张大锤 发表于 2018-9-5 13:03:40

Andyhon 发表于 2018-9-4 17:20
先试试
(setq AA (SSGET ":s" '((0 . "INSERT")(2 . "注記#"))))
(setq AA (SSGET '((0 . "INSERT")(2 ....

辛苦啦

在选择时ssget 可以使用* # 来代替
(setq KMZ (list "注記1" "注記2" "注記3" "注記4" "注記5" "注記6"))
在list 里面 要怎么才使用* # 呢?:loveliness:

Andyhon 发表于 2018-9-5 14:29:22

本帖最后由 Andyhon 于 2018-9-5 14:31 编辑

...未窥全像...

您想从什么转成什么
没能从您的示例中理解过来
能另加多些示例吗?
页: [1] 2
查看完整版本: 请问如何使用 if 判断 表