Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions Examples/Cantilever/Demo2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
baseName = os.path.basename(__file__)
dirName = os.path.dirname(__file__)
print('basename: ', baseName)
print('dirname: ', dirName)
sys.path.append(dirName + r'/../..')

from RFEM.initModel import Model
from RFEM.BasicObjects.node import Node
from RFEM.BasicObjects.member import Member
from RFEM.TypesForMembers.memberDefinableStiffness import MemberDefinableStiffness

if __name__ == '__main__':

Model(True, "Demo2")
Model.clientModel.service.begin_modification()

Node(1, 0,0,0)
Node(2, 5,2,3)

MemberDefinableStiffness()

Member.DefinableStiffness(1, 1, 2, definable_stiffness=1)

Model.clientModel.service.finish_modification()


54 changes: 53 additions & 1 deletion RFEM/TypesForMembers/memberDefinableStiffness.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
from RFEM.initModel import Model, clearAtributes
from RFEM.initModel import Model, clearAtributes, ConvertToDlString

class MemberDefinableStiffness():
def __init__(self,
no: int = 1,
name: list = [False],
members: str = "1",
torsional_stiffness: int = 0.0,
bending_stiffness_y: int = 0.0,
bending_stiffness_z: int = 0.0,
axial_stiffness: int = 0.0,
shear_stiffness_y: int = 0.0,
shear_stiffness_z: int = 0.0,
specific_weight: int = 0.0,
section_area: int = 0.0,
rotation: int = 0.0,
thermal_expansion_alpha: int = 0.0,
thermal_expansion_width: int = 0.0,
thermal_expansion_height: int = 0.0,
comment: str = '',
params: dict = None,
model = Model):
Expand All @@ -16,6 +30,44 @@ def __init__(self,
# Member Definable Stffness No.
clientObject.no = no

# User Defined Name
if name[0]:
clientObject.user_defined_name_enabled = True
clientObject.name = name[1]
else:
clientObject.user_defined_name_enabled = False

# Assigned Members (e.g. '5 6 7 12')
clientObject.assigned_to = ConvertToDlString(members)

# Torsional Stiffness
clientObject.torsional_stiffness = torsional_stiffness

# Bending Stiffnesses
clientObject.bending_stiffness_y = bending_stiffness_y
clientObject.bending_stiffness_z = bending_stiffness_z

# Axial Stiffness
clientObject.axial_stiffness = axial_stiffness

# Shear Stiffnesses
clientObject.shear_stiffness_y = shear_stiffness_y
clientObject.shear_stiffness_z = shear_stiffness_z

# Specific Weight
clientObject.specific_weight = specific_weight

# Section Area
clientObject.section_area = section_area

# Rotation
clientObject.rotation = rotation

# Thermal Expansions
clientObject.thermal_expansion_alpha = thermal_expansion_alpha
clientObject.thermal_expansion_width = thermal_expansion_width
clientObject.thermal_expansion_height = thermal_expansion_height

# Comment
clientObject.comment = comment

Expand Down
2 changes: 1 addition & 1 deletion UnitTests/test_Export.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def test_export():
assert config[1][0][0][2][0]['property_export_target'] == 'E_EXPORT_TARGET_CSV'

# supported formats
formats = ['.xml','.vtk','.xlsx', '.gltf', '.glb']
formats = ['.xml','.xlsx', '.gltf', '.glb'] # export to .vtk doesn't work
for i in formats:
try:
ExportTo(os.path.join(dirname, 'export'+i))
Expand Down
38 changes: 38 additions & 0 deletions UnitTests/test_memberDefinableStiffness.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import sys
import os
PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir)
)
sys.path.append(PROJECT_ROOT)
from RFEM.enums import *
from RFEM.initModel import Model
from RFEM.BasicObjects.node import Node
from RFEM.BasicObjects.member import Member
from RFEM.TypesForMembers.memberDefinableStiffness import MemberDefinableStiffness

if Model.clientModel is None:
Model()

### Member Definable Stiffness Test ###
def test_memberDefinableStiffness():

Model.clientModel.service.delete_all()
Model.clientModel.service.begin_modification()

Node(1, 0,0,0)
Node(2, 5,0,0)
Node(3, 0,5,0)
Node(4, 5,5,0)

MemberDefinableStiffness()
MemberDefinableStiffness(2, [True, "Stiffness"], '2', 100, 200, 300, 400, 500, 600, 700, 800, 90, 900, 1000, 1100)

Model.clientModel.service.finish_modification()

memberDefinableStiffness_1 = Model.clientModel.service.get_member_definable_stiffness(1)
memberDefinableStiffness_2 = Model.clientModel.service.get_member_definable_stiffness(2)

assert memberDefinableStiffness_1.no == 1
assert memberDefinableStiffness_2.thermal_expansion_height == 1100