[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)
摘要
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖1](https://img.jishulink.com/msimage/202510/e319e965a832b495393f83eb124b8429.png)
我們最基本的目標之一是為光學模擬提供最大的通用性。在本教程中,我們將解釋如何使用可編程函數,可以將其認為是一個理想化的組件,作用在一個平面上:工作流程需要在x、y平面上定義一個與位置相關的復數函數,然后將其乘以輸入場。我們以一個理想的圓柱形透鏡為例來詳細介紹整個過程。
在哪里可以找到可編程函數:目錄
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖2](https://img.jishulink.com/msimage/202510/d761b3c2ab356e7dc4c17bb3611d7578.png)
在哪里可以找到可編程函數:光學設置
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖3](https://img.jishulink.com/msimage/202510/1794228bb64a149fd6390c0ed9ae2eb0.png)
編寫代碼
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖4](https://img.jishulink.com/msimage/202510/ad70aee4e5fc20fa9b34ccbbfd7eff1b.png)
?右邊的面板顯示了可用的獨立參數列表。
?波長是一個默認的獨立參數,允許用戶實現色散的理想元件(函數)。
?折射率是另一個默認的獨立參數,用于讀取嵌入介質的復數折射率。
?最后,x和y是最后兩個默認的獨立參數。它們跨越了定義理想元件(函數)的平面。
編寫代碼
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖5](https://img.jishulink.com/msimage/202510/d62832543cdb1deb17cc9260ce3e2f7f.png)
?主函數對每個x、y(可能也是波長)必須返回一個復數值,然后將其乘以輸入場。
?使用代碼段將代碼中的部分代碼分組到支持函數中。
?注意,可以在可編程函數的代碼中使用導入的參考場和/或堆棧及其相關參數。參考場和堆棧可以在全局參數選項卡中定義。
采樣
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖6](https://img.jishulink.com/msimage/202510/04cce3151cd5319b9dd746e45156a2c0.png)
?用戶必須確保采樣(元件后方的場)足夠精細,以分辨可編程功能引入的頻率。
?為此,請使用采樣選項卡。
?請注意,采樣可能取決于定義的全局參數的實際值。
輸出
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖7](https://img.jishulink.com/msimage/202510/c3aab66489cc09ac6369dbebecba8934.png)
?可編程函數在一個平面(在x,y范圍)上定義的每個波長上產生一個復值函數。
?在光學設置中,它被乘以輸入場。
?提示:已經被編程為一個函數的代碼段也可以在可編程光源中使用,反之亦然。
?該函數可以保存在邊界響應目錄中,以便以后使用。
圓柱形透鏡函數的編程
圓柱形透鏡
圓柱形透鏡的函數是相位調制的形式:
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖8](https://img.jishulink.com/msimage/202510/e0c8f29b8f4f285fe767be412a410048.png)
f→焦距
k→波數
α→光軸與透鏡焦距方向之間的夾角
在哪里可以找到可編程功函數:目錄
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖9](https://img.jishulink.com/msimage/202510/def8d2706cf35e4da5843bdcef9b8716.png)
在哪里可以找到可編程函數:光學設置
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖10](https://img.jishulink.com/msimage/202510/803cd5c89a2c8a2adf0d0c468ccbca2e.png)
編程界面:全局參數
?打開編輯對話框進入全局參數選項卡。
?在這里,添加和編輯兩個全局參數。
- double Angle=0度(0度,360度):表示光軸和對焦方向形成的角度。
- double FocalLength=100 mm(0 m,1 m):表示透鏡的焦距。
?使用帶有小 "注釋 "圖標的按鈕,為你的自定義全局參數添加一些解釋。
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖11](https://img.jishulink.com/msimage/202510/8622cacbb8bc4749046afe2cc4a2e1ac.png)
編程界面:代碼段幫助
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖12](https://img.jishulink.com/msimage/202510/8b87b76dee7a23e746934f73b8f71b1a.png)
?選項:你可以使用代碼段幫助選項卡來編寫指令、說明和一些與你的代碼段相關聯的元數據。
?這個選項對追蹤你使用可編程元素的進度非常有幫助。
?當可編程序元素以后被移交給其他用戶處理時,這個選項特別有用!
編程接口:代碼段幫助
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖13](https://img.jishulink.com/msimage/202510/ff450533ebb09f4b28c00de906ec40a1.png)
編程界面:編寫代碼
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖14](https://img.jishulink.com/msimage/202510/07965c58117e6d6c3d9f1c4e134e7412.png)
采樣
?根據入射場的屬性和自定義功能,用戶必須在采樣選項卡中確定適當的采樣。
?例如,在我們的圓柱形透鏡的情況下,對于軸上準直入射光束,對于較小焦距的鏡頭,采樣必須更細(采樣點數量更多)。
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖15](https://img.jishulink.com/msimage/202510/689568a49f1362ffb95c0daab7ef0935.png)
編程界面:使用你的代碼
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖16](https://img.jishulink.com/msimage/202510/1ad0b15e3e8476a2c2627b6801856539.png)
保存自定義的函數到目錄
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖17](https://img.jishulink.com/msimage/202510/11101a8edccdb3d9449d9606de035ee2.png)
可編程函數的輸出
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖18](https://img.jishulink.com/msimage/202510/4684fc873e11a5ac7e13221441a0bb45.png)
測試代碼
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖19](https://img.jishulink.com/msimage/202510/818d669afc4ac4f7e7e1797490a61eaf.png)
文件信息
![[VirtualLab] 如何使用可編程函數及案例(圓柱形透鏡)的圖20](https://img.jishulink.com/msimage/202510/068a299f64547e4878d475827ac19754.png)
更多閱讀
-Customizable Help for Programmable Elements
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















