はじめに
famapは、有限要素法(FEM)を行うための強力なツールです。
FemapのAPIを使用することで、Excel VBAから直接モデルにアクセスし、荷重や境界条件を定義することができます。本記事では、Excel VBAを使用してFemapに定義荷重を作成する方法を紹介します。
Femapに定義荷重を作成するVBAコード
準備
まず、準備として荷重セットを作る必要があります。次の記事を参照ください。
基本的なVBAコードの例
ノードに集中荷重、エレメントに分布荷重を与える準備をするために、荷重定義を作成する必要があります。
以下のコードは、Femapモデルに対して荷重定義を作成するためのExcel VBAコードです。このコードを使用することで、ノードに集中荷重を、エレメントに分布荷重を設定する下準備ができます。
VB
Sub CreateLoadDefinition()
'Femap model オブジェクトの生成
Dim f As Object
Set f = GetObject(,"femap.model")
'荷重セットオブジェクトの作成
Dim ldSet As Object
Set ldSet = f.feLoadSet
'リターンコードを格納する変数
Dim rc As Long
'LoadDefinitionオブジェクトの生成
Dim ldDef As Object
Set ldDef = f.feLoadDefinition
ldDef.setID = 1 '荷重セットIDの入力
'ノード上の集中荷重を想定した入力例
ldDef.title = "力 on ノード" 'タイトルの入力。自由に記述してよい。
ldDef.LoadType = 1 'ノードに集中荷重を適用する場合、LoadTypeは1にする
ldDef.DataType = 13 'FT_SURF_LOAD ノードまたはエレメント上の荷重の場合13にする
ldDef.Put(1) '荷重定義の適用
'エレメント上の分布荷重を想定した入力例
ldDef.title = "分布荷重 on エレメント" 'タイトルの入力。自由に記述してよい。
ldDef.LoadType = 41 'エレメント上に分布荷重を適用する場合、LoadTypeは41にする
ldDef.DataType = 13 'FT_SURF_LOAD ノードまたはエレメント上の荷重の場合13にする
ldDef.Put(2) '荷重定義の適用
'オブジェクトの解放
Set ldDef = Nothing
Set f = Nothing
End Sub
詳細な説明
- FemapのDataTypeは、荷重や境界条件などのデータがどのような種類のものであるかを指定するためのものです。
具体的には、DataTypeによりFemapがそのデータをどのように解釈し、処理するかを決定します。 - LoadTypeは、Femapで荷重がどのように適用されるかを指定するためのパラメータです。
具体的には、荷重がどのエンティティ(ノード、エレメント、曲線、面など)に対して、どのような形式で適用されるかを決定します。 - 17行目で、荷重セットIDを1に設定しています。
- 19~23行目で、ノード上に集中荷重を適用することを想定し、タイトルを「力 on ノード」に設定。LoadTypeを1(ノードに荷重を与える)に設定し、DetaTypeを13に設定しています。Put(1)でこの設定を適用しています。
おわりに
本記事では、Excel VBAを使用してFemapに定義荷重を作成する方法を紹介しました。
この方法を使用することで、手動での入力を減らし、効率的に荷重を設定することができます。
ぜひ、自在の解析に役立ててください。

軽い気持ちで設定したはずなのに、結果が重すぎる…
コメント