解析スクリプトの構造
- 更新日2025-12-02
- 6分で読める
Visual Basic ScriptまたはPythonを使用して、解析自動化用の解析スクリプトを作成できます。解析自動化プロシージャには、解析を定義するスクリプト (Main.vbsaまたはMain.py) が含まれています。このスクリプトには、解析自動化プロシージャに追加する必要がある追加のスクリプトを含めることができます。解析スクリプトMain.vbsaまたはMain.pyには、デフォルトで次の要素が含まれています。
| スクリプトコード | 説明 |
|---|---|
| On_Initialize(oContext) | 並列評価を初期化します。このメソッドは、データ処理の前に1回呼び出されます。 |
| On_RunAnalysisProcedure(oContext) | 取得したデータ要素の実際の評価を実行します。
|
| On_Finalize(oContext) | 並列評価を終了します。メソッドは、データ処理が終了した後に1回呼び出されます。 |
oContext転送パラメータは、解析自動化と解析スクリプトの間で情報を交換し、取得したデータ要素へのアクセスを提供します。
解析スクリプトmain.pyには、以下の要素も含まれています。
| スクリプトコード | 説明 |
|---|---|
Import DIAdem dd = DIAdem.Application | DIAdemコマンド、変数、およびオブジェクトへのアクセスを可能にします。ほとんどのDIAdemコマンドはPython環境で使用できますが、すべてのDIAdemコマンドがPythonでテストされているわけではありません。 |
次の表に、データを処理するための最も重要なDIAdemコマンドとメソッドを示します。
| スクリプトコード | 説明 |
|---|---|
| ApplicationSetLocale("japanese") | 時間形式、用紙サイズ、余白など、各国特有の変数と数量を設定します。 |
| oContext.DataLinks | 取得したデータ要素が含まれています。 |
| Navigator.LoadData | データをロードします。 |
| ChannelsToArray | Pythonで処理するためにDIAdemチャンネルを配列に変換します。 |
| ArrayToChannels | Python配列をDIAdemチャンネルに変換します。 |
| DataFileSave | データを保存します。 |
解析スクリプトでは次のコマンドを使用できません。
- 対話が必要なコマンド
- DIAdemインタフェースを制御するコマンド
- VIEWモードを制御するコマンド
- Microsoft Officeまたは他のアプリケーションを制御するコマンド。
次に、Visual Basic Scriptの解析スクリプトのサンプルを示します。On_Initializeプロシージャは、転送パラメータからの結果パスが存在するかどうかを確認します。On_Run_AnalysisProcedureプロシージャは、解析のために要素をロードし、解析を実行し、結果をPDFで出力します。On_Initialize procedureは、On_InitializeおよびOn_Run_AnalysisProcedureが成功したかどうかをチェックします。
Sub On_Initialize(oContext)
Call ApplicationSetLocale("english")
Dim ResultsPath
If oContext.Procedure.Arguments.Exists("ResultsPath") Then
ResultsPath = oContext.Procedure.Arguments.Item("ResultsPath").Value
Call oContext.LogResult("Results path: " & ResultsPath)
Else
Call oContext.LogError("Results path missing")
End If
End Sub
Sub On_Run_AnalysisProcedure(oContext)
Call ApplicationSetLocale("english")
Dim ResultsPath
ResultsPath = oContext.Procedure.Arguments.Item("ResultsPath").Value
Dim oMyDataLinks, iCount
Set oMyDataLinks = oContext.DataLinks
For iCount = 1 To oMyDataLinks.Count
Call Navigator.LoadData(oContext.DataLinks.Item(iCount))
' Enter your analysis commands
Next
Call Report.LoadLayout(oContext.Procedure.ScriptPath & "MyLayout.tdr")
Call Report.Sheets.ExportToPDF(ResultsPath & & "MyResult.pdf",FALSE)
End Sub
Sub On_Finalize(oContext)
Call oContext.LogResult("Init ok: " & oContext.Status.On_Initialize_Succeeded)
Call oContext.LogResult("Analysis ok: " & oContext.Status.On_Run_AnalysisProcedure_Succeeded)
End Sub