明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1547|回复: 4

如何让自定义变量保存上一个设定值?

[复制链接]
发表于 2007-4-7 12:25 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-4-7 12:29:52 编辑

如何让自定义变量保存上一个设定值?

做了一个LISP程序,其中有个变量老要重复设置,请教各位高手,如何让自定义变量保存上一个设定值?就像CAD的fillet命令一样,半径和模式在下一次用到时,都继承了上一个设定值!不用再去设置!

当前模式: 模式 = 修剪,半径 = 120.3000
选择第一个对象或 [多段线(P)/半径(R)/修剪(T)]:

谢谢!!

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-4-7 15:03 | 显示全部楼层

把你需要修改的系统变量保存到文本文件,下次打开文件时加载
------------------------------------------------------
文本文件示例:
"plinewid" 0
"skpoly"  1
"tspacefac" 0.8
"whiparc"  1
"filletrad" 0
"savetime" 10
"acadlspasdoc" 1
-----------------------------------------------------------------
;;--------------------------------------
;;临时写了一个,请测试:

(defun set_sysvar (fn / rel lst)
  (setq fn (findfile fn))
  (if fn
    (progn
      (setq fn (open fn "r"))
      (while (setq rel (read-line fn))
        (setq rel (read (strcat "(setvar " rel ")")))
        (setq lst (append lst (list rel)))
      )
      (close fn)
      (mapcar '(lambda (x) (vl-catch-all-apply 'eval (list x)))
              lst
      )
    )
  )
)

;;;假如文件名为 c:\sysvars.txt, 测试:
(set_sysvar "c:\\sysvars.txt")

发表于 2007-4-7 15:17 | 显示全部楼层
本帖最后由 作者 于 2007-4-7 15:20:08 编辑

不好意思,理解错了。

不知道有没有更好的方法。我的方法:

1.注册表,缺点是只能保存字符串,数字等数据

2.CAD提供的 USERI1-5 USERR1-5 USERS1-5 共15个用户系统变量

发表于 2007-4-8 18:01 | 显示全部楼层
使用黑板空间变量
发表于 2007-5-23 17:38 | 显示全部楼层
若在一个图形中的话,最好使用全局变量解决它。
这也符合作图习惯。
一个例子见:http://p4.xdcad.net/forum/showthread.php?s=&postid=3106068#post3106068  第6楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 06:31 , Processed in 0.169565 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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