日本総代理店
   合資会社エクレシア
   TEL 0422-40-0344 / FAX 0422-40-0348
   sales@ekklesia.co.jp


OpTaliXについて
 OpTaliX-Pro
 機能一覧
 ファイルコンバート
 価格・発注方法
 お問合せ

ユーザ・サポート
 サポート・サービス
 セミナー
 よくある質問 (FAQ)
 バージョン履歴

ダウンロード
 ソフトウェアとマニュアル
 カタログ
 レンズデータ

ユーザの集う掲示板
 掲示板

Optenso社サイト
 Optenso

その他の情報
 会社案内
 参考書籍
 WEB Policy

OpTaliXの FAQ

FAQのトップページに戻る

0001 物体距離を設定するかわりに倍率を設定することは可能ですか?
その結果にはデフォーカスの影響も考慮されますか?
  可能です。 倍率を設定するには、コマンドラインから、   SET MAG mag_value   の書式にしたがって、希望する倍率を入力してください。たとえば、0.1倍の縮小倒立系でしたら、 倍率の符号はマイナスになりますから SET MAG -0.1  の要領で入力することになります。こうすると、倍率にみあった物体距離が自動的に設定されます。

多くの場合、SET MAG とあわせてPIM を併用すると便利だと思われます。 コマンドラインから あらかじめ、PIM と指定しておくか、あるいは面エディタ(Surface Editor) の最下欄左にある
[ ]PIM
の欄にチェックしておくと、SET MAG コマンドを実行すると同時に、それにみあった近軸像距離も 自動的に設定されます。
上記の結果にはデフォーカスは含まれません。デフォーカスも考慮するには、上記の後、さらに "オートフォーカス"の機能を併用します。それには コマンドラインからAF とするだけです。こうすると 視野全域のスポットダイアグラムが 最良となるように像面位置が調整されます。オートフォーカスには さまざまなオプションを追加できます。詳細はマニュアルを参照してください。

= 注意 = SET MAGは、それを実行した時点のレンズ系に対して、所定の物体距離を自動的に設定する 機能だけを持っています。このため、レンズデータを変更し、かつ倍率を所定の値に維持したい場合には、 再度 SET MAG を実行する必要があります。

もうひとつの方法は、RED を使う方法です。コマンドラインから SET MAG red_value  の書式にしたがって、希望する値 red_value を入力してください。ただし、red_value は

red_value = −近軸像高/近軸物体高

と定義されています。つまり、

red_value = -mag_value

ですから注意してください。RED で倍率を指定すると、レンズデータが変更された場合でも即座に 常にその倍率が維持されるように物体距離が再計算されます。さらにPIMが設定されていれば、 同時にその際の像距離が計算されます。
   
1001 面エディタで、面を追加しようと [Insert Surf.] をクリックしましたが 下記エラーがでて追加できません。

Error
Surface cannot be inserted in front of object surface!
  これは、カーソルが[OBJ] の位置に置かれた状態で、[Insert Surf.] を クリックしたときに出力されるエラーで、"物体面の手前には面を追加することができません" という 意味です。
[OBJ]よりも後ろの面 (第1面以降、STO面、IMG面を含む任意の面)にカーソルを移動した後、面を 追加してください。
   
1002 面エディタをはじめとする、スプレッドシート型の編集画面で、 ひとつのセルだけを選択する際、隣のセルまで行きすぎてしまいます。
  ひとつのセルだけを選択するためのコツがありから、ご紹介します。
下記を参照しながら、いっしょに操作してみてください。

[ステップ 1] : 面エディタで、第1面の曲率半径を変更する場合を例とします。
[ステップ 2] : 通常どおり、設定した文字の先頭からドラッグを始めても、
[ステップ 3] : セルの後端を越すと、隣のセルまでいっしょに選択されます。
[ステップ 4] : ここでマウスを左に戻すようにすると、
[ステップ 5] : セルの文字の先頭で、マウスは固定され所望のセルだけが選択されます。
   
1003 面エディタで最終行にデータを入力したいのですが、うまくできません。
  面エディタの最終行では、リターンキーが効きません。各セルに入力した値を確定するには、 [Tabキー] や [カーソル移動キー]、マウス等で別のセルにカーソルを移動させてください。
   
1004 面エディタで、像距離(レンズの最終面と像面の間の距離) を入力したいのですが、 グレーに表示されていて、設定できません。
  面エディタの下方にある、[PIM] の欄(下図 赤丸部)にチェックが入っていませんか? これを解除すれば、入力できるようになります。


そもそも [PIM] とは、Paraxial IMage distance(近軸像距離)の略称ですが、 これを "有効" にしておくと(コマンドでは "PIM YES")、像距離は、常に『近軸計算に基づく値』+『デフォーカス量』に 自動的にセットされる状態となります。ここで『近軸計算に基づく値』とは、面エディタ下方に表示された [BFL] の値 (上図 青丸部) のことです。 また、『デフォーカス量』とは、[BFL] からのオフセット量のことで、上図の緑丸部にその値を 任意に設定します。 ごく基本的には、デフォーカス量はゼロに設定しますが、より適切には、実存する収差量に応じて 異なる値を設定します。このことの詳細は、マニュアルの AFコマンドの章を参照してください。 PIM を "無効" (PIM NO) に設定した場合には、もはや近軸像距離を反映した自動設定はされず、レンズの最終面と 像面の間の距離を直接、任意に設定できるようになります。この場合には、もはや、デフォーカス量を 入力することに意味はないので、面エディタのデフォーカス入力欄はグレー表示され、入力できなくなります。 しかし、この場合でも、近軸像距離と、実際の像距離との差がデフォーカス量として自動計算され、 面エディタに表示されます。さらに詳しくは、マニュアルの デフォーカスの項を参照してください。
   
1005 最終面の直後の面間隔が自動的にセットされてしまい、思い通りに設定できません。
  FAQ1004を参照してください。

   
1201 OpTaliXは屈折率を直接入力するのではなく、BK7 のようにガラス名で 入力するということは分かりました。今、手元に屈折率は分かっていますが、ガラス名の分からない ガラスがあります。
どう入力すればいいでしょうか?
  4つの方法があります。

A : "溶解ガラス(ユーザ定義ガラス)" を使う方法
B :  仮想ガラスを使う方法
C : プライベートガラスを使う方法
D : MIL-コードを使う方法

A : "溶解ガラス(ユーザ定義ガラス)" を使う方法
複数の波長に対する屈折率が分かっている場合には"溶解ガラス"の機能が使えます。この機能を使えば、 OpTaliXのガラスデータベースに任意のガラスを登録できます。いったん登録してしまえば以降は、既存の カタログガラスと同様に扱えます。OpTaliXのメインメニューからは
Glass Manager --> Create Melt Glass
とたどるか、コマンドラインから MELT ? と入力すると 登録用のダイアログボックスが開きます。

(1) ここに屈折率と波長の対応を入力して、
(2) 分散式を Old Schott または Selmeier から選び、
(3) [Fit Coeffs] ボタンをクリックしてください。

そうすると、分散係数がフィッティングにより計算されます。この際、波長の単位はミクロン(μm)とし、 かつフィッティングに用いる "波長--屈折率ペア" には、入力欄の左側の [use] の欄にチェックをいれる ことを忘れないで下さい。

また光学設計(評価)の対象とする波長帯を十分にカバーする波長--屈折率ペア を入力することにも 注意してください。その上で

(4)Melt Nanme の欄に登録するガラス名を入力し
(5) [Add] ボタンをクリックすれば完了です。

なお、[Add] 操作の前に(つまり、操作4と5の間)に、Use other properties from の欄に 登録済みの ガラス名を指定すると、分散係数以外の情報(比重や透過率など・・)のデータが、そのガラス名から コピーされます。一連の操作の詳細は、リファレンスマニュアルの "ガラスマネージャ" の項 を 参照してください。

B :  仮想ガラスを使う方法
OpTaliXのガラスデータベースに登録することなく、直接、屈折率データを指定する方法もあります。

(1) GLA コマンドを使って、仮想ガラス "pri" を定義します。
(2) 次に所望の屈折率を入力します。これにはIND コマンドを使います。
= 例 =
WL 0.450 0.546 0.650    ! 3つの波長が定義されている場合
GLA s3 pri              ! プライベートガラスを定義
IND s3 1.514 1.529 1.532  !屈折率データです。

この方法は、ごく数波長分の屈折率データしか既知でなく、分散係数を求めるのに適さない場合、あるいは、 その場限りの評価を行う場合に有用です。しかし一方で、お勧めしづらい側面もあります。 光学評価の波長を変更した場合に問題が生じます。つまり、光線追跡波長(WL)を変えても、プライベート ガラスの屈折率は更新されないのです。このため波長を変更した場合は、屈折率を入力しなおす 必要があります。

