管理文書 No.SD09-0056-001

S-cube API
リファレンスマニュアル

駿河精機株式会社
OST 事業部
システムソリューション BU 光センサ T

改訂履歴
版数

作成日

1.0

2009/11/16

変更内容
新規作成

✫本書の内容に関して無断でコピー・加工・転載することを禁止します。
✫本書に記載されている仕様に関しては、改良の目的で事前の予告なしに変更する場合があります。
✫本ソフトウェアを使用した結果生じる損害、及び逸失利益などについては，当社では一切責任を負えません。予めご了承下さい。

2

目次
１. はじめに.................................................................................................................................................7
２. 動作環境.................................................................................................................................................7
３. システム概要.........................................................................................................................................84. 開発環境..................................................................................................................................................94.1. 開発環境の設定...............................................................................................................................95. 基本動作フロー....................................................................................................................................135.1. ライブラリ起動時.........................................................................................................................135.2. 校正データの生成.........................................................................................................................145.3. 測定................................................................................................................................................15
5.4. マスクデータ ................................................................................................................................16
5.5. スナップショット測定.................................................................................................................18
5.5.1. スナップショット画像の保存..............................................................................................18
5.5.2. スナップショット画像の測定..............................................................................................195.6. ライブラリ終了時.........................................................................................................................20
6. 関数一覧................................................................................................................................................21
7. 関数リファレンス................................................................................................................................24
7.1. s3̲Open().........................................................................................................................................24
7.2. s3̲Close() ........................................................................................................................................25
7.3. s3̲GetLibVersion() ..........................................................................................................................26
7.4. s3̲GetLastError() ............................................................................................................................27
7.5. s3̲SetParam()..................................................................................................................................28
7.6. s3̲GetParam() ................................................................................................................................. 29
7.7. s3̲GetDeviceInfo()...........................................................................................................................30
7.8. s3̲SetCalibMode() ...........................................................................................................................31
7.9. s3̲GetCalibMode() ...........................................................................................................................32
7.10. s3̲SetUnitType() ..........................................................................................................................33
7.11. s3̲GetUnitType()..........................................................................................................................34
7.12. s3̲SetFormatType() .....................................................................................................................35
7.13. s3̲GetFormatType().....................................................................................................................36
7.14. s3̲SetAngUnitType() ....................................................................................................................37
7.15. s3̲GetAngUnitType()....................................................................................................................38
7.16. s3̲InitializeCamera() .....................................................................................................................39
7.17. s3̲UninitializeCamera() .................................................................................................................403

7.18. s3̲StartCapture()..........................................................................................................................41
7.19. s3̲StopCapture()..........................................................................................................................42
7.20. s3̲SetCameraShutterSpeed()......................................................................................................43
7.21. s3̲GetCameraShutterSpeed()......................................................................................................44
7.22. s3̲SetCameraGain() .....................................................................................................................45
7.23. s3̲GetCameraGain() .....................................................................................................................46
7.24. s3̲ReadUserCalibData() ...............................................................................................................47
7.25. s3̲SaveUserCalibData()................................................................................................................48
7.26. s3̲ExcuteUserCalib()....................................................................................................................49
7.27. s3̲GetMaskHandle() .....................................................................................................................50
7.28. s3̲isMaskEmpty() .........................................................................................................................51
7.29. s3̲GetMaskCount() ......................................................................................................................52
7.30. s3̲GetMaskInfo() ..........................................................................................................................53
7.31. s3̲CalcMask() ...............................................................................................................................54
7.32. s3̲UpdateMask()...........................................................................................................................55
7.33. s3̲ReadMask() ..............................................................................................................................56
7.34. s3̲SaveMask() ..............................................................................................................................57
7.35. s3̲ClearMask()..............................................................................................................................58
7.36. s3̲RegistMask() ............................................................................................................................59
7.37. s3̲SetMaskAt().............................................................................................................................60
7.38. s3̲GetMaskAt() ............................................................................................................................61
7.39. s3̲SetMaskList()...........................................................................................................................62
7.40. s3̲GetMaskList() ..........................................................................................................................64
7.41. s3̲CreateMask() ...........................................................................................................................65
7.42. s3̲CopyMask()..............................................................................................................................66
7.43. s3̲ReleaseMask()..........................................................................................................................67
7.44. s3̲SetZernikeTermUse() ..............................................................................................................68
7.45. s3̲SetZernikeOffsetGain()............................................................................................................69
7.46. s3̲GetZernikeOffsetGain() ...........................................................................................................71
7.47. s3̲CalcAberrationMap()................................................................................................................72
7.48. s3̲CalcIntensityMap() ...................................................................................................................74
7.49. s3̲GetSpotPeakValue() ................................................................................................................76
7.50. s3̲CountSaturationPixels()...........................................................................................................77
7.51. s3̲GetSpotNum()..........................................................................................................................78
7.52. s3̲GetBeamProfile().....................................................................................................................79
7.53. s3̲GetAutoAreaSize() ..................................................................................................................814

7.54. s3̲CalcAberration().......................................................................................................................82
7.55. s3̲GetMeasData() ........................................................................................................................83
7.56. s3̲GetZernikeAberration() ............................................................................................................84
7.57. s3̲GetSeidelAberration() ..............................................................................................................85
7.58. s3̲GetTotalAberration()................................................................................................................86
7.59. s3̲GetCapturedFrameHandle().....................................................................................................87
7.60. s3̲GetFrameBmpInfo().................................................................................................................88
7.61. s3̲GetFrameSize()........................................................................................................................89
7.62. s3̲GetFramePixel().......................................................................................................................90
7.63. s3̲GetFramePixelBufferSize()......................................................................................................91
7.64. s3̲isMeasuring()............................................................................................................................92
7.65. s3̲isCalibDone()............................................................................................................................93
7.66. s3̲isUserCalibDone() ....................................................................................................................94
7.67. s3̲isMaskDone() ...........................................................................................................................95
7.68. s3̲isSnapshotEmpty()...................................................................................................................96
7.69. s3̲TakeSnapshot()........................................................................................................................97
7.70. s3̲GetSnapshotHandle()...............................................................................................................98
7.71. s3̲CalcSnapAberration()...............................................................................................................99
7.72. s3̲ReadSnapshot() .....................................................................................................................101
7.73. s3̲SaveSnapshot() .....................................................................................................................1028. 定数......................................................................................................................................................103
8.1. S3̲C̲MAX̲ZERNIKE̲NUM ............................................................................................................103
8.2. S3̲C̲MAX̲PATH̲LEN...................................................................................................................103
8.3. S3̲T̲CALIB̲MODE .......................................................................................................................103
8.4. S3̲T̲USER̲CALIB̲MODE.............................................................................................................104
8.5. S3̲T̲UNIT̲TYPE...........................................................................................................................104
8.6. S3̲T̲ANG̲UNIT̲TYPE ..................................................................................................................105
8.7. S3̲T̲FORMAT̲TYPE....................................................................................................................105
8.8. S3̲T̲MASK̲STATE.......................................................................................................................106
9. 構造体..................................................................................................................................................107
9.1. S3̲T̲OPTION................................................................................................................................107
9.2. S3̲T̲dPOINT................................................................................................................................. 113
9.3. S3̲T̲SIZE......................................................................................................................................113
9.4. S3̲T̲dSIZE ....................................................................................................................................114
9.5. S3̲T̲RECT....................................................................................................................................114
9.6. S3̲T̲OFS̲GAIN.............................................................................................................................1155

9.7. S3̲T̲MEAS̲INFO ..........................................................................................................................115
9.8. S3̲T̲ABERRATION ......................................................................................................................116
9.9. S3̲T̲SEIDEL̲ABERRATION.........................................................................................................117
9.10. S3̲T̲TOTAL̲ABERRATION ......................................................................................................118
9.11. S3̲T̲MASK̲ELEMENT...............................................................................................................119
9.12. S3̲T̲MASK̲INFO.......................................................................................................................119
9.13. S3̲T̲DEV̲INFO..........................................................................................................................120
10. エラーコード...................................................................................................................................121
11. 特記事項...........................................................................................................................................123
11.1. 測定上の注意 ...........................................................................................................................123
11.2. 参考資料...................................................................................................................................124
11.2.1. ゼルニケ多項式定義式....................................................................................................124
11.2.2. ザイデル収差定義式........................................................................................................1256

１. はじめに「S-cube」API は、弊社波面光学ヘッドを制御して、波面収差測定を行うためのラ
イブラリです。

２. 動作環境・パソコン：IBM PC/AT 互換機
・OS：Windows XP
・CPU：Intel Core2 Duo1.80GHz 以上
・メモリ：2GB 以上
・開発環境：Microsoft Visual C++9.0 以降

7

３. システム概要
S-cube 高速波面センサのシステム構成は、以下のようになっております。
・波面センサヘッド
・S-cube API・ドングルキー
周辺機器（別売り）
・IEEE1394ｂケーブル
・IEEE1394ｂインターフェースボード
・パーソナルコンピュータ（IBM PC/AT 互換機）
・モニタ（XGA：1024ｘ768）以上
・小型カメラアダプター（電源装置）※
・12 ピンカメラケーブル※※PC からの電源供給能力が低い場合必要となります。

IEEE1394b
インターフェースボード
モニタ
ドングルキー

パーソナルコンピュータ

IEEE1394b
ケーブル

8

S3 光学ヘッドソフトウェア4. 開発環境
4.1. 開発環境の設定
本ライブラリは、以下に示すファイルを含みます。
1. S3Lib.h… ヘッダファイル
2. S3API.lib … ライブラリファイル
3. S3API.dll … ダイナミックリンクライブラリ
本ライブラリを使用する前に、以下の設定を行ってください。
●インクルードファイル(*.h)①メニューバーの [プロジェクト]→[プロパティ]を選択して以下の画面を開きます。

②構成の欄に「すべての構成」を選択します。
③左のペインから[構成プロパティ]→[C/C++]→[全般]を選択します。
④右のペインから「追加のインクルードディレクトリ」の欄に、インクルードファイ
ルがインストールされているフォルダのパスを指定します。
デフォルトのインストール先の場合、以下のようになります。

C:\Program Files\SURUGA\S-cube API\API9

⑤作成するアプリケーションの“STDAFX.h”ファイルまたは各ソースファイルで、
以下のように“ S3Lib.h”ファイルをインクルードしてください。

#include “S3Lib.h”

10

●ライブラリファイル（*.lib）①メニューバーの [プロジェクト]→[プロパティ]を選択して以下の画面を開きます。

②構成の欄に「すべての構成」を選択します。
③左のペインから[構成プロパティ]→[リンカ]→[全般]を選択します。
④右のペインから「追加のライブラリ ディレクトリ」の欄に、ライブラリファイル
がインストールされているフォルダのパスを指定します。
デフォルトのインストール先の場合、以下のようになります。

C:\Program Files\SURUGA\S-cube API\API11

⑤左のペインから[構成プロパティ]→[リンカ]→[入力]を選択します。

⑥右のペインから「追加の依存ファイル」の欄に、以下のライブラリファイルを指定します。

S3Api.lib

12

5. 基本動作フロー
以下に基本的な「S-cube」ライブラリの動作フローを示します。

5.1. ライブラリ起動時①ライブラリのオープン
s3̲Open()関数を実行して「S-cube」ライブラリの使用を開始します。
②ライブラリパラメータの初期値設定
s3̲SetParam()関数を実行してライブラリの初期パラメータを設定しておきます。
※ライブラリのパラメータは、上記関数を実行することで随時変更できます。
③光学ヘッドのイニシャライズ
s3̲InitializeCamera()関数を実行して光学ヘッドのイニシャライズを行います。
これで、光学ヘッドから測定データを入力できる状態になります。
①

S-cube ライブラリのオープン

s3_Open()②

ライブラリパラメータの初期値設定

s3_SetParam()③

光学ヘッドのイニシャライズ

s3_InitializeCamera()135.2. 校正データの生成
波面収差測定を行う前に、校正データを作成する必要があります。
校正データの作成には、理想的な光学レイアウトを仮定した「デフォルト校正」と、実際の映像をもとに生成する「ユーザー校正」の２通りの方法があります。
ユーザー校正の場合は、光学ヘッド固有の光学特性を加味して校正を行っているため、入光状態が悪くスポットの点数が少なくなったりする場合には、適正に校正できない
ことがあります。
※ユーザー校正データについては、出荷時に弊社で作成した校正ファイルを同梱していますので、通常はそちらのデータを使用することをお勧めします。
A） デフォルト校正の場合デフォルト校正データはライブラリの起動時に自動的に作成されます。
B） ユーザー校正の場合
ユーザー校正データは測定データをもとに生成するので、測定中に
s3̲ExcuteUserCalib()関数を実行します。
また、ファイルに保存された校正データを読み込む場合は、光学ヘッドのイニシャ
ライズ完了後、任意のタイミングで s3̲ReadUserCalibData()関数を実行します。この場合は、測定中である必要はありません。
①

