本文演示了如何使用Python通过交互扩展(Interactive Extension)连接到ZOS-API。一旦连接到OpticStudio,交互扩展就可以执行自定义扩展能够执行的任何任务,并且OpticStudio界面将交互式地显示该任务的结果。
作者 Sandrine Auriol
附件下载
文章附件
简介
交互扩展模式几乎与自定义扩展(User Extension)相同,除了交互扩展不必是独立的可执行文件。交互扩展可以从脚本环境(如:Matlab或Python)进行连接,在这些脚本环境中没有可使OpticStudio启动的已编译可执行文件。
交互扩展从外部脚本环境交互地控制OpticStudio界面。本文将解释如何将OpticStudio与交互扩展连接起来。
创建交互扩展脚本
要创建连接到交互扩展的编程模板,请单击:编程(Programming) > Python >交互扩展(Interactive Extension)。
Python > Interactive Extension" style="box-sizing: border-box; max-width: 100%; height: 206px; vertical-align: middle; border-style: none; width: 534px;">
将该脚本放置在ZOS-API项目文件夹:..\Documents\Zemax\ZOS-API Projects\PythonZOSConnection 中。
如果创建了多个交互扩展,那么文件名将按顺序编号。
软件将在文件所在位置打开文件选项(File Explorer):
连接到交互扩展
要启动交互扩展,请单击“编程(Programming) >交互扩展(Interactive Extension)”。
Interactive Extension" style="box-sizing: border-box; max-width: 100%; height: 146px; vertical-align: middle; border-style: none; width: 437px;">
将打开对话框窗口,OpticStudio将等待外部应用程序(在本例中是Python)连接。
对话框显示OpticStudio运行实例的实例ID,Python在运行多个实例时可以连接到OpticStudio的特定实例。
下一步取决于所使用的集成开发环境(Integrated Development Environment ,IDE)。
IDLE(Python自带的原生IDE)
右键单击脚本文件
选择“在集成开发环境编辑器中编辑 ( Edit in the IDLE )”、“使用集成开发环境编辑器编辑 ( Edit with IDLE )”Python版本
运行代码
交互扩展的状态显示扩展已连接。
现在可以在 Python 命令窗口中执行单个命令。
例如,可以加载示例文件:
OpticStudio 打开的实例将显示加载的文件,Python命令窗口将在文件成功加载时返回布尔值“True”。
一旦执行命令,shell中显示 “>>>” 意味着它已经为处理新的命令做好了准备。
PyCharm IDE:
在 PyCharm 中打开PythonZOSConnectionX.py的代码。
点击右键选择“在控制台运行文件(Run File in Console)”:
控制台窗口将指示连接的状态,然后在控制台中执行各个命令。
右侧窗格显示项目可用的变量。
这意味着在使用交互扩展时存在“语法提示 ( Intellisense )”。
Python也可以执行代码块。例如,打开附件,附件中的脚本摘录自示例文件:" \Zemax\ZOS-API Sample Code\Python\PythonStandalone_01_new_file_and_quickfocus.py "。连接到ZOS-API的代码行已被删除。
选择脚本。点击右键并选择“在控制台执行所选代码(Execute Selection in Console)”。
OpticStudio 显示新创建的文件。
控制台显示新的变量:
终止连接
可以通过单击“交互扩展”对话框中的“终止(Terminate)”来终止连接。
或者在Python命令窗口中运行CloseApplication方法。
Ansys Zemax国内可靠代理商
光研科技南京有限公司是国内可靠的光学软件和仪器光电供应商,提供企业定制化上门培训服务,承接各类光学设计项目,并有一系列自主编写出版的光学设计书籍。公司拥有一支高素质、高水平、实战经验丰富的管理,销售以及研发团队,从成立到现在已经为广大企业,研究所以及高校提供了很多优秀的产品和服务,是光电圈内值得信赖的企业。追光逐梦,研以致用!以用户的需求为起点,为客户提供有价值的光学产品和服务一直都是光研科技南京有限公司的宗旨。