RP Fiber Power 光纖激光器及光纖器件設(shè)計(jì)軟件——自定義表單
自版本V6以來,RP Fiber Power支持自定義表單。這些表單不是在軟件本身中定義的,而是在腳本中定義的。這意味著這樣的表單可以根據(jù)任何特定的應(yīng)用而定制。
一旦開發(fā)了自定義表單,就很容易使用。制作這樣的表單(作為腳本的一部分)有點(diǎn)困難;可以由用戶自己完成,也可以由技術(shù)支持中提供。
使用自定義表單
如果您有定義自定義表單的腳本,只需打開該文件,軟件就會自動進(jìn)入自定義表單模式,即顯示自定義表單。還可以使用工具欄中的按鈕“Show editors”和“Show custom form”在腳本編輯器模式和自定義窗體模式之間切換。
還有一些包含自定義表單的演示文;例如,請參見文件“Yb amplifier.cf.fpw”。(在文件擴(kuò)展名之前,我們已經(jīng)表明了包含帶有.cf的自定義表單的腳本。)
以下屏幕截圖顯示了自定義表單模式下的RP Fiber Power。輸入了一些輸入,并執(zhí)行了腳本,因此可以顯示計(jì)算結(jié)果。

自定義表單可以包含輸入和輸出欄:
l輸入欄包含用戶輸入的數(shù)據(jù)。可以有不同類型的輸入欄:
通常輸入欄用于輸入數(shù)值數(shù)據(jù)或在某些情況下輸入字符串值。數(shù)值格式正確,通常使用測量單位。例如,用戶可以將“.5”輸入某個輸入功率的輸入欄,軟件會在離開該欄后立即將其轉(zhuǎn)換為“500 mW”(例如,當(dāng)單擊另一欄或按Tab鍵時)。
可以在括號中輸入數(shù)學(xué)表達(dá)式,而不是數(shù)值。該表達(dá)式的值將作為輸入。
您可以通過按功能鍵F5到F12和Alt鍵來修改文本欄中的數(shù)值。使用Alt-F11 / F12,您可以獲得相當(dāng)粗略的步驟,使用Alt-F9/F10更精細(xì)的步驟,等(注意:Alt-F4關(guān)閉軟件)。
可以創(chuàng)建輸入欄,以便在修改輸入值后立即更新所有輸出。(否則,只有在執(zhí)行腳本后才會發(fā)生這種情況。)然后,可以通過將光標(biāo)移動到其他欄或使用返回鍵來觸發(fā)這樣的更新。
有兩種選擇欄。其中一個允許用戶通過從列表中選擇一個字符串(字符序列),例如,光纖數(shù)據(jù)文件的名稱。另一種欄類型用于數(shù)值;它與所謂的單選按鈕一起使用。
復(fù)選框允許用戶激活或停用特定設(shè)置。例如,通過復(fù)選這樣一個欄,可以表明必須考慮某種效應(yīng)。
l輸出欄用于顯示計(jì)算結(jié)果;用戶不能直接修改。通常,輸出值僅在腳本執(zhí)行之后顯示(在生成圖表之前和之后),因?yàn)樗鼈兺ǔR迷谀_本中計(jì)算的值或函數(shù)。
有以下類型的輸出欄:
文本欄以文本形式顯示結(jié)果--例如,輸出功率為“324 mW”。如果無法計(jì)算值(例如,由于腳本尚未執(zhí)行),則該欄保持為空。如果表達(dá)式列表包含無效部分,“???”顯示為此類結(jié)果的替代。
條形圖欄顯示帶顏色條形圖的值,其長度取決于數(shù)值。這可以顯示,例如摻雜光纖中的鐿平均激發(fā)度。
您可以執(zhí)行腳本,例如按F8(包括圖形)或按F9(不帶圖形),但僅當(dāng)所有輸入的值都有效時。例如,如果輸入的值超出了腳本中定義的有限范圍,則該欄將以紅色背景顯示,光標(biāo)將放在該范圍內(nèi),并且無法繼續(xù)執(zhí)行。在腳本執(zhí)行之后,輸出欄將被更新,如果生成了任何圖表,則在這些圖表完成后將發(fā)生另一個更新。
更多提示:
輸入欄(不是輸出欄)的內(nèi)容自動保存在單獨(dú)的輸入數(shù)據(jù)文件中。默認(rèn)情況下,其文件名與腳本文件名相同,但文件擴(kuò)展名為“.fpj”。(在腳本中,可以修改該名稱以訪問不同的輸入數(shù)據(jù)文件。)
也可以使用菜單項(xiàng) File | Save as將輸入保存到其他文件。在這種情況下,原始數(shù)據(jù)文件將只包含存儲實(shí)際數(shù)據(jù)的文件的文件名。如果已經(jīng)加載了與表單相對應(yīng)的腳本,則也可以用File | Open從此類文件加載數(shù)據(jù)。
通過進(jìn)入腳本編輯器模式,您可以查看腳本代碼,包括自定義表單的定義:按菜單下面的“Show editors”按鈕。在這里,您可以看到表單是如何生成的(并對其進(jìn)行修改)、腳本中設(shè)置了哪些其他參數(shù)、如何定義圖表等。
按“Show custom form”按鈕,可以返回自定義表單模式。
創(chuàng)建自定義表單
本節(jié)詳細(xì)說明如何在腳本中定義自定義表單。有很多種可能性,讓你可以為各種目的制作美觀、方便的表單。
自定義表單的定義總是以命令Custom form開始。在最簡單的情況下,表單的命令行在其之后,在至少以3個減號(“-”)開頭的兩行之間。一個簡單的例子:

這些命令行還可以放入單獨(dú)的文本文件中,該文件的名稱在命令中指定:
Custom form: form = "My input form.txt"
默認(rèn)情況下,表單中編輯的輸入值保存在與腳本文件名相同的文件中,但文件擴(kuò)展名為“.fpj”。可通過附加選項(xiàng)進(jìn)行更改:
Custom form: form = "My input form.txt", data = "My inputs.fpj"
現(xiàn)在我們討論定義表單內(nèi)容的詳細(xì)信息:
大多數(shù)文本行顯示在表單中。但是,以“$”開頭的行包含某種命令(見下文),表單中的“#”符號表示輸入或輸出欄。通過使用一序列這些字符,可以使欄變長。對于命令行中出現(xiàn)的每個欄,需要在以$input、$output或$button開頭的下一行中定義欄的詳細(xì)信息。(該行的內(nèi)容不能跨多行分布。)
數(shù)字或字符串值的常規(guī)輸入欄只需指定要編輯的變量的名稱,跟隨一個格式指令。示例:$input P_p_in:d6:"W" 表示變量為P_p_in(此處:表示泵浦輸入功率),其值最多顯示6個有效數(shù)字和單位“W”(瓦特)。
此外,可以使用min和max選項(xiàng)指定允許的最小值和/或最大值。例子:
$input P_p_in:d6:"W", min = 0, max = 10
對于字符串值,最小值和最大值適用于字符串長度。
在某些情況下,需要編輯以某種方式縮放的值。例如,鏡子反射率可能介于0和1之間,但要編輯為百分比。在這種情況下,可以縮放顯示的值:
$input R_mirror / 0.01:d6:"%", min = 0, max = 1
(最小值和最大值應(yīng)用于未縮放的變量。)
可以定義默認(rèn)值,如果輸入欄為空,則使用該值:
$input correction_factor:d6, default = 1
另一種可能是定義文本顏色和背景顏色的表達(dá)式,這可能取決于欄的數(shù)值。例子:
$input P:d6:"W", textcolor = (if P > 3 then red else black)
這里,如果值超過3,則以紅色顯示。但是,如果輸入的值超出了用min和max定義的范圍,則背景色始終為淡紅色。
還可以使用hint=“initial power”這樣的選項(xiàng)定義提示文本。
下面的示例解釋了用于選擇某些值的所謂combo box:
$input (combobox: "value 1", "value 2”) choice$
選擇的結(jié)果將存儲在給定的變量中。如果變量是字符串變量(在我們的示例中,用$符號表示),它將被分配給所選的字符串。對于實(shí)變量,如果選擇第一項(xiàng),則為1,如果選擇第二項(xiàng),則為2,等等。
l帶有單選按鈕的選擇欄解釋如下:
$input (radio: "value 1", "value 2") choice
同樣,給定的變量可以是實(shí)數(shù)或字符串變量。
單選按鈕放在一個框中,該框可以配備標(biāo)題:
$input (radio: "value 1", "value 2") choice, caption = "Select:"
通常,不同的選擇以單獨(dú)的行顯示,但也可以有多個列的設(shè)計(jì),高度降低:
$input (radio: "value 1", "value 2") choice, nocolumns = 2
對于可以包含多行的字符串值,可以使用一個多行文本欄:
$input (multiline) text$, height = 50
允許的選項(xiàng)包括min和max(最小和最大長度)、height(以像素為單位的欄高度)、hint(如上)、textcolor和bgcolor。
也可以制作一個軌跡條(帶有可沿刻度移動的把手):
$input (trackbar: 1 to 100) position, height = 25
這兩個數(shù)字表示最小和最大整數(shù)值。可選的高度值以像素為單位定義軌跡條的高度。
對于任何類型的輸入欄,都可以使用選項(xiàng)onchange = update outputs,這意味著在輸入欄的值發(fā)生任何更改之后,都應(yīng)該更新所有輸出欄。(否則,只有在腳本執(zhí)行之后才會發(fā)生這種情況。)此外,如果onchange = execute,則可以在每次更改欄后觸發(fā)腳本執(zhí)行。最后,使用onchange = (expr),在這種情況下可以調(diào)用數(shù)學(xué)表達(dá)式(例如,設(shè)置一些變量值)。
l文本輸出欄(用于單行)可以與文本輸入欄類似,但可以有多個表達(dá)式:
$output ["P1 = ", P1:d3:"W", "P2 = ", P2:d3:"W"]
表達(dá)式列表需要放在括號之間;如果只使用一個表達(dá)式,則可以省略括號。還可以添加一些選項(xiàng),例如修改文本顏色或背景顏色:
$output ["P1 = ", P1:d3:"W"], textcolor = (if P1 > 3 then red else black), bgcolor = rgb(0.8, 0.8, 1)
默認(rèn)情況下,背景色為淺灰色,因此輸出欄可以與輸入欄進(jìn)行視覺區(qū)分。
對于輸入欄,可以定義一個提示(解釋),當(dāng)用戶將光標(biāo)移動到該欄時顯示該提示:
$output ["P1 = ", P1:d3:"W"], hint = "Power at the input"
如果在計(jì)算過程中發(fā)生錯誤,軟件將用錯誤消息替換該提示文本。
l多行文本輸出欄可以如下所示:
$output (multiline) [s$], height = 50
允許的選項(xiàng)包括height(以像素為單位的欄的高度)、hint、textcolor和bgcolor(如上所述)。
用于顯示某些值的條(bar)可以制作如下:
$output (bar) r3 / r1, color = red
這里,使用一個紅色條,其長度與值r3/r1成比例:如果該值為1,則達(dá)到完整長度。顏色值可能取決于一些變量;例如,可以使用 color = (if r3 / r1 < 0.1 then blue else red)。
可以使用height參數(shù)設(shè)置條的高度(以像素為單位):
$output (bar) r3 / r1, color = red, height = 30
可以創(chuàng)建按鈕
$button "Save data", exec = SaveDataToFile(FName$)
其中,字符串是按鈕的標(biāo)題,定義為exec的值是一個數(shù)學(xué)表達(dá)式,按下按鈕時將計(jì)算該表達(dá)式。其他允許的選項(xiàng)是show inputs和show outputs;這意味著在計(jì)算表達(dá)式之后,所有輸入欄或輸出欄都應(yīng)該刷新。例如,如果表達(dá)式更改了一些變量值,這將非常有用。
默認(rèn)情況下,文本使用標(biāo)準(zhǔn)大小為10像素的字體“Courier New”。可以使用如下命令更改以下所有行:
$Font: "Arial", bold, underline, italic, size = 20, color = red
建議使用固定寬度字體,如Courier、Courier New或Fixedsys。
使用類似如下命令:
$box "Input fields:"
可以將以下內(nèi)容放入一個帶有邊距和給定標(biāo)題的框中。框的定義必須以如下命令行結(jié)尾
$box end
也可以使用相對于表單左上角的x和y坐標(biāo)(以像素為單位),將方框定位在頁面上的某個位置,而不是遵循常規(guī)流程:
$box "Input fields:", position = (400, 0)
其他選項(xiàng)是以像素為單位定義特定的高度或?qū)挾龋?/p>
$box "Input fields:", size = (300, 200)
如果寬度或高度設(shè)置為0或未定義,則表示此尺寸是自動確定的。
此外,還可以更改框的背景色:
$box "Input fields:", color = rgb(0.9, 0.8, 0.7)
用以下命令行
$tabcontrol
可以啟動所謂的選項(xiàng)卡控件,然后使用如下命令定義各種帶標(biāo)簽的選項(xiàng)卡
$tab "Fiber details"
最后,必須關(guān)閉選項(xiàng)卡控件:
$tabcontrol end
選項(xiàng)卡控件還可以獲得以像素為單位的固定大小:
$tabcontrol, size = (400, 300)
允許使用嵌套的框和選項(xiàng)卡控件。例如,選項(xiàng)卡控件可以放在一個框中,反之亦然。
用以下命令行
$bgcolor = rgb(0.9, 0.9, 1)
可以修改自定義表單的背景色。(默認(rèn)值為白色。)
可以用如下命令行放置圖象
$image "graphics.png", position = (400, 0)
可以從擴(kuò)展名為.gif、.png、.bmp或.jpg的文件加載圖像。
x和y方向上的位置與放置圖像的框或選項(xiàng)卡控件相關(guān),或者與表單的左上角有關(guān)(如果它不在此類元素中)。第二個參數(shù)(y坐標(biāo))可以是here,表示下一個文本行將出現(xiàn)的y位置,或者,例如,here+20對應(yīng)較低位置。
也可以使用類似于size = (300, 200)的選項(xiàng)來修改像素大小,或者使用size = 1.5來設(shè)置大小的比例因子。
如果指定了位置(以像素為單位),則圖像將放置在該位置而不影響常規(guī)流;例如,可以將其用作背景圖像。否則(沒有指定位置),它將被放置在常規(guī)流中,即以下元素將在相應(yīng)的較低位置顯示。
除了圖像文件,還可以在圓括號中指定一個數(shù)學(xué)表達(dá)式,從中可以計(jì)算局部顏色值(取決于像素坐標(biāo)x和y)。例子:
$image (color_I(1-y/200)), position = (400, 100), size = (20, 200)
另一個可能的選項(xiàng)是update,這意味著每次更新輸出欄時都會更新圖像。這僅適用于基于數(shù)學(xué)表達(dá)式的圖像,該表達(dá)式依賴于某些計(jì)算結(jié)果。例如,可以使用該功能以圖形方式說明某些輸出值。
只包含一個美元符號(“$”)或以$remark開頭的行將被忽略。
在$def之后,可以定義一些變量或函數(shù)。與腳本中的常規(guī)定義不同,在讀取自定義表單時,已經(jīng)讀取了此類定義,因此,即使在執(zhí)行腳本之前,也可以在表單中使用此類定義。例子:
$def deg := pi / 180
$def sinc(x) := if x <> 0 then sin(x) / x else 1
命令$autosizeform調(diào)整程序表單的大小,使自定義表單正好適合其位置。
下面是一個例子,展示了一些可能性:


工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















