加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ZEMAX|使用ZOS-API交互扩展连接Python与OpticStudio

(2022-04-01 16:40:03)
标签:

zemax

光学

分类: ZEMAX光学设计技术文章

本文演示了如何使用Python通过交互扩展(Interactive Extension)连接到ZOS-API。一旦连接到OpticStudio,交互扩展就可以执行自定义扩展能够执行的任何任务,并且OpticStudio界面将交互式地显示该任务的结果。

作者 Sandrine Auriol

附件下载

(联系工作人员领取文章附件)

简介

交互扩展模式几乎与自定义扩展(User Extension)相同,除了交互扩展不必是独立的可执行文件。交互扩展可以从脚本环境(如:Matlab或Python)进行连接,在这些脚本环境中没有可使OpticStudio启动的已编译可执行文件。

交互扩展从外部脚本环境交互地控制OpticStudio界面。本文将解释如何将OpticStudio与交互扩展连接起来。

创建交互扩展脚本

要创建连接到交互扩展的编程模板,请单击:编程(Programming) > Python >交互扩展(Interactive Extension)

https://img.jishulink.com/202204/imgs/8201a1dc4d9747b8a9f4aa4fd0ecff27

将该脚本放置在ZOS-API项目文件夹:..\Documents\Zemax\ZOS-API Projects\PythonZOSConnection 中。

如果创建了多个交互扩展,那么文件名将按顺序编号。

软件将在文件所在位置打开文件选项(File Explorer)

https://img.jishulink.com/202204/imgs/e55edf9f736b43ed9ef447432ea9540a

连接到交互扩展

要启动交互扩展,请单击“编程(Programming) >交互扩展(Interactive Extension)”。

https://img.jishulink.com/202204/imgs/2e25d86c69fb4e3f8d2c675791f75ed4

将打开对话框窗口,OpticStudio将等待外部应用程序(在本例中是Python)连接。

https://img.jishulink.com/202204/imgs/16a57b76422a4c90a85f12fc485485b9

对话框显示OpticStudio运行实例的实例ID,Python在运行多个实例时可以连接到OpticStudio的特定实例。

下一步取决于所使用的集成开发环境(Integrated Development Environment ,IDE)。

IDLE(Python自带的原生IDE)

  • 右键单击脚本文件

  • 选择“集成开发环境编辑器中编辑 Edit in the IDLE )”、“使用集成开发环境编辑器编辑 Edit with IDLE )”Python版本

https://img.jishulink.com/202204/imgs/c58c58ecc0494bb18bcd2a1f422ae8b6

  • 运行代码

https://img.jishulink.com/202204/imgs/1562600113674a31a51038598153eece

  • 互扩展的状态显示扩展已连接。

https://img.jishulink.com/202204/imgs/e79e450b0b114d2382693a7b5d4f6dc7

  • 现在可以在 Python 命令窗口中执行单个命令。
    例如,可以加载示例文件:

https://img.jishulink.com/202204/imgs/dfeceb9778df4f9b908af902ad4e7bc3

  • OpticStudio 打开的实例将显示加载的文件,Python命令窗口将在文件成功加载时返回布尔值“True”。

https://img.jishulink.com/202204/imgs/3bffddcbc6664e1082212c2d3ab471fd

https://img.jishulink.com/202204/imgs/5551b9d82e1d4450ac4026c8623a7aee

  • 一旦执行命令,shell中显示 “>>>” 意味着它已经为处理新的命令做好了准备。

PyCharm IDE:

  • 在 PyCharm 中打开PythonZOSConnectionX.py的代码。

  • 点击右键选择“在控制台运行文件(Run File in Console)”:

https://img.jishulink.com/202204/imgs/2dc025686cb5420c9174027204b8bbc2

  • 控制台窗口将指示连接的状态,然后在控制台中执行各个命令。

https://img.jishulink.com/202204/imgs/92d02842e4a84c6fa82b187b284b11ad

右侧窗格显示项目可用的变量。

这意味着在使用交互扩展时存在“语法提示 ( Intellisense )”。

https://img.jishulink.com/202204/imgs/329d794a9afa4ae1a27431d0bded2da2

Python也可以执行代码块。例如,打开附件,附件中的脚本摘录自示例文件:" \Zemax\ZOS-API Sample Code\Python\PythonStandalone_01_new_file_and_quickfocus.py "。连接到ZOS-API的代码行已被删除。

选择脚本。点击右键并选择“控制台执行代码(Execute Selection in Console)”。

https://img.jishulink.com/202204/imgs/e5ad86d3657546a08e9a23be56abfb19

OpticStudio 显示新创建的文件。

https://img.jishulink.com/202204/imgs/751c94776b56440095ee9931ad218973

控制台显示新的变量:

https://img.jishulink.com/202204/imgs/6b54b09b521f41a5b042f2e73b84a5b3

终止连接

可以通过单击“交互扩展”对话框中的“终止(Terminate)”来终止连接。

https://img.jishulink.com/202204/imgs/c8cf0283678c43e88a2bda0121e1cf71

或者在Python命令窗口中运行CloseApplication方法。

https://img.jishulink.com/202204/imgs/4bb3676c4c404fe98b28a8a7e85fd33e

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有