C : プライベートガラスを使う方法
3つめの方法はプライベートガラスを使う方法です。プライベートガラスとは、波長と屈折率との関係を、 ガラス名とともに1組以上記述する方法です。2組以上の波長-屈折率ペアを設定すれば、その間の屈折率は OpTaliXが補間します。 補間の結果は IND コマンドを用いれば確認できますが、その妥当性については、ユーザの判断が必要です。
= 例 =
PRV
PWL 0.656 0.587 0.546 0.483
'Gname' 1.73905 1.74400 1.74795 1.75566
END

このコマンドによる屈折率の情報は、レンズデータファイルにも格納されますが、一方、OpTaliX の ガラスカタログには登録されません。

D : MIL-コードを使う方法
MIL-コードを用いた方法です。ガラス名の欄にxxx.yyy の書式で数字を直接指定します。ここで xxx は d線(0.587μm) の屈折率-1.0を、yyyにはd線に対するアッベ数 νd×10の値を指定します。 例えば、BK7 の場合、nd=1.51633 , νd=64.1 ですから、仮想ガラスとしてこのデータを指定するには、 516.641 を指定することになります。

xxx.yyyは全体として10文字まで指定できますから、51633.641 という指定も有効です。仮想ガラスは、 OpTaliXの内部関数によって可視域内の任意の波長における屈折率に換算されますが、ガラスの分散性に よっては必ずしも適切ではない値が得られることもあります。 換算された結果は LIS IND コマンドを 使えば確認できます。
   
1202 レンズを描画する際の外径を指定するには、どうしたらよいでしょうか?
  レンズの外形が、円形であれば CIR EDG コマンドを、矩形であれば REC EDG コマンドを使います。 その他の形状についてはリファレンスマニュアルの アパーチャの章を参照してください。 上記各コマンドによって明示的に外径が設定されていない面については、各面の光線有効径に対して定数を乗ずるか、 あるいは定数を加えた値をもってレンズ外径が規定されます。そのための設定は、メインメニュー から preference を選択し、[Operations]タブ にある、[adjust surface apertuer automatically] より行えます。
   
1203 面に偏芯を設定しましたが、光線追跡に反映されません。
  面に設定したアパーチャを光線追跡に反映させるには、その面を "固定アパーチャ" として設定しなければなりません。 そのためには、コマンドモードであれば "FHY Sk 1" と入力してください( Sk は当該の面番号で、たとえば S3 のように します)。 面エディタからであれば、APE-Y の右側の欄に "1"を設定します。
具体例でお示しします。
下図上段は、面エディタの [Standard Data] タブです。 赤丸部に、1が設定されていることから、第2面が "固定アパーチャ" であることが分かります。 下図中段は、面エディタの [Special Apertures] タブです。赤丸部より、第2面には、半径1200mm の開口(CIR)と、 半径300mm の遮蔽(OBS)が指定されていることが確認できます。下図下段は、設定の結果得られた光学系の断面図です。



サンプルデータは、[こちら]にあります。
   
1204 非球面データを入力しましたが、光線追跡に反映されません。
  非球面データを有効とするには、面タイプ を "S" から "A" に変更してください(下図参照)。 一般に、面エディタにおいて"Standard"以外のタブでデータを設定した場合には、それに呼応した面タイプを 設定する必要があります。 面タイプの詳細は、マニュアルの"面データ"の章にあります。

サンプルデータは、[こちら]にあります。
   
1205 トロイダル面は、どのように入力すればよいですか?
  マニュアルにも記載されているとおり、トロイダル面は、Y方向とX方向とで、 異なった曲率半径をもっています。そのため、通常の曲率半径入力(RDY,あるいはRadius) だけでなく、 X方向の曲率も入力する必要があります。そのためには、コマンドモードからは RDX コマンドを使ってください。 面エディタからであれば、[Asphere] タブの一番右側の欄を使います。
トロイダル面を設定する場合には、面タイプを "A"に切り替えることを忘れないで下さい。
   
1206 シリンドリカル面は、どのように入力すればよいですか?
  2種類の方法を紹介します。
1つめは、X方向曲率(RDX)に 十分に大きな値 (例えば 1.0e10) を設定する方法です。その際、面タイプを "A" に切り替えることも忘れないで下さい。さらに非球面係数を入力すれば、シリンドリカル非球面も定義できます。
2つめは、Y方向曲率(RDY) にゼロを、X方向曲率(RDX) にシリンドリカル面の曲率半径を設定する方法です。もちろん 面タイプは"A" でなくてはなりません。
もしも Y方向に曲率を持ったシリンドリカル面を定義するならば、さらに Z軸(光軸)まわりのティルト(ZDE)を 90°設定してください。この場合、面タイプに "D" を追加し、"AD" とすることに注意してください。 なお、非球面係数は RDY に対してのみ機能しますから、こちらの入力方法を採用した場合には、 非球面係数を入力したとしてもシリンドリカル非球面にはならず、トロイダル非球面になってしまいますから、 ご注意ください。
   
1207 オフセットパラボラは、どうやって設定するのでしょうか?
  オフセットパラボラ(軸はずし放物面)は、回転対称性のある面形状としてのパラボラ面を設定したのち、 オフセット(偏芯)を与えることにより定義します。下記仕様を例に説明します。

[オフセットパラボラの諸元]
  外径 : 25.4mm
  近軸焦点距離(mm) : 12.7mm
  実効焦点距離(mm) : 25.4mm
  ベンド角 : 90°
  オフセット量 : 25.4mm


サンプルデータは、[こちら]にあります。

第1面は、ミラーに入射する光束の径を制限するための STOP面です。光束の径(EPD) は 10.8mm に設定してあります。
第2面は、入射光束の軸と、後続の放物面の回転対称軸との Y方向の平行偏芯量を設定するための面です。 ここでは 20mm の オフセット量 (YDE) を設定してあります。したがって、入射光束の外周部は放物面の直径である 25.4mm = 20.0mm + (10.8mm/2) に一致しています。 この面は、単に座標変換のためのみに使われるダミー面であり、かつ、偏芯面ですから、面タイプ (Surface type) は "XD" としてあります。この面の偏芯情報がそのまま後続面にも適用されなくてはならないので、偏芯モード(TLM) は、NAXです。 ここでの偏芯指定によって、後続の回転対称放物面の軸はずし位置にビームが入射します。
第3面は、非球面ミラーです。したがって、面タイプ "AM"です。この例では、近軸焦点距離 が 12.7mm ですから、 この面の曲率半径は -25.4mm (符号に注意してください。曲率中心が、面頂点 つまり、"面と光軸の交点" よりも左側(光軸たるZ軸のマイナス方向)にあるので、曲率半径の符号もマイナス)となります。
第4面は、ミラーのベンド方向に沿って、光軸を再定義するための偏芯設定面です。この面の Surface type は "SD", ティルトモードは "NAX" です。
なお、軸はずし放物面の場合には、近軸量と実効量が全く異なるため、 PIM の設定は意味を持ちません。 したがって、PIM no を設定します。
   
1401 面に偏芯を設定しましたが、光線追跡に反映されません。?
  非球面データを有効とするには、面タイプ に"D" を追加してください。 一般に、面エディタにおいて"Standard"以外のタブでデータを設定した場合には、それに呼応した面タイプを 設定する必要があります。面タイプの詳細は、マニュアルの"面データ"の章にあります。
   
1600 NSSコマンドを使って、ある面範囲をノンシーケンシャルに指定したところ、 面間隔のデータがすべてゼロになってしまいました。また、面エディタ(Surface Editor)の面間隔 入力欄はグレーで塗りつぶされ、データを設定できません。
  OpTaliXの動作に誤りはありません。正しく機能しています。
NSSコマンドで指定した面範囲 (NSS範囲) に属するすべての面は、それぞれNSS範囲の直前の面 (これを 入射ポート面といいます) の頂点を原点とする偏芯系として定義しなおされます。 通常のシーケンシャル面は、その直前の面からの光軸間隔で相対的に各面の配置が決まりますが、 ノンシーケンシャル面の場合には、"どの面が先行面か" という概念がないので、そのように なっているのです。

実際、NSS範囲の内部では、どんな順序で面を指定したとしても計算結果には影響がありません。仮に、 共軸対称光学系をNSSに指定したとすると、いわゆる面間隔のデータは、"光軸に沿ったシフト偏芯 : ZDE " によって表現されています。このことは、面エディタであれば [Decenter, Tilt]タグ を クリックして、ZDE の欄をご覧くだされば、確認頂けます。

同様に、コマンドラインからは LIS コマンドを実行すると下表のスタイルで 偏芯データが 参照できます。 この表の ZDE の欄をご確認ください。

