データ構造チートシート
節点定義
"node": {
"節点ID": {"x": X座標, "y": Y座標, "z": Z座標}
}
材料・断面特性(element)
材料データは全ての要素(bar, shell, solid)で参照されますが、各フィールドの意味・用途は要素ごとに異なります。
"element": {
"要素特性ケースID": {
"要素ID": {
"E": ヤング係数, // kN/m²
"G": せん断弾性係数, // kN/m²
"nu": ポアソン比,
"Xp": 線膨張係数, // /℃
"A": 断面積または厚さ, // 要素により意味が異なる
"Iy": Y軸回り断面二次モーメント, // 梁要素のみ
"Iz": Z軸回り断面二次モーメント, // 梁要素のみ
"J": ねじり定数 // 梁要素のみ
}
}
}
A, Iy, Iz, J の要素ごとの扱い
| 変数 | 梁要素(bar) | シェル要素(shell) | ソリッド要素(tetra, wedge, hexa) |
| A | ● 必須
断面積(m²) | ● 必須
厚さt(m)として利用 | × 不要 |
| Iy | ● 必須
Y軸回り断面二次モーメント | × 不要 | × 不要 |
| Iz | ● 必須
Z軸回り断面二次モーメント | × 不要 | × 不要 |
| J | ● 必須
ねじり定数 | × 不要 | × 不要 |
注意:シェル要素の厚さはAフィールドで指定します(断面積ではなく厚さとして解釈)
部材定義(梁要素:bar)
"member": {
"部材ID": {
"ni": 始点節点ID,
"nj": 終点節点ID,
"e": 要素ID,
"code_angle": コードアングル // x軸回り回転角(度, 3Dのみ)
}
}
シェル要素定義(shell)
"shell": {
"シェルID": {
"nodes": [節点1, 節点2, 節点3, 節点4], // 3点(三角形)または4点(四角形)
"e": 材料ID,
"t": 厚さ番号 // 通常は材料IDと同じ
}
}
ソリッド要素定義(tetra, wedge, hexa)
"solid": {
"ソリッドID": {
"nodes": [節点リスト], // 4点(tetra), 6点(wedge), 8点(hexa)
"e": 材料ID,
"type": "tetra|wedge|hexa"
}
}
支点条件
"fix_node": {
"支点ケースID": [
{
"n": 節点ID,
"tx": 0, // X方向拘束(0=自由, 1=拘束, 実数=強制変位)
"ty": 1,
"tz": 0,
"rx": 0,
"ry": 1,
"rz": 0
}
]
}
荷重定義
"load": {
"荷重ケースID": {
"rate": 1.0,
"symbol": "DL",
"load_node": [
{"n": 節点ID, "tx": 0, "ty": -10, "tz": 0, "mx": 0, "my": 0, "mz": 0}
],
"load_member": [
{"m": 部材ID, "direction": "gy", "p1": -20, "p2": -20, "L1": 0, "L2": 8}
]
}
}
入力データ構造
FrameWeb3 APIは構造モデルデータをJSON形式で受け取ります。以下のセクションでは、完全なデータ構造仕様について説明します。
ルートオブジェクト
{
"dimension": 2|3, // 2次元解析(2)または3次元解析(3)の指定
"node": { ... }, // 必須: 節点定義
"member": { ... }, // オプション: 梁部材定義
"shell": { ... }, // オプション: シェル要素定義
"solid": { ... }, // オプション: ソリッド要素定義
"element": { ... }, // 必須: 材料・断面特性
"thickness": { ... }, // オプション: シェル厚さ定義
"fix_node": { ... }, // オプション: 支点条件
"fix_member": { ... }, // オプション: バネ支点
"joint": { ... }, // オプション: 材端条件
"load": { ... } // 必須: 荷重ケース
}
節点定義
座標を持つ構造節点を定義します。
"node": {
"1": {"x": 0.0, "y": 0.0, "z": 0.0},
"2": {"x": 5.0, "y": 0.0, "z": 0.0}
}
プロパティ:
x (float): X座標(メートル)
y (float): Y座標(メートル)
z (float): Z座標(メートル、3D解析では必須)
部材定義
2つの節点を結ぶ梁要素を定義します。
"member": {
"1": {
"ni": 1, // 始点節点番号
"nj": 2, // 終点節点番号
"e": 1, // 要素特性番号
"cg": {"x": 0, "y": 0, "z": 1}, // オプション: 局所座標系
"angle": 0 // オプション: 回転角(度)
}
}
プロパティ:
ni (int): 始点節点番号
nj (int): 終点節点番号
e (int): 要素特性参照
cg (object, オプション): 局所座標系ベクトル
angle (float, オプション): 要素回転角(度)
シェル定義
シェル・パネル要素を定義します。
"shell": {
"1": {
"ni": 1, // 節点1
"nj": 2, // 節点2
"nk": 3, // 節点3
"nl": 4, // 節点4(三角形要素ではオプション)
"e": 1 // 材料特性番号
}
}
プロパティ:
ni, nj, nk (int): 必須節点番号
nl (int, オプション): 四角形要素の第4節点
e (int): 材料特性参照
ソリッド定義
3Dソリッド要素を定義します。
"solid": {
"1": {
"type": "tetra", // 要素タイプ: "tetra" または "hexa"
"nodes": [1, 2, 3, 4], // 節点番号
"e": 1 // 材料特性番号
}
}
プロパティ:
type (string): 要素タイプ("tetra"は4節点、"hexa"は8節点)
nodes (array): 節点番号(tetraは4個、hexaは8個)
e (int): 材料特性参照
要素特性
材料・断面特性を定義します。
"element": {
"1": {
"E": 205000000, // ヤング係数(kN/m²)
"G": 79000000, // せん断弾性係数(kN/m²)
"poi": 0.3, // ポアソン比
"cte": 1.2e-5, // 線膨張係数(/℃)
"A": 0.01, // 断面積(m²)
"Iy": 0.0001, // y軸回りの断面二次モーメント(m⁴)
"Iz": 0.0001, // z軸回りの断面二次モーメント(m⁴)
"J": 0.0001 // ねじり定数(m⁴)
}
}
梁特性:
E (float): ヤング係数(kN/m²)
G (float): せん断弾性係数(kN/m²)
poi (float): ポアソン比
cte (float): 線膨張係数(/℃)
A (float): 断面積(m²)
Iy (float): 局所y軸回りの断面二次モーメント(m⁴)
Iz (float): 局所z軸回りの断面二次モーメント(m⁴)
J (float): ねじり定数(m⁴)
シェル・ソリッド特性:
E (float): ヤング係数(kN/m²)
G (float): せん断弾性係数(kN/m²)
poi (float): ポアソン比
厚さ定義
シェル要素の厚さを定義します。
"thickness": {
"1": {"t": 0.2} // 厚さ(メートル)
}
支点条件
節点での境界条件を定義します。
"fix_node": {
"1": { // 支点ケース番号
"1": { // 節点番号
"x": 1, // X方向変位拘束(1=固定、0=自由)
"y": 1, // Y方向変位拘束
"z": 1, // Z方向変位拘束
"rx": 1, // X軸回り回転拘束
"ry": 1, // Y軸回り回転拘束
"rz": 1 // Z軸回り回転拘束
}
}
}
バネ支点
部材上の弾性支点を定義します。
"fix_member": {
"1": { // バネケース番号
"1": { // 部材番号
"x": 1000, // X方向バネ剛性(kN/m)
"y": 1000, // Y方向バネ剛性(kN/m)
"z": 1000 // Z方向バネ剛性(kN/m)
}
}
}
材端条件
部材端の解放条件を定義します。
"joint": {
"1": { // 材端ケース番号
"1": { // 部材番号
"xi": 0, // i端X方向力解放(1=解放、0=固定)
"yi": 0, // i端Y方向力解放
"zi": 0, // i端Z方向力解放
"rxi": 0, // i端X軸回りモーメント解放
"ryi": 0, // i端Y軸回りモーメント解放
"rzi": 0, // i端Z軸回りモーメント解放
"xj": 0, // j端解放条件...
"yj": 0,
"zj": 0,
"rxj": 0,
"ryj": 0,
"rzj": 0
}
}
}
荷重ケース
荷重条件を定義します。
"load": {
"1": { // 荷重ケースID
"rate": 1.0, // 荷重係数
"symbol": "DL", // 荷重記号
"fix_node": 1, // 支点ケース参照
"fix_member": 1, // バネケース参照
"element": 1, // 材料ケース参照
"joint": 1, // 材端ケース参照
"load_node": [...], // 節点荷重
"load_member": [...], // 部材荷重
"load_heat": [...] // 温度荷重
}
}
節点荷重
"load_node": [
{
"n": 2, // 節点番号
"tx": 0, // X方向力(kN)
"ty": -50, // Y方向力(kN)
"tz": 0, // Z方向力(kN)
"rx": 0, // X軸回りモーメント(kNm)
"ry": 0, // Y軸回りモーメント(kNm)
"rz": 0, // Z軸回りモーメント(kNm)
"dx": 0, // X方向強制変位(m)
"dy": 0, // Y方向強制変位(m)
"dz": 0 // Z方向強制変位(m)
}
]
出力データ構造
節点変位
"disg": {
"節点ID": {
"dx": X方向変位, // mm
"dy": Y方向変位, // mm
"dz": Z方向変位, // mm (3Dのみ)
"rx": X軸回り回転角, // ‰rad (3D)
"ry": Y軸回り回転角, // ‰rad (3D)
"rz": Z軸回り回転角 // ‰rad
}
}
支点反力
"reac": {
"節点ID": {
"tx": X方向反力, // kN
"ty": Y方向反力, // kN
"tz": Z方向反力, // kN (3Dのみ)
"mx": X軸回り反力モーメント, // kNm (3D)
"my": Y軸回り反力モーメント, // kNm (3D)
"mz": Z軸回り反力モーメント // kNm
}
}
部材断面力(梁要素)
"fsec": {
"部材ID": {
"断面ID": {
"fxi": 軸方向力, // kN
"fyi": Y軸方向せん断力, // kN
"fzi": Z軸方向せん断力, // kN (3D)
"mxi": ねじりモーメント, // kNm (3D)
"myi": Y軸回り曲げモーメント, // kNm (3D)
"mzi": Z軸回り曲げモーメント // kNm
}
}
}
シェル要素応力・ひずみ
"shell_stress": {
"シェルID": {
"節点ID": {
"sx": σx応力, // kN/m²
"sy": σy応力, // kN/m²
"txy": τxy応力 // kN/m²
}
}
}
ソリッド要素応力・ひずみ
"solid_stress": {
"ソリッドID": {
"節点ID": {
"sx": σx応力, // kN/m²
"sy": σy応力, // kN/m²
"sz": σz応力, // kN/m²
"txy": τxy応力, // kN/m²
"tyz": τyz応力, // kN/m²
"tzx": τzx応力 // kN/m²
}
}
}