明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 915|回复: 5

[提问] 让全局变量释放为 nil

[复制链接]
发表于 2017-12-11 20:24:19 | 显示全部楼层 |阅读模式
本帖最后由 千秋雪 于 2017-12-11 20:24 编辑

(defun c:tt (/ a)
  (if (= b nil) (setq b 100))
  (setq a (getreal (strcat "\n a值<" b ">:")))
  (if (= a nil) (setq a b))

  (setq b a)  ;将 a值赋予 b,保留状态,方便使用

  (if (= a 0) (setq b nil))  ;有时想将全局变量 b释放掉,复归为  nil,此时a以值 输入为0为条件,不知这样可不可行?
  (princ)
)

另外,非常奇怪,这段代码第一行就出错 ,参数类型错误: stringp 1,不知问题出在那里?

发表于 2017-12-11 20:30:32 | 显示全部楼层
应该是第二行出错。
(strcat "\n a值<" b ">:"),第一行b=100是数字,strcat不行的。
发表于 2017-12-11 20:30:45 | 显示全部楼层
b可能是nil或浮点数
第3行应改为
  1. (setq a (getreal (strcat "\n a值<" (rtos  b) ">:")))
 楼主| 发表于 2017-12-11 21:35:53 | 显示全部楼层
多谢楼上两位指正
发表于 2018-2-6 10:51:33 | 显示全部楼层
(setq a (getreal (strcat "\n a值<" (VL-PRINC-TO-STRING b) ">:")))

VL-PRINC-TO-STRING 可以无视变量有没值和它的类型
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 19:29 , Processed in 0.161147 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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