Decenter / Tilts :
#XDEYDEZDEADEBDECDETLMTSEQ
10.00000.00000.00000.00000.00000.0000NAXXYZABC
20.00000.00004.90200.00000.00000.0000DARXYZABCQ
:::::::::
:::::::::

   
1601 FAQ.1600 に関連した質問です。共軸対称光学系のある面範囲をNSSに 指定した後、DEL NSS でシーケンシャル面に戻しました。しかし、面間隔(THI) が 光軸に沿った 偏芯(ZDE)に変換されたまま、元にもどりません。
  DEL NSS コマンドは NSS範囲を通常のシーケンシャルな面範囲に戻します。 しかし、いったん ZDE に変換された面間隔を 通常のTHI に戻すことはしません。
ご質問の場合には、原理的には THI に戻すことも可能です。しかし、より一般的にはむしろ偏芯に よる定義 (XDE,YDE,ZDE) のまま、各面を3次元空間に配置しておくほうが設計者の意図を満たす ことが多いと考えられます。これがOpTaliXの立場です。

共軸系をあえてNSSとして指定する評価のひとつにゴースト解析があります。もしご質問のケースが これに該当するならば、あえて NSS に指定する必要はありません。メインメニューから、 Geom Analysis --> Ghost Imaging とたどれば、シーケンシャルなデータ構成のままゴースト解析が 実行できます。コマンドラインからは GHP,GHO,GHS,GHV,GHR の各コマンドが使えます。 こちらの詳細はリファレンス・マニュアルを参照してください。
   
1901 いったん設定したピックアップを削除するにはどうしたら良いですか?
  CPI, DPI, TPI MPI 、いずれの場合も ピックアップの対象面としてゼロ またはスペースを設定すれば削除されます。たとえば
cpi s4 _
ここで _ は空白を意味します。
   
1902 RDXはピックアップできないのですか?
  OpTaliXの現行バージョンで RDXだけをピックアップする機能はありません。 RDXに値が設定されているということは、その面がトロイダル面あるいはシリンドリカル面であると いうことですが、これらはいずれも非球面データとして扱われます。OpTaliX は非球面データ全体を ピックアップする機能を持っていますから、面エディタの "Aspheres" タブか、APIコマンドを 使えば、非球面データの一部として、RDXもピックアップ可能です。なお、RDY を単独でピックアップ することは可能です。 また、非球面データは面タイプとして "A" を指定するまでは、有効には       なりません。ご注意ください。(SUTコマンド)
   
2001 面に偏芯を定義しましたが、断面図にも像評価にも反映されず、共軸系の ままです。
  面のタイプが "S" のままになっていませんか? 偏芯の指定を有効に するには 面タイプを "SD"にする必要があります。メニュバーからその設定を行うには Edit → Surface data とたどることで表示される surface editor (面情報の入力画面) のtype の欄にSD と入力し、 エンターキーを押してください。コマンドラインからの場合には
SUT Sk "SD"   ! 例 SUT S2 "SD"
と入力してください。ここで !記号から右はコメントです。この部分を入力する必要はありません。

OpTaliX の場合、いったん偏芯データを設定しても面タイプを "S" とするだけで、偏芯データを 設定したままそれを一時的に無効にしたり
SUT Sk "S"
あるいは再び有効に戻したり
SUT Sk "SD"
でき、便利です。面タイプの考え方、あるいは SUTコマンドの詳細は、リファレンスマニュアルの 6.4章を参照してください。
   
2002 中央遮蔽を定義しましたが、光線がそこでブロックされず透過してしまいます。
  指定した開口形状または遮蔽形状を光線追跡に反映させるには、面ごとに その指定を"有効" にセットする必要があります。ご質問では、遮蔽を定義したのに光線がブロック されない、とのことですので指定が "無効" にセットしてある状態と思われます。

コマンドラインから LIS と入力し、面情報を確認してください。APE-Y の欄 と AP の欄の間に 星印 "*" がついていますか? 下記に示す面情報の出力例(左下図) の丸印部分です。ここが空白に なっている場合には、開口(遮蔽)の指定は無視されます。指定を有効にするには、コマンドライン から FHT コマンドを使って
"FHT s5 1" の要領で設定をしてください。この例は第5面の指定を "有効" にするものです。



同じ指定を面エディタからすることもできます。メニューバーから Edit --> Surface data と たどると下図の画面が現れます。丸印のついている欄が設定欄です。開口(遮蔽)の指定を有効と したい面に、"1" を設定してください。

   
2003 楕円ミラーによる集光器を設計しますが、データ設定に注意事項があれば教えて下さい。
  この例のように、面と光線の交点が2つ存在する場合には、そのどちらの光路を選択するかを ICコマンドで決定できます。下図上段は "IC Sk NO" に相当する光路、下段 は "IC Sk YES" に相当する光路です。 ただし、"Sk" は該当面の面番号です。 コマンドラインから、"IC s3 YES" , "IC s5 No" のように設定します。 (ただし 入力時に引用符" は不要です)
   
2004 ある面に 入射する光線 と 出射する光線 )のなす角を ひとつのコマンドで プリントする機能はないでしょうか?
  ひとつのコマンドではできず、いくつかのコマンドを組み合わせる必要があります。 そのうち、最も応用範囲の広い方法をご紹介します。ここで使うのは 単光線追跡のコマンド RSI です。
たとえば、 "RSI f2 w1 0 1" の要領でコマンド入力をするならば、これは瞳座標 X=0.0, Y=0.0 の座標を通過する 第2画角・第1波長の光線の各面の通過座標と、通過後の光線の方向余弦が、下記書式に基づいてプリントする、 という意味です。(ただし下記は、メールの表示スペースの都合で、有効桁数を実際よりも少なくしてあります。) なお、瞳座標の指定にあたっては、入射瞳半径が 1.0 に正規化された座標系における設定のなるのであって、 実座標(mm) で与えられるのではないことに注意してください。 (瞳の相対座標で入力すれば、それに mm で表現された 入射瞳径が乗ぜられて、追跡光線が設定されます)

# X Y Z CX CY CZ cos(I) PATH
REL 1 0.000 -2.503 0.489 0.000 0.432 0.901 -0.994 -4.727
REL 2 0.000 -2.135 0.007 0.000 0.722 0.691 -0.904 -3.876
REL 3 0.000 -1.113 -0.029 0.000 0.413 0.910 0.652 -2.462
REL 4 0.000 -0.949 0.069 0.000 0.579 0.815 -0.961 -2.064
REL 5 0.000 0.000 0.000 0.000 0.579 0.815 -0.815 -0.426
REL 6 0.000 0.979 0.006 0.000 0.343 0.939 -0.807 1.264
REL 7 0.000 1.197 -0.051 0.000 0.509 0.860 0.965 1.898
REL 8 0.000 12.912 0.000 0.000 0.509 0.860 -0.860 24.874


ここで、X,Y,Z は、各面(上記では第1面から第8面)における光線と面との交点座標を、各面の頂点を 原点として示したものです。RSIコマンドで指定した瞳座標が、正規化された座標系によるものであったのに対し、 ここで表示される X,Y,Z 座標は、実座標(mm) で表現されている点に注意してください。また、CX,CY,CZ は、 各面を通過した直後の光線に沿った単位ベクトルの方向余弦です。
これらの光線が違いになす角θは、各方向余弦を入射光線 (光線1)と出発射光線 (光線2) の各ベクトルの成分だと 考えて内積を取り、その逆余弦をとればよいのです。 つまり
θ = acos {(CX1*CX2)+(CY1*CY2)+(CZ1*CZ2)}
この計算にあたっては、各方向余弦の符号も OpTaliX が出力したとおり、正しく反映なさいますようにご注意ください。 この手順をマクロ言語を用いて処理することもできます。その場合には、RSIコマンドの代わりに データベースアイテム CX, CY, CZ を使います。
   
2101 THOコマンドで表示される3次収差とは、3次収差係数のことでしょうか?
開口サイズを反映した3次収差量なのでしょうか?
  3次収差です。つまり実光線追跡をして得られる実収差の3次成分 (ザイデル)成分であって、開口サイズだけでなく、視野角の影響も含んだ量です。
   
2401 VIEコマンドでレンズの断面図を描画しています。光学系のFNO を変えたにもかかわらず、 描画光線は FNO を変える前と同じです。
  この症状は 光学系のシステム構成データにあわせて、自動的に描画光線を 変更する設定が解除されているために生じています。レンズを描画しているウインドウ (例えば "Lens draw Y/Z plane"ウインドウ)の左端に縦にいくつかアイコンが並んでいます。そのうちハンマー のアイコンをクリックすると 各種の描画オプションを設定するためのダイアログボックスが開きます。 その中に "Auto-update Rays"" というチェックボックスがありますから、ここにチェックを入れて ください。
   
2402 VIE コマンドでレンズの断面図を描画したのですが、思ったように描かれていません。
  面範囲が意図どおりに設定されていないものと思われます。描画範囲が正しいのであれば、 レンズパラメータ設定上の問題が考えられます。FIRコマンド等で、近軸量を表示させ、 パラメータの設定情況を確認してください。

   
