簡単なサンプルです。
◆特定のアウトプットベクトルの値を取得する
アウトプットセット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()