Hello Robert,
Thanks for the information. The Python code currently looks as shown in the attachment. I set up the connection according to your webinar. Would it make sense to add something at the end of the script to close the connection? If so, how would I do that?
import dlubal.api
from dlubal.api import rstab, common
from math import inf
from dlubal.api.rstab.types_for_members import MemberDefinableStiffness
from dlubal.api.rstab.structure_core import Node
from dlubal.api.rstab.loads import MemberLoad
import dlubal.api.rstab.loads as loads
import inspect
with rstab.Application(api_key_value="Hier mein Key", url="localhost", port=9000) as rstab_app:
model = rstab_app.get_active_model()
# Definition Z Knoten Obergurt---------------------------------------------------------------------------
nodes_to_update = []
node_numbers = [int(n) for n in NodeNo_Obergurt]
for node_no in node_numbers:
my_node = Node(
no=node_no,
coordinate_3=float(Z_Obergurt)
)
nodes_to_update.append(my_node)
rstab_app.update_object_list(nodes_to_update)
# Definition Z Knoten Querstaebe---------------------------------------------------------------------------
nodes_to_update = []
node_numbers = [int(n) for n in NodeNo_Querstaebe_Pendel]
for node_no in node_numbers:
my_node = Node(
no=node_no,
coordinate_3=float(Z_Querstaebe)
)
nodes_to_update.append(my_node)
rstab_app.update_object_list(nodes_to_update)
# Definition Querstaebe Pendel--------------------------------------------------------------------------------
stiff_quer_pendel = MemberDefinableStiffness()
stiff_quer_pendel.no = 1
stiff_quer_pendel.assigned_to.extend([int(x) for x in Member_Querstaebe_Pendel])
stiff_quer_pendel.bending_stiffness_y = Querstaebe_Pendel_EIy
stiff_quer_pendel.axial_stiffness = Querstaebe_Pendel_EA
stiff_quer_pendel.shear_stiffness_z = Querstaebe_Pendel_GAz
stiff_quer_pendel.torsional_stiffness = 0
stiff_quer_pendel.bending_stiffness_z = 0
rstab_app.update_object(stiff_quer_pendel)
# Definition Kerven--------------------------------------------------------------------------------
stiff_quer = MemberDefinableStiffness()
stiff_quer.no = 2
stiff_quer.assigned_to.extend([int(x) for x in Member_Kerven])
stiff_quer.bending_stiffness_y = Kerven_EIy
stiff_quer.axial_stiffness = Kerven_EA
stiff_quer.shear_stiffness_z = Kerven_GAz
stiff_quer.torsional_stiffness = 0
stiff_quer.bending_stiffness_z = 0
rstab_app.update_object(stiff_quer)
# Definition Untergurt--------------------------------------------------------------------------------
stiff_unter = MemberDefinableStiffness()
stiff_unter.no = 3
stiff_unter.assigned_to.extend([int(x) for x in Member_Untergurt_Holz])
stiff_unter.bending_stiffness_y = Untergurt_EIy
stiff_unter.axial_stiffness = Untergurt_EA
stiff_unter.shear_stiffness_z = Untergurt_GAz
stiff_unter.torsional_stiffness = 0
stiff_unter.bending_stiffness_z = 0
rstab_app.update_object(stiff_unter)
# Definition Obergurt--------------------------------------------------------------------------------
stiff_ober = MemberDefinableStiffness()
stiff_ober.no = 4
stiff_ober.assigned_to.extend([int(x) for x in Member_Obergurt_Beton])
stiff_ober.bending_stiffness_y = Obergurt_EIy
stiff_ober.axial_stiffness = Obergurt_EA
stiff_ober.shear_stiffness_z = Obergurt_GAz
stiff_ober.torsional_stiffness = 0
stiff_ober.bending_stiffness_z = 0
rstab_app.update_object(stiff_ober)
# Definition Last-------------------------------------------------------------------------------------
# retrieve existing load
load = rstab_app.get_object(
MemberLoad(no=1, load_case=1)
)
# change members
load.members.clear()
load.members.extend([int(x) for x in LoadMembers])
# change magnitude
load.magnitude = float(LoadValue)
# update existing object
rstab_app.update_object(load)
# Calculate--------------------------------------------------------------------------------------
rstab_app.calculate_all(skip_warnings=True)
# Ergebnisse Kerve1--------------------------------------------------------------------------------------
members = [int(x) for x in Member_Kerve1]
filter_expression = ",".join(str(m) for m in members)
results = rstab_app.get_results(
results_type=rstab.results.ResultsType.STATIC_ANALYSIS_MEMBERS_INTERNAL_FORCES,
filters=[
rstab.results.ResultsFilter(
column_id="loading",
filter_expression="LC1"
),
rstab.results.ResultsFilter(
column_id="member_no",
filter_expression=filter_expression
)
]
)
df = results.data
Kerve1_Querkraft = df[
["member_no", "v_z"]
].astype("float64").to_numpy()
# Ergebnisse Kerve2--------------------------------------------------------------------------------------
members = [int(x) for x in Member_Kerve2]
filter_expression = ",".join(str(m) for m in members)
results = rstab_app.get_results(
results_type=rstab.results.ResultsType.STATIC_ANALYSIS_MEMBERS_INTERNAL_FORCES,
filters=[
rstab.results.ResultsFilter(
column_id="loading",
filter_expression="LC1"
),
rstab.results.ResultsFilter(
column_id="member_no",
filter_expression=filter_expression
)
]
)
df = results.data
Kerve2_Querkraft = df[
["member_no", "v_z"]
].astype("float64").to_numpy()
# Ergebnisse Kerve3--------------------------------------------------------------------------------------
members = [int(x) for x in Member_Kerve3]
filter_expression = ",".join(str(m) for m in members)
results = rstab_app.get_results(
results_type=rstab.results.ResultsType.STATIC_ANALYSIS_MEMBERS_INTERNAL_FORCES,
filters=[
rstab.results.ResultsFilter(
column_id="loading",
filter_expression="LC1"
),
rstab.results.ResultsFilter(
column_id="member_no",
filter_expression=filter_expression
)
]
)
df = results.data
Kerve3_Querkraft = df[
["member_no", "v_z"]
].astype("float64").to_numpy()
# Ergebnisse Untergurt--------------------------------------------------------------------------------------
members = [int(x) for x in Member_Untergurt_Holz]
filter_expression = ",".join(str(m) for m in members)
deformations = rstab_app.get_results(
results_type=rstab.results.ResultsType.STATIC_ANALYSIS_MEMBERS_GLOBAL_DEFORMATIONS,
filters=[
rstab.results.ResultsFilter(
column_id="loading",
filter_expression="LC1"
),
rstab.results.ResultsFilter(
column_id="member_no",
filter_expression=filter_expression
)
]
)
df_disp = deformations.data
Untergurt_Verformung = df_disp[
["member_no", "u_z"]
].astype("float64").to_numpy()
members = [int(x) for x in Member_Untergurt_Holz]
filter_expression = ",".join(str(m) for m in members)
results = rstab_app.get_results(
results_type=rstab.results.ResultsType.STATIC_ANALYSIS_MEMBERS_INTERNAL_FORCES,
filters=[
rstab.results.ResultsFilter(
column_id="loading",
filter_expression="LC1"
),
rstab.results.ResultsFilter(
column_id="member_no",
filter_expression=filter_expression
)
]
)
df = results.data
Untergurt_Moment = df[
["member_no", "m_y"]
].astype("float64").to_numpy()
Untergurt_Normalkraft = df[
["member_no", "n"]
].astype("float64").to_numpy()
# Ergebnisse Obergurt--------------------------------------------------------------------------------------
members = [int(x) for x in Member_Obergurt_Beton]
filter_expression = ",".join(str(m) for m in members)
results = rstab_app.get_results(
results_type=rstab.results.ResultsType.STATIC_ANALYSIS_MEMBERS_INTERNAL_FORCES,
filters=[
rstab.results.ResultsFilter(
column_id="loading",
filter_expression="LC1"
),
rstab.results.ResultsFilter(
column_id="member_no",
filter_expression=filter_expression
)
]
)
df = results.data
Obergurt_Moment = df[
["member_no", "m_y"]
].astype("float64").to_numpy()
Obergurt_Normalkraft = df[
["member_no", "n"]
].astype("float64").to_numpy()
#results.data.to_excel("member_forces.xlsx", index=False)