【Zemax Programming】开始使用 Python



概要

本文将介绍如何在系统中设置 Python,以便运行 ZOS-API。Python 和 pywin32 是两个必备的下载,文中开发环境以及Python模块仅做推荐。

另外,由于 Python 3.6 与 pywin32 存在已知的兼容性问题,小编建议大家安装 Python 3.5 以避免安装中可能存在的问题。

基于 COM 的语言:pywin32

ZOS-API 基于.NET 库,需使用 win32com 与基于纯 COM 编写的语言,例如 Python,进行通信。Python 的扩展库 pywin32(https://sourceforge.net/projects/pywin32/)能够调用 win32com。pywin32 库有两个版本,32 位和 64 位。使用 32 位 pywin32处理特定接口时会随机产生问题,因此我们建议 Python 以及 pywin32 均使用64位版本。只要 pywin32 为64位并参考正确的 Python 架构,则 ZOS-API 能够通过 Python 2.X 或 Python 3.X 调用。

安装 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 组织仅对其安全补丁进行维护。因此,如果您的系统中没有安装 Python,建议安装 Python 3.X 版本以获取最新功能。

Python 安装完毕后,我们需要更改 PATH 环境变量使其包含 Python 路径。可通过单击开始搜索栏,在其中搜索“环境变量”(或系统设置>高级>启动与恢复>环境变量)来完成此设置。

然后单击"New"并进入到 Python 目录的路径中。单击 OK 后退出系统属性对话框。

现在,您将能够打开CLI(命令行界面)窗口,并简单地输入“python”来调用刚刚安装的路径中的 python 可执行文件。

如果你安装的 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 中调用类似 matlab 的功能,可以安装 matplotlib (https://en.wikipedia.org/wiki/Matplotlib),它是一个绘图库,基于 NumPy,是一种针对 Python 的数值数学扩展。

要安装 matplotlib,你可以简单地使用pip,它是包含了标准 Python 安装的安装包。注意,旧版本的 pip 不会成功安装 matplotlib,因此你可能需要在安装 matplotlib 之前更新 pip。如果你已经安装好了 Python,那么你可以跳到下面的第3步。

①使用以下CLI命令来检查版本

python -m pip --version

②使用以下 CLI 命令升级 pip

python -m pip install --upgrade pip

③使用以下CLI命令安装 matplotlib

python -m pip install matplotlib

此时,你将得到如下图所示命令窗口:

集成开发环境(IDE)

尽管能够用任何文字编辑器来编写Python脚本(如Notepad or Notepad++),但我们强烈建议用户使用集成开发环境(IDE)来编写Python脚本。这是因为IDE能够调试Python脚本并查看给定对象的属性,类似于Visual Basic™或Matlab™中的自动补全代码。小编使用的是由Jet Brains提供的PyCharm 共享版IDE,PyCham支持代码补全,语法问题检查,内置控制台,断点纠错工具。此IDE的最新版本能够检查ZOS-API环境中任一对象的属性,绝对是最好用的版本之一。

举例来说,要检查NSCRayTrace的属性,可以在出现该对象(NSCRayTrace)代码行的下方左侧栏中(行序号旁边)鼠标左击插入断点,再在主窗口的右击菜单栏中选择“Debug”(而不是选择“Run”)。

在返回的变量列表中(Variables),可以展开变量,在下图中展开了_prop_map_get_的属性。

初次运行PyCharm提示需要配置interpreter option时,点击File>Settings>Project:>Project interpreter,再点击Add Local来添加Python。

Python故障排除

☆pywin32封装

任何时候当改变 Zemax OpticStudio 或者 Python 的环境时,将有可能破坏 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窗口出现时,使用Ctrl键同时选择ZOSAPI与ZOSAPI_Interfaces并点击OK。

示例文件

在 Zemax OpticStudio 的安装过程中包含了范例文件,位于安装路径下的 Zemax\ZOS-API Sample Code 文件夹中,其中部分文件不需要安装其他模块就可运行(如01和03),但如 04 和 10 文件需要安装NumPy和matplotlib这两个模块。建议运行示例文件之前首先安装 matplotlib 模块。