怎样用参数去修改一个组的坐标?


#1

如图,怎样在主函数中用参数修改XYZ的坐标数?
试过setnamed(name,“n”,n); 但是不行


#2

不行是什么意思?出现什么错误? 我估计是名字的问题。不说明的话,任何字母都是数字量,如果是符号量,需要事先赋值,例如


我测试没有问题,例如附件的文件
我用 setnamed(“analysis group”,“x”,-1e-6);没有问题。
你可以修改为 +1e-6,看看工作不?

set_position.fsp (264.3 KB)

不过最好不要用name作为变量,因为它是物件的一个属性,就是每个物件的名字。


#3

对,不能用setnamed(name,“n”,n) 这样的脚本! 你想,每一个物件都有 name 这个属性,你这样设置,程序如何知道你要改变哪一个物件呢?
顺带一提,当你不知道这个物件有哪些属性(properties)可以设置时,可以像下面展示的这样做:

?setnamed("")
这一句脚本可以显示出,物件
的所有可以设置的属性的名称 (Returns a list of the properties of the objects called name.)。 在你搞不清楚如何设置时,可以采用。
setnamed具体的用法见KB https://kb.lumerical.com/en/index.html?ref_scripts_setnamed.html
对绝大多数物件应该都适用!


#4

谢谢孙老师。
setnamed(“analysis group”,“x”,l); 这句话是放在modol里的吗?(l是一个变量,我试了下可以实现我希望的功能)

第一个问题:
我这样写:
name=“analysis group”;
setnamed(“x”,l);
setnamed(name,“N1”,N1);setnamed(name,“h3”,h3);setnamed(name,“df”,df);

系统是报错的:
Error: prompt line 3: in setnamed: argument 2 must be one of string
Error: prompt line 3: argument list for setnamed command is incorrect

第二个问题:
我之所以这个问题搞不定,是因为一开始我写的语法是:
name=“analysis group”;
setnamed(“origin x”,l); …
origin x 是不对的。但是我不知道。以后遇到类似的情况,我该怎么在Knowledge_base里搜索?


#5

多谢了,我科校友厉害还热心


#6

setnamed这个命令需要有三个参数:
第一个是字符变量,也就是物件的名字,但是不要用name这个变量,因为 set(“name”,“reflection”);是把刚添加或者Select的物件(这里是监视器)名字改为reflection;
第二个是参数的名字
第三个是参数的数值
参数可以是数值变量或者字符变量。
所以你只能用 setnamed(“analysis group”,“N1”,N1);

前面 @Junyu_Li 已经告诉你如何找一个物件的参数,可以参考。如果只看物件本身在GUI中的情况,有时的确比较模糊:


实际是

只有上面的参数可以设置。例如
?setnamed(“analysis group”,“x”,-2e-6);
同时你看到name是它的一个参量。