Femap API Results Browsing Object のサンプル

簡単なサンプルです。

◆特定のアウトプットベクトルの値を取得する
アウトプットセット1、アウトプットベクトル8006の値を取得する

import pythoncom
import Pyfemap as Pyfemap
from Pyfemap import constants

existObj = pythoncom.connect(Pyfemap.model.CLSID)
app = Pyfemap.model(existObj)

ID_list = []
entity_set = app.feSet
RBO = app.feResults
RBO.VectorEntitiesV2(1, 8006, entity_set.ID, True)

entity_count = entity_set.Count()
_ = entity_set.First()
count = 0
while count < entity_count:
    ID_list.append(entity_set.CurrentID)
    _ = entity_set.Next()
    count += 1

for ID in ID_list:
    _, f = RBO.EntityValueV2(1, 8006, ID)
    print(ID, f)

◆変位ベクトルを格納する
アウトプットセット1、節点1と2に変位ベクトル(9,000,001、9,000,002、9,000,003、9,000,004)を格納する

import pythoncom
import Pyfemap as Pyfemap
from Pyfemap import constants

existObj = pythoncom.connect(Pyfemap.model.CLSID)
app = Pyfemap.model(existObj)

node = []
disp_x = []
disp_y = []
disp_z = []

node.append(1)
node.append(2)

disp_x.append(1.0)
disp_x.append(0.5)

disp_y.append(1.0)
disp_y.append(2.0)

disp_z.append(0.5)
disp_z.append(3.0)

RBO = app.feResults

nCol = RBO.AddVectorAtNodeColumnsV2(1, 9000001, 9000002, 9000003, 9000004, "USER Displacement", 1, True)
_ = RBO.SetVectorAtNodeColumnsV2(nCol[1], len(node), node, disp_x, disp_y, disp_z)
RBO.Save()

◆BEAM要素のA端、B端のアウトプットベクトルを格納する
要素番号1,2のBEAM要素に端部の応力を格納する

import pythoncom
import Pyfemap as Pyfemap
from Pyfemap import constants

existObj = pythoncom.connect(Pyfemap.model.CLSID)
app = Pyfemap.model(existObj)

elem = []
stressA = []
stressB = []

elem.append(1)
elem.append(2)

stressA.append(-10.0)
stressB.append(10.0)
stressA.append(-20.0)
stressB.append(20.0)

RBO = app.feResults

_, nCol = RBO.AddScalarAtBeamColumnsV2(1, 9000101, 9000102, "USER Stress", 2, 4, True, False)
print(nCol)
rc = RBO.SetColumn(nCol[0], len(elem), elem, stressA)
rc = RBO.SetColumn(nCol[1], len(elem), elem, stressB)
RBO.Save()

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA