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


??點擊閱讀原文咨詢產品或者技術支持。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP