RP Fiber Power 光纖激光器及激光器設計軟件一腳本語言1-4

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,轉換為米。



登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP