这个问题是我上一个问题的后续问题……</p>
从那里的答案中,我在解决方案之上遇到了一些问题。好吧,故事是这样的。我正在尝试与电子设计查看器程序合作编写脚本。我遇到的问题是在电子程序的语法中正确使用我的变量。
所以基本上意思是这样的。我读了一些设计,将不同的路径保存在一个数组中,然后一一读出。在这个阅读过程中,我在程序中打开它们。
打开程序布局的原始代码是这样的:
set L1 [ layout create ]
$L1 create cell layout
$L1 create cell ONE
$L1 create cell TWO
set ONE [ layout create /users/jerre_111/public/imec_logo_zwart_512.gds -dt_expand -log LUN.log]
set ONE_top [$ONE topcell]
set TWO [ layout create /users/jerre_111/public/logo-rood.gds -dt_expand -log KTH.log]
set TWO_top [$TWO topcell]
$L1 import layout $ONE FALSE overwrite
$L1 import layout $TWO FALSE overwrite
$L1 create ref ONE $ONE_top 0 0 0 0 1
$L1 create ref TWO $TWO_top 0 0 0 0 1
$L1 create ref build ONE 0 0 0 0 1
$L1 create ref build TWO 207500 0 0 0 1
所以,这是原始代码。ONE
并且TWO
都是我在程序中打开的两种不同的布局。
这就是它在我的脚本中的工作方式:我想用我打开的文件的名称动态替换 ONE 和 TWO。所以每次,我从数组中取出路径,然后从路径中取出名称。然后我想使用文件名而不是ONE
and TWO
。我正在尝试这样:
set L1 [ layout create ]
$L1 create cell build
foreach key [array names ::openedFiles] {
set filename [file tail $::openedFiles($key)]
set parts [split $filename .]
set name [lindex $parts 0]
$L1 create cell $name
set $name[ layout create $::openedFiles($key) -dt_expand -log LUN.log]
set cell_top [[set $name] topcell]
$L1 import layout [set $name] FALSE overwrite
$L1 create ref $name $cell_top 0 0 0 0 1
$L1 create ref build $name 0 0 0 0 1
}
所以每次我通过循环时,我都会从数组中取出一项。然后我动态地给他们起名字。但是我在原始代码中遇到了一些问题$ONE
或ONE
喜欢...我正在尝试用...ONE
的值替换$name
我希望你能理解我的问题,有人可以帮助我。