本文对 ZOS-API、ZPL 和DLL 进行了比较。我们将会对与 OpticStudio 的互联、代码执行、语句和数据存取与处理这些方面进行解释说明。
概述
在 OpticStudio 中,用户可以通过 编程(Programming) 选项卡访问 OpticStudio 的编程功能,如 Zemax编程语言( ZPL )、 应用程序编程接口( ZOS-API )和 动态链接库 ( DLL )。每种编程方法都有其独特的特点。本文描述了这三种编程功能的特点和区别。
ZOS-API 和 ZPL之间的区别
ZOS-API 和 ZPL 在许多方面都有所不同,包括它们的语句、应用程序和运行环境。以下部分将提供这两种编程方法的概述,并详细描述这些差异。
ZOS-API 是一个应用程序接口,它是为使 OpticStudio 能够支持与其它应用程序的连接和自定义而开发的。虽然 ZOS-API 依赖于 COM 接口,但它来源于.NET库,因此可以使用任何能够访问API库的编程语言(如C++、C#、Python、MATLAB) 进行 API 编程。ZOS-AP I允许应用程序与 OpticStudio 中打开的实例直接交互,或者将 OpticStudio 作为背景程序运行。
Zemax 编程语言( ZPL )是一种宏语言,它允许用户在 OpticStudio 中直接编写自己的程序。ZPL 可以:
以下为 ZOS-API 与 ZPL 之间最基本的差别。
ZPL 宏是一个文本文件。可以在 OpticStudio 内的 ZPL 编辑器中创建和编辑ZPL 宏。ZPL 宏很容易学习,不需要任何编程经验,并且在其中提供了能够执行一系列命令的强大工具。下面的截图显示了 ZPL 编辑器中的 ZPL 宏。
ZOS-API 应用程序是用可以访问 API 库的编程语言编写的。ZOS-API 支持四种编程语言:MATLAB、Python、C++ 和 C#。下方截图显示了用于连接至 ZOS-API的 Matlab 代码。
1、代码执行
2、ZPL 宏在 OpticStudio 图形用户界面( GUI )中运行。要执行或编辑 ZPL 宏,请单击: 编程( Programming )> ZPL 宏( ZPL Macros )>编辑/执行 (Edit/Run)。
ZOS-API 应用程序的执行取决于使用的模式:
1、语法
ZPL 是一种可编译的“宏”或“脚本”语言,类似于带有光线追迹函数BASIC编程语言 。
所有 ZOS-API 程序和扩展都是用 C#、C++、MATLAB 或 Python 等外部编程语言编写的。
2、数据存取和处理
ZPL 宏由存储在文本文件中的一系列命令组成。这些命令可以给变量(数值或字符串)赋值、使用关键字调用函数或进行注释。在 ZPL 中,所有数据存取和处理都基于已定义的命令。ZPL 作为解译型代码,在运行复杂计算时,它可能比完全编译的代码慢。
在 ZOS-API 中,数据存取和数据处理更加灵活和强大。ZOS-API 可以利用其它高级编程语言(如 MATLAB)的数值分析和矩阵计算能力。
ZPL 不能通过 ZOS-API 调用,反之亦然。
ZOS-API | ZPL | |
接口 | 取决于所选的编程语言 | OpticStudio内置 |
代码执行 | 非常灵活(可以是可执行文件,可以从编程语言运行,也可以嵌入到OpticStudio中) | OpticStudio内置 |
语法 | 取决于所选的编程语言 | 非常基础;易于学习 |
数据存取和处理 | 可以利用其他编程语言的数值分析和矩阵计算能力(如使用MATLAB的ZOS-API) | 解译型语言 进行复杂计算时,比完全编译的代码更慢 |
ZOS-API 和 DLL 的区别
什么是 DLL?
动态链接库 (Dynamic Link Library,DLL) 是一个共享库。它是一个 Windows 程序,但不能像 EXE 程序那样直接运行。它可以被另一个程序调用,即我们的OpticStudio。DLL 根据需要调用,并在完成时关闭。只在需要时使用DLL,使得内存管理方面更高效。在 OpticStudio 中,发送到 DLL 的数据是指定且有一定限制的。存在不同类型的 DLL,如用户自定义表面、用户自定义散射配置文件等。对于每种类型的 DLL,可以在文件夹 {Zemax } / DLL下的示例 DLL 源代码中找到数据结构。
ZOS-API 和 DLL 之间最根本的区别是客户端-服务器角色是相反的。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删