測定開始

s3_StartCapture()②

校正モードをユーザー校正モードに設定

s3_SetCalibMode()③

波面収差の計算

s3_CalcAberration()④

ユーザー校正の実行

s3_ExcuteUserCalib()

14

5.3. 測定
①測定開始
s3̲StartCapture()関数を実行して測定を開始します。光学ヘッドの映像を取得できる状態になります。
②校正モードの選択計算を開始する前に、s3̲SetCalibMode()関数を実行して校正モードを指定します。
③波面収差の計算
s3̲CalcAberration()関数を実行して、入力映像から波面収差の各測定値を計算します。
④測定結果の取得
s3̲GetMeasData()関数を実行して③で計算した測定結果を取得します。
※測定結果の更新
測定結果を最新の値に更新したい場合は、③④の処理を繰り返し実行します。
⑤測定終了
測定を終了する場合は、s3̲StopCapture()関数を実行します。再開する場合は再度、
s3̲StartCapture()関数を実行します。
①

測定開始

s3_StartCapture()②

校正モードの選択

s3_SetCalibMode()③

波面収差の計算

s3_CalcAberration()④

測定結果の取得

s3_GetMeasData()⑤

測定終了

s3_StopCapture()15

5.4. マスクデータ
本ライブラリでは、指定した計測エリア内の校正データがゼルニケ係数の算出に使用されますが、このデータにマスク処理を行うことで、計測エリア内の一部の校正デー
タを使用しなかったり、逆に計測エリア外の校正データを使用したりすることができます。この校正データの選択情報を格納したものが、マスクデータになります。
マスクデータの作成は必須ではありませんが、計測光の状態が良くない場合には、マスク機能を使用することで、計測結果に悪影響を与える測定点を除外して、より安定した測定を行うことができます。（デフォルトの設定では、マスク処理は無効となっています）①最初に s3̲CalcMask()関数を実行して、マスクの初期状態を計算します。
初期状態では、各マスク要素は以下のように分類されます。
・計測エリアの内側の校正スポット点 … マスク無効・計測エリアの外側の校正スポット点 … マスク有効・計算不能な校正スポット点… 対応点なし②マスクデータの編集
SetMaskAt()関数，s3̲SetMaskList()関数を使用して、現在のマスクデータの構成要素の状態値および座標を取得することができます。取得したマスク情報には、そのマスク要素の位置情報が含まれているので、どのスポット点を使用して、どのスポット点を使用しないかという選択を行うことができます。変更したマスク情報を指定するには、s3̲GetMaskAt()関数，s3̲GetMaskList()関数を使用します。
③マスクデータの登録作成したマスクデータを測定に適用する前に、マスクデータを登録する必要があります。登録には、s3̲RegistMask()関数を使用します。
④マスク機能の有効化③で登録したマスクデータを使用する場合には、S3̲T̲OPTION 構造体の UseMask メ
ンバを１に設定してマスク機能を有効化します。

16

⑤マスクデータの保存
作成したマスクデータを保存する場合には、s3̲SaveMask()関数を使用します。保存
したマスクデータは、s3̲ReadMask()関数を使用することで、再度読み込んで利用することができます。
※マスクデータは現在の校正データを元に作成されるので、校正データが変更された場合には、マスクデータをもう一度作成し直す必要があります。
①

マスク初期状態を計算

s3_CalcMask()②

マスクデータの編集
s3_SetMaskAt() s3_GetMaskAt() s3_SetMaskList() s3_GetMaskList()③

マスクデータの登録

s3_RegistMask()④

マスク機能の有効化

s3_SetOption()175.5. スナップショット測定
通常の測定では、光学ヘッドからの映像を連続して取り込みながらリアルタイムに解析処理を行いますが、本ライブラリでは、そのような測定の他に、測定中にフレーム
画像をファイルに保存しておくことで、ある瞬間の入力映像を、オフラインで解析を行うことができます。
5.5.1. スナップショット画像の保存①測定開始
s3̲StartCapture()関数を実行して、測定を開始します。
②スナップショットの取得
s3̲TakeSnapshot()関数を実行して、現在のスナップショット画像を取得します。
③スナップショットの保存
s3̲SaveSnapshot()関数を実行して、②で取得したスナップショット画像を保存しま
す。
①

測定開始

s3_StartCapture()②

スナップショットの取得

s3_TakeSnapshot()③

スナップショットの保存

s3_SaveSnapshot()18

5.5.2. スナップショット画像の測定①測定開始
s3̲StartCapture()関数を実行して、測定を開始します。
②スナップショットの読み込み
s3̲ReadSnapshot()関数を実行して、5.5.1.章で作成したスナップショット画像を読み込みます。
③波面収差の計算
s3̲CalcSnapAberration()関数を実行して、スナップショット画像から波面収差の各測定値を計算します。
④測定結果の取得
s3̲GetMeasData()関数を実行して③で計算した測定結果を取得します。
①

測定開始

s3_StartCapture()②

スナップショットの読み込み

s3_ReadSnapshot()③

波面収差の計算

s3_CalcSnapAberration()④

測定結果の取得

s3_GetMeasData()

19

5.6. ライブラリ終了時①ライブラリのクローズ
s3̲Close()関数を実行して、「S-cube」ライブラリの使用を終了します。

20

6. 関数一覧
1 s3̲Open()

S-cube ライブラリの開始

2 s3̲Close()

S-cube ライブラリの終了

3 s3̲GetLibVersion()S-cube ライブラリのバージョン取得

4 s3̲GetLastError()

エラーコードの取得

5 s3̲SetParam()S-cube ライブラリのパラメータ設定

6 s3̲GetParam()S-cube ライブラリのパラメータ取得

7 s3̲GetDeviceInfo()

デバイス情報の取得

8 s3̲SetCalibMode()

校正モードの設定

9 s3̲GetCalibMode()

校正モードの取得

10 s3̲SetUnitType()

測定値の出力単位の設定

11 s3̲GetUnitType()

測定値の出力単位の取得

12 s3̲SetFormatType()

測定値の出力形式の設定

13 s3̲GetFormatType()

測定値の出力形式の取得

14 s3̲SetAngUnitType()

測定値の出力角度単位の設定

15 s3̲GetAngUnitType()

測定値の出力角度単位の取得

16 s3̲InitializeCamera()

光学ヘッドの初期化

17 s3̲UninitializeCamera()

光学ヘッドのリソース解放18 s3̲StartCapture()

測定開始

19 s3̲StopCapture()

測定停止

20 s3̲SetCameraShutterSpeed()

光学ヘッドシャッタースピード値の設定

21 s3̲GetCameraShutterSpeed()

光学ヘッドシャッタースピード値の取得

22 s3̲SetCameraGain()

光学ヘッドゲイン値の設定

23 s3̲GetCameraGain()

光学ヘッドゲイン値の取得

24 s3̲ReadUserCalibData()

ユーザー校正データ読み込み

25 s3̲SaveUserCalibData()

ユーザー校正データ保存

26 s3̲ExcuteUserCalib()

ユーザー校正の実行

27 s3̲GetMaskHandle()

マスクオブジェクトのハンドル取得

28 s3̲isMaskEmpty()

空のマスクオブジェクトかどうかの確認

29 s3̲GetMaskCount()

マスク要素数の取得

30 s3̲GetMaskInfo()

マスクのパラメータ情報の取得

31 s3̲CalcMask()

マスクの計算32 s3̲UpdateMask()

マスクの更新21

33 s3̲ReadMask()

マスクデータ読み込み

34 s3̲SaveMask()

マスクデータ保存

35 s3̲ClearMask()

マスクのクリア36 s3̲RegistMask()

マスクの登録37 s3̲SetMaskAt()

マスク要素の設定

38 s3̲GetMaskAt()

マスク要素の取得

39 s3̲SetMaskList()

マスク要素列の設定

40 s3̲GetMaskList()

マスク要素列の取得

41 s3̲CreateMask()

マスクオブジェクトの生成

42 s3̲CopyMask()

マスクのコピー

43 s3̲ReleaseMask()

マスクオブジェクトの解放

44 s3̲SetZernikeTermUse()

ゼルニケ有効係数の設定

45 s3̲SetZernikeOffsetGain()

ゼルニケ係数オフセット・ゲイン補正値の設定

46 s3̲GetZernikeOffsetGain()

ゼルニケ係数オフセット・ゲイン補正値の取得

47 s3̲CalcAberrationMap()

波面収差マップデータの計算

48 s3̲CalcIntensityMap()

強度マップデータの計算

49 s3̲GetSpotPeakValue()

ビームスポットの最大ピーク階調値の取得

50 s3̲CountSaturationPixels()

飽和ピクセル数の取得

51 s3̲GetSpotNum()

ビームスポット数の取得

52 s3̲GetBeamProfile()

ビームプロファイルの取得

53 s3̲GetAutoAreaSize()

計測エリアサイズの取得

54 s3̲CalcAberration()

波面収差の計算実行

55 s3̲GetMeasData()

測定データの取得

56 s3̲GetZernikeAberration()

ゼルニケ収差測定データの取得

57 s3̲GetSeidelAberration()

ザイデル収差測定データの取得

58 s3̲GetTotalAberration()

総合波面収差測定データの取得

59 s3̲GetCapturedFrameHandle()

フレームオブジェクトのハンドル取得

60 s3̲GetFrameBmpInfo()

フレームのビットマップ情報取得

61 s3̲GetFrameSize()

フレームのサイズ取得

62 s3̲GetFramePixel()

フレームのピクセルデータ取得

63 s3̲GetFramePixelBufferSize()

フレームのピクセルデータのバッファサイズ取得

64 s3̲isMeasuring()

測定中かどうかの確認

65 s3̲isCalibDone()

校正完了の確認

66 s3̲isUserCalibDone()

ユーザー校正完了の確認

67 s3̲isMaskDone()

マスク登録完了の確認

22

68 s3̲isSnapshotEmpty()

スナップショットデータが存在するどうかの確認

69 s3̲TakeSnapshot()

スナップショット画像の取得

70 s3̲GetSnapshotHandle()

スナップショットのハンドル取得

71 s3̲CalcSnapAberration()

スナップショットの波面収差の計算実行

72 s3̲ReadSnapshot()

スナップショット画像の読み込み

73 s3̲SaveSnapshot()

スナップショット画像の保存23

7. 関数リファレンス
7.1. s3̲Open()
形式
BOOL s3̲Open(void)機能
S-cube ライブラリのオープンを行います。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
本関数は S-cube ライブラリの関数を使用する前に、必ず一度実行しておく必要が
あります。

24

7.2. s3̲Close()
形式
BOOL s3̲Close(void)機能
S-cube ライブラリを終了します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
s3̲Open()関数にてオープンしたライブラリをクローズします。
アプリケーションは S-cube ライブラリの使用を終了するときに、必ず本関数を実行しなければなりません。

25

7.3. s3̲GetLibVersion()
形式
BOOL s3̲GetLibVersion(unsigned long *pMajor, unsigned long *pMinor)
機能
ライブラリのバージョン番号を取得します。
引数

pMajorpMinor
戻り値
TRUE
FALSE

[OUT] ライブラリのメジャー番号を受け取る変数へのポインタです。
[OUT] ライブラリのマイナー番号を受け取る変数へのポインタです。

正常終了
異常終了

備考
例えば、バージョン“1.23”の場合は、メジャー番号は 1、マイナー番号は 23 を
返します。

26

