bpf19880323 发表于 2012-2-25 00:04:57

求解:保存上一次输入,是否叫“建立缺省输入函数”

    一个lisp程序很多时候要我们自己去输入”实数“,比如getreal函数来运行,打开cad运行了一次程序,第一次我输入“2”,那下次我只要敲下空格键不要在次输入了可以采用:(if(= en nil) (setq en 2)),这样来达到效果,可是我重打开cad到关闭cad不只要光输入一个实数“2”,比如说这次是2,下次也是2,再下次就是3,在下次也是3,这样的话要是整张图要输入的不只有一个实数(每个实数都用到很多次),就不能通过以上代码来实现了,问:有没有什么函数可以保存上一次的输入,直至改变它为止?我在网上搜了下貌似叫做“建立缺省函数输入”请问是这样的吗?假如是这样的话,怎么建立呢?请教各位高手!!!!!!

Gu_xl 发表于 2012-2-25 11:54:03

方法很多,比如注册表,图形词典,系统变量userr1系列,环境变量等待来保存上次数据!

bpf19880323 发表于 2012-2-25 12:53:29

Gu_xl 发表于 2012-2-25 11:54 static/image/common/back.gif
方法很多,比如注册表,图形词典,系统变量userr1系列,环境变量等待来保存上次数据!

我是新手,说的有点深奥啊 ,很谢谢你 我自己先研究下

duotu007 发表于 2012-2-25 16:51:38

简单点的话,程序自己有个配置文件,比 A.ini ,里面写好你的配置,可以分好类别,把它放在程序搜索目录里,每次程序运行先找配置文件的配置数据,没有找到就用程序内置的。

Gu_xl 发表于 2012-2-25 17:34:40


;;环境变量保存默认值示例
(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) ;_ 保存默认值
    )
)

bpf19880323 发表于 2012-2-25 20:01:49

Gu_xl 发表于 2012-2-25 17:34 static/image/common/back.gif


感谢Gu_xl和duotu007,谢谢两位,研究先

湜1只鱼 发表于 2012-3-21 16:06:41

多谢了哈呵呵

湜1只鱼 发表于 2012-3-21 16:10:51

那保存上一次输入的文字呢?
页: [1]
查看完整版本: 求解:保存上一次输入,是否叫“建立缺省输入函数”