【Zemax Programming】開始使用 Python



概要

本文將介紹如何在系統(tǒng)中設置 Python,以便運行 ZOS-API。Python 和 pywin32 是兩個必備的下載,文中開發(fā)環(huán)境以及Python模塊僅做推薦。

另外,由于 Python 3.6 與 pywin32 存在已知的兼容性問題,小編建議大家安裝 Python 3.5 以避免安裝中可能存在的問題。

基于 COM 的語言:pywin32

ZOS-API 基于.NET 庫,需使用 win32com 與基于純 COM 編寫的語言,例如 Python,進行通信。Python 的擴展庫 pywin32(https://sourceforge.net/projects/pywin32/)能夠調(diào)用 win32com。pywin32 庫有兩個版本,32 位和 64 位。使用 32 位 pywin32處理特定接口時會隨機產(chǎn)生問題,因此我們建議 Python 以及 pywin32 均使用64位版本。只要 pywin32 為64位并參考正確的 Python 架構,則 ZOS-API 能夠通過 Python 2.X 或 Python 3.X 調(diào)用。

安裝 Python

要使用 ZOS-API 與 Python,您需要安裝 Python 和 pywin32 庫,才能允許 Python 與其他基于 COM 的 Windows 應用程序通信。需要注意的是,pywin32 并不是 Python 安裝的正式部分,您需要在安裝 Python 之后安裝pywin32。最新版本的 Python 可以在https://www.python.org 中找到,pywin32 可前往 https://sourceforge.net/projects/pywin32/ 下載。

Python 有兩個主要分支,2.7.X 和 3.X,ZOS-API 可以與任一分支的 32 位或 64 位版本使用。Python 2.7.X 目前已沒有新功能更新,Python 組織僅對其安全補丁進行維護。因此,如果您的系統(tǒng)中沒有安裝 Python,建議安裝 Python 3.X 版本以獲取最新功能。

Python 安裝完畢后,我們需要更改 PATH 環(huán)境變量使其包含 Python 路徑。可通過單擊開始搜索欄,在其中搜索“環(huán)境變量”(或系統(tǒng)設置>高級>啟動與恢復>環(huán)境變量)來完成此設置。

然后單擊"New"并進入到 Python 目錄的路徑中。單擊 OK 后退出系統(tǒng)屬性對話框。

現(xiàn)在,您將能夠打開CLI(命令行界面)窗口,并簡單地輸入“python”來調(diào)用剛剛安裝的路徑中的 python 可執(zhí)行文件。

如果你安裝的 Python 為 64 位版本,則 pywin32 文件名會顯示為 pywin32-220.win-amd64-py3.x.exe,若你安裝的 Python 為 32 位版本,則 pywin32 文件名會顯示為 pywin32-220.win32-py3.4.exe。

檢查是否安裝 pywin32 模塊的方法:CMD>Python>help(‘modules’)

推薦模塊

Python 的 vanilla 版本很強大,Python 最好的功能之一是它的開源特性和可以將模塊導入到腳本中。為了在 Python 中調(diào)用類似 matlab 的功能,可以安裝 matplotlib (https://en.wikipedia.org/wiki/Matplotlib),它是一個繪圖庫,基于 NumPy,是一種針對 Python 的數(shù)值數(shù)學擴展。

要安裝 matplotlib,你可以簡單地使用pip,它是包含了標準 Python 安裝的安裝包。注意,舊版本的 pip 不會成功安裝 matplotlib,因此你可能需要在安裝 matplotlib 之前更新 pip。如果你已經(jīng)安裝好了 Python,那么你可以跳到下面的第3步。

①使用以下CLI命令來檢查版本

python -m pip --version

②使用以下 CLI 命令升級 pip

python -m pip install --upgrade pip

③使用以下CLI命令安裝 matplotlib

python -m pip install matplotlib

此時,你將得到如下圖所示命令窗口:

集成開發(fā)環(huán)境(IDE)

盡管能夠用任何文字編輯器來編寫Python腳本(如Notepad or Notepad++),但我們強烈建議用戶使用集成開發(fā)環(huán)境(IDE)來編寫Python腳本。這是因為IDE能夠調(diào)試Python腳本并查看給定對象的屬性,類似于Visual Basic?或Matlab?中的自動補全代碼。小編使用的是由Jet Brains提供的PyCharm 共享版IDE,PyCham支持代碼補全,語法問題檢查,內(nèi)置控制臺,斷點糾錯工具。此IDE的最新版本能夠檢查ZOS-API環(huán)境中任一對象的屬性,絕對是最好用的版本之一。

舉例來說,要檢查NSCRayTrace的屬性,可以在出現(xiàn)該對象(NSCRayTrace)代碼行的下方左側欄中(行序號旁邊)鼠標左擊插入斷點,再在主窗口的右擊菜單欄中選擇“Debug”(而不是選擇“Run”)。

在返回的變量列表中(Variables),可以展開變量,在下圖中展開了_prop_map_get_的屬性。

初次運行PyCharm提示需要配置interpreter option時,點擊File>Settings>Project:>Project interpreter,再點擊Add Local來添加Python。

Python故障排除

☆pywin32封裝

任何時候當改變 Zemax OpticStudio 或者 Python 的環(huán)境時,將有可能破壞 pywin32 的封裝。每個樣本代碼在腳本的最開始都有注釋說明幫助用戶重新注冊封裝,詳細的說明如下:

1.導航至路徑{Python}\Lib\site-packages\win32com\gen_py\*.* 并刪除目錄(gen_py)下的所有文件。

2.開啟Windows “cmd”窗口(win+R>輸入“cmd”>回車)。

3.更改路徑到自己的文件夾{PythonEnv}\Lib\site-packages\wind32com\client\ (如,cd C:\Users\Julia.Zhang\AppData\Local\Programs\Python\Python36\Lib\site-packages\win32com\client)

4.輸入“python makepy.py” 并按回車。當Select Library窗口出現(xiàn)時,使用Ctrl鍵同時選擇ZOSAPI與ZOSAPI_Interfaces并點擊OK。

示例文件

在 Zemax OpticStudio 的安裝過程中包含了范例文件,位于安裝路徑下的 Zemax\ZOS-API Sample Code 文件夾中,其中部分文件不需要安裝其他模塊就可運行(如01和03),但如 04 和 10 文件需要安裝NumPy和matplotlib這兩個模塊。建議運行示例文件之前首先安裝 matplotlib 模塊。