zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別

本文對(duì)ZOS-API、ZPL和DLL進(jìn)行了比較。我們將會(huì)對(duì)與OpticStudio的互聯(lián)、代碼執(zhí)行、語句和數(shù)據(jù)存取與處理這些方面進(jìn)行解釋說明。作者 Haosheng Hu概述在OpticStudio中,用戶可以通過編程(Programming)選項(xiàng)卡訪問OpticStudio的編程功能,如Zemax編程語言(ZPL)、應(yīng)用程序編程接口(ZOS-API)和動(dòng)態(tài)鏈接庫(DLL)。每種編程方法都有其獨(dú)特的特點(diǎn)。本文描述了這三種編程功能的特點(diǎn)和區(qū)別。ZOS-API 和 ZPL之間的區(qū)別ZOS-API和ZPL在許多方面都有所不同,包括它們的語句、應(yīng)用程序和運(yùn)行環(huán)境。以下部分將提供這兩種編程方法的概述,并詳細(xì)描述這些差異。什么是ZOS-API?zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖1ZOS-API是一個(gè)應(yīng)用程序接口,它是為使OpticStudio能夠支持與其它應(yīng)用程序的連接和自定義而開發(fā)的。雖然ZOS-API依賴于COM接口,但它來源于.NET庫,因此可以使用任何能夠訪問API庫的編程語言(如C++、C#、Python、MATLAB)進(jìn)行API編程。ZOS-API允許應(yīng)用程序與OpticStudio中打開的實(shí)例直接交互,或者將OpticStudio作為背景程序運(yùn)行。有關(guān)不同交互模式的詳細(xì)資料,請(qǐng)查看文章ZOS-API用戶可用的示例文件。什么是 ZPL?zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖2Zemax編程語言(ZPL)是一種宏語言,它允許用戶在OpticStudio中直接編寫自己的程序。ZPL可以:
  • 自動(dòng)地重復(fù)鍵盤和鼠標(biāo)操作

  • 基于OpticStudio數(shù)據(jù)執(zhí)行計(jì)算

  • 以特定格式導(dǎo)出數(shù)據(jù)

  • 生成數(shù)據(jù)的圖表和文本清單

想要獲得更多關(guān)于ZPL的信息,可查看文章Zemax編程語言(ZPL)簡介不同之處以下為ZOS-API與ZPL之間最基本的差別。
  • 接口
ZPL宏是一個(gè)文本文件??梢栽贠pticStudio內(nèi)的ZPL編輯器中創(chuàng)建和編輯ZPL宏。ZPL宏很容易學(xué)習(xí),不需要任何編程經(jīng)驗(yàn),并且在其中提供了能夠執(zhí)行一系列命令的強(qiáng)大工具。下面的截圖顯示了ZPL編輯器中的ZPL宏。zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖3ZOS-API應(yīng)用程序是用可以訪問API庫的編程語言編寫的。ZOS-API支持四種編程語言:MATLAB、Python、C++和C#。下方截圖顯示了用于連接至ZOS-API的Matlab代碼。
zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖4
  • 代碼執(zhí)行

ZPL宏在OpticStudio圖形用戶界面(GUI)中運(yùn)行。要執(zhí)行或編輯ZPL宏,請(qǐng)單擊:編程(Programming)> ZPL宏(ZPL Macros)>編輯/執(zhí)行(Edit/Run)。zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖5zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖6ZOS-API應(yīng)用程序的執(zhí)行取決于使用的模式:
  • 獨(dú)立應(yīng)用程序(A Standalone Application) 模式是一個(gè)外部可執(zhí)行文件(.exe),它將啟動(dòng)一個(gè)全新的OpticStudio實(shí)例作為背景程序。在這種模式下,OpticStudio作為服務(wù)器運(yùn)行,沒有用戶界面。必須小心確保運(yùn)行實(shí)例數(shù)量沒有達(dá)到OpticStudio許可運(yùn)行的最大數(shù)量。

  • 自定義擴(kuò)展(User Extension)或自定義分析(User Analysis) 模式是從OpticStudio 內(nèi)置的GUI中啟動(dòng)的,可構(gòu)建類似于擴(kuò)展程序的應(yīng)用程序。它們可以通過編程(Programming)>ZOS-API.NET接口(ZOS-API.NET Applications)> 自定義分析/擴(kuò)展(User Analyses/Extensions)來訪問的。

  • 交互擴(kuò)展(Interactive Extension)從編程(Programming)>ZOS-API.NET接口(ZOS-API.NET Applications)>交互擴(kuò)展(Interactive Extension)打開。它可以將外部的ZOS-API應(yīng)用程序連接到OpticStudio的現(xiàn)有實(shí)例。

  • 語法
ZPL是一種可編譯的“宏”或“腳本”語言,類似于帶有光線追跡函數(shù)BASIC編程語言。所有ZOS-API程序和擴(kuò)展都是用C#、C++、MATLAB或Python等外部編程語言編寫的。
  • 數(shù)據(jù)存取和處理
ZPL宏由存儲(chǔ)在文本文件中的一系列命令組成。這些命令可以給變量(數(shù)值或字符串)賦值、使用關(guān)鍵字調(diào)用函數(shù)或進(jìn)行注釋。在ZPL中,所有數(shù)據(jù)存取和處理都基于已定義的命令。ZPL作為解譯型代碼,在運(yùn)行復(fù)雜計(jì)算時(shí),它可能比完全編譯的代碼慢。在ZOS-API中,數(shù)據(jù)存取和數(shù)據(jù)處理更加靈活和強(qiáng)大。ZOS-API可以利用其它高級(jí)編程語言(如MATLAB)的數(shù)值分析和矩陣計(jì)算能力。
  • 互用性
ZPL不能通過ZOS-API調(diào)用,反之亦然。
  • 對(duì)比表格

ZOS-APIZPL接口取決于所選的編程語言O(shè)pticStudio內(nèi)置代碼執(zhí)行非常靈活(可以是可執(zhí)行文件,可以從編程語言運(yùn)行,也可以嵌入到OpticStudio中)OpticStudio內(nèi)置語法取決于所選的編程語言非?;A(chǔ);易于學(xué)習(xí)數(shù)據(jù)存取和處理靈活而強(qiáng)大的數(shù)據(jù)存取和處理可以利用其他編程語言的數(shù)值分析和矩陣計(jì)算能力(如使用MATLAB的ZOS-API)解譯型語言進(jìn)行復(fù)雜計(jì)算時(shí),比完全編譯的代碼更慢ZOS-API 和DLL的區(qū)別什么是DLL?動(dòng)態(tài)鏈接庫(Dynamic Link Library,DLL)是一個(gè)共享庫。它是一個(gè)Windows程序,但不能像EXE程序那樣直接運(yùn)行。它可以被另一個(gè)程序調(diào)用,即我們的OpticStudio。DLL根據(jù)需要調(diào)用,并在完成時(shí)關(guān)閉。只在需要時(shí)使用DLL,使得內(nèi)存管理方面更高效。在OpticStudio中,發(fā)送到DLL的數(shù)據(jù)是指定且有一定限制的。存在不同類型的DLL,如用戶自定義表面、用戶自定義散射配置文件等。對(duì)于每種類型的DLL,可以在文件夾{Zemax}/DLL下的示例DLL源代碼中找到數(shù)據(jù)結(jié)構(gòu)。有關(guān)DLL的更多信息,請(qǐng)查看文章如何編譯用戶自定義DLL。不同之處ZOS-API和DLL之間最根本的區(qū)別是客戶端-服務(wù)器角色是相反的。
  • ZOS-API腳本是一個(gè)客戶端,它調(diào)用OpticStudio作為服務(wù)器來執(zhí)行任務(wù)。ZOS-API腳本可以訪問OpticStudio接口,并且OpticStudio內(nèi)幾乎所有方面的功能都可以通過ZOS-API腳本訪問和運(yùn)行。API腳本還包含其他功能,比如批量處理光線追跡(Batch Ray Trace)等。

  • DLL充當(dāng)服務(wù)器。OpticStudio客戶端將指定數(shù)據(jù)發(fā)送給DLL或從DLL獲取指定數(shù)據(jù),并最終將這些數(shù)據(jù)返回至OpticStudio中。因此,OpticStudio僅負(fù)責(zé)數(shù)據(jù)交換,由此限制了DLL的操作范圍。

zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖7

Ansys Zemax國內(nèi)可靠代理商



  光研科技南京有限公司是國內(nèi)可靠的光學(xué)軟件和儀器光電供應(yīng)商,提供企業(yè)定制化上門培訓(xùn)服務(wù),承接各類光學(xué)設(shè)計(jì)項(xiàng)目,并有一系列自主編寫出版的光學(xué)設(shè)計(jì)書籍。公司擁有一支高素質(zhì)、高水平、實(shí)戰(zhàn)經(jīng)驗(yàn)豐富的管理,銷售以及研發(fā)團(tuán)隊(duì),從成立到現(xiàn)在已經(jīng)為廣大企業(yè),研究所以及高校提供了很多優(yōu)秀的產(chǎn)品和服務(wù),是光電圈內(nèi)值得信賴的企業(yè)。追光逐夢(mèng),研以致用!以用戶的需求為起點(diǎn),為客戶提供有價(jià)值的光學(xué)產(chǎn)品和服務(wù)一直都是光研科技南京有限公司的宗旨。



  AnsysZemax光學(xué)軟件咨詢與訂購聯(lián)系方式

       聯(lián)系人:南京光研   徐保平

  手機(jī)號(hào):15051861513

  微信號(hào):13627124798


       您也可以掃一掃下面的二維碼直接咨詢


zemax編程語言應(yīng)用指南:ZOS-API、ZPL和DLL之間的區(qū)別的圖8
登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP