初始設定這部分主要是需要先定義好會使用到的系統單位波長、能量以及材料膜層的光學特性

SYSTEM NEW 
RESET
UNITS
WAVELENGTHS
MEDIA
COATING PROPERTIES

清除上次執行所暫存的幾何資料
清除上次執行所暫存的光源資料
定義系統單位以及能量單位
定義系統波長
定義材料折射率
定義層膜材料的反射率跟穿透率

 

開始建立系統所會使用到的幾何曲面,一般至少會有一個光學面跟一個接收面
這邊示範性先建立一個拋物面反射杯以及一個偵測面

首先先定義好所會用到的變數名稱及數值
ZPOS1 是代表此曲面所在的位置;R1代表此曲面的曲率半徑;
C1代表此曲面的conic constant, 若C1=-1代表是拋物面
A1代表曲面的剖面半徑

底下是所建立的拋物面反射杯程式

底下是所建立的偵測面程式

開始建立所需要的光源檔案

這邊先建立一個點光源,其位置在(0,0,2)的位置,光源大小是半徑為0.1的球體
NRAYS是要發出的光線數,總共十萬條 (1E+5)

追跡的指令是TRACE,下了TRACE之後,ASAP即會根據所建立的曲面以及材料特性來做光線追跡

PLOT FACETS 是將系統中的物件畫出來
TRACE PLOT是將追跡光線畫出來
若是要將兩張圖疊圖在一起,則需要在第一個PLOT後面加上OVERLAY指令,即可將兩張圖疊圖顯示

分析是一連串邏輯分明的動作指令,說明如下

CONSIDER ONLY
SELECT ALL
WINDOW Y X
PIXELS 91
SPOTS POS ATT 0
DISPLAY
AVE
PICTURE
RETURN

-> 選擇要分析的偵測面DET
-> 選擇DET面上的所有光線
-> 決定要分析的視窗大小在XY平面
-> 決定此分析窗口的解析度
-> 執行照度分析的指令
-> 呼叫9檔案,即剛剛照度分析所產生的分佈檔
-> 取一次平均,可以部分消除雜訊
-> 畫出分布偽色圖
->回到ASAP模式

 

一般材料的折射率與膜層特性都是與波長相關,假設欲使用的系統波長
不只一個波長,而是需要使用到多個波長,這種情況要如何設定呢?

只需要在WAVELENGTH後面多寫上需要用到的波段,不過要注意
寫的時候只能是將數字由小寫到大,或是由大寫到小的順序
舉例來說,如果要設定三個波長為486.1 587.6 656.3 NM
你可以按照如下的升冪次序來寫

或是寫成如下的降冪次序來寫都可以

系統波長的寫法固定之後,折射率的寫法一樣是將材料在這些波段的
折射率一一對應寫上去,須注意的是寫的順序需要對應波長的次序
如下所寫的BK7與F2材料的多波長可以如下這樣子寫

這樣的寫法可以解讀為
自定義一個名為BK7的材料
折射率在波長486.1 NM的情況下,折射率是1.52238
同理,在波長587.6 NM的情況下,折射率是1.5168
同理,在波長656.3 NM的情況下,折射率是1.51432

第二個材料是F2
自定義一個名為F2的材料
折射率在波長486.1 NM的情況下,折射率是1.63208
同理,在波長587.6 NM的情況下,折射率是1.62004
同理,在波長656.3 NM的情況下,折射率是1.61503

如同材料折射率的寫法,膜層特性也是按照系統波長的次序一對一的對應
寫上此膜層的反射率與穿透率數值

這樣的寫法可以解讀為
自定義一個名為FILM_A的COATING
其在波長486.1 NM的情況下,反射率為0.96, 穿透率為0.04
同理,在波長587.6 NM的情況下,反射率為0.90, 穿透率為0.10
同理,在波長656.3 NM的情況下,反射率為0.86, 穿透率為0.14

第二個材料是名為FILM_B的COATING
自定義一個名為FILM_B的COATING
其在波長486.1 NM的情況下,反射率為0.85, 穿透率為0        → 吸收則為0.15
同理,在波長587.6 NM的情況下,反射率為0.80, 穿透率為0 → 吸收則為0.2
同理,在波長656.3 NM的情況下,反射率為0.75, 穿透率為0 → 吸收則為0.25

