2022年1月19日
ZOS-APIの構造の基本について理解する

本記事では、ZOS-API の基本的構造と、ZOS-API に適用されるオブジェクト指向プログラミングの概念について説明しています。 ZOS-API のオブジェクト指向の性質は主に「隠されて」いますが、ZOS-API の語彙と構成をよりよく理解するのに役立ちます。
この記事では、オブジェクト指向プログラミングの重要な概念と、それらが ZOS-API でどのように使用されるかについて説明します。開発者でなくても ZOS-API を使用することは可能ですが、いくつかの基本事項を把握すれば、 ZOS-API を使用する作業がはるかに簡単になります。
オブジェクト指向プログラミングとはなにか?
オブジェクト指向言語は、効率的なプログラミング方法を使用します。データはオブジェクトとクラスを使用して編成されるため、コードをプロジェクト毎に最初から作成するのではなく再利用できます。この概念は、OpticStudio ファイルの定義に簡単に使用できます。
各zmx ファイルはある一つの光学系を表現します。この光学系はシーケンシャルまたはノンシーケンシャル モードにおいて、異なる数のオブジェクトや面等が設定されることで、区別されます。

オブジェクト指向プログラムでは、各光学システムは API 「オブジェクト」として記述されます。光学系は波長や面タイプといった、共通の特性値を持っています。
オブジェクト指向プログラミングでは、共通の特性値はマスター リストにグループ化されます。この特性のマスター リストはクラスまたはインターフェイスと呼ばれます。

クラスはさらにネームスペースと呼ばれるライブラリに分類され、コード構造をまとめると次の様になります:
Namespace (Library containing Classes and Interfaces)
Class / Interface: group (template with attributes)
Functions (action)
Property (set or get a value)
より詳しい情報はこちらのリンクをご参照ください:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/general-structure-of-a-csharp-program
ZOS-APIの構造
ZOS-API はネームスペースと呼ばれるインターフェイスの階層です。ZOS-API を使用するということは、これらのインターフェイスのいずれかのメンバーである API 「オブジェクト」を作成することを意味します。インターフェイスはオブジェクトに使用できる属性を決定します。
属性のプロパティまたはファンクションとは:
- プロパティとは、設定されたり保存された値を定義したり、読み込んだりすることです。
- ファンクションとは、オブジェクトが実行可能なコマンドです。
オブジェクトのファンクションやプロパティを呼び出すと、常に何らかの応答が返ってきます。以下の様な応答です :
-
数値(double, int, ...)、テキスト(string)、ブーリアン(true or false)
int value = Object1.NumberOfFields;
-
インターフェイスのメンバーである新しいオブジェクト
IField New_Object = Object1.GetField(1);
-
プロパティの値の「取得」や、値の「取得」と「設定」
値の取得のシンタックスは value = Object1.Normalization
値の設定のシンタックスは Object1.Normalization = value.Set
インターフェイスの階層
ZOS-APIのヘルプと一緒にいくつかのサンプルコードを使用することで、どのようにコードが構成されているか調べてみましょう。
-
サンプル ファイル "\Zemax\ZOS-API Sample Code\C#\CSharpStandalone_01_new_file_and_quickfocus.cs" を開いてください。このファイルはテキスト ファイルとして開けます。このサンプル ファイルは C# ですが、 ZOS-API で使うすべてのプログラミング言語でオブジェクト指向プログラミングのコンセプトは共通して使うことができます。
- シンタックス ヘルプ ファイルを開いてください
- このヘルプ ファイルの中で、メイン インターフェイスはIOpticalSystem と呼ばれています。これは ZMX ファイルと等価です。
-
IOpticalSystem をクリックすると、このインターフェイスのすべての属性に関する情報にアクセスできます
著者:
Sandrine Auriol
Senior Optical Engineer
Zemax an Ansys Company
ZOS-APIの構造の基本や、継承などの重要な概念については、以下の情報をご覧ください:
ナレッジベース記事:ZOS-API の基本的構成についての理解
Zemax の機能をお試しいただくには、こちらから無料トライアルをダウンロードしてください。