EXCEL VBAを用いてFemapのLoad Set(荷重セット)を作成する方法

EXCEL×FEMAP

はじめに

famapは、有限要素法(FEM)を行うための強力なツールです。
解析の一環として、荷重セットを作成することが重要です。
この記事では、Excel VABを使ってFemapの荷重セットを自動的に作成する方法を紹介します。
これにより、手動での設定作業を大幅に効率化できます。

Load Set を作成するVBAコード

基本的なVBAコードの例

以下のコードは、Excel VBAを使用してFemapの荷重セットを作成する方法の例です。

VB
Sub CreateLoadSet()
  'Femap model オブジェクトの生成
  Dim f As Object
  Set f = GetObject(,"femap.model")
  
  '荷重セットオブジェクトの作成
  Dim ldSet As Object
  Set ldSet = f.feLoadSet
  
  'リターンコードを格納する変数
  Dim rc As Long
  
  '荷重セットの名前の設定
  ldSet.title = "load condition 1"  '荷重セットの名前
  
  '荷重セットの保存
  rc = ldSet.Put(1)  '作成した荷重セットをID=1に設定
  if rc = 0 Then
    MsgBox "荷重セットの保存に失敗しました。"
  Else
    MsgBox "荷重セットが正常に作成されました。"
  End If
  
  'オブジェクトの解放
  Set ldSet = Nothing
  Set f = Nothing
End Sub

詳細な説明

  • Femapオブジェクトの作成: GetObject関数を使用して、Femapのモデルオブジェクトを取得します。
  • 荷重セットオブジェクトの作成: feLoadSetプロパティを使用して、荷重セットオブジェクトを作成します。
  • 荷重セットのプロパティ設定: titleプロパティでLdSetの名前を設定します。
  • 荷重セットの作成: Putメソッドを使用して、荷重セットをFemapに登録します。上記の例では”rc = ldSet.Put(1)”としていますが、単に”ldSet.Put(1)”としても登録できます。登録できたかどうかを取得するため、上記例ではrc=をつけています。
  • オブジェクトの解放: 使用したオブジェクトを開放します。

Excelと連携させる例

エクセルで次のようなシートを準備します。
A2,B2が入力セルです。

対応するVBコードは次のようになります。

VB
Sub CreateLoadSet()
  'Femap model オブジェクトの生成
  Dim f As Object
  Set f = GetObject(,"femap.model")
  
  '荷重セットオブジェクトの作成
  Dim ldSet As Object
  Set ldSet = f.feLoadSet
  
  'リターンコードを格納する変数
  Dim rc As Long
  
  '荷重セットの名前の設定
  ldSet.title = Cells(2, 2)  '荷重セットの名前
  
  '荷重セットの保存
  rc = ldSet.Put(Cells(2, 1))  '作成した荷重セットをエクセルに入力した値に設定
  if rc = 0 Then
    MsgBox "荷重セットの保存に失敗しました。"
  Else
    MsgBox "荷重セットが正常に作成されました。"
  End If
  
  'オブジェクトの解放
  Set ldSet = Nothing
  Set f = Nothing
End Sub

もし、セルから値を取得する際にエラーが出る場合は、セルで値を取得する部分をLong型ならCLng(Cells(2,1))などのように型を指定すると良いです。
こちらを応用し、For文など繰り返し操作を加えれば、大量のBCセットも楽々です。
ちなみに、作成したBCセットをアクティブ化する場合は、bcSet.Active = “アクティブにしたいBCセットID” を加えればよいです。

おわりに

この記事では、Excel VBAを使ってFemapの荷重セットを作成する方法を紹介しました。VBAを活用することで、手動での設定作業を自動化し、効率的に解析を行うことができます。
ぜひ、実際のプロジェクトで試してみてください。

荷重セットが多すぎる。ジムのトレーニングメニューか!

コメント

タイトルとURLをコピーしました