1

我正在尝试使用 Amira 编写一些简单的脚本,它使用 TCL,但我不能保证它是标准版本。我想从一个对象中读取一个属性并将其分配给另一个对象。

在命令窗口中,过程如下:

Image1 获取转换

0.1 0.2 0.3 0 0 0 0 0 0 1

Image2 设置变换 0.1 0.2 0.3 0 0 0 0 0 0 1

我想在不手动复制粘贴 getTransform 的结果的情况下做同样的事情

以下不起作用(就是说 setTransform 是在没有参数的情况下执行的)

Image2 setTransform [Image1 getTransform] 

或者

set myT=Image1 getTransform
Image2 setTransform $myT 

我确定我只需要适当地使用 $ [ { ,但到目前为止我尝试过的并没有给出任何结果

4

1 回答 1

5

如果您使用的是 Tcl 8.5 或更新版本,则使用{*}参数扩展:

Image2 setTransform {*}[Image1 getTransform]

这正是你想要的。

如果您使用的是旧版本的 Tcl,那么您必须使用eval,这是一个非常有用的命令,如果使用不当,很多事情都会出错:

eval [linsert [Image1 getTransform] 0 Image2 setTransform]

linsert这里用于建立一个propper列表以避免双重替换(这几乎总是不好的)。

于 2013-01-30T12:04:44.117 回答