ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别

本文对 ZOS-API、ZPL 和DLL 进行了比较。我们将会对与 OpticStudio 的互联、代码执行、语句和数据存取与处理这些方面进行解释说明。
ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图1

概述

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图2

在 OpticStudio 中,用户可以通过 编程 (Programming) 选项卡访问 OpticStudio 的编程功能,如  Zemax编程语言( ZPL )应用程序编程接口 ( ZOS-API )动态链接库  ( DLL )。每种编程方法都有其独特的特点。本文描述了这三种编程功能的特点和区别。
ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图3

ZOS-API 和 ZPL之间的区别

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图4

ZOS-API 和 ZPL 在许多方面都有所不同,包括它们的语句、应用程序和运行环境。以下部分将提供这两种编程方法的概述,并详细描述这些差异。

什么是 ZOS-API?

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图5

ZOS-API 是一个应用程序接口,它是为使 OpticStudio 能够支持与其它应用程序的连接和自定义而开发的。虽然 ZOS-API 依赖于 COM 接口,但它来源于.NET库,因此可以使用任何能够访问API库的编程语言(如C++、C#、Python、MATLAB) 进行 API 编程。ZOS-AP I允许应用程序与 OpticStudio 中打开的实例直接交互,或者将 OpticStudio 作为背景程序运行。

什么是 ZPL?

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图6

Zemax 编程语言( ZPL )是一种宏语言,它允许用户在 OpticStudio 中直接编写自己的程序。ZPL 可以:
  • 自动地重复键盘和鼠标操作

  • 基于 OpticStudio 数据执行计算

  • 以特定格式导出数据

  • 生成数据的图表和文本清单

不同之处

以下为 ZOS-API 与 ZPL 之间最基本的差别。

  1. 接口

ZPL 宏是一个文本文件。可以在 OpticStudio 内的 ZPL 编辑器中创建和编辑ZPL 宏。ZPL 宏很容易学习,不需要任何编程经验,并且在其中提供了能够执行一系列命令的强大工具。下面的截图显示了 ZPL 编辑器中的 ZPL 宏。

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图7

ZOS-API 应用程序是用可以访问 API 库的编程语言编写的。ZOS-API 支持四种编程语言:MATLAB、Python、C++ 和 C#。下方截图显示了用于连接至 ZOS-API的 Matlab 代码

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图8

  1. 代码执行

ZPL 宏在 OpticStudio  图形用户界面 ( GUI )中运行。要执行或编辑 ZPL 宏,请单击: 编程 Programming )>  ZPL   ZPL Macros  )> 编辑 / 执行  (Edit/Run)

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图9

ZOS-API 应用程序的执行取决于使用的模式:

  • 独立应用程序(A Standalone Application) 模式是一个外部可执行文件(.exe),它将启动一个全新的 OpticStudio 实例作为背景程序。在这种模式下,OpticStudio 作为服务器运行,没有用户界面。必须小心确保运行实例数量没有达到 OpticStudio 许可运行的最大数量。

  • 自定义扩展(User Extension)自定义分析( User Analysis) 模式是从OpticStudio 内置的GUI中启动的,可构建类似于扩展程序的应用程序。它们可以通过编程(Programming)ZOS-API.NET接口( ZOS-API.NET Applications)> 自定义分析/扩展 (User Analyses/Extensions)来访问的。

  • 交互扩展 (Interactive Extension )编程(Programming)>ZOS-API.NET 接口(ZOS-API.NET Applications)>交互扩展(Interactive Extension)打开。它可以将外部的 ZOS-API 应用程序连接到 OpticStudio的现有实例。

  1. 语法

ZPL  是一种可编译的“宏”或“脚本”语言,类似于带有光线追迹函数BASIC编程语言 。
所有 ZOS-API 程序和扩展都是用  C#、C++、MATLAB 或 Python 等外部编程语言编写的。
  1. 数据存取和处理

ZPL 宏由存储在文本文件中的一系列命令组成。这些命令可以给变量(数值或字符串)赋值、使用关键字调用函数或进行注释。在 ZPL 中,所有数据存取和处理都基于已定义的命令。ZPL 作为解译型代码,在运行复杂计算时,它可能比完全编译的代码慢。
在 ZOS-API 中,数据存取和数据处理更加灵活和强大。ZOS-API 可以利用其它高级编程语言(如 MATLAB)的数值分析和矩阵计算能力。
  1. 互用性

