NCF参数化建筑论坛

标题: python怎样记忆输入变量? [打印本页]

作者: 落寞醉    时间: 2017-12-7 11:56
标题: python怎样记忆输入变量?
一些脚本要重复调用多次,一般来说,有些输入的参数,和上一次是一样的。rs.getreal()的第2个参数是是默认值,但不知怎样把上次的值保存下来,传入到这个默认值中?   在cad的lisp中,可以用全局变量,黑板空间变量,或者注册表。  本人python新手,不知怎样保存python的变量值。   另外,cad lisp可以把自定义函数作为命令来运行。rhino除了工具栏按钮运行python外,还有其它的方法没?
作者: wangjunxiong    时间: 2017-12-7 17:01
需要ini文件或者xml文件。也就是,每次操作的参数数据都是从外文件读入的,如果修改了参数数据则发生保存,这样是可以实现的。其实rhino中的数据保存就是用xml文件实现的。
这个实现比较麻烦,我只能给你思路:
创建一个xml文件,然后按一定的格式写入相应数据。下图是我个人的一个xmlconfig文件。每个功能的参数对应相应的值。[attach]48774[/attach]

编程中,代码读取相应位置的值,把值赋予给相应的参数。我用的是c#,但python肯定有相应的办法的。
[attach]48775[/attach]


最后,当我们更改参数时,把更改后的值保存给xml文件对应的值的位置。
[attach]48776[/attach]


以下是我做的功能的演示:
运行这个命令时,默认值为2.5
[attach]48777[/attach]

把值更改为1.5
[attach]48778[/attach]

再次运行这个命令,这个值就变成了1.5
[attach]48779[/attach]

即使关闭rhino,重新启动,运行这个命令,默认值还是1.5




作者: 落寞醉    时间: 2017-12-12 13:41
wangjunxiong 发表于 2017-12-7 17:01
需要ini文件或者xml文件。也就是,每次操作的参数数据都是从外文件读入的,如果修改了参数数据则发生保存, ...

谢谢。 这个做法略有些复杂。   rhino提供了两种自定义数据。 文档数据和对象数据,功能和cad lisp中的扩展数据相似。  这种情形比较适合文档数据,数据保存在图形文件中,也可以保存在外部.ini文件中。   这样每次运行,都读取文档中对应数据,还算适用。  当然,如果有类似lisp那样的全局变量的话,就更简单了。    只用设置一个就可以了。 但python的全局变量好像不是这样用的。




欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2