From 768e457cf9ee14d5d1b5e2efd780895b48fb38f5 Mon Sep 17 00:00:00 2001 From: KaratasD Date: Thu, 21 Apr 2022 13:54:15 +0200 Subject: [PATCH 1/2] added memberDefinableStiffness --- Examples/Cantilever/Demo1 copy.py | 38 +++++++++++++ .../memberDefinableStiffness.py | 54 ++++++++++++++++++- UnitTests/test_memberDefinableStiffness.py | 38 +++++++++++++ 3 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 Examples/Cantilever/Demo1 copy.py create mode 100644 UnitTests/test_memberDefinableStiffness.py diff --git a/Examples/Cantilever/Demo1 copy.py b/Examples/Cantilever/Demo1 copy.py new file mode 100644 index 00000000..faa71b05 --- /dev/null +++ b/Examples/Cantilever/Demo1 copy.py @@ -0,0 +1,38 @@ +#!/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.enums import NodalSupportType, LoadDirectionType +from RFEM.initModel import Model, Calculate_all +from RFEM.BasicObjects.material import Material +from RFEM.BasicObjects.section import Section +from RFEM.BasicObjects.node import Node +from RFEM.BasicObjects.member import Member +from RFEM.TypesForNodes.nodalSupport import NodalSupport +from RFEM.LoadCasesAndCombinations.staticAnalysisSettings import StaticAnalysisSettings +from RFEM.LoadCasesAndCombinations.loadCase import LoadCase +from RFEM.Loads.nodalLoad import NodalLoad +from RFEM.Calculate.meshSettings import GetModelInfo +from RFEM.TypesForMembers.memberDefinableStiffness import MemberDefinableStiffness + +if __name__ == '__main__': + + Model(True, "Demo1") + 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() + + diff --git a/RFEM/TypesForMembers/memberDefinableStiffness.py b/RFEM/TypesForMembers/memberDefinableStiffness.py index f158002a..d06b5dba 100644 --- a/RFEM/TypesForMembers/memberDefinableStiffness.py +++ b/RFEM/TypesForMembers/memberDefinableStiffness.py @@ -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): @@ -15,6 +29,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 diff --git a/UnitTests/test_memberDefinableStiffness.py b/UnitTests/test_memberDefinableStiffness.py new file mode 100644 index 00000000..81cc8ae2 --- /dev/null +++ b/UnitTests/test_memberDefinableStiffness.py @@ -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 + From 65e9d87823bf22d8940c177f57525e0ef1ba7486 Mon Sep 17 00:00:00 2001 From: MichalO Date: Fri, 22 Apr 2022 09:59:04 +0200 Subject: [PATCH 2/2] renaming the Demo1 copy.py to Demo2.py export to '.vtk' removed --- Examples/Cantilever/{Demo1 copy.py => Demo2.py} | 12 ++---------- UnitTests/test_Export.py | 2 +- 2 files changed, 3 insertions(+), 11 deletions(-) rename Examples/Cantilever/{Demo1 copy.py => Demo2.py} (56%) diff --git a/Examples/Cantilever/Demo1 copy.py b/Examples/Cantilever/Demo2.py similarity index 56% rename from Examples/Cantilever/Demo1 copy.py rename to Examples/Cantilever/Demo2.py index faa71b05..3c2d7155 100644 --- a/Examples/Cantilever/Demo1 copy.py +++ b/Examples/Cantilever/Demo2.py @@ -8,22 +8,14 @@ print('dirname: ', dirName) sys.path.append(dirName + r'/../..') -from RFEM.enums import NodalSupportType, LoadDirectionType -from RFEM.initModel import Model, Calculate_all -from RFEM.BasicObjects.material import Material -from RFEM.BasicObjects.section import Section +from RFEM.initModel import Model from RFEM.BasicObjects.node import Node from RFEM.BasicObjects.member import Member -from RFEM.TypesForNodes.nodalSupport import NodalSupport -from RFEM.LoadCasesAndCombinations.staticAnalysisSettings import StaticAnalysisSettings -from RFEM.LoadCasesAndCombinations.loadCase import LoadCase -from RFEM.Loads.nodalLoad import NodalLoad -from RFEM.Calculate.meshSettings import GetModelInfo from RFEM.TypesForMembers.memberDefinableStiffness import MemberDefinableStiffness if __name__ == '__main__': - Model(True, "Demo1") + Model(True, "Demo2") Model.clientModel.service.begin_modification() Node(1, 0,0,0) diff --git a/UnitTests/test_Export.py b/UnitTests/test_Export.py index 8c4dbaf9..4b9c5278 100644 --- a/UnitTests/test_Export.py +++ b/UnitTests/test_Export.py @@ -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))