明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3128|回复: 16

[讨论] 请问如何使用 if 判断 表

[复制链接]
发表于 2018-9-4 17:02 | 显示全部楼层 |阅读模式
(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 | 显示全部楼层
本帖最后由 张大锤 于 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 注記#)

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

我突然想到了:
'((-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 | 显示全部楼层
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 | 显示全部楼层
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....
发表于 2018-9-4 17:20 | 显示全部楼层
先试试
(setq AA (SSGET ":s" '((0 . "INSERT")(2 . "注記#"))))
(setq AA (SSGET '((0 . "INSERT")(2 . "注記#"))))
发表于 2018-9-5 08:22 | 显示全部楼层
未窥全象
再猜是调用 'member
发表于 2018-9-5 08:58 | 显示全部楼层
  1. (if (= AA0 "INSERT")
  2.   (if (member AA2 KMZ)
  3.     (alert "标注")
  4.     (alert "其它块")
  5.   )
  6. )
 楼主| 发表于 2018-9-5 10:48 | 显示全部楼层

3Q 谢谢你 和Andyhon 说的一样 需要用member函数 很感谢 达到要的效果了 学习了
发表于 2018-9-5 11:26 | 显示全部楼层
楼主代码里 IF 中的 AND 是多余的
 楼主| 发表于 2018-9-5 13:03 | 显示全部楼层
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 里面 要怎么才使用* # 呢?
发表于 2018-9-5 14:29 | 显示全部楼层
本帖最后由 Andyhon 于 2018-9-5 14:31 编辑

...未窥全像...

您想从什么转成什么
没能从您的示例中理解过来
能另加多些示例吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 07:30 , Processed in 2.394148 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表