ZPL 不能通过 ZOS-API 调用,反之亦然。

  1. 对比表格


ZOS-API ZPL
接口 取决于所选的编程语言 OpticStudio内置
代码执行 非常灵活(可以是可执行文件,可以从编程语言运行,也可以嵌入到OpticStudio中) OpticStudio内置
语法 取决于所选的编程语言 非常基础;易于学习
数据存取和处理

灵活而强大的数据存取和处理

可以利用其他编程语言的数值分析和矩阵计算能力(如使用MATLAB的ZOS-API)

解译型语言

进行复杂计算时,比完全编译的代码更慢

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图10

ZOS-API  和 DLL 的区别

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图11
什么是 DLL?
动态链接库 ( Dynamic Link Library,DLL) 是一个共享库。它是一个 Windows 程序,但不能像 EXE 程序那样直接运行。它可以被另一个程序调用,即我们的OpticStudio。DLL 根据需要调用,并在完成时关闭。只在需要时使用DLL,使得内存管理方面更高效。在 OpticStudio 中,发送到 DLL 的数据是指定且有一定限制的。存在不同类型的 DLL,如用户自定义表面、用户自定义散射配置文件等。对于每种类型的 DLL,可以在文件夹 {Zemax } / DLL下的示例 DLL 源代码中找到数据结构。

不同之处

ZOS-API 和 DLL 之间最根本的区别是客户端-服务器角色是相反的。

  • ZOS-API 脚本是一个客户端,它调用 OpticStudio 作为服务器来执行任务。ZOS-API 脚本可以访问 OpticStudio 接口,并且 OpticStudio 内几乎所有方面的功能都可以通过 ZOS-API 脚本访问和运行。API  脚本还包含其他功能,比如批量处理光线追迹 (Batch Ray Trace)等。

  • DLL 充当服务器。OpticStudio 客户端将指定数据发送给 DLL 或从 DLL 获取指定数据,并最终将这些数据返回至 OpticStudio 中。因此,OpticStudio 仅负责数据交换,由此限制了 DLL 的操作范围。

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图12

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图13

· 扫码关注我们 ·

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图14


如果您对产品感兴趣,或需要技术支持,欢迎致电垂询!

电话:027-87878386

邮箱:market@ueotek.com


ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图15


ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图16

宇熠精选

关注武汉宇熠视频号 查看更多精彩视频 



推荐阅读

· ZEMAX | 内窥镜物镜系统初始结构的优化提升Ⅰ

· ZEMAX 内窥镜物镜系统初始结构的优化提升Ⅱ

· ZEMAX | 如何使用 ZPL 创建用户自定义求解

· ZEMAX | 如何设计光谱仪 - 公差分析
· ZEMAX | 如何设计一个光谱仪 – 杂散光分析

· ZEMAX | 如何将仿真波导模式数据导入 OpticStudio

· ZEMAX | 探索 OpticStudio 中的物理光学传播

· ZEMAX | 如何在 OpticStudio 中建模一个投射式车灯

· ZEMAX | OpticStudio 如何模拟抬头显示(HUD)系统








武汉宇熠科技是 ZEMAX 中国区官方指定代理商,提供 ZEMAX 光学设计软件的培训、销售、技术支持、二次开发、解决方案及 ZEMAX 软件相关全方位定制服务。有关 ZEMAX ,您可以点击文末“阅读原文”了解更多信息,或致电垂询武汉宇熠工作人员:

销售热线:027-87878386

咨询邮箱:sales@ueotek.com




技术交流

光机解决方案

电话:027-87878386

邮箱:sales@ueotek.com

网址:www.ueotek.com

长按识别二维码关注

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图17

新闻咨询

Zemax 中国区代理

Solidworks 增值经销商

MCGrating 光栅设计软件

OOFELIE::Multiphysics 多物理场仿真分析软件

Optiwave 光通信设计软件

nPower 软件

ASLD 高级固体激光器设计及仿真软件

武汉宇熠科技有限公司

ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图18


ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图19
在看点这里
ZEMAX | ZOS-API、ZPL 和 DLL 之间的区别的图20


👇点击阅读原文咨询产品或者技术支持。

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注