7.4. s3̲GetLastError()
形式
S3̲T̲ERR̲CORD s3̲GetLastError(void)
機能
最後に発生したエラーコードを取得します。
エラーコードの詳細については、10 章のエラーコード一覧をご覧ください。
引数
なし。
戻り値
取得するエラーコード。
例
S3_T_ERR_CORD err;
if(!s3_InitializeCamera()) {err=s3_GetLastError();//失敗した場合にエラーコードを取得します}27

7.5. s3̲SetParam()
形式
BOOL s3̲SetParam(S3̲T̲OPTION *pParam)
機能
ライブラリパラメータを設定します。
引数

pParam
戻り値
TRUE
FALSE

[IN] パラメータ情報を指定する構造体へのポインタです。

正常終了
異常終了

備考
測定や光学ヘッドの制御に必要なパラメータを、引数の S3̲T̲OPTION 構造体により設定します。
例
S3_T_OPTION Option;//パラメータの取得

if(!s3_GetParam(&Option)) {//パラメータの取得に失敗した場合の処理}
Option.CAMERA.Gain=0.5;//カメラゲイン値の変更

Option.IMAGE.UseFrameAve=0;//フレーム平均処理有無の変更

Option.OUTPUT.UnitType=1;//出力単位モードの変更

if(!s3_SetParam(&Option)) {//パラメータの設定//パラメータの設定に失敗した場合の処理}

28

7.6. s3̲GetParam()
形式
BOOL s3̲GetParam(S3̲T̲OPTION *pParam)機能
現在設定されているライブラリパラメータを取得します。
引数

pParam
戻り値
TRUE
FALSE

[OUT] パラメータ情報を受け取る構造体へのポインタです。

正常終了
異常終了

29

7.7. s3̲GetDeviceInfo()
形式
BOOL s3̲GetDeviceInfo(S3̲T̲DEV̲INFO *pInfo)機能
現在設定されているデバイス情報を取得します。
引数

pInfo
戻り値
TRUE
FALSE

[OUT] デバイス情報を受け取る構造体へのポインタです。

正常終了
異常終了

備考
9.13.章 S3̲T̲DEV̲INFO 構造体

30

7.8. s3̲SetCalibMode()
形式
BOOL s3̲SetCalibMode(S3̲T̲CALIB̲MODE Mode)機能
校正モードを設定します。
引数

Mode

[IN] 校正モードを指定する変数です。
（ S3̲C̲STANDARD̲CALIB ：デフォルト校正/ S3̲C̲USER̲CALIB：ユーザー校正）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・２種類の校正モード（デフォルト校正/ユーザー校正）のうち、どちらのモードで測定を行うのかを指定します。
・校正モードは S3̲T̲OPTION 構造体の CalibMode メンバによっても設定/取得できます。（7.5.章 s3̲SetParam 関数/7.6.章 s3̲GetParam 関数 参照）
例
S3_T_CALIB_MODE Mode=S3_C_USER_CALIB;//ユーザー校正モードに設定

s3_SetCalibMode(Mode);31

7.9. s3̲GetCalibMode()
形式
BOOL s3̲GetCalibMode(S3̲T̲CALIB̲MODE *pMode)機能
現在の校正モードを取得します。
引数

Mode

[OUT] 校正モードを受け取る変数へのポインタです。
（ S3̲C̲STANDARD̲CALIB ：デフォルト校正/ S3̲C̲USER̲CALIB：ユーザー校正）

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_CALIB_MODE Mode;//校正モードの取得

if(!s3_GetCalibMode(&Mode)) {//校正モードの取得に失敗した場合の処理}
if(Mode==S3_C_STANDERD_CALIB) {//デフォルト校正モードの場合の処理}else if(Mode==S3_C_USER_CALIB) {//ユーザー校正モードの場合の処理}

32

7.10. s3̲SetUnitType()
形式
BOOL s3̲SetUnitType(S3̲T̲UNIT̲TYPE Type)機能
出力単位モードを設定します。
引数

Type

[IN] 出力単位モードを指定する変数です。
（ S3̲C̲UNIT̲LAMBDA：λ / S3̲C̲UNIT̲MICRO：μm）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・ゼルニケ係数、ザイデル係数、その他の測定値の測定単位を設定します。
・出力単位モードは、S3̲T̲OPTION 構造体の UnitType メンバによっても設定/取得できます。（7.5.章 s3̲SetParam 関数/7.6.章 s3̲GetParam 関数 参照）

33

7.11. s3̲GetUnitType()
形式
BOOL s3̲GetUnitType(S3̲T̲UNIT̲TYPE *pType)機能
現在の出力単位モードを取得します。
引数

pType

[OUT] 出力単位モードを受け取る変数へのポインタです。
（ S3̲C̲UNIT̲LAMBDA：λ / S3̲C̲UNIT̲MICRO：μm）

戻り値
TRUE
FALSE

正常終了
異常終了

34

7.12. s3̲SetFormatType()
形式
BOOL s3̲SetFormatType(S3̲T̲FORMAT̲TYPE Type)機能
出力形式モードを設定します。
引数

Type

[IN] 出力形式モードを指定する変数です。
（ S3̲C̲FMT̲PV：PV / S3̲C̲FMT̲RMS：RMS）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・ゼルニケ係数、ザイデル係数、その他の測定値の出力形式を設定します。
・出力形式モードは、S3̲T̲OPTION 構造体の UnitFormat メンバによっても設定/取得できます。（7.5.章 s3̲SetParam 関数/7.6.章 s3̲GetParam 関数 参照）

35

7.13. s3̲GetFormatType()
形式
BOOL s3̲GetFormatType(S3̲T̲FORMAT̲TYPE *pType)機能
現在の出力形式モードを取得します。
引数

pType

[OUT] 出力形式モードを受け取る変数へのポインタです。
（ S3̲C̲FMT̲PV：PV / S3̲C̲FMT̲RMS：RMS）

戻り値
TRUE
FALSE

正常終了
異常終了

36

7.14. s3̲SetAngUnitType()
形式
BOOL s3̲SetAngUnitType(S3̲T̲ANG̲UNIT̲TYPE Type)機能
出力角度単位モードを設定します。

引数

Type

[IN] 出力角度単位モードを指定する変数です。
（ S3̲C̲ANG̲DEG ：度/ S3̲C̲ANG̲MRAD ：ミリラジアン/ S3̲C̲ANG̲MIN ：分）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・総合波面収差 入射角度 x / y / D 項の測定値の出力角度単位を設定します。
・出力角度単位モードは、S3̲T̲OPTION 構造体の AngUnitType メンバによっても設定/取得できます。（7.5.章 s3̲SetParam 関数/7.6.章 s3̲GetParam 関数 参照）

37

7.15. s3̲GetAngUnitType()
形式
BOOL s3̲GetAngUnitType(S3̲T̲ANG̲UNIT̲TYPE *pType)機能
現在の出力角度単位モードを取得します。
引数

pType

[OUT] 出力角度単位モードを受け取る変数へのポインタです。
（ S3̲C̲ANG̲DEG ：度/ S3̲C̲ANG̲MRAD ：ミリラジアン/ S3̲C̲ANG̲MIN ：分）

戻り値
TRUE
FALSE

正常終了
異常終了

38

7.16. s3̲InitializeCamera()
形式
BOOL s3̲InitializeCamera(void)
機能
光学ヘッドの初期化を行います。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
測定を開始する前に、この関数を実行して、光学ヘッドを初期化しておく必要があ
ります。

39

7.17. s3̲UninitializeCamera()
形式
BOOL s3̲UninitializeCamera(void)
機能
光学ヘッドの解放を行います。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

40

7.18. s3̲StartCapture()
形式
BOOL s3̲StartCapture(void)
機能
カメラ映像の入力を開始します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
この関数を実行する前に、s3̲InitializeCamera()関数を実行して、光学ヘッドの初期化を行っておく必要があります。

41

7.19. s3̲StopCapture()
形式
BOOL s3̲StopCapture(void)
機能
カメラ映像の入力を停止します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

42

7.20. s3̲SetCameraShutterSpeed()
形式
BOOL s3̲SetCameraShutterSpeed(double Speed)機能
光学ヘッドのシャッタースピード値の設定を行います。
引数

Speed

[IN] シャッタースピードを指定する変数です。
0．01〜16000．00（0．01ms 単位）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
シャッタースピード値は、S3̲T̲OPTION 構造体の Shutter メンバによっても設定/取得できます。（7.5.章 s3̲SetParam 関数/7.6.章 s3̲GetParam 関数 参照）
例
if(!s3_SetCameraShutterSpeed(10.5)) {//シャッタースピード値の設定に失敗した場合の処理}

43//シャッタースピード値を 10.5ms に設定

7.21. s3̲GetCameraShutterSpeed()
形式
BOOL s3̲GetCameraShutterSpeed(double *pSpeed)
機能
現在の光学ヘッドのシャッタースピード設定値を取得します。
引数

pSpeed[OUT] シャッタースピードを受け取る変数へのポインタです。
0．01〜16000．00（0．01ms 単位）

戻り値
TRUE
FALSE

正常終了
異常終了

例
double Speed;if(!s3_GetCameraShutterSpeed(&Speed)) { //シャッタースピード値の取得//シャッタースピード値の取得に失敗した場合の処理}

44

7.22. s3̲SetCameraGain()
形式
BOOL s3̲SetCameraGain(double Gain)
機能
光学ヘッドのゲイン値を設定します。
引数

Gain

[IN] ゲイン値を指定する変数です。
0．00〜24．00（0．05dB 単位）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
ゲイン値は、S3̲T̲OPTION 構造体の Gain メンバによっても設定/取得できます。
（7.5.章 s3̲SetParam 関数/7.6.章 s3̲GetParam 関数 参照）
例//ゲイン値を 0dB に設定

if(!s3_SetCameraGain(0.0)) {//ゲイン値の設定に失敗した場合の処理}

45

7.23. s3̲GetCameraGain()
形式
BOOL s3̲GetCameraGain(double *pGain)
機能
現在の光学ヘッドのゲイン設定値を取得します。
引数

pGain

[OUT] ゲイン値を受け取る変数へのポインタです。
0．00〜24．00（0．05dB 単位）

戻り値
TRUE
FALSE

正常終了
異常終了

例
double Gain;//ゲイン値の取得

if(!s3_GetCameraGain(&Gain)) {//ゲイン値の取得に失敗した場合の処理}

46

7.24. s3̲ReadUserCalibData()
形式
BOOL s3̲ReadUserCalibData(char *pCalibFileName)
機能指定したユーザー校正ファイルからユーザー校正データを読み込みます。
引数pCalibFileName[IN] 読み込み元のユーザー校正ファイルのパス名を指定する
文字列へのポインタです。（拡張子“.CLB”）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
ファイルから校正データを読み込み、ユーザー校正データとしてセットします。実際に、ここで読み込んだ校正データを測定に反映させるには、校正モードを“ユーザー校正”モードに設定しておかなければなりません。

47

7.25. s3̲SaveUserCalibData()
形式
BOOL s3̲SaveUserCalibData(char *pCalibFileName)
機能指定したファイル名でユーザー校正データを保存します。
引数

pCalibFileName[IN] 保存元のユーザー校正ファイルのパス名を指定する文字
列へのポインタです。（拡張子“.CLB”）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
現在、ユーザー校正データが作成されている場合、そのデータをファイルに保存します。ユーザー校正データが作成されていない場合は、この関数は失敗します。

48

7.26. s3̲ExcuteUserCalib()
形式
BOOL s3̲ExcuteUserCalib(S3̲T̲USER̲CALIB̲MODE Mode)
機能指定したユーザー校正モードで校正処理を行います。
引数

Mode

[IN] ユーザー校正モードを指定する変数です。
（ S3̲C̲PLANE̲WAVE̲CALIB：平面波校正/ S3̲C̲SPHERICAL̲WAVE̲CALIB ：球面波校正）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・S3̲C̲PLANE̲WAVE̲CALIB を指定した場合は、平面波校正を実行します。
・S3̲C̲SPHERICAL̲WAVE̲CALIB を指定した場合は、球面波校正を実行します。
※この関数は測定中でないと正常に実行できません。
例
s3_StartCapture();//測定開始s3_CalcAberration();//計算実行

if(!s3_ExcuteUserCalib(S3_C_PLANE_WAVE_CALIB)) {//平面波モードでのユーザー校正に失敗した場合の処理}

49

7.27. s3̲GetMaskHandle()
形式
BOOL s3̲GetMaskHandle(S3̲T̲hMASK *hMask);
機能
現在のマスクオブジェクトへのハンドル値を取得します。
引数

hMask

[OUT] マスクオブジェクトのハンドルを受け取る変数へのポインタで
す。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hMASK hMask;
if(!s3_GetMaskHandle(&hMask)) {//マスクハンドルの取得に失敗した場合の処理}

50

7.28. s3̲isMaskEmpty()
形式
BOOL s3̲isMaskEmpty(S3̲T̲hMASK hMask)
機能指定したマスクオブジェクトが要素をもつかどうかの確認を行います。
引数
なし。
戻り値
TRUE
FALSE

要素をもたない要素をもつ

例
S3_T_hMASK hMask;
s3_GetMaskHandle(&hMask);if(s3_isMaskEmpty(hMask)) {//マスク要素が存在しない場合の処理}

51

7.29. s3̲GetMaskCount()
形式
BOOL s3̲GetMaskCount(S3̲T̲hMASK hMask, int *pNum)
機能指定したマスクオブジェクトの要素数を取得します。
引数

hMask
pNum

[IN]
マスクオブジェクトのハンドルを指定します。
[OUT] マスクオブジェクトの要素数を受け取る変数へのポインタで
す。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hMASK hMask;
int Num;s3_GetMaskHandle(&hMask);
if(!s3_GetMaskCount(hMask, &Num)) {//マスク要素数の取得に失敗した場合の処理}

52//マスク要素数の取得

7.30. s3̲GetMaskInfo()
形式
BOOL s3̲GetMaskInfo(S3̲T̲hMASK hMask, S3̲T̲MASK̲INFO *pInfo)
機能指定したマスクオブジェクトのパラメータ情報を取得します。
引数

hMask
pInfo

[IN]
マスクオブジェクトのハンドルを指定します。
[OUT] マスクパラメータ情報を受け取る構造体へのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hMASK hMask;
S3_T_MASK_INFO Info;s3_GetMaskHandle(&hMask);
if(!s3_GetMaskInfo(hMask, &Info)) {//マスク付加情報の取得に失敗した場合の処理}

53//マスク付加情報の取得

7.31. s3̲CalcMask()
形式
BOOL s3̲CalcMask(void)機能
現在の校正データに対して、マスクデータの初期状態を計算します。
初期状態では、マスクの各要素が以下のように分類されます。
・計測エリアの内側の校正スポット点 … マスク無効（S3̲C̲MSK̲OFF）
・計測エリアの外側の校正スポット点 … マスク有効（S3̲C̲MSK̲ON）
・計算不能な校正スポット点… 対応点なし（S3̲C̲MSK̲NO̲PAIR）（5.4.章参照）
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
現在の校正データに対して、マスクデータを作成します。デフォルト校正データ、ユーザー校正データどちらに対しても、マスクデータを計算することができます。

54

7.32. s3̲UpdateMask()
形式
BOOL s3̲UpdateMask(void)機能
現在のマスクデータを更新します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
・本関数を使用する前に、s3̲CalcMask()関数によりマスクデータを作成しておく必要があります。
・現在、設定されているマスクデータの状態値を、測定データに従って更新します。マスク有効の状態値（S3̲C̲MSK̲ON）を持つ要素はそのまま保持され、その他の状態値を持つ要素のみ更新されます。

55

7.33. s3̲ReadMask()
形式
BOOL s3̲ReadMask(char *pMaskFileName)
機能指定したマスクファイルからデータを読み込み、現在設定されている校正データのマスクデータとして登録します。
引数

pMaskFileName[IN] マスクファイル名を指定する文字列へのポインタです。
（拡張子“.MSK”）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
マスクデータ保存時の校正データとマスクデータ読み込み時の校正データが異なる
場合、上記の関数は失敗します。

56

7.34. s3̲SaveMask()
形式
BOOL s3̲SaveMask(char *pMaskFileName)
機能指定したマスクファイル名でマスクデータを保存します。
引数

pMaskFileName[IN] マスクファイル名を指定する文字列へのポインタです。
（拡張子“.MSK”）

戻り値
TRUE
FALSE

正常終了
異常終了

57

7.35. s3̲ClearMask()
形式
BOOL s3̲ClearMask(void)機能
現在のマスクデータから、ソフトアパーチャ内のマスク要素の状態値をすべて無効（S3̲C̲MSK̲OFF）にします。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
・本関数を使用する前に、s3̲CalcMask()関数により、マスクデータを作成しておく必要があります。

58

7.36. s3̲RegistMask()
形式
BOOL s3̲RegistMask(void)機能
現在の校正データにマスクデータを登録します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

例
s3_SetCalibMode(S3_C_STANDERD_CALIB);//校正モードの選択

if(!s3_CalcMask()) {//マスクの計算//マスクデータの計算に失敗した場合の処理}//マスクデータの登録

if(!s3_RegistMask()) {//マスクデータの登録に失敗した場合の処理}

備考
・S3̲T̲OPTION 構造体の CenterType メンバが 1（追従）に設定されているとき、もしくは、AutoAreaSize メンバが 1（自動）に設定されている場合は、上記の関数
は失敗します。
・マスクデータ保存時の校正データとマスクデータ読み込み時の校正データが異なる場合は、上記の関数は失敗します。

59

7.37. s3̲SetMaskAt()
形式
BOOL s3̲SetMaskAt(S3̲T̲hMASK hMask, int Index, S3̲T̲MASK̲ELEMENT *pElement)
機能指定したマスクオブジェクトにマスク要素を設定します。
引数

hMask
Index

[IN] マスクオブジェクトのハンドルを指定します。
[IN] マスク要素のインデックスを指定する変数です。
（０〜マスク要素数−１）

pElement[IN] マスク要素を指定する変数へのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

例
・先頭から１１番目のマスク要素を設定します
S3_T_hMASK hMask;
S3_T_MASK_ELEMENT Element;s3_GetMaskHandle(&hMask);//マスクハンドル値の取得

if(!s3_GetMaskAt(hMask, 10, &Element)) {//マスク要素取得失敗した場合の処理}
if(Element.State!=S3_C_MSK_ON) {Element.State=S3_C_MSK_ON;}
if(!s3_SetMaskAt(hMask, 10, &Element)) {//マスク要素設定失敗した場合の処理}

60

7.38. s3̲GetMaskAt()
形式
BOOL s3̲GetMaskAt(S3̲T̲hMASK hMask, int Index, S3̲T̲MASK̲ELEMENT *pElement)
機能指定したマスクオブジェクトからマスク要素を取得します。
引数

hMask
Index

[IN]
[IN]

pElement[OUT] マスク要素を受け取る変数へのポインタです。

戻り値
TRUE
FALSE

マスクオブジェクトのハンドルを指定します。
マスク要素のインデックスを指定する変数です。
（０〜マスク要素数−１）

正常終了
異常終了

61

7.39. s3̲SetMaskList()
形式
BOOL s3̲SetMaskList(S3̲T̲hMASK hMask, S3̲T̲MASK̲ELEMENT *pList, int ListNum)
機能指定したマスクオブジェクトの要素列を設定します。
引数

hMask
pList
ListNum[IN] マスクオブジェクトのハンドルを指定します。
[IN] マスク要素列を指定するバッファへのポインタです。
[IN] マスク要素列の要素数を指定する変数です。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hMASK hMask;
int num;
S3_T_MASK_ELEMENT *pList;
if(!s3_GetMaskHandle(&hMask)) {//マスクハンドル値の取得に失敗した場合の処理}//マスク要素数の取得

s3_GetMaskCount(hMask, &num);
pList=new S3_T_MASK_ELEMENT[num];if(!s3_GetMaskList(hMask, pList, num)) {//マスク要素列の取得//マスク要素列の取得に失敗した場合の処理}
for(int i=0;i<num;i++) {pList[i].State=S3_C_MSK_OFF;//マスク要素の変更

if(!s3_SetMaskList(hMask, pList)) {//マスク要素列の設定}//マスク要素列の設定に失敗した場合の処理

62

}
delete [] pList;

63

7.40. s3̲GetMaskList()
形式
BOOL s3̲GetMaskList(S3̲T̲hMASK hMask, S3̲T̲MASK̲ELEMENT *pList)
機能指定したマスクオブジェクトの要素列を取得します。
引数

hMask
pList

[IN]
マスクオブジェクトのハンドルを指定します。
[OUT] マスク要素列を受け取るバッファへのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

64

7.41. s3̲CreateMask()
形式
BOOL s3̲CreateMask(S3̲T̲hMASK *hMask)
機能
空のマスクオブジェクトを生成し、そのハンドルを取得します。
引数

hMask

[OUT] マスクオブジェクトのハンドルを受け取る変数へのポインタで
す。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hMASK hSrc,hDest;
s3_GetMaskHandle(&hSrc);//マスクの生成

if(s3_CreateMask(&hDest)) {//マスクのコピー

s3_CopyMask(hSrc, hDest);//処理//マスクの解放

s3_ReleaseMask(&hDest);}

65

7.42. s3̲CopyMask()
形式
BOOL s3̲CopyMask(S3̲T̲hMASK hSrc, S3̲T̲hMASK hDest)
機能
マスクオブジェクトのコピーを生成します。
引数

hSrc
hDest

[IN]
コピー元のマスクオブジェクトのハンドルを指定します。
[OUT] コピー先のマスクオブジェクトのハンドルを指定します。

戻り値
TRUE
FALSE

正常終了
異常終了

66

7.43. s3̲ReleaseMask()
形式
void s3̲ReleaseMask(S3̲T̲hMASK *hMask)
機能
マスクオブジェクトに割り当てられたリソースを解放します。
引数

hMask

[IN/OUT] 解放するマスクオブジェクトのハンドルへのポインタ

戻り値
なし。
備考
s3̲CreateMask（）関数によりマスクオブジェクトを生成した場合、本関数によりオブジェクトを解放する必要があります。

67

7.44. s3̲SetZernikeTermUse()
形式
BOOL s3̲SetZernikeTermUse(int Index, BOOL Use)
機能
総合波面収差計算および収差マップの計算において、使用するゼルニケ係数の項を設定します。
引数

Index[IN] ゼルニケ係数の項に対応するインデックスを指定する変数です。
（Ｚ2：2，Ｚ3：3，…，Ｚ36：36）

Use[IN] Index で指定した項を使用するかどうかを指定する変数です。
（0：使用しない / 1：使用する）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
本パラメータは、S3̲T̲OPTION 構造体の UseZernikeTerm メンバによっても設定/取得できます。（7.5.章 s3̲SetParam 関数/7.6.章 s3̲GetParam 関数 参照）
例・ゼルニケ係数のZ2〜Z9までを使用する場合
for(int i=2;i<S3_C_MAX_ZERNIKE_NUM;i++) {if(i<10) {//Z2〜Z9までの場合は有効にします。
s3_SetZernikeTermUse(i, TRUE);}else{//Z10〜Z36までの場合は無効にします。
s3_SetZernikeTermUse(i, FALSE);}}

68

7.45. s3̲SetZernikeOffsetGain()
形式
BOOL s3̲SetZernikeOffsetGain(S3̲T̲UNIT̲TYPE Unit,
S3̲T̲FORMAT̲TYPE Format, S3̲T̲OFS̲GAIN *pOfsGain)
機能
ゼルニケ係数Z2〜Z36の各項に、オフセット・ゲイン補正処理を適用するかどうかを選択し、補正パラメータを設定します。
オフセット・ゲイン補正を適用すると、各ゼルニケ係数は次のように変換されます。
Zi＝pOfsGain[i].Gain×Zi＋pOfsGain[i].Offset（ｉ＝2，3，…，36）
引数

Unit
FormatpOfsGain

戻り値
TRUE
FALSE

[IN] オフセットパラメータの単位を指定する変数です。
（S3̲C̲UNIT̲LAMBDA：λ/ S3̲C̲UNIT̲MICRO：μm）[IN] オフセットパラメータの形式を指定する変数です。
（S3̲C̲FMT̲PV：λ/ S3̲C̲FMT̲RMS：μm）[IN] オフセット・ゲインパラメータを指定するバッファへの ポイン
タです。

正常終了
異常終了

備考
・引数 OfsGain は、（S3̲T̲OFS̲GAIN 構造体のメモリサイズ）
×S3̲C̲MAX̲ZERNIKE̲NUM のサイズをもつバッファへのポインタとなります。
・格納順序は、OfsGain[ｉ]：ゼルニケ係数Ｚi項に対する補正値となります。
（ｉ＝0，1，…，36）先頭のＺ0，Ｚ１の補正値は無視されます。
・オフセット・ゲイン補正機能は、デフォルトで無効に設定されています。
本機能を有効にする場合は、pOfsGain 引数の Use メンバを有効に設定してください。
例・Z2〜Z36にオフセット・ゲイン補正を適用する場合
S3_T_OFS_GAIN OfsGain[S3_C_MAX_ZERNIKE_NUM];

69

for(int i=2;i<S3_C_MAX_ZERNIKE_NUM;i++) {OfsGain[i].Use=TRUE;//Zi項のオフセット・ゲイン補正機能を有効にします

OfsGain[i].Gain=1.0;//Zi項のゲインパラメータの設定

OfsGain[i].Offset=‐0.12;//Zi項のオフセットパラメータの設定}
if(!s3_SetZernikeOffsetGain(
S3_C_UNIT_LAMBDA, S3_C_FMT_PV, OfsGain)) {//オフセット・ゲイン補正パラメータの設定に失敗した場合の処理}

70

7.46. s3̲GetZernikeOffsetGain()
形式
BOOL s3̲GetZernikeOffsetGain(S3̲T̲UNIT̲TYPE Unit,
S3̲T̲FORMAT̲TYPE Format, S3̲T̲OFS̲GAIN *pOfsGain)
機能
ゼルニケ係数Z2〜Z36の各項のオフセット・ゲイン補正パラメータを取得します。
引数

Unit

[IN]

Format[IN]

pOfsGain

戻り値
TRUE
FALSE

オフセットパラメータの単位を指定する変数です。
（S3̲C̲UNIT̲LAMBDA：λ/ S3̲C̲UNIT̲MICRO：μm）

オフセットパラメータの形式を指定する変数です。
（S3̲C̲FMT̲PV：λ/ S3̲C̲FMT̲RMS：μm）[OUT] オフセット・ゲインパラメータを受け取るバッファへのポイン
タです。

正常終了
異常終了

備考
・引数 OfsGain は、（S3̲T̲OFS̲GAIN 構造体のメモリサイズ）
×S3̲C̲MAX̲ZERNIKE̲NUM のサイズをもつバッファへのポインタとなります。
・格納順序は、OfsGain[ｉ]：ゼルニケ係数Ｚi項に対する補正値となります。
（ｉ＝0，1，…，36）
例
S3_T_OFS_GAIN OfsGain[S3_C_MAX_ZERNIKE_NUM];
if(!s3_GetZernikeOffsetGain(
S3_C_UNIT_LAMBDA, S3_C_FMT_RMS, OfsGain)) {//オフセット・ゲイン補正パラメータの取得に失敗した場合の処理}

71

7.47. s3̲CalcAberrationMap()
形式
BOOL s3̲CalcAberrationMap(double *pZernikeCoefficient,
int Size, double *pAberration, double *pMin, double *pMax);機能
２次元波面収差マップを計算します。
引数

pZernikeCoefficient

[IN]

Size

[IN]

pAberration
pMin
pMax

戻り値
TRUE
FALSE

収差マップの計算に用いるゼルニケ係数を指定するバッファへのポインタです。（Ｚ0〜Ｚ36）

波面収差マップの一つの次元のサイズを指定する変数です。（2〜1000）[OUT] ２次元波面収差マップデータを受け取るバッファへのポインタです。
[OUT] pAberration の最小値を受け取る変数へのポインタです。（求める必要のない場合はＮＵＬＬを指定します）[OUT] pAberration の最大値を受け取る変数へのポインタです。（求める必要のない場合はＮＵＬＬを指定します）

正常終了
異常終了

72

備考
・pZernikeCoefficientの先頭のＺ０，Ｚ１の値については無視されます。
・pAberration の格納データは、収差マップの 1 行目から順に N 行目までのデータが格納されます。
・pAberration の要素数は Size×Size となります。
・Ｎ行 M 列上の要素の収差マップデータ値は、pAberration[(M-1)+(Ｎ-1)*Size]となり
ます。
P1

P2
P1 … pAberration[0]，座標値(-1,1)
P2 … pAberration[Size-1]，座標値(1,1)
P3 … pAberration[Size×(Size-1)]，座標値(-1,-1)
P4 … pAberration[Size×Size-1]，座標値(1,-1)

P3

P4

例
S3_T_MEAS_INFO Info;
int MapSize=100;
double *pMap;
double Min,Max;
s3_CalcAberration();//収差計算実行

if(s3_GetMeasData(&Data)) {//測定データの取得

pMap=new double[MapSize*MapSize];//収差マップ格納バッファの取得

if(!s3_CalcAberrationMap(Info.Aberration.Zernike,
MapSize, pMap, &Min, &Max)) {//収差マップの計算実行//2D 収差マップの計算に失敗した場合の処理}//処理//収差マップ格納バッファの解放

delete [] pMap;}

73

7.48. s3̲CalcIntensityMap()
形式
BOOL s3̲CalcIntensityMap(int Size, int *pIntensity, int *pMin, int *pMax);機能
２次元強度マップを計算します。
引数

Size
pIntensity
pMin
pMax

戻り値
TRUE
FALSE

[IN]

強度マップの一つの次元のサイズを指定する変数です。（2〜1000）[OUT] ２次元強度マップデータを受け取るバッファへのポインタです。

[OUT] pIntensity の最小値を受け取る変数へのポインタです。
（求める必要のない場合はＮＵＬＬを指定します）[OUT] pIntensity の最大値を受け取る変数へのポインタです。
（求める必要のない場合はＮＵＬＬを指定します）

正常終了
異常終了

74

備考
・pIntensity の格納データは強度マップの 1 行目から順に N 行目までのデータが格納されます。
・pIntensity の要素数は Size×Size となります。
・Ｎ行 M 列上の要素の強度マップデータ値は、pIntensity[(M-1)+(Ｎ-1)*Size]となります。
・pIntensity の各要素のとりえる値の範囲は、0〜255 になります。
P1

P2
P1 … pIntensity[0]，座標値(-1.8, 1.8)
P2 … pIntensity[Size-1]，座標値(1.8, 1.8)
P3 … pIntensity[Size×(Size-1)]，座標値(-1.8, -1.8)
P4 … pIntensity[Size×Size-1]，座標値(1.8, -1.8)

P3

P4

75

7.49. s3̲GetSpotPeakValue()
形式
BOOL s3̲GetSpotPeakValue(int *pPeak)
機能
現在のビームスポットの最大階調値を取得します。
引数

pPeak
戻り値
TRUE
FALSE

[OUT] 最大階調値を受け取る変数へのポインタです。（0〜255）

正常終了
異常終了

例
int Peak;s3_StartCapture();//測定開始s3_CalcAberration();//収差計算実行

if(!s3_GetSpotPeakValue(&Peak)) {//階調値の取得//最大階調値の取得に失敗した場合の処理}

76

7.50. s3̲CountSaturationPixels()
形式
BOOL s3̲CountSaturationPixels(int *pNum)
機能
現在のビームスポットの飽和ピクセル数を取得します。
引数

pNum

[OUT] 飽和ピクセル数を受け取る変数へのポインタです。
（0〜921600）

戻り値
TRUE
FALSE

正常終了
異常終了

例
int Num;s3_StartCapture();//測定開始s3_CalcAberration();//収差計算実行

if(!s3_CountSaturationPixels(&Num)) {//飽和ピクセル数の取得//飽和ピクセル数の取得に失敗した場合の処理}

77

7.51. s3̲GetSpotNum()
形式
BOOL s3̲GetSpotNum(int *pNum1, int *pNum2)
機能
現在のビームスポットの数を取得します。
引数

pNum1
pNum2

[OUT] ソフトアパーチャ内のスポット数を受け取る変数へのポインタです。
[OUT] 全スポット数を受け取る変数へのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

例
int Num1,Num2;
s3_StartCapture();//測定開始s3_CalcAberration();//収差計算実行

if(!s3_GetSpotNum(&Num1, &Num2)) {//ビームスポット数を取得//ビームスポット数の取得に失敗した場合の処理}

78

7.52. s3̲GetBeamProfile()
形式
BOOL s3̲GetBeamProfile(S3̲T̲RECT *pRect, int *pProfX, int *pProfY)
機能現在の垂直方向および水平方向のビームプロファイルを取得します。
引数

pRect
pProfX[IN]
計算対象となる矩形エリアを指定する変数へのポインタです。
[OUT] 垂直方向に投射したビームプロファイルを受け取るバッ
ファへのポインタです。
（求める必要のない場合はＮＵＬＬを指定します）

pProfY[OUT] 水平方向に投射したビームプロファイルを受け取るバッ
ファへのポインタ（求める必要のない場合はＮＵＬＬを指定します）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・pProfX，pProfY のバッファの要素数は、それぞれ、pRect->width、pRect->heightで指定されたサイズになります。ただし、pRect に NULL が指定された場合は、フレームの水平ピクセル数と垂直ピクセル数がそれぞれのサイズになります。
例
S3_T_hFRAME hFrame;
S3_T_SIZE Size;int *pProfX,*pProfY;
s3_GetCapturedFrameHandle(&hFrame);//フレームのハンドル値取得

s3_GetFrameSize(&Size);//フレームサイズの取得

pProfX=new int[Size.cx];//プロファイル格納バッファ生成

pProfY=new int[Size.cy];79

if(!s3_GetBeamProfile(hFrame, NULL, pProfX, pProfY)) {//ビームプロファイルの取得に失敗した場合の処理}//処理//プロファイル格納バッファ解放

delete [] pProfX;
delete [] pProfY;80

7.53. s3̲GetAutoAreaSize()
形式
BOOL s3̲GetAutoAreaSize(double *pSize, S3̲T̲dPOINT *pCenter)
機能
計測エリアサイズの自動決定モード時の計測エリアサイズを取得します。
引数

pSize
pCenter[OUT] 計測エリアサイズ[mm]を受け取る変数へのポインタです。
[OUT] 計測エリアの中心位置[mm]を受け取る構造体へのポインタです。（求める必要のない場合は NULL を指定します。）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・S3̲T̲OPTION 構造体の AutoAreaSize メンバを１（自動）に設定した場合、計測エ
リアサイズは、実際のビームサイズに合わせて調整されますが、本関数でこのときの計測エリアサイズを取得できます。
・本関数は S3̲T̲OPTION 構造体の AreaType メンバが 0（円形）のときは、引数 pSizeに計測エリアの直径を返します。AreaType メンバが 1（矩形）のときは、引数 pSizeに計測エリアの幅および高さを返します。
例
double Size;
S3_T_dPOINT Center;
if(!s3_GetAutoAreaSize(&Size, &Center)) {//計測エリアサイズの取得に失敗した場合の処理}

81

7.54. s3̲CalcAberration()
形式
BOOL s3̲CalcAberration(void)機能
波面収差を計算します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
・この関数を実行する前に、StartCapture()関数を実行して測定を開始しておく必要があります。また、本関数を実行して得た測定結果を取得するには、
s3̲GetMeasData()関数を使用します。
例
s3_StartCapture();//測定開始if(!s3_CalcAberration()) {//収差計算実行//収差計算に失敗した場合の処理}

82

7.55. s3̲GetMeasData()
形式
BOOL s3̲GetMeasData(S3̲T̲MEAS̲INFO *pData)
機能
波面収差の測定結果を取得します。
引数

pData
戻り値
TRUE
FALSE

[OUT] 測定情報を受け取る構造体へのポインタです。

正常終了
異常終了

備考
・本関数を実行して測定値を取得する前に、予め s3̲CalcAberration()関数を実行して測定値を計算しておく必要があります。
・本関数では、ゼルニケ収差測定値、ザイデル収差測定値、総合波面収差測定値の各測定値を一度に取得します。それぞれを個別に取得したい場合は、次項のs3̲GetZernikeAberration()，s3̲GetSeidelAberration()，s3̲GetTotalAberration()関数を使用してください。
例
S3_T_MEAS_INFO Info;
s3_StartCapture();//測定開始if(s3_CalcAberration()) {//収差計算の実行//測定結果の取得

if(!s3_GetMeasData(&Info)) {//計算結果の取得に失敗した場合の処理}}

83

7.56. s3̲GetZernikeAberration()
形式
BOOL s3̲GetZernikeAberration(double *pData)
機能ゼルニケ収差の測定結果を取得します。
引数

pData

[OUT] ゼルニケ収差測定値を受け取るバッファへのポインタです。
（Ｚ0〜Ｚ36）

戻り値
TRUE
FALSE

正常終了
異常終了

備考
・本関数を実行して測定値を取得する前に、予め s3̲CalcAberration()関数を実行して測定値を計算しておく必要があります。
・pDataバッファの格納順序は、pData[ｉ]：ゼルニケ係数Ｚi項となります。
（ｉ＝0，1，…，36）Ｚ0，Ｚ１は無効な要素になります。
例double Data[S3_C_MAX_ZERNIKE_NUM];
s3_StartCapture();//測定開始if(s3_CalcAberration()) {//収差計算の実行

if(!s3_GetZernikeAberration(Data)) {//計算結果の取得に失敗した場合の処理}}

84//ゼルニケ収差測定結果の取得

7.57. s3̲GetSeidelAberration()
形式
BOOL s3̲GetSeidelAberration(S3̲T̲SEIDEL̲ABERRATION *pData)
機能ザイデル収差の測定結果を取得します。
引数

pData
戻り値
TRUE
FALSE

[OUT] ザイデル収差測定値を受け取る構造体へのポインタです。

正常終了
異常終了

備考
本関数を実行して測定値を取得する前に、予め s3̲CalcAberration()関数を実行して測定値を計算しておく必要があります。
例
S3_T_SEIDEL_ABERRATION Data;
s3_StartCapture();//測定開始if(s3_CalcAberration()) {//収差計算の実行

if(!s3_GetSeidelAberration(&Data)) {//計算結果の取得に失敗した場合の処理}}

85//ザイデル収差測定結果の取得

7.58. s3̲GetTotalAberration()
形式
BOOL s3̲GetTotalAberration(S3̲T̲TOTAL̲ABERRATION *pData)
機能
総合波面収差の測定結果を取得します。
引数

pData
戻り値
TRUE
FALSE

[OUT] 総合波面収差測定値を受け取る構造体へのポインタです。

正常終了
異常終了

備考
本関数を実行して測定値を取得する前に、予め s3̲CalcAberration()関数を実行して測定値を計算しておく必要があります。
例
S3_T_TOTAL_ABERRATION Data;
s3_StartCapture();//測定開始if(s3_CalcAberration()) {//収差計算の実行

if(!s3_GetTotalAberration(&Data)) {//計算結果の取得に失敗した場合の処理}}

86//総合波面収差測定結果の取得

7.59. s3̲GetCapturedFrameHandle()
形式
BOOL s3̲GetCapturedFrameHandle(S3̲T̲hFRAME *hFrame)
機能
現在のキャプチャフレームオブジェクトへのハンドルを取得します。
引数

hFrame[OUT] キャプチャフレームオブジェクトのハンドルを受け取る変数へのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hFRAME hFrame;if(!s3_GetCapturedFrameHandle(&hFrame)) {//フレームのハンドル値の取得に失敗した場合の処理}

87

7.60. s3̲GetFrameBmpInfo()
形式
BOOL s3̲GetFrameBmpInfo(S3̲T̲hFRAME hFrame, BITMAPINFO *pInfo)
機能指定したキャプチャフレームオブジェクトからビットマップ情報を取得します。
引数

hFramepInfo[IN]
キャプチャフレームオブジェクトへのハンドルを指定します。
[OUT] ビットマップ情報を受け取る構造体へのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hFRAME hFrame;
BITMAPINFO *pInfo;s3_GetCapturedFrameHandle(hFrame);//フレームハンドル値の取得

if(!s3_GetFrameBmpInfo(hFrame, &pInfo)) {//ビットマップ情報の取得//ビットマップ情報の取得に失敗した場合の処理}

88

7.61. s3̲GetFrameSize()
形式
BOOL s3̲GetFrameSize(S3̲T̲SIZE *pSize)
機能指定したキャプチャフレームオブジェクトから、フレームのサイズを取得します。
引数

hFramepSize[IN]
キャプチャフレームオブジェクトへのハンドルを指定します。
[OUT] フレームサイズを受け取る構造体へのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_SIZE Size;if(!s3_GetFrameSize(&Size)) {//フレームサイズの取得に失敗した場合の処理}

89

7.62. s3̲GetFramePixel()
形式
BOOL s3̲GetFramePixel(S3̲T̲hFRAME hFrame, BYTE *pPixels)
機能指定したキャプチャフレームオブジェクトから、ピクセルデータを取得します。
引数

hFramepPixels[IN]
キャプチャフレームオブジェクトのハンドルを指定します。
[OUT] ピクセルデータを受け取るバッファへのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

例
S3_T_hFRAME hFrame;
BYTE *pPixels;
s3_GetCapturedFrameHandle(&hFrame);if(!s3_GetFramePixel(hFrame, &pPixels)) {//ピクセルデータの取得に失敗した場合の処理}

90

7.63. s3̲GetFramePixelBufferSize()
形式
BOOL s3̲GetFramePixelBufferSize(S3̲T̲hFRAME hFrame, unsigned long * pSize)
機能指定したキャプチャフレームオブジェクトから、ピクセルデータのバッファサイズを取得します。
引数

hFramepSize[IN]
指定するキャプチャフレームオブジェクトのハンドル[OUT] ピクセルデータのバッファサイズを受け取る変数へのポインタ
です。

戻り値
TRUE
FALSE

正常終了
異常終了

91

7.64. s3̲isMeasuring()
形式
BOOL s3̲isMeasuring(void)
機能
現在、測定中かどうかの確認をします。
引数
なし。
戻り値
TRUE
FALSE

測定中
非測定中

例
if(s3_isMeasuring()) {//測定中の場合の処理}

92

7.65. s3̲isCalibDone()
形式
BOOL s3̲isCalibDone(void)機能
現在、校正が完了しているかどうかの確認をします。
引数
なし。
戻り値
TRUE
FALSE

校正完了
校正未完了

例
if(s3_isCalibDone()) {//校正が完了している場合の処理}

93

7.66. s3̲isUserCalibDone()
形式
BOOL s3̲isUserCalibDone(void)機能
現在、ユーザー校正が完了しているかどうかの確認をします。
引数
なし。
戻り値
TRUE
FALSE

校正完了
校正未完了

94

7.67. s3̲isMaskDone()
形式
BOOL s3̲isMaskDone(void)機能
現在の校正データに対して、マスクデータが登録されているかどうかの確認をしま
す。
引数
なし。
戻り値
TRUE
FALSE

登録済み
未登録

備考
マスクデータが登録されていても、S3̲T̲OPTION 構造体の UseMask 設定値が 1 に設定されていないと、マスクデータは測定に使用されません。

95

7.68. s3̲isSnapshotEmpty()
形式
BOOL s3̲isSnapshotEmpty(void)機能
スナップショットデータが存在するかどうかの確認を行います。
引数
なし。
戻り値
TRUE
FALSE

存在しない
存在する

例
if(s3_isSnapshotEmpty()) {//スナップショットデータが存在しない場合の処理}

96

7.69. s3̲TakeSnapshot()
形式
BOOL s3̲TakeSnapshot(void)機能
現在のフレーム画像のスナップショットを取得します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
本関数を実行してスナップショットを取得する前に、予め s3̲StartCapture()関数を実行して測定を開始しておく必要があります。
例char filename[]=”sample.bmp”;
s3_StartCapture();//測定開始if(!s3_TakeSnapshot()) {//スナップショット画像の取得//スナップショット画像の取得に失敗した場合の処理}//スナップショット画像の保存

if(!s3_SaveSnapshot(filename)) {//スナップショット画像の保存に失敗した場合の処理}

97

7.70. s3̲GetSnapshotHandle()
形式
BOOL s3̲GetSnapshotHandle(S3̲T̲hFRAME *hFrame)
機能
現在のスナップショットオブジェクトへのハンドル値を取得します。
引数

hFrame[OUT] スナップショットオブジェクトのハンドルを受け取る変数へのポインタです。

戻り値
TRUE
FALSE

正常終了
異常終了

備考
スナップショットデータから、ビットマップ情報やピクセル情報を取得するためのハンドル値を取得します。
例
S3_T_hFRAME hFrame;
BITMAPINFO *pInfo;
BYTE *pPixels;
if(!s3_GetSnapshotHandle(&hFrame)) {//スナップショットハンドルの取得//スナップショットハンドルの取得に失敗した場合の処理}
if(!s3_GetFrameBmpInfo(hFrame, &pInfo)) {//ビットマップ情報の取得//ビットマップ情報の取得に失敗した場合の処理}
if(!s3_GetFramePixel(hFrame, &pPixels)) {//ピクセルデータの取得に失敗した場合の処理}

98//ピクセルデータの取得

7.71. s3̲CalcSnapAberration()
形式
BOOL s3̲CalcSnapAberration(void)機能
スナップショット画像から波面収差を計算します。
引数
なし。
戻り値
TRUE
FALSE

正常終了
異常終了

備考
・次項の s3̲ReadSnapshot()関数で読み込まれたスナップショット画像データに対し、波面収差を計算します。
・この関数を実行する前に、s3̲StartCapture()関数を実行して測定を開始しておく必要があります。また、本関数を実行して得た測定結果を取得するには、
s3̲GetMeasData()関数を使用します。
例char filename[]=”sample.bmp”;
S3_T_MEAS_INFO Info;//スナップショット画像の読み込み

if(!s3_ReadSnapshot(filename)) {//スナップショット画像の読み込みに失敗した場合の処理}
s3_StartCapture();//測定開始if(!s3_CalcSnapAberration()) {//収差計算実行//収差計算に失敗した場合の処理}//測定結果の取得

if(!s3_GetMeasData(&Info)) {//計算結果の取得に失敗した場合の処理

99

}

100

7.72. s3̲ReadSnapshot()
形式
BOOL s3̲ReadSnapshot(char *pSnapshotFileName)
機能指定したスナップショットファイルから、フレーム画像データを読み込みます。
引数

pSnapshotFileName [IN] 読み込み元のスナップショットファイルのパス名を指定する文字列へのポインタです。
（拡張子“.BMP”または“.PNG”）
戻り値
TRUE
FALSE

正常終了
異常終了

備考
次項の、s3̲SaveSnapshot()関数で保存された、フレーム画像データを読み込みます。

101

7.73. s3̲SaveSnapshot()
形式
BOOL s3̲SaveSnapshot(char *pSnapshotFileName)
機能指定したファイル名で、フレーム画像のスナップショットを保存します。
s3̲TakeSnapshot()関数を実行した瞬間のフレーム画像を、画像ファイルとして保存します。
引数

pSnapshotFileName [IN] 保存先のスナップショットファイルのパス名を指定する
文字列へのポインタです。
（拡張子“.BMP”または“.PNG”）
戻り値
TRUE
FALSE

正常終了
異常終了

備考
・スナップショット画像が存在しない時（s3̲isSnapshotEmpty()関数の戻り値が 1 の時）、この関数は失敗します。
・指定可能なファイルフォーマットは、BMP と PNG の 2 種類になります。
ファイルフォーマットは、指定したファイル名の拡張子により判別されます。

102

8. 定数
8.1. S3̲C̲MAX̲ZERNIKE̲NUM
形式#define S3̲C̲MAX̲ZERNIKE̲NUM

(37)

概要
最大ゼルニケ多項式係数項目数

8.2. S3̲C̲MAX̲PATH̲LEN
形式#define S3̲C̲MAX̲PATH̲LEN

(260)

概要
最大パス文字列バッファ長

8.3. S3̲T̲CALIB̲MODE
形式
typedef enum {S3̲C̲STANDERD̲CALIB=0,S3̲C̲USER̲CALIB=1,} S3̲T̲CALIB̲MODE;
概要
校正モードを表す定数
メンバ
S3̲C̲STANDERD̲CALIBS3̲C̲USER̲CALIB…
…

デフォルト校正
ユーザー校正103

8.4. S3̲T̲USER̲CALIB̲MODE
形式
typedef enum {S3̲C̲PLANE̲WAVE̲CALIB=0,S3̲C̲SPHERICAL̲WAVE̲CALIB=1,} S3̲T̲USER̲CALIB̲MODE;
概要
ユーザー校正モードを表す定数
メンバ
S3̲C̲PLANE̲WAVE̲CALIBS3̲C̲SPHERICAL̲WAVE̲CALIB

…
…

平面波校正
球面波校正

8.5. S3̲T̲UNIT̲TYPE
形式
typedef enum {S3̲C̲UNIT̲LAMBDA=0,S3̲C̲UNIT̲MICRO=1,} S3̲T̲UNIT̲TYPE;
概要
測定値の出力単位モードを表す定数
メンバ
S3̲C̲UNIT̲LAMBDA …
S3̲C̲UNIT̲MICRO
…

λ
μm

104

8.6. S3̲T̲ANG̲UNIT̲TYPE
形式
typedef enum {S3̲C̲ANG̲DEG=0,S3̲C̲ANG̲MRAD=1,
S3̲C̲ANG̲MIN=2,} S3̲T̲ANG̲UNIT̲TYPE;
概要
測定値の角度出力単位モードを表す定数
メンバ
S3̲C̲ANG̲DEG …
S3̲C̲ANG̲MRAD …
S3̲C̲ANG̲MIN…

度
ミリラジアン
分

8.7. S3̲T̲FORMAT̲TYPE
形式
typedef enum {S3̲C̲FMT̲PV=0,S3̲C̲FMT̲RMS=1,} S3̲T̲FORMAT̲TYPE;
概要
測定値の出力形式モードを表す定数
メンバ
S3̲C̲FMT̲PVS3̲C̲FMT̲RMS

…
…

PV
RMS

105

8.8. S3̲T̲MASK̲STATE
形式
typedef enum {S3̲C̲MSK̲OFF=0,S3̲C̲MSK̲ON=1,
S3̲C̲MSK̲NO̲PAIR=2,} S3̲T̲MASK̲STATE;
概要
マスク状態値を表す定数
メンバ
S3̲C̲MSK̲OFF
S3̲C̲MSK̲ON
S3̲C̲MSK̲NO̲PAIR

…
…
…

マスク無効
マスク有効
マスク有効（対応点なし）

106

9. 構造体9.1. S3̲T̲OPTION
形式
typedef struct ̲S3̲T̲OPTION {struct T̲CAMERA {double Gain;
double Shutter;} CAMERA;
struct T̲LIGHT {double Lambda;
int OpticalPath;} LIGHT;struct T̲IMAGE {BOOL UseFrameAve;
int FrameAveNum;
int CenterType;S3̲T̲dPOINT AreaCenter;
int AreaType;int BinLevel;
double AreaDiameter;
S3̲T̲dSIZE AreaSize;
BOOL AutoAreaSize;
BOOL UseMask;} IMAGE;
struct T̲OUTPUT {int UnitType;int UnitFormat;
int AngUnitType;} OUTPUT;
struct T̲CALIB {int CalibMode;
double Lambda;
double PropagationDistance;107

} CALIB;
struct T̲CALC {BOOL UseZernikeTerm[S3̲C̲MAX̲ZERNIKE̲NUM];} CALC;} S3̲T̲OPTION;
概要
光学ヘッドの制御および測定に必要なパラメータ値を格納します。
この構造体で与えられた設定値を API に反映するには、s3̲SetParam()関数を使用します。
メンバ
・CAMERA構造体
Gain

光学ヘッドのゲイン値[dB]を格納します。
ゲイン値を高くすることで、光学ヘッドの感度は上がりますが、その分ノイズが増え測定精度が悪化します。通常はこの値を 0 に設定して下さい。
・設定範囲： 0．00〜24．00（0．05dB 単位）
・初期値：
0．00

Shutter・LIGHT構造体
Lambda

光学ヘッドのシャッタースピード値[ms]を格納します。
シャッタースピードを短く指定すると、ショットノイズの影
響により測定値がバラツキます。逆に長く指定すると振動の影響を受けやすくなります。
・設定範囲： 0．01〜16000．00（0．01ms 単位）
・初期値：
9．00

測定λ値[nm]を格納します。
測定時の入射ビームの波長を指定します。
・設定範囲： 400．0〜1000．0
・初期値：
658．0

OpticalPath

光路タイプを格納します。
・設定範囲： 0：シングルパス，1：ダブルパス
・初期値：
0

108

・IMAGE構造体
UseFrameAve

FrameAveNum

フレーム平均処理有無を格納します。
フレーム平均処理を有効にするにはこの設定値を 1 に設定してください。
・設定範囲： 0：無，1：有・初期値：
1
フレーム平均化回数を格納します。
フレーム平均処理を適用すると、フレーム重ね合わせ処理により個々のフレームのノイズが軽減され、安定した測定が可能となります。ノイズの軽減量はフレーム平均処理の適用回数が多いほど大きくなりますが、一方で、あまり回数を増やすと振動の影響を受けやすくなります。
・設定範囲： 1〜150・初期値：
9CenterType

計測中心モードを格納します。
計測中心を「固定」と「追従」のどちらにするかを選択します。
・設定範囲： 0：固定，1：追従・初期値：
0AreaCenter

計測中心座標[mm]を格納します。
計測中心のＸ座標とＹ座標を設定します。フレームの中心が原点（0，0）になります。
・設定範囲： −1．00〜1．00
・初期値：（0．00，0．00）

AreaType

計測エリアモードを格納します。
収差計算の対象となるエリアの形状を選択します。円形と矩形の２種類の形状が選択できます。
・設定範囲： 0：円形，1：矩形・初期値：
0

BinLevel

２値化レベルを格納します。

109

ここで設定した値以下のピーク値を持つスポットは、計算から除外されます。スポットのベースラインより高い位置に２値化レベルを設定して下さい。
・設定範囲： 1〜255
・初期値：
40
AreaDiameter

計測エリア直径[mm]を格納します。
AreaType メンバを 0 に設定した場合、ここで設定した値を直径とする円形エリアの内側が計測エリアになります。
・設定範囲： 1．80〜6．00
・初期値：
3．00

AreaSize

計測エリアサイズ[mm]を格納します。
AreaType メンバを１に設定した場合、ここで設定した値を幅および高さとする矩形エリアの内側が計測エリアになります。
・設定範囲： 1．30〜3．60
・初期値：
3．00

AutoAreaSize

自動エリアサイズ調整モードを格納します。
この値を１に指定すると、計測エリアサイズをビームサイズに合わせて自動的に決定します。０に設定した場合は、
AreaDiameter メンバ、あるいは AreaSize メンバで指定したサイズが使用されます。
・設定範囲： 0：手動，1：自動・初期値：
0

UseMask

マスク処理有無を格納します。
・設定範囲： 0：無，1：有・初期値：
0※ CenterType メンバが 1（追従）に設定されているとき、または、AutoAreaSize
メンバが 1（自動）に設定されているときは、マスク処理を使用することができ
ません。

110

・OUTPUT構造体
UnitType

出力単位モードを格納します。
・設定範囲： 0：λ，1：μm・初期値：
0

UnitFormat

出力形式モードを格納します。
・設定範囲： 0：PV，1：RMS
・初期値：
0

AngUnitType

出力角度単位モードを格納します。
・設定範囲： 0：deg，1：mrad，2：分・初期値：
0・CALIB 構造体
CalibMode

校正モードを格納します。
校正モードを「デフォルト校正」と「ユーザー校正」のどちらにするか選択します。
・設定範囲： 0：デフォルト校正，1：ユーザー校正・初期値：0

Lambda校正λ値[nm]を格納します。
校正時の入射ビームの波長を指定します。
・設定範囲： 400．０〜1000．０
・初期値：
658．0

PropagationDistance

伝播距離[mm]を格納します。
・設定範囲： 100．０〜100000．0
・初期値：
811．0

・CALC 構造体
UseZernikeTerm[]

ゼルニケ係数の収差計算使用有無を格納します。
ここで“有効”に指定されたゼルニケ係数を使用して、総合波面収差計算および収差マップの計算を行います。
・設定範囲： 0：無，1：有・初期値：
1（ｉ＝2，3，…，36）

111

※UseZernikeTerm配列の格納順序は、UseZernikeTerm[ｉ]：ゼルニケ係数Ｚi項の収差計
算有無となります。
（ｉ＝0，1，…，36）112

9.2. S3̲T̲dPOINT
形式
typedef struct ̲S3̲T̲dPOINT {double x;
double y;} S3̲T̲dPOINT;
概要
double 型の座標を格納します。
メンバ
x
y

x 座標
y 座標

9.3. S3̲T̲SIZE
形式
typedef struct ̲S3̲T̲SIZE {int cx;
int cy;} S3̲T̲SIZE;
概要
int 型のサイズを格納します。
メンバ
cx
cy

幅
高さ

113

9.4. S3̲T̲dSIZE
形式
typedef struct ̲S3̲T̲dSIZE {double cx;
double cy;} S3̲T̲dSIZE;
概要
double 型のサイズを格納します。
メンバ
cx
cy

幅
高さ

9.5. S3̲T̲RECT
形式
typedef struct ̲S3̲T̲RECT {int x;
int y;
int width;
int height;} S3̲T̲RECT;
概要
int 型の矩形情報を格納します。
メンバ
x
y
width
heightint 型の矩形領域の原点（左上隅）の x 座標を格納します。
int 型の矩形領域の原点（左上隅）の y 座標を格納します。
int 型の矩形領域の幅を格納します。
int 型の矩形領域の高さを格納します。

114

9.6. S3̲T̲OFS̲GAIN
形式
typedef struct ̲S3̲T̲OFS̲GAIN {double Gain;
double Offset;
BOOL Use;} S3̲T̲OFS̲GAIN;
概要
ゼルニケ係数の各項のオフセット・ゲイン補正値を格納します。
メンバ
Gain
OffsetUse

ゲイン値を格納します。
オフセット値を格納します。
オフセット・ゲイン処理有無を格納します。
（0：無，1：有）

備考
この情報を設定/取得するには、s3̲SetZernikeOffsetGain()関数，s3̲GetZernikeOffsetGain()関数を使用します。

9.7. S3̲T̲MEAS̲INFO
形式
typedef struct ̲S3̲T̲MEAS̲INFO {BOOL Status;
int SpotNum;
int PairNum;
int PeakVal;
int Saturation;
S3̲T̲dPOINT BeamCenter;
S3̲T̲ABERRATION Aberration;} S3̲T̲MEAS̲INFO;

115

概要
測定結果を格納します。
メンバ
StatusSpotNum
PairNum
PeakValSaturation
BeamCenter
Aberration

ステータス（0：計算失敗，1：計算成功）
ビームスポット数
収差計算に使用するビームスポット数
最大階調値（0〜255）
飽和ピクセル数（0〜921600）
ビーム中心座標（単位[mm]）波面収差測定値

備考
この情報を取得するには、s3̲ GetMeasData()関数を使用します。

9.8. S3̲T̲ABERRATION
形式
typedef struct ̲S3̲T̲ABERRATION {double Zernike[S3̲C̲MAX̲ZERNIKE̲NUM];
S3̲T̲SEIDEL̲ABERRATION Seidel;
S3̲T̲TOTAL̲ABERRATION Total;} S3̲T̲ABERRATION;
概要
波面収差測定値を格納します。
メンバ
Zernike
SeidelTotal

ゼルニケ収差測定値
ザイデル収差測定値
総合波面収差測定値

116

備考
・ゼルニケ収差測定値の格納順序は、Zernike[ｉ]：Ｚi （ｉ＝0，1，…，36）となります。Ｚ０，Ｚ１は無効な要素になります。
・ゼルニケ収差測定値の出力単位は、S3̲T̲OPTION 構造体の UnitType メンバとUnitFormat メンバで設定された単位となります。

9.9. S3̲T̲SEIDEL̲ABERRATION
形式
typedef struct ̲S3̲T̲SEIDEL̲ABERRATION {double Tilt;
double Focus;
double AS;
double Coma;double SA;
double Tilt̲Angle;
double AS̲Angle;
double Coma̲Angle;} S3̲T̲SEIDEL̲ABERRATION;
概要
ザイデル収差測定値を格納します。
メンバ
Tilt
Focus
AS
Coma
SA
Tilt̲Angle
AS̲Angle
Coma̲Angle

ザイデル Tilt マグニチュード項
ザイデル Focus マグニチュード項
ザイデル AS マグニチュード項
ザイデル Coma マグニチュード項
ザイデル SA マグニチュード項
ザイデル Tilt アングル項
ザイデル AS アングル項
ザイデル Coma アングル項

117

備考
・ザイデル収差測定値のマグニチュード項の出力単位は、S3̲T̲OPTION 構造体のUnitType メンバと UnitFormat メンバで設定された単位となります。
・ザイデル収差測定値のアングル項の出力単位は、“度”となります。

9.10. S3̲T̲TOTAL̲ABERRATION
形式
typedef struct ̲S3̲T̲TOTAL̲ABERRATION {double PV;
double RMS;
double Pwr;
double RoC;
double Rho;double Strehl;
struct T̲ANGLE {double x;
double y;
double D;} Angle;} S3̲T̲TOTAL̲ABERRATION;
概要
総合波面収差測定値を格納します。
メンバ
PV
RMS
Pwr
RoC
Rho
Strehlxy

総合波面収差 PV 値
総合波面収差 RMS 値
Pwr 値（単位[λ PV]または[μm PV]）
波面曲率半径 RoC 値（単位[mm]）波面曲率ρ値（単位[1/m]）
ストレール比入射角度 x 成分
入射角度 y 成分118

D

入射角度 距離 D

備考
・PV 項，
RMS 値の出力単位は、
S3̲T̲OPTION 構造体の UnitType メンバと UnitFormat
メンバで設定された単位となります。
・角度 x 成分 / y 成分 / D の出力単位は、S3̲T̲OPTION 構造体の AngUnitType メン
バで設定された単位となります。

9.11. S3̲T̲MASK̲ELEMENT
形式
typedef struct ̲S3̲T̲MASK̲ELEMENT {S3̲T̲dPOINT Spot;
S3̲T̲MASK̲STATE State;} S3̲T̲MASK̲ELEMENT;
概要
個々のマスク要素の情報を格納します。
メンバ
Spot
State

マスク座標
マスク状態

9.12. S3̲T̲MASK̲INFO
形式
typedef struct ̲S3̲T̲MASK̲INFO {S3̲T̲CALIB̲MODE CalibMode;
int AreaType;S3̲T̲dPOINT AreaCenter;double AreaDiameter;
S3̲T̲dSIZE AreaSize;} S3̲T̲MASK̲INFO;

119

概要
マスク生成時のパラメータ情報を格納します。
メンバ
CalibMode
AreaType
AreaCenter
AreaDiameter
AreaSize

校正モード（0:標準，1:ユーザー）
計測エリア（0:円形，1:矩形）
計測中心座標[mm]計測エリア直径[mm]
計測エリアサイズ[mm]備考
この情報を取得するには、s3̲GetMaskInfo()関数を使用します。

9.13. S3̲T̲DEV̲INFO
形式
typedef struct ̲S3̲T̲DEV̲INFO {double CCD̲PixSize;
double MLA̲LensPitch;
double MLA̲Focus;} S3̲T̲DEV̲INFO;
概要
光学ヘッドのデバイス情報を格納します。
メンバ
CCD̲PixSize
MLA̲LensPitch
MLA̲Focus

CCD ピクセルサイズ[um]MLA レンズピッチ[mm]
MLA 焦点距離[mm]備考
この情報を取得するには、s3̲GetDeviceInfo（）関数を使用します。

120

10. エラーコード
形式
typedef enum{
S3̲ERR̲SUCSESS = 0,
S3̲ERR̲UNEXP̲CAMERA̲ERROR = -1,
S3̲ERR̲UNEXP̲API̲ERROR = -2,
S3̲ERR̲BAD̲HANDLE = -3,
S3̲ERR̲BAD̲PARAM = -4,
S3̲ERR̲CAMERA̲NOT̲CONNECTED = -5,
S3̲ERR̲CAMERA̲UNINITIALIZED = -6,
S3̲ERR̲CANNOT̲START̲CAPTURE = -7,
S3̲ERR̲CANNOT̲STOP̲CAPTURE = -8,
S3̲ERR̲BAD̲USER̲CALIB̲FILE = -9,
S3̲ERR̲USER̲CALIB̲FAIL = -10,
S3̲ERR̲NO̲USER̲CALIB̲DATA = -11,
S3̲ERR̲STD̲CALIB̲FAIL = -12,
S3̲ERR̲NO̲MASK̲DATA = -13,
S3̲ERR̲BAD̲MASK̲FILE = -14,
S3̲ERR̲NO̲FRAME̲DATA = -15,
S3̲ERR̲FILE̲ACCESS̲FAIL = -16,
S3̲ERR̲TIME̲OUT = -17,
S3̲ERR̲CALC̲FAIL = -18,
S3̲ERR̲MASK̲FAIL = -19,
S3̲ERR̲PARAM̲FAIL = -20,
S3̲ERR̲INVALID̲CAMERA̲TYPE = -21,
S3̲ERR̲MEASURMENT̲NOT̲STARTED = -22,
S3̲ERR̲NO̲AUTHORITY̲TO̲WRITE = -23,
S3̲ERR̲NOT̲ENOUGTH̲MEMORY = -24,
S3̲ERR̲BAD̲SNAPSHOT̲FILE = -25,
S3̲ERR̲NO̲SNAPSHOT̲DATA = -26,
S3̲ERR̲DONGLE̲KEY̲NOT̲FOUND = -9998,
S3̲ERR̲UNDEF̲FAIL = -9999,} S3̲T̲ERR̲CORD;

121

概要
エラーコードを規定します。
メンバ
S3̲ERR̲SUCCESSS3̲ERR̲UNEXP̲CAMERA̲ERROR
S3̲ERR̲UNEXP̲API̲ERROR
S3̲ERR̲BAD̲HANDLE
S3̲ERR̲BAD̲PARAM
S3̲ERR̲CAMERA̲NOT̲CONNECTED
S3̲ERR̲CAMERA̲UNINITIALIZEDS3̲ERR̲CANNOT̲START̲CAPTURE

正常終了
予期しないカメラエラー
予期しないエラー
不正なハンドル値
不正なパラメータ値
カメラが接続されていない
カメラが未だ初期化されていない
測定開始エラー

S3̲ERR̲CANNOT̲STOP̲CAPTURE
S3̲ERR̲BAD̲USER̲CALIB̲FILE
S3̲ERR̲USER̲CALIB̲FAIL
S3̲ERR̲NO̲USER̲CALIB̲DATA
S3̲ERR̲STD̲CALIB̲FAIL
S3̲ERR̲NO̲MASK̲DATA
S3̲ERR̲BAD̲MASK̲FILE
S3̲ERR̲NO̲FRAME̲DATA
S3̲ERR̲FILE̲ACCESS̲FAIL
S3̲ERR̲TIME̲OUT
S3̲ERR̲CALC̲FAIL
S3̲ERR̲MASK̲FAIL
S3̲ERR̲PARAM̲FAIL
S3̲ERR̲INVALID̲CAMERA̲TYPE

測定停止エラー

S3̲ERR̲MEASUREMENT̲NOT̲STARTED
S3̲ERR̲NO̲AUTHORITY̲TO̲WRITE
S3̲ERR̲NOT̲ENOUGTH̲MEMORY
S3̲ERR̲BAD̲SNAPSHOT̲FILE
S3̲ERR̲NO̲SNAPSHOT̲DATA
S3̲ERR̲DONGLE̲KEY̲NOT̲FOUND
S3̲ERR̲UNDEF̲FAIL

測定が未だ開始されていない

不正なユーザー校正ファイル
ユーザー校正実行エラー
ユーザー校正データが設定されていない
デフォルト校正実行エラー
マスクデータが設定されていない
不正なマスクファイル
フレームデータが存在しない
ファイルアクセスエラー
タイムアウトエラー
計算不可
マスク登録エラー
パラメータ設定エラー
無効なカメラ機種
書き込み権限がない
メモリ不足エラー
不正なスナップショット画像ファイル
スナップショットデータが設定されていない
ドングルキーの認識エラー
未定義のエラー122

11. 特記事項
11.1. 測定上の注意
11.1.1. センサへの入射光量について
波面センサへの入射光量は 1.06 mW/mm2（3μW＠φ3.0 mm）以下となるよう調整して下さい。
11.1.2. シャッタースピードについて
シャッタースピードは 0.5 msec 以上 5 msec 未満を推奨します。
入射光のピーク階調値が 180 以上、飽和ピクセル数 300 以下となるよう調整して下さい。
11.1.3. スポット調整について
スポット位置は波面センサ面へのビームの入射角により変化します。
フレームの中心にスポットが一致するよう調整して下さい。交点にスポットが無い状態になると測定ができません。
（調整前）

（良い例）

（悪い例）

123

11.2. 参考資料
11.2.1. ゼルニケ多項式定義式
#

nam e

RMS

Pol ynom i nal

Z 01

Pist on

1/√ 2

1

Z 02

Tilt X

1/2

ρ c os θ

Z 03

Tilt Y

1/2

ρ s in θ

Z 04

De f ocu s1/√ 3

2ρ − 1Z 05

A S 0 /90 °1/√ 6

ρ 2 cos 2 θ

Z 06

AS 45°

1/√ 6

ρ s in 2 θ

Z 07

Coma X

1/ 2√ 2(3ρ − 2ρ )c os θ

Z 08

Coma Y1/ 2√ 2(3ρ − 2ρ )s in θ

Z 09

3rd SA1/√ 5

6 ρ − 6ρ ＋ 1

Z 10

5 th T r efo i l X

1/ 2√ 2

ρ 3 cos 3 θ

Z 11

5 th T r efo i l Y

1/ 2√ 2ρ 3s in 3 θ
4

2

4

2

2

2

3

2

4

2

Z 12

5 th A S X

1/ √ 10(4 ρ − 3ρ )cos 2θ

Z 13

5 th A S Y

1/ √ 10(4 ρ − 3ρ )sin 2 θ

Z 14

5t h Co ma X

1/ 2√ 3(10 ρ − 12 ρ ＋ 3ρ )cos θ

Z 15

5t h Co ma Y

1/ 2√ 3(10 ρ − 12 ρ ＋ 3 ρ )sin θ

Z 16

5th SA1/√ 7

20ρ − 30ρ ＋ 12ρ − 1

Z 17

7t h Te t raf o il X

1/ √ 10

ρ 4 cos 4 θ

Z 18

7t h Te t raf o il Y

1/ √ 10ρ 4s in 4 θ

Z 19

7 th T r efo i l X

1/ 2√ 3(5 ρ − 4ρ )cos 3θ

Z 20

7 th T r efo i l Y

1/ 2√ 3(5 ρ − 4ρ )sin 3 θ

Z 21

7 th A S X

1/ √ 14(1 5ρ − 2 0ρ ＋ 6 ρ )co s 2 θ

Z 22

7 th A S Y

1/ √ 14(1 5ρ − 2 0ρ ＋ 6 ρ )co s 2 θ

5

3

5

3

6

4

2

5

3

5

3

6

4

6

2

4

2

7

5

3

7

5

3

6

4

Z 23

7t h Co ma X

1/4

(3 5 ρ − 60 ρ ＋ 30 ρ − 4ρ )cos θ

Z 24

7t h Co ma Y

1/4

(35 ρ − 60 ρ ＋ 30 ρ − 4 ρ )sin θ

Z 25

7th SA

1/3

70 ρ − 1 40ρ ＋ 90ρ − 20 ρ − 1

Z 26

9t h Pe n taf o il X

1/ 2√ 3

ρ 5 cos 5 θ

Z 27

9t h Pe n taf o il Y

1/ 2√ 3ρ 5s in 5 θ

Z 28

9t h Te t raf o il X

1/ √ 14(6 ρ − 5ρ )cos 4θ

8

6

4

6

4

2

Z 29

9t h Te t raf o il Y

1/ √ 14(6 ρ − 5ρ )sin 4 θ

Z 30

9 th T r efo i l X

1/4(21 ρ − 30 ρ ＋ 10ρ )co s 3θZ 31

9 th T r efo i l Y

1/4(21 ρ − 30 ρ ＋ 1 0ρ )sin 3θ

Z 32

9 th A S X

1/ 3√ 2(56 ρ 8− 10 5ρ 6 ＋ 6 0ρ 4− 10 ρ 2)cos 2θ

Z 33

9 th A S Y

1/ 3√ 2(5 6ρ − 1 05 ρ ＋ 60ρ − 10ρ )sin 2θ

Z 34

9t h Co ma X

1/ 2√ 5

(1 26 ρ − 28 0ρ ＋ 2 10 ρ − 6 0ρ ＋ 5 ρ )co s θ

7

5

3

7

5

3

8

6

4

2

9

7

5

3

9

7

5

3

Z 35

9t h Co ma Y

1/ 2√ 5(126ρ − 2 80 ρ ＋ 21 0ρ − 6 0ρ ＋ 5 ρ )sin θ

Z 36

9th SA1/ √ 11

2 52 ρ − 63 0ρ ＋ 5 60ρ − 2 10ρ ＋ 30ρ − 1

10

124

8

6

4

2

11.2.2. ザイデル収差定義式
Term

Description

Magnitude

Angle

W11

Tilt

(Z 2 − 2 Z 7 )2 + (Z 3 − 2 Z 8 )2

⎛ Z − 2Z 8 ⎞⎟⎟tan −1 ⎜⎜ 3
−
Z
Z
2
7 ⎠
⎝ 2

W20

Focus

2 Z 4 − 6 Z 9 ± Z 52 + Z 62
※極性は絶対値が最小になるよう選択されます。

W22

Astigmatism± 2 Z 52 + Z 62
※極性はFocus に対し逆極性になるよう選択されます。

W31

Coma

3 Z 72 + Z 82

W40

Spherical

6Z 9

125

⎛Z ⎞
1
tan −1 ⎜⎜ 6 ⎟⎟2
⎝ Z5 ⎠⎛Z ⎞tan −1 ⎜⎜ 8 ⎟⎟⎝ Z7 ⎠

本社・工場：〒424-8566

駿河精機株式会社

静岡県静岡市清水区七ツ新屋 549-1
TEL：054-344-0332／FAX：054-344-0337

ＯＳＴ事業部

東京営業所：〒110-0014

カスタマーサービス

東京都台東区北上野2-18-4 UCJ 上野ビル 4F
TEL：03-5806-1635／FAX：03-5806-1697

ｈｔｔｐ：//ｗｗｗ．ｓｕｒｕｇａｏｓｔ．ｊｐ/

関西営業所：〒569-0071

ＴＥＬ ．０１２０−７８９−４４６
ＦＡＸ ．０１２０−７８９−４４６E-mail．ｏｓｔ＠ｓｕｒｕｇａ−ｇ．ｃｏ．ｊｐ

大阪府高槻市城北町1-5-25 FJY ビル 4F
TEL：072-661-3500／FAX：072-661-3622

126