2601 球面収差、非点収差、歪曲収差図の描き方は?
  球面収差図は、FANL コマンドで出力できます。図のスケール(scale : 縦収差量のスケール)は
FANL scale
の書式で指定します。あるいは fanl ? と入力するとスケールを入力するための小ウインドウが 開きます。通常の球面収差図は回転対称系を仮定して、光軸からマージナル(周辺光線)にまでを 描画するだけですが、OpTaliXの場合には回転対称系を仮定せず、開口をまたぐ光線ファン全体を 縦収差図として出力します。このため、ファン光線の方位としてタンジェンシャル(tan) および sag(サジタル) の両方が出力されますし、軸上光線だけでなく軸外光束についても描画します。

非点収差図は、AST scale コマンドで指定できます。

歪曲収差図には、いくつかのバリエーションがあります。一般的に用いられている回転対称系の 歪曲収差図を出力するには
plo disy
を使います。スケールを変更するには plo disy ? と入力すると開く小ウインドウにお願いします。
   
2602 OpTaliXでは、有限物点(有限共役)に対するディストーションをどのように取り扱っていますか?
  近軸像高と実像高から求めています。近軸像高は 物体高と近軸倍率を 掛け合わせることにより求めます。実像高は実光線追跡により求めています。その後の取り扱いは、 無限物点(無限共役)の場合と同じです。
   
2603 PLO DIG コマンドのオプション image_extent の意味(使い方) がよく分かりません。
  ディストーションが小さな光学系において、それを強調して表示する ために使います。

ディストーションの影響により、理想像点の座標と実像の座標の差が1mmだけ発生していたと します。このとき、image_extent に 1.0を指定すると、プロット図上のディストーションによる 像位置は 参照用に表示されている矩形グリッド(理想グリッド)に対して、そのまま1mmの差を もって表現されます。
もし、image_extent に 2.0 を指定すると、ディストーションは強調され、像面上の座標換算で 2倍、つまり、理想グリッドに対して 2mm発生しているかのように表示されます。
なお、image_extent はあくまでも像面座標における実ディストーション(mm) に対して作用する ことに注意してください。一般に用いられるパーセントディストーションを拡大するのでは ありません。
"image_extent" は ディストーション格子のプロット画面上には "enlargement factor" として 表示されています。
   
2604 ズーム光学系の像評価をしていますが、第1ポジション以外の光学特性の評価の仕方を教えて下さい。
  どのポジションを評価の対象とするかは、POS コマンドで設定します。
