Skip to content

Commit f7d419f

Browse files
authored
Merge pull request #325 from Dlubal-Software/heet-aluminumDesign
Heet aluminum design
2 parents 154a4e9 + 3501ded commit f7d419f

File tree

5 files changed

+229
-0
lines changed

5 files changed

+229
-0
lines changed

RFEM/AluminumDesign/__init__.py

Whitespace-only changes.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
from RFEM.initModel import Model, clearAttributes, deleteEmptyAttributes, ConvertToDlString
2+
3+
class AluminumDesignSLSConfigurations():
4+
5+
def __init__(self,
6+
no: int = 1,
7+
name: str = 'SLS1',
8+
members_no: str = 'All',
9+
member_sets_no: str = 'All',
10+
comment: str = '',
11+
params: dict = None,
12+
model = Model):
13+
14+
"""
15+
Args:
16+
no (int): Aluminum Design Serviceability Limit State Configuration Tag
17+
name (str): User Defined Configuration Name
18+
members_no (str): Assign Configuration to Selected Members
19+
member_sets_no (str): Assign Configuration to Selected Member Sets
20+
comment (str, optional): Comment
21+
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
22+
model (RFEM Class, optional): Model to be edited
23+
"""
24+
25+
# Client Model | Aluminum Design Serviceability Limit State Configurations
26+
clientObject = model.clientModel.factory.create('ns0:aluminum_design_sls_configuration')
27+
28+
# Clears object atributes | Sets all atributes to None
29+
clearAttributes(clientObject)
30+
31+
# ULS Configuration No.
32+
clientObject.no = no
33+
34+
# User Defined Name
35+
if name:
36+
clientObject.user_defined_name_enabled = True
37+
clientObject.name = name
38+
39+
# Assigned Members
40+
if members_no == 'All':
41+
clientObject.assigned_to_all_members = True
42+
43+
else:
44+
clientObject.assigned_to_all_members = False
45+
clientObject.assigned_to_members = ConvertToDlString(members_no)
46+
47+
# Assigned Member Sets
48+
if member_sets_no == 'All':
49+
clientObject.assigned_to_all_member_sets = True
50+
51+
else:
52+
clientObject.assigned_to_all_member_sets = False
53+
clientObject.assigned_to_member_sets = ConvertToDlString(member_sets_no)
54+
55+
# Comment
56+
clientObject.comment = comment
57+
58+
# Adding optional parameters via dictionary
59+
if params:
60+
for key in params:
61+
clientObject[key] = params[key]
62+
63+
# Delete None attributes for improved performance
64+
deleteEmptyAttributes(clientObject)
65+
66+
# Add Aluminum Design SLS Configuration to Client Model
67+
model.clientModel.service.set_aluminum_design_sls_configuration(clientObject)
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from RFEM.initModel import Model, clearAttributes, deleteEmptyAttributes, ConvertToDlString
2+
3+
class AluminumDesignULSConfigurations():
4+
5+
def __init__(self,
6+
no: int = 1,
7+
name: str = 'ULS1',
8+
members_no: str = 'All',
9+
member_sets_no: str = 'All',
10+
comment: str = '',
11+
params: dict = None,
12+
model = Model):
13+
14+
"""
15+
Args:
16+
no (int): Aluminum Design Ultimate Limit State Configuration Tag
17+
name (str): User Defined Configuration Name
18+
members_no (str): Assign Configuration to Selected Members
19+
member_sets_no (str): Assign Configuration to Selected Member Sets
20+
comment (str, optional): Comment
21+
params (dict, optional): Any WS Parameter relevant to the object and its value in form of a dictionary
22+
model (RFEM Class, optional): Model to be edited
23+
"""
24+
25+
# Client Model | Aluminum Design Ultimate Limit State Configurations
26+
clientObject = model.clientModel.factory.create('ns0:aluminum_design_uls_configuration')
27+
28+
# Clears object atributes | Sets all atributes to None
29+
clearAttributes(clientObject)
30+
31+
# ULS Configuration No.
32+
clientObject.no = no
33+
34+
# User Defined Name
35+
if name:
36+
clientObject.user_defined_name_enabled = True
37+
clientObject.name = name
38+
39+
# Assigned Members
40+
if members_no == 'All':
41+
clientObject.assigned_to_all_members = True
42+
43+
else:
44+
clientObject.assigned_to_all_members = False
45+
clientObject.assigned_to_members = ConvertToDlString(members_no)
46+
47+
# Assigned Member Sets
48+
if member_sets_no == 'All':
49+
clientObject.assigned_to_all_member_sets = True
50+
51+
else:
52+
clientObject.assigned_to_all_member_sets = False
53+
clientObject.assigned_to_member_sets = ConvertToDlString(member_sets_no)
54+
55+
# Comment
56+
clientObject.comment = comment
57+
58+
# Adding optional parameters via dictionary
59+
if params:
60+
for key in params:
61+
clientObject[key] = params[key]
62+
63+
# Delete None attributes for improved performance
64+
deleteEmptyAttributes(clientObject)
65+
66+
# Add Aluminum Design ULS Configuration to Client Model
67+
model.clientModel.service.set_aluminum_design_uls_configuration(clientObject)
68+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import os
2+
import sys
3+
PROJECT_ROOT = os.path.abspath(os.path.join(
4+
os.path.dirname(__file__),
5+
os.pardir)
6+
)
7+
sys.path.append(PROJECT_ROOT)
8+
9+
from RFEM.enums import AddOn, NodalSupportType
10+
from RFEM.initModel import Model, SetAddonStatus
11+
from RFEM.BasicObjects.material import Material
12+
from RFEM.BasicObjects.section import Section
13+
from RFEM.BasicObjects.node import Node
14+
from RFEM.BasicObjects.member import Member
15+
from RFEM.TypesForNodes.nodalSupport import NodalSupport
16+
from RFEM.AluminumDesign.aluminumSLSConfiguration import AluminumDesignSLSConfigurations
17+
18+
if Model.clientModel is None:
19+
Model()
20+
21+
def test_AluminumDesignServiceabilityConfigurations():
22+
23+
Model.clientModel.service.delete_all()
24+
Model.clientModel.service.begin_modification()
25+
26+
SetAddonStatus(Model.clientModel, addOn=AddOn.aluminum_design_active, status=True)
27+
28+
Material(1, 'EN AW-3004 H24 | EN 1999-1-1:2007')
29+
30+
Section(1, 'IPE 200')
31+
32+
Node(1, 0.0, 0.0, 0.0)
33+
Node(2, 5, 0.0, 0.0)
34+
35+
Member(1, 1, 2, 0.0, 1, 1)
36+
37+
NodalSupport(1, '1', NodalSupportType.FIXED)
38+
39+
AluminumDesignSLSConfigurations(1, 'Test SLS')
40+
AluminumDesignSLSConfigurations(2, 'SLS2', '1')
41+
42+
Model.clientModel.service.finish_modification()
43+
44+
config1 = Model.clientModel.service.get_aluminum_design_sls_configuration(1)
45+
config2 = Model.clientModel.service.get_aluminum_design_sls_configuration(2)
46+
47+
assert config1.name == "Test SLS"
48+
assert config2.assigned_to_members == '1'
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import os
2+
import sys
3+
PROJECT_ROOT = os.path.abspath(os.path.join(
4+
os.path.dirname(__file__),
5+
os.pardir)
6+
)
7+
sys.path.append(PROJECT_ROOT)
8+
9+
from RFEM.enums import AddOn, NodalSupportType
10+
from RFEM.initModel import Model, SetAddonStatus
11+
from RFEM.BasicObjects.material import Material
12+
from RFEM.BasicObjects.section import Section
13+
from RFEM.BasicObjects.node import Node
14+
from RFEM.BasicObjects.member import Member
15+
from RFEM.TypesForNodes.nodalSupport import NodalSupport
16+
from RFEM.AluminumDesign.aluminumULSConfiguration import AluminumDesignULSConfigurations
17+
18+
if Model.clientModel is None:
19+
Model()
20+
21+
def test_AluminumDesignUltimateConfigurations():
22+
23+
Model.clientModel.service.delete_all()
24+
Model.clientModel.service.begin_modification()
25+
26+
SetAddonStatus(Model.clientModel, addOn=AddOn.aluminum_design_active, status=True)
27+
28+
Material(1, 'EN AW-3004 H24 | EN 1999-1-1:2007')
29+
30+
Section(1, 'IPE 200')
31+
32+
Node(1, 0.0, 0.0, 0.0)
33+
Node(2, 5, 0.0, 0.0)
34+
35+
Member(1, 1, 2, 0.0, 1, 1)
36+
37+
NodalSupport(1, '1', NodalSupportType.FIXED)
38+
39+
AluminumDesignULSConfigurations(1, name="myConfig")
40+
41+
Model.clientModel.service.finish_modification()
42+
43+
config = Model.clientModel.service.get_aluminum_design_uls_configuration(1)
44+
45+
assert config.name == "myConfig"
46+
assert config.assigned_to_all_members == True

0 commit comments

Comments
 (0)