求解:保存上一次输入,是否叫“建立缺省输入函数”
一个lisp程序很多时候要我们自己去输入”实数“,比如getreal函数来运行,打开cad运行了一次程序,第一次我输入“2”,那下次我只要敲下空格键不要在次输入了可以采用:(if(= en nil) (setq en 2)),这样来达到效果,可是我重打开cad到关闭cad不只要光输入一个实数“2”,比如说这次是2,下次也是2,再下次就是3,在下次也是3,这样的话要是整张图要输入的不只有一个实数(每个实数都用到很多次),就不能通过以上代码来实现了,问:有没有什么函数可以保存上一次的输入,直至改变它为止?我在网上搜了下貌似叫做“建立缺省函数输入”请问是这样的吗?假如是这样的话,怎么建立呢?请教各位高手!!!!!!方法很多,比如注册表,图形词典,系统变量userr1系列,环境变量等待来保存上次数据! Gu_xl 发表于 2012-2-25 11:54 static/image/common/back.gif
方法很多,比如注册表,图形词典,系统变量userr1系列,环境变量等待来保存上次数据!
我是新手,说的有点深奥啊 ,很谢谢你 我自己先研究下 简单点的话,程序自己有个配置文件,比 A.ini ,里面写好你的配置,可以分好类别,把它放在程序搜索目录里,每次程序运行先找配置文件的配置数据,没有找到就用程序内置的。
;;环境变量保存默认值示例
(defun c:tt1 ()
(setq #height (GetEnv "MyApp\\Height")) ;_ 读取默认值
(if #height
(setq Height (getreal (strcat "\n输入字高<" #height ">")))
(setq #height "2.0"
Height (getreal (strcat "\n输入字高<" #height ">"))
)
)
(if (null Height)
(setq Height (atof #height))
(SetEnv "MyApp\\Height" (rtos Height 2 2)) ;_ 保存默认值
)
)
;;系统变量保存默认值示例
(defun c:tt2 ()
(setq #height (getvar 'userr1)) ;_ 读取默认值
(if #height
(setq Height (getreal (strcat "\n输入字高<" (rtos #height 2 2)">")))
(setq #height 2.0
Height (getreal (strcat "\n输入字高<" (rtos #height 2 2) ">"))
)
)
(if (null Height)
(setq Height #height)
(setvar 'userr1 Height) ;_ 保存默认值
)
)
Gu_xl 发表于 2012-2-25 17:34 static/image/common/back.gif
感谢Gu_xl和duotu007,谢谢两位,研究先 多谢了哈呵呵 那保存上一次输入的文字呢?
页:
[1]