光学系の構成、言い換えるとモデルのレンズタイプによっては、性能の向上にある程度の限界があることが知られています。
たとえば『トリプレットタイプは明るくするのには不向き』、『レトロフォーカスタイプはディストーションが大きい傾向がある』など、よく知られているシンプルな構成のものについては、ある程度予想ができます。
しかし光学系の構成が複雑になればなるほど、そういうわけにはいきません。
「今までの経験上こんな感じでうまくいくかも???」という勘だけで設計を進めていては、より良い光学系にはたどりつきにくいでしょう。
そこで皆様の経験をフルに活かすために「グローバルシンセシス(Global Synthesis、GS)」をお勧めします。
グローバルシンセシスとは現在の光学系とは異なるタイプのレンズを多数探索してくれる自動設計機能のアルゴリズムです。
グローバルシンセシスで探索された多数のレンズタイプの中には、コンパクトなものや製造誤差に強いもの、性能が今以上に良くなる可能性のあるタイプが隠れていることがあります。
ここで探索された解はどれも設定した制約条件を満たしています。
ただし、そのレンズタイプの潜在能力、たとえば公差がゆるいなどはCODE Vには判別できません。
この「多くのレンズタイプの中からよりよいものを見つけ出す」ことに皆様の経験をお借りしたいのです。
ではよりよいレンズタイプをどのように探せばいいのでしょうか?
では、この探索された多くのレンズタイプを簡単に確認して比較する方法はないのでしょうか?
これが今回、攻略すべきポイントです。
いかがですか?
こうあらためて見ると確かにいろいろなタイプのモデルがグローバルシンセシスから探索されていることがわかります。
これらのレンズタイプの中に今設計している光学系により適していそうなものはありますか?
例えば偏角が小さいと製造誤差による感度が大きくなりにくいです。極端な形状やありえない配置のレンズタイプは製造することができないので除外することができます。
通常はこの中から2、3タイプに絞ります。それらを平行してさらなる設計を行って、最終的に最も性能が良くなったものを採用するというプロセスが効率がよさそうです。
どうもお目当てのレンズタイプがない場合は、レンズタイプの中からかろうじて仕様に近いといえるタイプを使ってもう一度グローバルシンセシスをかけちゃいましょう!
グローバルシンセシスを一回ドンと長時間かけるより、グローバルシンセシスのスタートデータとなるレンズタイプを変化させながら何回もかけるとよりよい解が出る傾向があるということがわかっています。これはCODE Vの開発元、ORA社も光学系を設計するときに実践している方法です。
PLOT_GLマクロの中身を詳しく見てみると、光学系の設計に役立つこともあります。
CODE Vのインストールフォルダにあるmacroフォルダ内のplot_gl.seqを開いてみてください。
このマクロではグローバルシンセシスで探索されたレンズタイプを読みこんで、評価関数の値を確認した後プロットしています。
まず、ヘッダー情報とGUIダイアログのための記述があります。
次にCore lens nameの指定がなかった場合に必要なパラメータをコマンドラインから入力するよう促す処理があります。
そして各入力値を変数に格納しています。さらに使われていないバッファを3つ用意します。
ここで指定したCore lens nameのモデルでグローバルシンセシスが実行されたかどうか確認しています。もちろんなければマクロを終了します。
次に適切に断面図をプロットできるよう、各種値を調整しています。
ここからがマクロのコア部分です。
Number of first solution toとNumber of last solution toで指定した範囲内でグローバルシンセシスの解であるレンズタイプが作業フォルダにあるかどうかひとつひとつチェックします。なければ、次のレンズタイプにスキップです。
レンズファイルがあれば読み込みます。
その読み込んだモデルの評価関数がUpper Limit of errorで指定した上限を超えていなければ断面図をプロットすることになります。
ここでこのプロットは一旦GRAコマンドを利用してファイルに出力しています。
このときプロットのタイトルやプロットする位置を調整し、さらに材質の設定されている面の番号を表示します。
実はこのプロットはテキストで定義されているため、ファイルの中身のテキストを「直接編集」することが出来ます。これを利用してプロットに材質のリストを追加します。
まずプロットファイルをバッファに読み込みます。
このプロットファイルのテキストの最後にプロットの終了を意味する2が記述されています。
その最後の2を削除して、材質のリストを表示する命令を追加していきます。
3から始まる命令でペンを移動し、8から始まる命令で面番号と材質名をプロットに追加していきます。
全ての材質をリストし終えたら命令2でプロットを終了します。
プロットファイルの描画コードの詳細は、CODE V リファレンスマニュアル日本語版を以下のキーワードで検索してご確認ください。
『ニュートラルプロットファイルフォーマット
このグローバルシンセシスの解であるレンズタイプのファイルを「確認」、「読み込み」、「プロット」、「材質リストの追加」を繰り返します。
そして最終的にひとつのプロットファイルとしてPLOT_GLマクロの結果が.PLTファイルに出力されます。
マクロプログラミングの中身に興味がある方は「CODE V マクロ機能セミナー」をお勧めします。