光源的建立需要滿足光源五大要素,即波長、位置、方向、能量與光線數
故若是要建立多波長光源,即是需要建立多個光源並且指定不同的光源波長

分別在建立光源的指令前加上WAVELENGTH即可。要注意寫在光源之前的WAVELENGTH指令即是代表光源波長。故假設要建立RGB三種波段,只需在前指定好欲發光的波段,EX: 450  550  650  NM

可以用FLUX TOTAL來指定分別的能量比例,最後可以根據此比例再決定最終整體的光源能量
舉例來說,這邊先將此三種光源比例設定成1:2:3,最後再設定FLUX TOTAL 1即代表這三種光源
總能量為1,其分別的能量ASAP會自動去計算

一般在建立多波長光源時,你需要自己設定發光的波長以及能量
若是你的光源為常用的發光頻譜,ASAP也可以讓你自行來指定在這頻段上的
波長與能量,舉例來說一般常用的有明視覺與暗視覺頻譜,或是黑體輻射等等

可以使用SPECTRUM這個指令來建立你要的頻譜光源,在EMITTING之前加上SPECTRUM這個指令即會自動抓取相對應的波段能量                                                           

若是你想要建立一些非內建的常用頻譜光源,如白光LED頻譜、CCFL頻譜或是
特殊光源經過量測過後的頻譜都可以用一些進階的方法來建立
如有這方面的需求,請與我們聯繫

在ASAP建構物件(OBJECT)的邏輯是必須先建立ENTITY,然後再將ENTITY宣告成OBJECT。
建立ENTITY的指令有三種: SURFACE, EDGE跟LENS

舉例來說,當要建立一個偵測面時,我們可以先用SURFACE建立一個矩形面

當寫到這邊時,ENTITY已經建立完成。但是此ENTITY並無法跟光線起作用。
若要跟光線起作用,必須將之宣告成物件,才能讓它與光線作用

這邊寫的OBJECT ′DET′ 即是代表將此ENTITY宣告成名為DET的物件

Note:
之所以要先建立ENTITY再宣告成OBJECT是因為ENTITY有其他用途
1.可以當作切割(BOUNDS)物件的剪刀
2.可以當作散射應用裡的important edge來定義有效散射區域

這邊會使用到SHIFT, ROTATE 與 SCALE這些指令

物件的移動可以使用SHIFT這個指令
EX: SHIFT Y 5 代表將物件沿著Y方向移動5個單位長

物件的旋轉可以使用ROTATE這個指令
EX: ROTATE Z 30 代表沿著Z軸旋轉30度

物件的放大與縮小可以使用SCALE這個指令
EX: SCALE 2    代表將此物件在X,Y,Z方向都放大2倍
      SCALE 0.5 代表將此物件在X,Y,Z方向都縮小0.5倍

光源的移動與物件一樣可以使用SHIFT這個指令

不過SHIFT是屬於絕對移動,光源另還有相對移動可以用MOVE這個指令

我們先來探討對光源的(絕對)移動與轉動,指令一樣是SHIFT與ROTATE
首先要留意的是:
SHIFT這個指令會對還沒有被移動(SHIFT)過的光源一起動作,同理
ROTATE這個指令會對還沒有被轉動(ROTATE)過的光源一起動作
EX:

若是僅需要針對一個光源做動作,則需要在不想被動作的光源底下多下
SHIFT 0 或是 ROTATE Y 0這種讓他不動作的指令

  

光源的放大與縮小一樣可以使用SCALE這個指令
EX: SCALE 2    代表將此光源在X,Y,Z方向都放大2倍
      SCALE 0.5 代表將此光源在X,Y,Z方向都縮小0.5倍

  

MOVE這個指令可以讓每條光線在不改變原本的行進方向的前提之下
來做移動,有MOVE TO跟MOVE BY兩種指令

如下圖所示,如下指令MOVE BY 5則代表在不改變原本的行進方向的前提之下
每條光線都移動5個單位長,最終每條光線的位置如右圖所示

如下圖所示,如下指令MOVE TO Z-5 則代表在不改變原本的行進方向的前提之下
將每條光線移動至Z=-5的平面上,則最終每條光線的位置如右圖所示

光線從折射率n1介質進入另一折射率n2介質時,會同時發生光線的反射和穿透折射,造成光線分裂SPLIT,而反射光和穿透光的能量是由FRESNEL效應來描述,以下說明這兩項指令於ASAP的使用方法:

SPLIT 1 : 允許光線打在界面時,光線分裂1次,如下圖左
SPLIT 2 : 允許光線打在界面時,光線分裂2次,如下圖右

光線能量結果取決於入射光的偏振態與入射角度
FRESNEL AVE :光線能量為S偏振和P偏振兩者的平均,如下圖左曲線1 (光疏到光密介質)
FRESNEL S : 光線能量以S偏振效應來計算,如下圖左曲線2 (光疏到光密介質)
FRESNEL P : 光線能量以P偏振效應來計算,如下圖左曲線3 (光疏到光密介質)
FRESNEL TIR : 光線從密介質到疏介質的能量在臨界角前為定值,超過為全反射,如下圖右

光線的相位也會因為入射光的偏振態與入射角度而變化
下圖左是S偏振態光疏到光密介質的相位隨入射角而變化
下圖右是P偏振態光疏到光密介質的相位隨入射角而變化
如有這面相關問題,請與我們技術支援聯繫

若要在絕對座標系統或是相對座標系統上的斜面上進行光學分析,可以使用指令AXIS LOCAL + 物件名,讓ASAP依此物件的local座標系統下執行,下圖顯示光線經部分打在斜面DET1,部分打在DET2上。對於DET2的分析,是用一般正交系統下分析即可;而對於光線在DET1上的分析,可以採用以下指令來分析:

CONSIDER ONLY DET1
AXIS LOCAL DET1
SPOTS POSITION YX ATT 0
 
DISPLAY
  AVE;AVE
  PICTURE
  WRITE RESULTS1 DIS
RETURN
$VIEW
&VIEW RESULTS1.DIS

 

 

若要建構出更複雜的幾何形狀,勢必會用到切割這個動作來剪出想要的幾何形狀
在ASAP裡面是用BOUNDS來做切割,用來剪出想要的形狀

BOUNDS是屬於OBJECT modifier,意思是這個指令只能放在OBJECT之後才起作用
換句話說,若下BOUNDS指令接在某個OBJECT的後面,即代表這個物件要被剪,接著我們必須要指定被哪一把剪刀來剪。這個時候就會用到我們之前所講到的OBJECT與ENTITY的分別。只有物件才能被剪,而只有ENTITY才能當作剪刀。
如以下程式:

  • BOUNDS 放在物件P1之後,即代表P1這個物件要被剪!
    被哪一把剪刀來剪? 則是BOUNDS後面的數字來決定
     BOUNDS +.2 這行要將數字、小數點與正負號拆開來看
  • 首先,這邊的小數點″.″ 代表″倒數″之意
    .2即代表倒數第2個ENTITY;同理,若寫成2即代表
    第2個ENTITY。
  • 正負號是描述要如何用這把剪刀來剪
    正號代表保留正或是保留外
    負號代表保留負或是保留內

若是寫BOUNDS +.2,即代表用倒數第2把剪刀來剪,剪完保留外的部分,即下圖所示

若是寫BOUNDS -.2,即代表用倒數第2把剪刀來剪,剪完保留的部分,即下圖所示

BOUNDS可以來做 AND, OR等布林運算,指令如下

  1. AND : BOUNDS .2 .3 .4 …
  2. OR : BOUNDS MULTIPLE .2 .3 .4 …
  3. Combination : BOUNDS .2 MULTIPLE .3 .4 .5 …

EX: AND BOUNDS

EX: OR BOUNDS

EX: Logical Bounds (Combination)

矩陣物件也一樣可以來做切割,如此即可以建立出更多複雜的幾何圖形
EX:  pillow lens

在實際應用面中,常常會有很多重複出現的幾何元件,這個時候在ASAP建模時
就可以利用ARRAY這個指令,即可以輕鬆的建立矩陣物件

ARRAY這個指令是屬於SURFACE modifier,意思是這個指令只對SURFACE所建立的
幾何起作用,若是用EDGE或是LENS建立的則ARRAY無法使用
基本的使用方式是,首先必須先建立好想要重複建立的矩陣單元,接者在此單元
底下增加ARRAY的指令,使之變成矩陣物件
EX:

 

ARRAY除了可以使用如上一小節所使用的固定間距,也可以使用漸變間距
可以在ARRAY後面多加上EXPONENT P P’ 等參數來描述