1.总论RP Fiber Power 从 RP Fiber Power 输入脚本文件中获取其输出的所有信息。本节介绍RP Fiber Power脚本中允许的命令。
RP Fiber Power 脚本是扩展名为.fpw的纯文本文件。它们不仅可以使用 RP Fiber Power 的编辑器进行编辑,还可以使用任何纯文本编辑器进行编辑。一般规则和大多数命令都是从程序JPLOT 继承的。在本文档中,仅解释那些继承的特性,这些特性与程序 RP Fiber Power 的正常使用相关。
脚本方法的优点是:
它非常灵活,例如,允许您以各种格式导入和导出数据,建立新类型的图表,或数学处理和输入或输出数据。
为了重用代码,您可以简单地拷贝和粘贴所提供的演示文件或早期脚本文件的部分内容。在复杂的情况下,RP Photonics 可以向您发送一些代码行。一个脚本文件完美地记录了您的工作。当你稍后阅读它时,您很容易看到您所做的。(理想情况下,您可以在脚本中插入简洁的注释。)您不需要记住,例如,您在什么窗口中所做的设置。
最初,您可能更喜欢使用输入表单。在许多情况下,这些表单可以生成所需的脚本,然后执行这些脚本。然后,您可以查看这些脚本,并根据需要进一步完善它们。
2.脚本的一般规则
脚本文件包含软件计算和准备输出所需的所有信息。这可能是
数值输入数据
处理数据的数学公式文本格式或图形形式的输出定义
下面是一个简短的示例脚本,它定义了两个变量和一个函数,并生成一个图表,在其中绘制(不进行任何物理计算):
a := 3.5 / 0.8
b := pi / 4
s(x) := a * sin(b * x) { definition of afunction }
diagram 1:
"Function Plot"
x: 0, 10 { range of x coordinates }
"x value", @x
y: -4, 4 { range of y coordinates }
"y value", @x
frame
f: s(x), color = blue, width = 3 { make thefunction plot }
脚本语言的许多细节在下面的章节中解释。
当“执行”脚本时,会发生以下情况:
删除内存中以前存在的所有定义(变量、数组、函数、模型定义等)。(可以使用命令keep禁止删除)。脚本文件逐行读取。执行这些命令,这样定义变量、函数和图形输出等各种详细信息。
如果脚本成功读取到末尾,即没有出现错误(例如,由于错误输入而导致的语法错误),并且定义了图形输出,则现在生成图形输出。
在任何情况下,都会将一些信息写入日志区域。你应该特别检查一下,以防发生意外。
脚本命令的一些一般规则是:
命令(也是变量或函数定义等)通常出现在行首,但也允许缩进,即前面有一个或多个空格(空格字符)。这种缩进可以提高可读性以防控制结构。
一条命令可以扩展到多行;在这种情况下,第一行后面的所有行必须缩进至少一个比第一行多的空白字符。例子:
sinc(x) :=
sin(x) / x
当然,增加的缩进必须只用于那些属于前一行的行。
以分号开头的行被解释为注释,即在执行文件时被忽略。对于(*和*)之间的行,同样适用。这些方法可用于临时“注释掉”一些不需要的命令。
在任何命令或算术表达式中,可以包括大括号{}中的注释。
命令include允许在处理脚本文件时读取其他文件的内容。例如,我们可以“外包”锗硅酸盐玻璃中的镱光谱数据
include "Yb-germanosilicate.dat"
请注意,通过选择脚本并按Ctrl-I,可以方便地缩进脚本的一部分;同样,也可以使用Ctrl-O取消缩进。
脚本在整个过程中(从2017年起)都使用Unicode编码处理——不仅在内部处理,而且在脚本文件中处理,这些文件是用UTF8编码编写的。这意味着您几乎可以在脚本中使用任何特殊字符,例如,希腊和中国字母、度数符号和特殊公式符号。在制作自定义表单时尤其有用。请注意,在线帮助包含有关字符编码的详细说明。
通过预定义的字符串变量workfolder$可以使用启动软件的文件夹的名称(包括尾随反斜杠)。已执行脚本的名称为scriptname$,其文件夹位置(通常,但不一定等于工作文件夹)为scriptfold$。如果执行自定义表单,则datafilename$是保存参数的文件名。
3.定义变量、常量和用户定义函数
可以使用表单的赋值语句定义变量
dentifier := expression
其中,identifier是变量的名称,expression是表达式,其值将立即计算并分配给变量。
如果const写在定义之前,则该值将是常量,即以后不能更改。例子:
const e := exp(1)
将定义Euler指数。
以“%”结尾的变量名表示复变量,以“$”结尾的名称用于字符串变量(存储字符序列)。
所有字符串都使用Unicode编码处理,这意味着软件几乎可以处理所有字符。文件输入/输出可以使用Unicode编码或ANSI编码
命令list variables列出了日志区域中所有定义的变量。类似地,listfunctions列出所有用户定义的函数。这对于调试可能很有用。
如果在定义中,括号中的其他标识符跟在已定义量的名称之后,则表示函数的定义。例子:
sinc(r) := sin(r) / r
将定义sinc函数。它的值不是立即计算的,而是为函数的每个调用计算一次,其中r是参数。因此,在定义函数时,不必定义表达式中包含的所有变量或其他函数。
在前面的定义之后,您可以使用以下方法计算一些变量值:
s := sinc(pi / 6)
4.单位的定义
建议在每个脚本的开头使用命令
include "Units.inc"
include文件Units.inc定义各种常用单位的值,例如mm:= 1e-3,nm := 1e-9,deg := pi / 180。例如,可以指定长度以毫米为单位和角度以度为单位。请注意,所有值都必须以国际单位制单位定义。例如,任何长度必须以米为单位,纳米值通过乘以nm,定义为1e-9=10-9,转换为米。