明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3111|回复: 8

系统变量的设置,如何处理才最好?

[复制链接]
发表于 2012-11-28 09:17:28 | 显示全部楼层 |阅读模式
本帖最后由 【KAIXIN】 于 2012-11-28 09:39 编辑

大家都知道:
方法1: (command "osmode"  "0"  "pickbox"  "2")
方法2:(setvar "osmode" 0)  (setvar "pickbox" 2)

以上两种方法都可以设系统变量的值,
如果要设置很多个系统变量的值,那种最快呢?

可以用表函数 foreach 循环处理吗?

以下方法怎么不对?
(foreach lst '(("osmode" 0)
                  ("pickbox " 2)
                )
      (setvar (CAR lst)(CADR lst))
)





该贴已经同步到 【KAIXIN】的微博
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-11-28 09:30:54 | 显示全部楼层
(setvar (CAR(CAR lst)) (CADR(CAR LST)))
 楼主| 发表于 2012-11-28 09:38:25 | 显示全部楼层
wowan1314 发表于 2012-11-28 09:30
(setvar (CAR(CAR lst)) (CADR(CAR LST)))

对啊,我忘了是表中表了,

可是设系统变量还是不行?
发表于 2012-11-28 09:49:08 | 显示全部楼层
本帖最后由 ll_j 于 2012-11-28 09:50 编辑

  1. (foreach lst '(("osmode" 0)
  2.                   ("pickbox" 2)
  3.                 )
  4.       (setvar (eval (CAR lst))(CADR lst))
  5. )


我趋向于用setvar,不到不得已不使用command,这是因为使用了较多的command后,程序undo会变得复杂。

评分

参与人数 1明经币 +1 金钱 +30 收起 理由
【KAIXIN】 + 1 + 30 很给力!

查看全部评分

 楼主| 发表于 2012-11-28 09:54:40 | 显示全部楼层
ll_j 发表于 2012-11-28 09:49
我趋向于用setvar,不到不得已不使用command,这是因为使用了较多的command后,程序undo会变得复杂。

就大批量的设置系统变量值而已,比如:标注样式那样的,COMMAND 是不是要快些?
发表于 2012-11-28 10:07:44 | 显示全部楼层
没有测试过速度,应该不会有大差别吧,就个人的理解,setvar是直接设置系统变量,而command是使用命令的方式来设置系统变量,深层次地,还是要经过变量设置这个过程,所以command应该慢一些。
另外,有些系统变量是没有对应command命令的,所以,我认为还是使用setvar好一些。

早期写程序的时候,因为系统较慢,且内存很少,经常会纠结于怎样增加运行速度,怎样减少内存占用,我认为,现在完全不必要再纠缠于这些,更应该考虑的是,怎样使得程序更规范、更系统、更易读懂。

评分

参与人数 1明经币 +1 金钱 +15 收起 理由
【KAIXIN】 + 1 + 15 经验之谈

查看全部评分

发表于 2012-11-30 16:02:49 | 显示全部楼层
6楼的看法,完全赞同
command 相当于在命令行输入 命令 执行
setvar 是直接针对内部参数赋值,  应该是setvar 快一些。
我采用的 是setvar 进行初始参数设置。
发表于 2024-7-9 13:04:16 | 显示全部楼层
感谢作者的分享!
发表于 2024-7-9 13:18:13 | 显示全部楼层
感谢分享经验之谈。初学,command,直观点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:23 , Processed in 0.189287 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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