youyou3810 发表于 2019-11-11 12:23:03

srt 值为啥不变

(defun c:fd()
(initget 7)
(setq p1 (getpoint "文字所在位置:"))
(initget 1 "1 2 3")
(setq bklx (getkword "\n选择:"))
(print bklx)
(if (= bhlx 1)(setq srt "L1零Y2半"))
(if (= bhlx 2)(setq srt "L1零P2全"))
(if (= bhlx 3)(setq srt "L1零Y2半Y3半"))
   (print srt)
   (entmake
(list
'(0 . "TEXT")
'(8 . "房屋附属")
(cons 10 p1)
(cons 1 srt)
'(40 . 0.5)
'(41 . 0.8)
)
)
)

Andyhon 发表于 2019-11-11 12:37:12

(if (= bhlx "1") ...

youyou3810 发表于 2019-11-11 12:56:23

没用测试过

Andyhon 发表于 2019-11-11 16:02:10

可否先注解每一段代码之本意为何?

曾否验证返回值映合本意!?

何处不合!? 有错误讯息吗?

wyl219 发表于 2019-11-12 14:36:26

initget函数后的getkword获得的数据是str,而(= bhlx 1)相当于(= "1" 1)自然是永远不为t了.

(if (= bhlx "1")(setq srt "L1零Y2半"))
(if (= bhlx "2")(setq srt "L1零P2全"))
(if (= bhlx "3")(setq srt "L1零Y2半Y3半"))
这样试试建议用cond改写一下
页: [1]
查看完整版本: srt 值为啥不变