Yamamoto's Laboratory
 
 
Modeling
  VBA
 
High Frequency
 
Low Frequency
 
Multiphysics
 
Particles
 
EMC and EDA
 
 
加速空洞
 
 
 
 
 
 

CST StudioModeling: VBAVBA による計算モデルの作成

VBA を使い計算モデルの作成のテクニックをまとめます.筆者のメモです.

目次


VBA について

CST Studio Suite のツールは,Visual Basic スクリプトから制御できます.内蔵のBASICインタプリタの言語は、Visual Basic for Application 言語とほぼ 100 % 互換性があります.タスクの自動化に使うと便利です.OLE (Object Linking and Embedding Automation) オートメーションにも対応しています.

VBA の例

History List

if 文を使う
if 文を使うと,Parameter List の値に従い処理を変えることができます.
If BeamPipe_direction = 1 Then

   With Transform 
     .Reset 
     .Name "component1:coupler" 
     .Origin "Free" 
     .Center "0", "0", "cpl_cell_z" 
     .Angle "0", "180", "0" 
     .MultipleObjects "False" 
     .GroupObjects "False" 
     .Repetitions "1" 
     .MultipleSelection "False" 
     .AutoDestination "True" 
     .Transform "Shape", "Rotate" 
   End With

End If
Parameter List の BeamPipe_direction が 1 の場合,with Transform が実行されます.VBA の比較は「=」で,「==」ではないです.もちろん,「If 条件 1 Then 実行文 1 ElseIf 条件 2 Then 実行文 2 Else 実行文 3 End If」を使うことができます.
メッセージボックスを使い値の表示
Parameter List 他の値を,メッセージボックスで表示できます.具体黄な方法は,次の通りです.
MsgBox "acc_2a" & vbTab & acc_2a & vbCrLf & _
       "acc_2b" & vbTab & acc_2b & vbCrLf & _
       "acc_Rb" & vbTab & acc_Rb
Paramter List の (acc_2a, acc_2b, acc_Rb) の値を表示します.表示される値は,Parameter List の Value です.vbTab は「\t」です.vbCrLfは改行「CR+LF」(Windows の改行) です(具体的なメッセージボックス).
Boolean Add (+) を繰り返す
Transform の copy で複数のコンポーネントを作成すると,作成されたコンポーネントの名称は「元の名称_整数」となります.これをまとめ,ひとつのコンポーネントにするには,以下の VBA で可能です.
Dim i As Integer
For i = 1 To Cell_N - 1
        Solid.Add "component1:acc_cell", "component1:acc_cell_" & CStr(i)
Next i
コピーで作成されたコンポーネントは「acc_cell_1」,「acc_cell_2」,「acc_cell_3」…で,そこをブール演算の和でひとつにまとめています.Cell_N の値は Parameter List で与えられています.CStr() は数値を文字列に変換する関数です.

ページ作成情報

参考資料

  1. CST Online Help 2024 の Visial Basic (VBA)

更新履歴

2024月11月30日 ページの新規作成


no counter