たとえば、コマンドラインから、 "POS 2" と入力すると(引用符" は不要)、それ以降は第2ポジションに関する像評価が 実行されます。同じ操作を面エディタからすることもできます。



ウインドウの左下にある、[POS] という入力欄です。ここに所望のポジション番号を設定してください。 評価機能によっては、その結果を示すウインドウの左上に、矢印型のアイコンが表示されます。



これを押せば、その機能の範囲でのみ、一時的に評価ポジションを変更できます。 この効果は、関連したコマンドの範囲に対して有効です たとえば、空間周波数に対するMTF特性の評価において一時的な ポジション変更を実施すると、その効果は、像高に関するMTF評価にも引き継がれます。 しかし、スポットダイアグラムの評価には関連しません。 なお、矢印アイコンの右側に [ALL] と表記されたアイコンがある場合にはそれをクリックすると、 全ポジションの評価結果が同時に表示されます。
また、このようにして設定した一時的なポジション設定は、POSコマンド(面エディタからの設定も含む)によって、 リセットされます。
   
2605 ズーム光学系で横収差 (FAN Y) を描画したところ、波長ごとに2本の収差曲線が描画されました。 何か変ではないでしょうか?
  ズーム光学系の横収差においては、全ポジションを同一の画面に描画する際には、メリジオナル方向とサジタル方向について、 重ね描きしています。これが、波長ごとに2本の収差曲線が描画されている理由です。各ポジションごとに独立に収差図を 描画すればごく一般にみられるように、メリジオナルとサジタル方向を個別に表示できます。 そのためには、下図の赤丸内の矢印アイコンをクリックしてください。
   
2801 SPO RIS コマンドに関する質問です。マニュアルによれば、ケラれる 光線(vignetted ray)はプロットされないとのことです。もし第4面でケラれる光線があると すると、これは "SPO RIS s2" によってプロットした第2面のスポット描画の対象に加えられる のでしょうか?
  いいえ、描画の対象にはなりません。どの面によるケラれであろうと、 像面に到達しない光線が SPO RISコマンドで描画されることはありません。
   
2803 SPOコマンド で出力されるスポットダイアグラムに 四角い枠がつきますが、 それの代わりにエアリーディスクの径を表示できませんか?
  できます。SPOコマンドでスポットダイアグラムを表示させると、 そのウインドウの左上にハンマーの絵のついたアイコンがあります[faq2803-1.jpg]。ここを クリックすると、スケール表示の方法を選択できるウインドウが開きます。下記のいずれかを 選択してください。Boxの一辺、Circleの直径,Crossの長さが、SPOコマンドで指定した スケール長に相当します。


Airy disk
 
Box

Circle
 
Cross

None
   
   
2804 SPO コマンドの計算結果を図ではなく数表として出力する方法はありませんか?
  スポットダイアグラムを構成する各光線の座標をファイルに保存できます。

書式 : SPO fi..j wi..j zi..j FILE ファイル名

ここで、 fi..j には、ファイルに出力する視野角の範囲を視野番号で記述します。
    Wi..j には、波長番号を用いて、対象する範囲を記述します。
    zi..j には、ズームポジションの範囲を記述します。

ファイル名の前には "FILE" という4文字が必要です。ファイル名の拡張子にデフォルトの設定はありません。

例 : SPO f1..3 w1 z1 FILE firstpos.spd 
    SPO f3 FILE FOV_third.txt

ファイルへの出力書式は次のとおりです。

pos field color X-abe Y-abe

ここで、 pos =  ズームポジションの番号 (整数)
    field = 視野番号 (整数)
    colour= 波長番号 (整数)
    X-abe = 主光線の像面座標との差 (X方向の成分)
    Y-abe = 主光線の像面座標との差 (Y方向の成分)
   
3001 MTFのデフォーカス特性ですが、1枚のグラフに重ね書きできないでしょうか?
  できます。
メニューから、File --> Preferences とたどって "Program Preferences" のダイアログボックスを開きます。 次に、"Operations" をタブをクリックし、"Overlay through-focus MTF for all fields”にチェックをいれます。


そうすると、下図(左) のとおり 重ね書きされます。ちなみにチェックのないデフォルトの 状態は下図(右)のとおりです。

   
3101 レーザダイオード(LD)とファイバを結合するレンズを設計しています。 結合効率 CEF を計算するための光源の定義はどこですれば良いのですか?
  CEFダイアログボックスで定義できます。
ここで、入力側のファイバを "User" と設定し、 LD の放射強度パターンをマニュアルで設定すればよいのです。
   
3900 "EDI CEF" で起動される結合効率計算のためのデータ設定ウインドウ "Fiber Coupling Efficiency" における"Far field divergence"は半角を設定するのでしょうか?  全角でしょうか?
  半角で設定してください。

   
4001 どんな光学系を入力しても、常に透過率100%という結果しか得られず、現実と一致しません。
  透過率の計算のための設定が、評価の目的に一致していないようです。

OpTaliXには、透過率の評価方法を制御するための2つの設定があります。表面の反射損失 (の分光特性)を考慮するには、コマンドラインから"POL yes" を設定しておく必要があります。 同様に光学材料の内部吸収損失(の分光特性)を考慮するには、"TRA yes" を設定しておく必要があります。

これらの設定をメインメニューから行うことも可能です。"Edit --> Configuration data" とたどると起動する "Optical System Configuration" の画面 に "General" というタブがあります。ここをクリックし、 "include Transmission" (内部吸収損失を考慮) 、および "include Polarrization (表面反射損失を考慮) をチェックしてください。
   
4002 TRAコマンド や POLコマンド を使うと、光学材料の内部吸収や表面反射を透過率の評価の対象としたり、 対象からはずしたりできるとのことですが、どんな時、これを使ったらよいのですか?
  実存する光学系の透過率を正確に評価するのが目的なら、TRA yes ; POL yes を設定して、 光学材料の内部吸収と表面反射の両方を透過率計算に反映させるのが良いでしょう。 しかし光学系の設計段階で、"もし、内部吸収がなかったら、つまり十分に透過率の高い材料を使ったら透過率はどう変化するのか" あるいは"もし、表面反射を十分に低く抑えられれば、透過率はどう変化するのか"を検討する必要があれば、 そのときには、TRA no あるいは POL no を指定してください。
   
4100 反射防止膜を考慮した、レンズ系の透過率計算の実行方法を教えてください。
  MgF2によるλ/4単層膜が、すべてのレンズ面に蒸着されているのであれば、 コマンドラインから、"ATT DEF" と入力し、"TRA NUM" (主光線に沿った透過率の場合)、または "TRA NUM AVG" (瞳を通過する全光束を考慮する場合) と入力すれば評価結果が出力されます。その際、FAQ-4001 を参照していただき、 POL YES 、TRA YESが設定されていることに注意してください。つまり次の順序でコマンドを入力することになります。

   POL YES
   TRA YES
   ADD DEF
   TRA NUM (または TRA NUM AVG)

特定の面にのみ単層膜を設定するには、 "ATT DEF Sk" の要領で面の指定をします。

一方、多層膜を考慮する場合には、あらかじめ "コーティング -Coating-" の機能を使って光学多層薄膜のデータをファイルに保存し、 その後、"ATT sk FILE filename" の要領で、第k面にデータを貼り付けた後、TRAコマンドを実行します。

ATTコマンドで設定した膜を削除して、コートなしの状態に戻すには、"DEL MUL sk" コマンドを使います。
   
4201 ゴースト解析について質問します。正しく結像に寄与する光路は、 いわゆる開口絞りを反映した入射瞳径の内側を通過する光線だけを追跡すればよいのでしょうが、ゴースト光は、その外側に向かう 光線であっても、結果として、開口絞りを通過すると思います。 OpTaliX の実光線によるゴースト解析機能(GHVコマンド)は、そのことを考慮していますか?
  いいえ、自動的には考慮しません。
このことを考慮するには、手動操作で開口絞りを第1面に移す必要があります。 その際には、オリジナルの光学系の第1面の光線有効径を、面エディタの APE-Y欄の値を参照するなどして、 あらかじめチェックのうえ、構成エディタ (configulation editor)で、その値を入射瞳径として設定しておく必要が あります(EPDコマンド)。
なお、ゴースト解析によって得られる結果を現実に即した、妥当なものとするために、その他の面をあらかじめ固定アパーチャに 設定(FHYコマンド)のうえ、適切に光線有効径を定めておくようにご注意ください。
   
4202 ゴースト解析の機能は、鏡筒の内壁の反射を考慮できますか?
  いいえ、(像面やダミー面を含む)レンズ面相互の反射のみが考慮されます。 鏡筒の内壁を考慮した解析は、それに相当する反射面を "円筒の機能" を使って規定し、ノンシーケンシャルなモデル(NSS) を構築する必要があります。
   
4401 収差感度解析 (TOL SEN コマンド) において、第k面のニュートン本数の公差を設定する場合には "DLF sK 1" と設定することは分かりました。 実際の光学系ではプラス方向に製造誤差をもつ場合(ゲージとレンズが中心で接触)と、 マイナス方向(ゲージとレンズが周辺で接触)となる場合とでは、発生する収差量が異なるはずです。 しかし、OpTaliX では、プラス方向の計算しか表示してくれません。
  確かに標準の設定では、プラス方向の製造誤差のみが表示されます。 プラスマイナス両方向について解析するには、公差編集エディタの左下にある、 [Caluculate plus/minus sensitivity] にチェックをいれてください。 公差編集エディタは、"EDI TOL" コマンド、または メニューバーから [Edit] → [Tolerance Data] とたどれば起動できます。
   
5001 マニュアルには、KT法とLM法という2種類のアルゴリズムが記載されていますが、 数学的な取り扱いはともかく、実務上、どう区別すればよいのかはっきりしません。
  では、背景に立ち返って説明を始めます。
OpTaliX を初めとする、ほとんどすべてのレンズ設計ソフトウェアは、最小自乗法をベースと する最適化アルゴリズムを採用しています。

このことの意味は、何らかの目標関数を設定し、それが最小化されるようなパラメータを 導く仕組みが用意されているということです。レンズ設計の実務にそれを当てはめて言い換えれば、 目標関数として(複数の)の収差を指定し、それらの自乗和が最小となるようなレンズパラメータの 組み合わせを求めるということに相当しています。

しかし、たとえ数学的に収差が最小となる解が見つかっても、それが実現不能(製造不能) なパラメータによって構成されているとすると得られた結果に意味がなくなります。そのような例として、 レンズ間の面間隔が負になる(レンズが他のレンズにくい込んだ状態)や、レンズのバックフォーカスが 負になる(レンズ中に焦点が存在するので検出できない)などがあります。

このような事態を避けるには、解の存在範囲を制限し、限定された条件の元で、最小自浄的に最も好ましい 解を探査しなくてはなりません。そのための条件は、制約条件とよばれます。制約条件には、 "バックフォーカスを正の値に保つ" というように目標関数の値域を制約するものの他、"面間隔を 正に保つ"というように、個別のレンズパラメータの存在範囲(定義域)がそのまま制約条件となっているものも あります。しかし後者の場合でもOpTaliX の内部では f(t) = t のようにパラメータの値tそのものを 関数値f(t)として扱うことによって、実際にはバックフォーカスの場合と同様に tの定義域としてではなく、 目標関数 f(t)の値域として、バックフォーカスの場合と同様に、一貫して値域の制約として扱っています。

以上のことから、制約条件付の最適化処理とは、個別の目標関数(収差)が取ることを許される関数値の 範囲に制約を与えつつ、種々の制約の元で、それらの自乗和としての単一評価関数(光学系の総合的な収差)の 値を最小化するという操作であることをご理解頂けると思います。 この処理を的確に実施するには、最適化処理における "関数の最小化を目的とすべき目標関数" と、 "パラメータの組み合わせを決定する際の制約条件" とを明確に区別しなくてはなりません。

OpTaliX の場合には、そのための区別を 等号および不等号の有無によって行っています。

たとえば、等号も不等号も用いない次の指定は、収差の最小化を目的とする目標関数であることを 意味します。

    wav f1 0 ! 第1画角の波面収差がゼロとなることを目指して、            レンズパラメータを最適化します。

       spd f1..3 0 ! 第1画角から第3画角までのスポットダイアグラムの        自乗和が最小化されるように、レンズパラメータを      最適化します。

一方、下記は等号または不等号を用いており、これらは制約条件として扱われます。

  efl = 100  ! 焦点距離が 100mm となるようなレンズパラメータの         組み合わせのうち、最も収差が小さくなる解が選択されます。 imd > 50 ! バックフォーカスが 50mm以上となる解のうち、もっとも           収差が小さくなる解が求められます。

数学的には、制約条件の取り扱い方法にはさまざまなバリエーションがあります。そのうちのひとつに、 ペナルティ法があります。この方法は、"等号または不等号を使って指定された制約条件" が侵害を受ける 場合のみ、それらに極めて大きな重みをあたえて、単一評価関数の一要素に加えるというものです。

実際のところ、この方法は等号制約条件には、常に大きな重みが与え、常時単一評価関数に加えらると いう操作がなされますから、これは事実上、目標関数の特別な形と考えても良いでしょう。 このことを今一度言い換えれば、LM法では、等号制約条件と目標関数との間に明確な線引きがなく、 極めて大きな重みを持たせた目標関数のことを、便宜的に等号制約条件と呼んでいるにすぎません。 OpTaliX では、LM法の一部として、ペナルティ法が組み込まれています。したがってLM法による最適化を 指定した場合には、次の3つの指定は同じ意味を持ちます。

 EFL = 100  EFL = 100 ; wt = 10000  EFL 100 ; wt = 10000

制約条件の数学的な取り扱い方法には、ペナルティ法以外にも、より厳密な方法があります。 たとえば等式制約条件の場合には、ラグランジェの未定定数法が広く用いられています。これは、 設計自由度(設計変数の数と同数)のうちのひとつ分の自由度を使って強制的に解の範囲を 限定するものです。いいかえると、制約条件を満たすレンズパラメータの組み合わせを線形化した 連立方程式によって求めてしまう、というわけです。この方法をとる場合には最小自乗的な発想、 つまり"目標関数の自乗和をとる際の重み" という概念はありません。この方法においては、 目標関数と制約条件とは、明確に別の概念です。

ラグランジェの未定定数法の ペナルティ法に対する利点は、制約条件と目標関数の関係が数学的に明確となり、 そのため、制約条件の設定に由来する非線形性の増加がほとんど生じないという点にあります。 このことは、局所解の数を減らすことに役立ち、結果として、より残存収差の小さな解が求められやすいと いうことにつながります。

不等号条件の場合には、その条件を考慮すべきかどうかを数学的に判別し、その結果によって、処理を 変更することになります。OpTaliX は、そのための判別条件として、"Kurn-Tucker条件" を用いています。 この判別条件名が、OpTaliX のもうひとつのアルゴリズムの名称、 "KT法" の由来になっています。 判別の結果、当該の条件を考慮しなくとも解が自然に制約条件を満たことが確認できた場合" には、 その条件は最適化処理において無視されます。しかし、その制約条件を考慮しなければ、それが 侵害される場合には当該の不等式条件は、プログラムの内部で一時的に等式条件に置き換えられ その後、最小自乗的に最適なレンズパラメータ(収差が最小となるレンズパラメータ)を求める処理が 実行されるので、結果として、ここで選ばれた不等号条件だけが設計自由度のひとつを使って、常に 指定の条件を満たすということになります。


以上のことから、ある程度まで制約条件を満たしたスタートデータがあるならば、最初からKT法を使って 解の存在範囲を明確に意識した設計をするのが結局は、より望ましい解を得るための近道です。 しかし、制約条件からかなり離れた解から出発するならば、LM法を使って、おおまかな形状を決定する のよいでしょう。ただし、KT法を選択しているときでも、"WT" を併用して

 EFL = 100 ; wt = 1

のように指定した制約条件は、ペナルティ法によって解かれます。ですので、OpTaliX で最も推奨される 設計方法は、KT法を選択し、かつ制約条件を十分に満たしていない解については、ペナルティ法を 指定するということになります。
   
5002 OpTaliX は 光線ごとの個別の収差指定よりもスポットダイアグラムによる最適化を 推奨しているようですが、それはなぜですか?
  スポットダイアグラムによる設計手法を特別に推奨していると いうことはありません。レンズの応用分野によって、波面収差を設計指標とすべきことも ありますし、ファイバの結合効率を目標関数に設定するのが望ましいこともあります。 しかし、これらは個別の収差指定による設計技法と比較して、下記に述べる優れた特徴を もっていますから、そのことについては是非、ご理解ください。

SPD を例にとると、スポットダイアグラムの RMS径が設計の目標関数を構成するとマニュアルには 記述してあります。しかし、OpTaliX の内部では、実際にはそのスポットダイアグラムを 構成するすべての光線の横収差 δx, δy を目標関数の構成要素として採用しています。

つまり、瞳を 8×8 に分割した状態で、SPD をただひとつ指定するだけで、内部的には 128個 = (8×8)×2 ...最後の×2 は x/y方向... の収差が、視野、波長、ズームポジション ごとに1組設定されるという次第です。

そして、視野点、波長、光線の瞳通過半径ごとに、収差に対する重みを設定できます(WTF, WTF,WTZコマンド)。これを "spd Zk target ; wt=weight" (k番目のズームポジションに 対する重み)という指定と組み合わせることで、画角、波長、瞳、ズームポジションのすべての 組み合わせにおける各横収差に対して、それぞれ異なる重みを持ち、かつそれらが連続的に 変化するという設定を実現できるというコンセプトなのです これは以下にのべる、 たいへんに重要な概念を前提に提案されているものです。

光束を光線という離散的な量で扱えるということは、そもそも互いに隣接する光線の特性は 連続しているという前提があるからですし、十分に密にサンプリングすることで、サンプル間の 特性量を内挿によって求められると考えても良い、という前提もまた同様です。 同じことが視野や波長についてもいえます。互いに隣り合う視野点どおし、連続する別の波長間では 光学系を通過する光線の収差は連続にしか変化しません。それこそがレンズを通過する光線の もっとも基本的な特性だと考えて問題ありません。

ですから、上述の各パラメータ、つまり画角、波長、瞳、ズームポジションに対して、瞳上で 定義されるメリットファンクションが連続的に微分可能な重みを持つということは、光学系の 性質にかなった設定といえます。一方、逆に個別の収差を特定して、それにだけ特別な重みを 設定するということは、種々の矛盾を内包させることにつながりかねません。

しかし、それでもなぜ、クラシカルな手法はスポットダイアグラムではなく個別の光線収差 (瞳上の特定位置を通過する光線の横収差量や、特定視野点に対する像面湾曲など)を指定 していたのでしょうか? それは1本でも光線追跡本数を減らしたかったからです。 ご存じのとおり、ビデオカメラが初めて小売り店の店頭に並んだ頃と比較しますと、最近の PCの光線追跡速度は、数千倍に達しています。これは、従来だと100個の収差による最適化が やっとだったとしても、いまでは数10万個の収差指定をしても同じ計算時間で済むということを 意味します。これだけの量の違いを、設計の質の違いに転換しない手はありません。それが スポットダイアグラムによる収差指定なのです。
大切なことなので繰り返しますと、従来は、どの光線を選択するかは他の選択肢とは 置き換え不能なほど極めて重要な設計技法を構成していました。その選択如何で、設計の 見通しが良くなったり、悪くなったりしました。しかし、上記のとおり、 "追跡光線本数の増加が、 設計の質を変えるに至ったために、今では、スポットダイアグラムと 種々の重みの設定によって、収差を首尾良く制御できるようになったのです。

誤解のないように念を押しますと、OpTaliXは、縦収差を含む個別の実収差の評価まで否定 しているわけではありません。例えば 設計者が非点収差曲線から直感的に読み取る 軸外収差と縦の球面収差から読み取る収差のバランスが、光学系のデフォーカス特性に 強い相関ももつことは間違いありません。

しかし、設計者が人間の直感的把握力を発揮しやすい方法と、ソフトウェアが収差補正を しやすい数値計算上の環境とは、必ずしも一致していません。それらをうまくコントロール していただければ、より的確に設計作業を進められます。その手法として、スポットダイアグラム を目標関数として導入し、視野点や波長、光線の瞳通過座標や、ズームポジションの重みを 設定するという技法が提案されているというわけです。

なお、上述のとおり SPD をRMSサイズという単一量で取り扱うのではなく、個別の光線収差に 分解して取り扱っているにも関わらず、OpTaiX のマニュアルでは、"RMS径" とだけ表現して いるのは、OpTaliX の採用している最適化アルゴリズムが最小自乗法をベースとする以上、 結果として、個別の光線収差の積算を考慮すると、最終的に両方が同様の数学的記述で表現可能と なるためです。
   
5003 自動設計中に、レンズの断面図(VIE) を随時更新することはできませんか?
  できます。まず、構成エディタ(Configuration Editor) を起動してください。 [General]タブをクリックすると、[Update Graphixs] というタブがありますから、ここを [at Optimization] あるいは、[always] に設定すれば良いのです。

   
5402 コンストレイントとして [rdy s5] / [rdy s6] > 1.5 を指定しましたが、 期待したとおりの制約が働きません。
  等号または不等号の左側に、マクロ表現を置くことはできません。 ユーザ定義関数を使って、次のように記述してください。

@var == [rdy s5]/[rdy s6]
@var > 1.5

ここで、@var はユーザ定義関数名です。"@"マークから始まる60文字以内の英数字または"_"を使って、 任意の変数名を指定できます。 "==" は関数の定義を示します。いったん定義した後は、次のように、 他の式中で引用したり、目標関数や制約関数の指定に利用できます。

@var 1.0   ! 目標関数として設定
@var = 1.0   ! 等号制約条件として設定
@var2 == @var+1.0   ! 他の関数の定義に再利用
  
   
5403 コンストレイントを設定に関する質問です。

  oal s3..i = [EFL]

とした場合と

  @e == [EFL]
  oal s3..i = @e

のようにユーザ定義変数を介して設定した場合とでは、OpTaliX の動作が違うようです。
  そのとおりです。前者(oal s3..i = [EFL]) 最適化を開始する時点の EFL(焦点距離)が最適化過程を通して一貫して用いられます。つまり、この設定方法は制約条件を一定値に保つ、 静的な設定といえます。

一方、後者(@e == [EFL] ; oal s3..i = @e) の場合には、最適化の進行ととも変化する焦点距離と、その時点の oal s3..i が常に等しくなるように制約されるだけであって、最適化開始時点の焦点距離に拘束されることはありません。 つまり、EFLと[oal s3..i] の相対的な関係にだけ着目しており、その絶対値には自由度があるということです。 この設定は、動的な設定方法といえます 設計にあたっては、目的にあわせて どちらの設定方法を使うべきか適切な判断が重要です。
   
5404 スポットダイアグラム(SPD) を使って、非点隔差を補正するための 指定ができると聞きました。
  はい、2つの方法があります。

= 方法1 =
スポットダイアグラム(SPD) のX成分とY成分を独立に 制御すれ方法です。そのためには、 SPDではなく、SPX と SPY を最適化の対象に使います。 SPX とはスポットダイアグラムの X成分のスポット直径に対応する量であり、SPYとはその Y成分のスポット直径に対応する 量です。

非点隔差が補正されるという状態は、スポットダイアグラムのX成分とY成分が他の視野角に 対するスポットダイアグラムの RMS直径と比較して、バランス良く小さいということですから、 それを意識したメリット関数を構築すれば良いのです。
例えば、視野角を3つ設定していて、そのうち第2画角の非点隔差が大きい時には、 次のように 指定します。

 SPD f1 0       ! 第1画角のSPD 重みの指定を省略したので wt= 1.0が設定される
 SPX f2 0 ; wt = 1.5  ! 第2画角のSPD の X 成分。X成分単独で第1画角よりも1.5倍の重み
 SPY f2 0 ; wt = 1.5  ! 第2画角のSPD の Y 成分。X成分単独で第1画角よりも1.5倍の重み
 SPD f3 0! 第3画角のSPD 重みの指定を省略したので wt= 1.0が設定される


ここで着目して頂きたいのは第2画角のみ、SPDに替えて SPX と SPY を指定していることです。 これに対して、第1画角、第3画角は、通常どおりSPD を使って、スポットダイアグラムの指定を しています。この場合、スポットダイアグラムのX成分が改善したとしてもY成分が劣化すれば、 SPD全体の特性は平均化されてしまうので、OpTaliXは非点隔差の改善能力には限界があります (要するに、SPDの指定は非点隔差を明確には認識できないということです)。しかし、SPDの X成分と Y成分を独立に指定した上述の第2画角の場合には、X,Y両方の成分が同時に改善 しないことには メリット関数が改善しないので、結果として非点隔差がコントロールされる ことになるのです。

= 方法 2 =
SPDとは、スポットダイアグラムのRMS直径のことですが、その計算時にスポットダイアグラムを 構成する各光線の入射瞳座標に対して重み(WTA)をつけることができます。WTAは、



と定義されています。 したがって、この値を大きめ(たとえば 1.0) に設定すれば、 瞳の外周を通過する光線と比較して、瞳の中心付近を通過する光線に大きな比重が置かれることに なります。このことは、SPDのフレア成分(つまりコマ収差成分)よりも、X,Y方向のデフォーカス成分、 あるいは、その差(つまり非点格差)に重点を置いて、設計するように意図していることと等価です。 このようにして、非点格差の補正を実現します。 #5405 も参照してください。


   
5405 高次のコマ成分(フレア成分)の除去を意図した スポットダイアグラム(SPD) の 設定方法を教えてください。
  SPDとは、スポットダイアグラムのRMS直径のことですが、その計算時にスポットダイアグラムを構成する各光線の 入射瞳座標に対して重み(WTA)をつけることができます。WTAは、



と定義されています。 したがって、この値を小さめ(たとえば 0.0) に設定すれば、瞳の中心付近を通過する光線と比較して、 瞳の外周を通過する光線に大きな比重が置かれることになります。#5406 も参照してください。

   
   
5406 入射瞳上の任意の点を通過する光線に対して、 横収差を補正するための指定方法を教えて下さい。
  入射瞳上で指定した任意の点を通過する光線が、 像面上で有する横収差量を自動設計における目標関数に設定するには次のようにします。

  書式 : Y Fk SI x_rel y_rel = [Y Fk SI 0 0]-x_trg ; WTC w_val

上記において、大文字部分はそのまま入力して頂く部分、小文字部分は適宜、 変更して頂く部分です。

 例 : y f3 si 0.0 1.0 = [y f3 si 0 0]-0.3 ; wtc 1.0

上記例のうち、左辺 "y f3 si 0.0 1.0" が意味することは第3画角において瞳の相対座標 (瞳半径を1.0に正規化した座標径で、0,0 が瞳中心) において (x,y)=(0,1) のマージナル光線の 像面座標のY 成分 ということです。 それが左辺、つまり、瞳中心を通過する主光線の 像面Y座標-0.3 と一致するように制御することを 重み付き等号制約条件で指定している という次第です。 一般に、横収差は主光線の像面座標とそれ以外の光線の像面座標との差で定義されますから、 上記例を それにならって表現しなおせば

 (y f3 si 0.0 1.0)-(y f3 si 0.0 0.0) = -0.3 ; wtc 1.0

と指定したことに相当しています。しかし、OpTaliX の目標関数の設定書式は左辺に式を 記述できませんから、上述例のように指定するのです。もう2例ほどあげておきます。

     例 : x f2 si 0.707 0.707 = [x f2 si 0 0] ; wtc 1.0     y f2 si 0.707 0.707 = [y f2 si 0 0] ; wtc 1.0

これは メリジオナル面から4光軸まわりに45°回転した面と入射瞳の外周部との交点を 通過する光線の、横収差の X成分とY成分をそれぞれ、ゼロにするように設定した例です。
   
5407 ガラスのコストを押さえた設計を OpTaliX では どうやって 実現すればいいですか?
  OpTaliX には、ガラス材の屈折率とアッベ数(のオフセット量)を設計変数に 設定する機能があります。
加えて、その値域をガラスマップ(屈折率-アッベ数をマッピングした図)上で制限する機能も あります。
この機能は、"ガラス境界の設定" と呼ばれるもので、ガラスマップ上で、20点までの頂点からなる 多角形を指定できます。いったんこの指定をすれば、OpTaliXはその範囲でのみガラスを選択する ようになります。

さて、光学ガラスをいろいろな性質(コスト、透過率、研磨のしやすさ)ごとにガラスマップ上で 色分けすると、領域ごとに傾向のあることが分かります。たとえば;
  • マップ上の左上のガラス群は他の領域に属するガラスと比較して相対的に高価です。
  • マップ上の右上のガラス群は、他の領域のガラスと比較して短波長帯における透過率が 相対的に低いという特徴があります。
  • 左下端のガラスは摩耗度(あるいは針入度)が高いだけでなく、熱衝撃に弱いので研磨が 難しいという特徴があります。
これらの特徴をふまえてガラス境界を設定することにより、ガラスのコストを押さえた設計を しやすくなります。
なお、光学系のサイズが十分に小さい場合には、ガラス材料のコストよりも加工費用が上回る 場合も多く、この場合にはむしろコストが高くても高屈折率材料を使ってでもレンズ枚数を 減らしたり、公差を緩めたりするほがトータルには安くなる場合もありますから、よく検討される ようにお勧めします。
   
5408 ズームレンズの設計をしているのですが、ポジションを指定せずにターゲット(または制約条件) を設定した場合の取り扱いを教えてください。
たとえば、下記例の場合、ポジション1(Z1) のY方向ディストーションの現在値は、-4.92、ポジション2(Z2) の現在値は -7.39 ですが、 ポジションを指定しない場合の 現在値は +6.28 となっています。どういう関連があるのか、分かりません。

 DISY F6 z1 -2. -2.0000 -4.924300 -2.924300 -2.924300
 DISY F6 z2 -2. -2.0000 -7.394462 -5.394462 -5.394462
 DISY F6 -2. -2.0000 6.281990 4.338880 4.338880
  ポジション番号を省略した形で、目標関数 あるいは 制約条件の設定をした場合には、それらの分散が 関数の値として採用されます。 上記例の場合には

 Function = sqrt( ( [DISY f6 z1]^2 + [DISY f6 z2]^2 )/N )

となるわけです。ここで、Nはポジションの総数です。つまり上記例では ポジション Z1 と Z2 の 2つが考慮されているので、N=2 です。 具体的に数値を当てはめて考えれば、

  [DISY F6] = sqrt( (4.924^2 + 7.394^2)/2 ) = 6.2819

となり、ポジションの設定を省略した場合の値に一致します。
   
5409 自動設計において、像側テレセントリックは CY で指定するのですか?
  はい、像側でテレセントリックな光学系を設計する際、CYは重要な 指定です。
しかし、もっとも低次の項、すなわち近軸領域では、"像側テレセントリック" であるという 状態は "射出瞳位置が無限遠にある"という状態と同じ意味であり、ここでは CY を持ち出すまでの ことはありません。そのかわりに自動設計の目標関数に SAPI を組み込めば良いのです。SAPIは、 光学系の最終面から射出瞳位置までの逆数、すなわち SAPI = 1/SAP として定義されています。 したがって、"SAPI をゼロにする" ということは、"射出瞳位置を無限大にする=像側テレセントリック" ということと一致するのです。

これを実現してもなお、軸外主光線がテレセントリックになっていないとしたら、それは瞳収差に よるものですから、それを補正するために、CYを補助的に使う、というのが効率のよい設計方法と いえます。

なお現実には、各画角に対するCYの評価値が全体としてゼロのまわりに振り分けられるように SAPI の値を(ゼロではない適切な値に)設定することで、CYによる補正量が最少となるように 調整するのが像側テレセントリックを設計するための、より良い方法です。
   
5410 ディストーションを補正するための指定方法を教えてください。
  (実像高−近軸像高)/近軸像高 ×100 で求められる通常の ディストーションであれば、DISX および DISY を使って X方向およびY方向それぞれ独立に 指定できます。
例えば;

DISY f3 < 4
DISY f3 > 3

の要領で指定します。同様にfθディストーションの場合は FDIXS, FDISYを使えば容易に 指定できます。

これら以外のディストーションに対する補正を行うには、あらかじめ所望の実像高を計算しておき、 実像高がその値となるように指定を行います。具体例としては;

Y SI f3 0 0  10.0

のように指定します。ここで、SI は、そのまま "SI" と入力します。これは Surface at Image 、 つまり像面を意味しています。 f3 は 第3画角を指定の対象としていることを示しており、 それに続く 0 0 は、対象とする光線の瞳面上における光線通過座標です。さらに その後の 10.0 が、 所望の実像高です。

所望の実像高をマクロ表現に置き換えることもできます。たとえば雲量計測などに適した 等立体角射影の場合には、理想像高は

理想像高 = 2×焦点距離×sin(θ/2)

で与えられるので、上述の例にしたがえば;

Y SI f3 0 0 2*[EFL]*sin([yan f3]*3.14159/180/2)

と指定することになります。
   
5601 コンストレイントとして [rdy s5] / [rdy s6] > 1.5 を指定しましたが、 期待したとおりの制約が働きません。
  FAQ.5402をご覧ください。

   
5602 KTアルゴリズムを指定して設計しましたが、"Infeasible Problem" というエラーメッセージが出て、先に進めなくなりました。
  "Infeasible Problem" とは、文字通り "実行不可能な問題を検出した" という意味です。たとえば第3面の面間隔が 0.5mm のレンズ系があるとします。 しかも、この面間隔が設計変数として指定されていない状況を想像してください。この状態で、 この面間隔が 1.0mm 以上になるような不等号制約条件を指定したとします。

THI S3 > 1.0

OpTaliX の KTアルゴリズムは、何とかして面間隔を増やし、指定された不等号制約条件を満たそうと します。しかし、上述のとおり第3面が設計変数として指定されていない以上、それが実現不可能な ことは明らかです。

このような状況に陥ると、OpTaliX は "Infeasible Problem" を表示して設計プロセスを 中止します。この例では、説明のために明らかに "infeasible" な例を使いましたが、設計実務では、 もっと複雑なケースもあります。たとえば、レンズの曲率半径が 10mmに制約されているのに、 そこを通過させる光線の光軸高さが 12mmでないと辻褄のあわないようなFNOを設定しているとか、 焦点距離が非常に短いテレ型のレンズタイプでありながら極端に長いバックフォーカスを制約として 指定したという場合などです。

さらに複雑な例を題材に、どの制約条件が "Infeasible Problem" の原因となっているか、を 探る手順をみてみましょう。そのためには、まず、メインメニューから
[Optimization] → [Parameters] とたどると表示されるウインドウの、[General] タブを開き、
Print detailed error function at each iteration の欄にチェックをいれます。 下図の赤丸部分です。


この状態で自動設計を始めると、text output window に、メリット関数や制約条件の一覧表が 出力されます。その一例を上記に示しました。これを良く観察すると、目標値と現状値の差 (errorの欄)が他と比較して、非常に大きなもののあることに気づきます。上記例の場合ですと、

EFL z1 = 0.9

という設定 がそれに該当します。(リストの赤線部分)。この設定そのものからは問題は読み 取れませんが、これをヒントに解析を進めると、こんなに短い焦点距離にするには、ズームの 面間隔(thi s5)が、復旧不能なほど大きな負の値をとることになり、 これが "Infeasible Problem" というエラーを引き起こしているということが解明できます。

結局、この例では、EFL z1 = 5.9 と入力すべきところ、誤って = 0.9 としてしまったための エラーでした。

実務では、この程度に複雑な状況がしばしば発生しますが、自動設計だからといって OpTaliX 任せにするのではなく、設計者と OpTaliX の対話を進めることによって、より適切な制約条件を 設定するのが、自動設計のコツといえます。
   
5603 非球面形状が、製造しづらい形状となってしまい困っています
  いちがいに製造困難な非球面形状といっても、具体的には製造方法によって種々あり得ます。 たとえば変曲点をもつ形状、極値を持つ形状、非球面量が大きい形状、ローカル曲率が 一定値を越える形状、またはこれらの組み合わせなどです。 さらに回転非対称性を有する非球面まで考慮にいれれば、これらの組み合わせはいっそう、 多岐にわたることとなります。これ故に、非球面の形状制限を一般化するのは非常に困難です。 そこで通常はどのように この問題に対処するかといいますと、非球面の前後を その非球面の 次数よりもずっと低次の非球面のダミー面で挟み込み、それらが干渉する様子をグラフィクスで 確認しながら、サグ量をや、サグ差を調整するという方法をとります。 また、場合によっては同一光学系でありながら、Fno をズームにとり、各開口径に対するコバ厚を デフォルトのコンストレイントで制御する方法もあります。これは着目する非球面の前後に配置した、 ダミーの低次非球面と、当該の非球面とのサグ差をデフォルトのコンストレイントで自動的に 所望の値以上に維持することによって目的を達成する方法です。 こちらは 計算負荷は非常に大きくなりますが、手間はかかりません。 いずれにせよ、ダミー面を 利用した上述の方法によれば、その面形状を適宜調整することで、どんな形状制限でも柔軟に 指定でき、設計自由度の低下を最小限に抑えつつ設計を進められます。

なお、サグ量 は、データベースアイテム sag で計算できます。sag(Sk x_val y_val) と指定します。 ここで、Sk は第k面のサグ量を示し、x_val と y_val はこの面のローカル座標です。     回転対称性をもつ面ならば、 eva [s3 3 4] で得られるサグ量と eva [s3 0 5]は当然ながら、 同じ量です。
   
9001 OpTaliXは、同時に何プロセスまで起動できるのですか? 何か制限はありますか?
  起動できるプロセスの数を制限するのは、OpTaliX を起動する コンピュータのメモリ容量だけです。十分なメモリがあれば、必要な数だけ OpTaliX を 起動できます。

ただし、同時に複数のOpTaliXを起動する場合には、若干の注意が必要です。

OpTaliXを終了するとき、OpTaliXはその時点の光学データを OpTaliXフォルダの "default.otx" という名前のファイルに保存します。このファイルの内容は、次にOpTaiXが起動する際に自動的に 読み込まれます。しかし、それを読み込む前に別プロセスのOpTaliXを終了すると、 そのプロセスが "default.otx" の内容を上書きしてしまいます。

もうひとつの注意点。もし "melt glass" を設定したとしても、その設定以前に起動してあった OpTaliX にはそれを反映させることはできません。ガラスカタログは OpTaliX の起動時にだけ 読み込まれるからです。このことが問題になる場合は、いったん OpTaliX を終了し、再度、 起動してください。

この2項目にご注意いただければ、複数のOpTailXを起動してご利用いただけます。
   
9002 テキスト出力の結果を、必要とする部分だけ選んで印刷する方法を教えてください。
Text Window から File --> Print とクリックしたところ OpTaliXを起動してから Text Window に表示されたすべての内容が印刷されてしまいました。
  2つの方法があります。リダイレクションによる方法と、Print Selection による方法です。

リダイレクション(Re-direction) とは、コマンドがテキスト出力するデバイスを変更するテクニックです。 コマンドラインから LIS とする代わりに
LIS > PRN
とすれば、その出力は画面ではなく、プリンタに送られます。ここで 記号 > はリダイレクションを意味し、 PRN はプリンタを意味します。

Print Selection による方法は次のようにします。
  • まず、通常どおり評価結果を画面に出力します。
  • 次に、そのうち印刷した範囲だけを範囲だけをマウスのドラッグ操作 (またはキーボード操作)で選択します。
  • Text Window から File --> Print Selection を選択します。(Print Selection は範囲選択をした場合だけ指定できます)
   
9003 コマンドを実行するたびに多数のウインドウが開いて、閉じるのが大変です。
  閉じたいウインドウを選択した状態で、キーボードの左上の [Esc] を 押すのが最も手間のかからない方法です。試してみてください。
   
9004 スプレッドシートに値を入力しましたが、データとして反映されません。
  スプレッドシートに入力した値は、カーソルが別の欄に移動したとき、 初めて確定します。そのためには、値の入力に続いてエンターキー、タブキー、 カーソル移動キーのいずれかを押してください。
ただし、スプレッドシートの最下行ではエンターキーが効きません。タブキーか カーソル移動キーを使ってください。
   
9101 Text Output Window に 空白行を挿入することはできませんか?
  "preferences" ダイアログの "operations" タブに "Blank command lines are mirrored in text output window"と表記されたチェックボックスが あります。ここをクリックしておけば、以降、コマンドラインからエンターキーを入力するたびに、 Text Output Window に空白行が生成されます。
   
9102 自動設計中に、レンズの断面図(VIE) を随時更新することはできませんか?
  できます。
構成エディタ(configulation dialog) の [general] タブで、[update graphics] と表記された欄に、[at optimization] または [always] を設定すればよいのです。
   
9701 いまOPTASを使っていますが、OpTaliXにレンズデータを読み込ませる ことはできないでしょうか?
  できます。CodeVのSEQ形式を使えばよいのです。
まず、OPTASの側で、あたかもCodeVに読み込ませるかのようにSEQファイルを出力してください。 次にOpTaliXの側で、CodeV が出力したSEQファイルを読み込むかのように、それをimport してください。 メニューバーから、[FILE] --> [IMPORT] --> {CODEV] とたどってください。