次のステップ
特定の組み合わせのx,y座標から対応するy値を自動解析で取得する
上記のスクリプトではx, yの値をカーソルの位置から取得し、対応するz値を取得しています。x, yの値を連続的に変化させながら、それらに対応するzの値を保存するにはVBスクリプトを編集する必要があります。
例えば(x,y) = (5, 5), (10, 10), (15, 15), (20, 20), (25, 25)の5点のz値を求め、Data Portalに保存する場合、下記のスクリプトとなります。
Option Explicit
Dim x,y
x =array(5,10,15,20,25)
y =array(5,10,15,20,25)
D3GridCalcAll =0
D3GridPolyg ="convex hull"
D3NodeMeth ="n neigh. pts"
D3NodeNo =5
D3InterpMethChn ="SISPL Surface"
Dim oMyGrp, oMyChn, i
Set oMyGrp = Data.Root.ChannelGroups(1)
Set oMyChn = oMyGrp.Channels.Add("AnalysisResults",DataTypeFloat64)
For i = 0 to 4
oMyChn(i+1)= ChnD3InterpPoint("[1]/[1]","[1]/[2]","[1]/[3]", x(i), y(i))
Next
このスクリプトをDIAdem SCRIPTのスクリプト実行より実行します。
下記の通り、それぞれの座標のz値がAnalysisResultsとして保存されます。
Data Portalに作成したx, yの配列の値を使用して自動解析を行う
x,yの配列をData Portalから読み込む場合、下記の手順でスクリプトの挙動を確認できます。まず、Data Portalのチャンネルを右クリックし、新規より新しいチャンネルを作成します。ここではまず、xチャンネルを作成し、任意の値を5つ入力します。yについても同様にチャンネル作成と値の入力を行います。
スクリプト上の変更点はData Portalよりxとyの配列をスクリプト上に読み込む部分となり、下記の様なスクリプトとなります。
Option Explicit
Dim oMyChn, x, y
Set oMyChn = Data.GetChannel("[1]/x")
x = oMyChn.GetValuesBlock(1,5)
Set oMyChn = Data.GetChannel("[1]/y")
y = oMyChn.GetValuesBlock(1,5)
D3GridCalcAll =0
D3GridPolyg ="convex hull"
D3NodeMeth ="n neigh. pts"
D3NodeNo =5
D3InterpMethChn ="SISPL Surface"
Dim oMyGrp, oMyChn1, i
Set oMyGrp = Data.Root.ChannelGroups(1)
Set oMyChn1 = oMyGrp.Channels.Add("AnalysisResults",DataTypeFloat64)
For i = 0 to 4
oMyChn1(i+1)= ChnD3InterpPoint("[1]/[1]","[1]/[2]","[1]/[3]", x(i), y(i))
Next
上記スクリプトを実行すると下記の様に指定したz値を取得できます。
VIEWの各次元のキューサーの値はDimensions collectionからもアクセスでき、例えばZ次元については下記の様にアクセス・表示する事ができます。
print(View.ActiveSheet.Cursor.Dimensions("Z-Cursor").Value1)
print(View.ActiveSheet.Cursor.Dimensions(3).Value2)