ourocode 2.1.2__tar.gz → 2.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ourocode-2.1.2/ourocode.egg-info → ourocode-2.1.4}/PKG-INFO +1 -1
- ourocode-2.1.4/ourocode/data/profil_acier.csv +21 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/core/objet.py +3 -3
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec1/exploitation.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec1/neige.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec1/vent.py +14 -29
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/assemblage/platine.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/assemblage/soudure.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/assemblage/tige.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/element_droit/__init__.py +2 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/element_droit/cisaillement.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/element_droit/compression.py +20 -12
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/element_droit/flexion.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/element_droit/plat.py +1 -1
- ourocode-2.1.4/ourocode/eurocode/ec3/element_droit/profil.py +125 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/element_droit/traction.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/feu.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/agrafe.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/assemblage.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/boulon.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/broche.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/embrevement.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/pointe.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/tirefond.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/cvt.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/element_droit/barre.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/element_droit/cisaillement.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/element_droit/compression.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/element_droit/flexion.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/element_droit/traction.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/element_droit/verification_EC5.py +174 -47
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/feu/cisaillement_feu.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/feu/compression_feu.py +4 -3
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/feu/feu.py +5 -10
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/feu/flexion_feu.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/feu/traction_feu.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec8/sismique.py +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/mixins/math_utils.py +38 -0
- {ourocode-2.1.2 → ourocode-2.1.4/ourocode.egg-info}/PKG-INFO +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode.egg-info/SOURCES.txt +3 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/pyproject.toml +1 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC3_Element_droit.py +97 -1
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC5_Verification.py +76 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/LICENSE +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/MANIFEST.in +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/README.md +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/__version__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/caracteristique_meca_acier.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/caracteristique_meca_beton.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/caracteristique_meca_bois.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/caracteristique_meca_panel.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/carte_action_region.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/coeff_psy.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/exploitation.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/gammaM.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/kdef.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/kfi.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/kmod.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/limite_fleche.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/qualite_acier.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/screenshot/C90_def.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/screenshot/CNC2M_4.3.3_tab15.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/screenshot/CNC2M_4.3.3_tab16.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/screenshot/EN1993-1-8_fig6_11.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/screenshot/Kv_def.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/screenshot/sign_convention.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/section_boulon.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/sismique/categorie_importance.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/sismique/categorie_importance_ns.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/sismique/classe_sol.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/sismique/spectre_eleastique_h_type1.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/sismique/spectre_eleastique_h_type2.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cp_toiture_isolee_1_versant.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cp_toiture_isolee_1_versant.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cp_toiture_isolee_2_versants.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cp_toiture_isolee_2_versants.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_mur_verticaux.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_mur_verticaux.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_1_versant.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_1_versant_0_degres.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_1_versant_180_degres.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_1_versant_90_degres.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_2_versants.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_2_versants_0_degres.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_2_versants_90_degres.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_terrasse.csv +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Cpe_toiture_terrasse.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/data/vent/vent_Ffr.png +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/core/__init__.py +0 -0
- /ourocode-2.1.2/ourocode/eurocode/core/renderer.py → /ourocode-2.1.4/ourocode/eurocode/core/_renderer.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/core/batiment.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/core/combinaison.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/core/model_generator.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/core/model_result.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/core/projet.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec1/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec3/assemblage/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/assemblage/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/blc.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/element_droit/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec5/feu/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/ec8/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/mixins/__init__.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/mixins/data_loader.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/mixins/serialization.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode/eurocode/mixins/synthese.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode.egg-info/dependency_links.txt +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode.egg-info/requires.txt +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/ourocode.egg-info/top_level.txt +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/setup.cfg +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_A0_Projet.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC0_Combinaison.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC1_Exploitation.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC1_Neige.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC3_Assemblage.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC3_Feu.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC3_Platine.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC5_Assemblage.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC5_BLC.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC5_CVT.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC5_Element_droit.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC5_Embrevement.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC5_Feu.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_EC8_Sismique.py +0 -0
- {ourocode-2.1.2 → ourocode-2.1.4}/tests/test_model_generator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ourocode
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.4
|
|
4
4
|
Summary: Ceci est un catalogue de fonction permettant une utilisation rapide pour la réalisation de note de calcul personnalisée.
|
|
5
5
|
Author-email: Anthony PARISOT <contact@ourea-structure.fr>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type;designation;h;b;tw;tf;r1;A;Av;Avz;Iy;Iz;Wely;Welz;Wply;Wplz;iy;iz;masse
|
|
2
|
+
A refaire complètement !
|
|
3
|
+
HEA;HEA 100;96;100;5.0;8.0;12;21.24;12.0;12.0;349;133.5;69.8;26.7;80.1;41.3;4.06;2.51
|
|
4
|
+
HEA;HEA 120;120;120;5.0;8.0;12;25.34;14.0;14.0;606;229.3;101.1;38.2;116.5;59.9;4.90;3.01
|
|
5
|
+
HEA;HEA 140;140;140;5.5;8.5;12;31.42;16.8;16.8;1033;389.2;147.6;55.6;172.5;89.3;5.74;3.52
|
|
6
|
+
HEA;HEA 160;160;160;6.0;9.0;15;38.77;20.2;20.2;1670;623.9;208.7;78.0;249.3;130.7;6.57;4.02
|
|
7
|
+
HEA;HEA 180;180;180;6.5;9.5;15;45.25;23.8;23.8;2510;924.6;278.9;102.7;329.8;171.7;7.45;4.52
|
|
8
|
+
HEA;HEA 200;200;200;7.0;10.0;18;53.83;27.6;27.6;3692;1335.6;369.2;133.6;431.6;222.8;8.28;4.98
|
|
9
|
+
HEA;HEA 220;220;220;7.5;10.5;18;63.53;31.6;31.6;5409;1955.4;492.6;177.8;571.8;294.4;9.23;5.55
|
|
10
|
+
HEA;HEA 240;240;240;7.5;11.0;21;73.85;36.0;36.0;7762;2768.7;646.8;230.7;773.2;391.2;10.27;6.13
|
|
11
|
+
HEA;HEA 260;260;260;8.0;11.5;21;84.37;40.6;40.6;10455;3667.6;804.3;282.1;959.1;507.6;11.11;6.60
|
|
12
|
+
HEA;HEA 280;280;280;8.5;12.0;24;97.30;46.2;46.2;13670;4762.8;976.4;339.9;1165.8;626.5;11.86;7.00
|
|
13
|
+
HEA;HEA 300;300;300;9.0;12.0;24;111.78;51.6;51.6;18262;6310.4;1217.5;420.7;1431.8;836.2;12.78;7.52
|
|
14
|
+
HEA;HEA 320;320;320;10.0;13.5;27;131.13;59.0;59.0;24529;8172.7;1533.0;510.8;1798.8;1072.3;13.70;7.89
|
|
15
|
+
HEA;HEA 340;340;340;10.0;14.5;27;142.94;65.4;65.4;31533;10474.3;1855.0;616.1;2158.9;1308.9;14.85;8.56
|
|
16
|
+
HEA;HEA 360;360;360;12.5;16.5;27;171.18;75.6;75.6;43191;14178.6;2399.5;787.7;2849.2;1674.9;15.88;9.10
|
|
17
|
+
HEA;HEA 400;400;400;13.5;18.0;27;198.58;86.2;86.2;63222;20580.3;3161.1;1029.0;3765.8;2191.2;17.85;10.19
|
|
18
|
+
HEA;HEA 450;450;450;14.0;20.0;27;237.66;100.2;100.2;93819;29798.3;4170.0;1324.4;4880.9;2816.3;19.88;11.19
|
|
19
|
+
HEA;HEA 500;500;500;16.0;23.0;27;298.31;123.4;123.4;131932;42385.5;5277.3;1695.4;6208.0;3616.8;21.04;11.93
|
|
20
|
+
HEA;HEA 550;550;550;16.5;24.5;27;354.41;143.8;143.8;178830;56837.2;6502.9;2066.8;7648.2;4388.9;22.44;12.67
|
|
21
|
+
HEA;HEA 600;600;600;18.0;28.0;27;428.31;170.4;170.4;238620;78762.8;7954.0;2625.4;9370.9;5318.6;23.63;13.57
|
|
@@ -115,7 +115,7 @@ class Objet(SerializationMixin, DataLoaderMixin, MathUtilsMixin, SyntheseMixin):
|
|
|
115
115
|
|
|
116
116
|
return numeric * self._PHYSICAL_UNITS[unit]
|
|
117
117
|
|
|
118
|
-
def get_value(self, value: dict|list|str, index: int=None, key: str=None, get_keys: bool=("False", "True"),):
|
|
118
|
+
def get_value(self, value: dict|list|str, index: int|None=None, key: str=None, get_keys: bool=("False", "True"),):
|
|
119
119
|
"""Extrait et retourne une valeur depuis une structure de données complexe.
|
|
120
120
|
|
|
121
121
|
Cette méthode utilitaire permet de naviguer dans les dictionnaires,
|
|
@@ -141,9 +141,9 @@ class Objet(SerializationMixin, DataLoaderMixin, MathUtilsMixin, SyntheseMixin):
|
|
|
141
141
|
>>> obj.get_value({"x": 1, "y": 2}, get_keys=True)
|
|
142
142
|
["x", "y"]
|
|
143
143
|
"""
|
|
144
|
-
if index and isinstance(value, list):
|
|
144
|
+
if index is not None and isinstance(value, list):
|
|
145
145
|
value = value[index]
|
|
146
|
-
elif index and isinstance(value, str):
|
|
146
|
+
elif index is not None and isinstance(value, str):
|
|
147
147
|
value = list(value)[index]
|
|
148
148
|
elif get_keys and isinstance(value, dict):
|
|
149
149
|
value = list(value.keys())
|
|
@@ -9,7 +9,8 @@ from copy import copy
|
|
|
9
9
|
|
|
10
10
|
import pandas as pd
|
|
11
11
|
import forallpeople as si
|
|
12
|
-
from ourocode.eurocode.core.
|
|
12
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
13
|
+
from ourocode.eurocode.mixins.math_utils import MathUtilsMixin
|
|
13
14
|
|
|
14
15
|
# sys.path.append(os.path.join(os.getcwd(), "ourocode"))
|
|
15
16
|
# from eurocode.A0_Projet import Batiment
|
|
@@ -18,22 +19,6 @@ from ourocode.eurocode.core.batiment import Batiment
|
|
|
18
19
|
si.environment("structural")
|
|
19
20
|
|
|
20
21
|
|
|
21
|
-
def interpolation_lineaire(x, xa, xb, ya, yb):
|
|
22
|
-
"""Fait une interpolation linéaire pour trouver un résultat y entre deux valeur xa et xb"""
|
|
23
|
-
y = ya + (x - xa) * ((yb - ya) / (xb - xa))
|
|
24
|
-
return y
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def interpolation_logarithmique(x, xa, xb, ya, yb):
|
|
28
|
-
"""Fait une interpolation linéaire pour trouver un résultat y entre deux valeur xa et xb"""
|
|
29
|
-
y = (
|
|
30
|
-
(x > xb) * yb
|
|
31
|
-
+ (x < xa) * ya
|
|
32
|
-
+ (x <= xb) * (x >= 1) * (ya - (ya - yb) * mt.log10(x))
|
|
33
|
-
)
|
|
34
|
-
return y
|
|
35
|
-
|
|
36
|
-
|
|
37
22
|
class Vent(Batiment):
|
|
38
23
|
RHO_AIR = 1.225 * si.kg / si.m**3
|
|
39
24
|
CPI = [0.2, -0.3]
|
|
@@ -581,7 +566,7 @@ class Murs_verticaux(Vent):
|
|
|
581
566
|
if borne_inf:
|
|
582
567
|
for i in range(self._df.shape[0]):
|
|
583
568
|
list_CPE_line.append(
|
|
584
|
-
interpolation_lineaire(
|
|
569
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
585
570
|
h_d,
|
|
586
571
|
borne_inf,
|
|
587
572
|
borne_sup,
|
|
@@ -598,7 +583,7 @@ class Murs_verticaux(Vent):
|
|
|
598
583
|
self._df.loc[self._df.shape[0]] = [
|
|
599
584
|
self._df.iloc[i, 0],
|
|
600
585
|
"CPE " + str(round(self.load_area, 2)),
|
|
601
|
-
interpolation_logarithmique(
|
|
586
|
+
MathUtilsMixin.interpolation_logarithmique(
|
|
602
587
|
self.load_area,
|
|
603
588
|
1,
|
|
604
589
|
10,
|
|
@@ -734,7 +719,7 @@ class Toiture_terrasse_acrotere(Vent):
|
|
|
734
719
|
row = [round(self._hp_h, 3), cpe]
|
|
735
720
|
for j in range(2, num_columns):
|
|
736
721
|
row.append(
|
|
737
|
-
interpolation_lineaire(
|
|
722
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
738
723
|
self._hp_h,
|
|
739
724
|
minimum,
|
|
740
725
|
maximum,
|
|
@@ -750,7 +735,7 @@ class Toiture_terrasse_acrotere(Vent):
|
|
|
750
735
|
row = [df.iloc[i, 0], "CPE " + str(round(self.load_area, 2))]
|
|
751
736
|
for j in range(2, num_columns):
|
|
752
737
|
row.append(
|
|
753
|
-
interpolation_logarithmique(
|
|
738
|
+
MathUtilsMixin.interpolation_logarithmique(
|
|
754
739
|
self.load_area, 1, 10, df.iloc[i + 1, j], df.iloc[i, j]
|
|
755
740
|
)
|
|
756
741
|
)
|
|
@@ -941,7 +926,7 @@ class Toiture_1_pant(Vent):
|
|
|
941
926
|
row.append(df_max.iloc[i, j])
|
|
942
927
|
else:
|
|
943
928
|
row.append(
|
|
944
|
-
interpolation_lineaire(
|
|
929
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
945
930
|
self.alpha_toit,
|
|
946
931
|
minimum,
|
|
947
932
|
maximum,
|
|
@@ -957,7 +942,7 @@ class Toiture_1_pant(Vent):
|
|
|
957
942
|
row = [df.iloc[i, 0], "CPE " + str(round(self.load_area, 2))]
|
|
958
943
|
for j in range(2, num_columns):
|
|
959
944
|
row.append(
|
|
960
|
-
interpolation_logarithmique(
|
|
945
|
+
MathUtilsMixin.interpolation_logarithmique(
|
|
961
946
|
self.load_area, 1, 10, df.iloc[i + 1, j], df.iloc[i, j]
|
|
962
947
|
)
|
|
963
948
|
)
|
|
@@ -1166,7 +1151,7 @@ class Toiture_2_pants(Vent):
|
|
|
1166
1151
|
row.append(df_max.iloc[i, j])
|
|
1167
1152
|
else:
|
|
1168
1153
|
row.append(
|
|
1169
|
-
interpolation_lineaire(
|
|
1154
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
1170
1155
|
self.alpha_toit,
|
|
1171
1156
|
minimum,
|
|
1172
1157
|
maximum,
|
|
@@ -1182,7 +1167,7 @@ class Toiture_2_pants(Vent):
|
|
|
1182
1167
|
row = [df.iloc[i, 0], "CPE " + str(round(self.load_area, 2))]
|
|
1183
1168
|
for j in range(2, num_columns):
|
|
1184
1169
|
row.append(
|
|
1185
|
-
interpolation_logarithmique(
|
|
1170
|
+
MathUtilsMixin.interpolation_logarithmique(
|
|
1186
1171
|
self.load_area, 1, 10, df.iloc[i + 1, j], df.iloc[i, j]
|
|
1187
1172
|
)
|
|
1188
1173
|
)
|
|
@@ -1304,7 +1289,7 @@ class Toiture_isolee_1_pant(Vent):
|
|
|
1304
1289
|
row = [self._df.iloc[i, 0], self.phi]
|
|
1305
1290
|
for j in range(2, 6):
|
|
1306
1291
|
row.append(
|
|
1307
|
-
interpolation_lineaire(
|
|
1292
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
1308
1293
|
self.phi,
|
|
1309
1294
|
0,
|
|
1310
1295
|
1,
|
|
@@ -1346,7 +1331,7 @@ class Toiture_isolee_1_pant(Vent):
|
|
|
1346
1331
|
row.append(df_max.iloc[i, j])
|
|
1347
1332
|
else:
|
|
1348
1333
|
row.append(
|
|
1349
|
-
interpolation_lineaire(
|
|
1334
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
1350
1335
|
self.alpha_toit,
|
|
1351
1336
|
minimum,
|
|
1352
1337
|
maximum,
|
|
@@ -1480,7 +1465,7 @@ class Toiture_isolee_2_pants(Vent):
|
|
|
1480
1465
|
row = [self._df.iloc[i, 0], self.phi]
|
|
1481
1466
|
for j in range(2, 7):
|
|
1482
1467
|
row.append(
|
|
1483
|
-
interpolation_lineaire(
|
|
1468
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
1484
1469
|
self.phi,
|
|
1485
1470
|
0,
|
|
1486
1471
|
1,
|
|
@@ -1522,7 +1507,7 @@ class Toiture_isolee_2_pants(Vent):
|
|
|
1522
1507
|
row.append(df_max.iloc[i, j])
|
|
1523
1508
|
else:
|
|
1524
1509
|
row.append(
|
|
1525
|
-
interpolation_lineaire(
|
|
1510
|
+
MathUtilsMixin.interpolation_lineaire(
|
|
1526
1511
|
self.alpha_toit,
|
|
1527
1512
|
minimum,
|
|
1528
1513
|
maximum,
|
|
@@ -6,7 +6,7 @@ import pandas as pd
|
|
|
6
6
|
|
|
7
7
|
import forallpeople as si
|
|
8
8
|
si.environment("structural")
|
|
9
|
-
from ourocode.eurocode.core.
|
|
9
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
10
10
|
|
|
11
11
|
from ourocode.eurocode.ec3.assemblage.tige import Tige
|
|
12
12
|
from ourocode.eurocode.ec3.element_droit.plat import Plat
|
|
@@ -9,7 +9,7 @@ import matplotlib.pyplot as plt
|
|
|
9
9
|
from matplotlib.patches import Rectangle, Circle
|
|
10
10
|
import forallpeople as si
|
|
11
11
|
si.environment("structural")
|
|
12
|
-
from ourocode.eurocode.core.
|
|
12
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
13
13
|
|
|
14
14
|
from ourocode.eurocode.ec3.element_droit.plat import Plat
|
|
15
15
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from ourocode.eurocode.ec3.element_droit.plat import Plat
|
|
2
|
+
from ourocode.eurocode.ec3.element_droit.profil import _Profil
|
|
2
3
|
from ourocode.eurocode.ec3.element_droit.traction import Traction
|
|
3
4
|
from ourocode.eurocode.ec3.element_droit.compression import Compression
|
|
4
5
|
from ourocode.eurocode.ec3.element_droit.cisaillement import Cisaillement
|
|
5
6
|
from ourocode.eurocode.ec3.element_droit.flexion import Flexion
|
|
6
7
|
|
|
7
|
-
__all__ = ["Plat", "Traction", "Compression", "Cisaillement", "Flexion"]
|
|
8
|
+
__all__ = ["Plat", "_Profil", "Traction", "Compression", "Cisaillement", "Flexion"]
|
|
@@ -5,7 +5,7 @@ from math import sqrt
|
|
|
5
5
|
|
|
6
6
|
import forallpeople as si
|
|
7
7
|
si.environment("structural")
|
|
8
|
-
from ourocode.eurocode.core.
|
|
8
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
9
9
|
|
|
10
10
|
from ourocode.eurocode.ec3.element_droit.plat import Plat
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ class Compression(Plat):
|
|
|
17
17
|
"Encastré - Rotule" : 0.7,
|
|
18
18
|
"Encastré - Encastré" : 0.5,
|
|
19
19
|
"Encastré - Rouleau" : 1}
|
|
20
|
-
def __init__(self, A: si.mm**2, Iy:si.mm**4, Iz:si.mm**4, lo_y: si.mm=0, lo_z: si.mm=0, courbe_flamb: dict="{'y':'c', 'z':'c'}",
|
|
20
|
+
def __init__(self, A: si.mm**2, Iy:si.mm**4, Iz:si.mm**4, lo_y: si.mm=0, lo_z: si.mm=0, courbe_flamb: dict="{'y':'c', 'z':'c'}", type_appuis_y: str=COEF_LF, type_appuis_z: str=COEF_LF, *args, **kwargs):
|
|
21
21
|
"""
|
|
22
22
|
Classe intégrant les formules de compression et d'instabilité au flambement à l'EC3.
|
|
23
23
|
Cette classe est hérité de la classe Plat du module EC3_Element_droit.py.
|
|
@@ -28,12 +28,18 @@ class Compression(Plat):
|
|
|
28
28
|
Iz (float): Moment quadratique suivant l'axe de rotation z en mm4
|
|
29
29
|
lo_y (float): Longueur de flambement suivant l'axe de rotation y en mm. Defaults to 0.
|
|
30
30
|
lo_z (float): Longueur de flambement suivant l'axe de rotation z en mm. Defaults to 0.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Encastré
|
|
35
|
-
|
|
36
|
-
Encastré -
|
|
31
|
+
type_appuis_y (str): Conditions d'appui pour le flambement selon l'axe de rotation y.
|
|
32
|
+
Détermine β_y dans lf_y = β_y · lo_y.
|
|
33
|
+
Valeurs possibles (voir COEF_LF):
|
|
34
|
+
- "Encastré 1 côté" : β = 2.0 (console)
|
|
35
|
+
- "Rotule - Rotule" : β = 1.0 (articulé-articulé)
|
|
36
|
+
- "Encastré - Rotule" : β = 0.7
|
|
37
|
+
- "Encastré - Encastré" : β = 0.5
|
|
38
|
+
- "Encastré - Rouleau" : β = 1.0 (encastré-glissière)
|
|
39
|
+
Defaults to "Rotule - Rotule".
|
|
40
|
+
type_appuis_z (str, optional): Conditions d'appui pour le flambement
|
|
41
|
+
selon l'axe de rotation z.
|
|
42
|
+
|
|
37
43
|
"""
|
|
38
44
|
super().__init__(*args, **kwargs)
|
|
39
45
|
self.A = A * si.mm**2
|
|
@@ -41,8 +47,10 @@ class Compression(Plat):
|
|
|
41
47
|
self.Iz = Iz * si.mm**4
|
|
42
48
|
self.lo ={'y': lo_y*si.mm, 'z': lo_z*si.mm}
|
|
43
49
|
self.courbe_flamb = courbe_flamb
|
|
44
|
-
self.
|
|
45
|
-
self.
|
|
50
|
+
self.type_appuis_y = type_appuis_y
|
|
51
|
+
self.type_appuis_z = type_appuis_z
|
|
52
|
+
self.coef_lef_y = self.COEF_LF[type_appuis_y]
|
|
53
|
+
self.coef_lef_z = self.COEF_LF[type_appuis_z]
|
|
46
54
|
|
|
47
55
|
|
|
48
56
|
|
|
@@ -76,8 +84,8 @@ class Compression(Plat):
|
|
|
76
84
|
dict: {"y": λ_y, "z": λ_z} (élancements sans unité).
|
|
77
85
|
"""
|
|
78
86
|
lamb = {'y':0, 'z':0}
|
|
79
|
-
lamb['y'] = (self.lo['y'].value * 10**3 * self.
|
|
80
|
-
lamb['z'] = (self.lo['z'].value * 10**3 * self.
|
|
87
|
+
lamb['y'] = (self.lo['y'].value * 10**3 * self.coef_lef_y) / mt.sqrt(self.Iy / (self.A))
|
|
88
|
+
lamb['z'] = (self.lo['z'].value * 10**3 * self.coef_lef_z) / mt.sqrt(self.Iz / (self.A))
|
|
81
89
|
return lamb
|
|
82
90
|
|
|
83
91
|
@property
|
|
@@ -5,7 +5,7 @@ from math import sqrt
|
|
|
5
5
|
|
|
6
6
|
import forallpeople as si
|
|
7
7
|
si.environment("structural")
|
|
8
|
-
from ourocode.eurocode.core.
|
|
8
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
9
9
|
|
|
10
10
|
from ourocode.eurocode.ec3.element_droit.plat import Plat
|
|
11
11
|
from ourocode.eurocode.ec3.element_droit.cisaillement import Cisaillement
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# coding in UTF-8
|
|
2
|
+
# by Anthony PARISOT
|
|
3
|
+
import pandas as pd
|
|
4
|
+
|
|
5
|
+
import forallpeople as si
|
|
6
|
+
si.environment("structural")
|
|
7
|
+
|
|
8
|
+
from ourocode.eurocode.ec3.element_droit.plat import Plat
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class _Profil(Plat):
|
|
12
|
+
"""Classe pour les profilés laminés acier selon EN 1993-1-1.
|
|
13
|
+
|
|
14
|
+
Permet de générer des poutres en I ou H (IPE, HEA, HEB, UPN, etc.)
|
|
15
|
+
à partir de désignations normalisées selon EN 10365.
|
|
16
|
+
|
|
17
|
+
Les caractéristiques géométriques sont chargées depuis le CSV
|
|
18
|
+
`profil_acier.csv` et les propriétés mécaniques (fy, fu) sont
|
|
19
|
+
déterminées selon la classe d'acier et l'épaisseur maximale.
|
|
20
|
+
|
|
21
|
+
Hérite de Plat pour être compatible avec les classes de vérification
|
|
22
|
+
(Compression, Traction, Flexion, Cisaillement) via _from_parent_class.
|
|
23
|
+
"""
|
|
24
|
+
# Chargement des données de profils
|
|
25
|
+
_PROFIL_DATA = Plat._data_from_csv(Plat, "profil_acier.csv", index_col=None)
|
|
26
|
+
TYPES_PROFIL = tuple(_PROFIL_DATA["type"].unique())
|
|
27
|
+
DESIGNATIONS = tuple(_PROFIL_DATA["designation"])
|
|
28
|
+
|
|
29
|
+
def __init__(self, designation: str, classe_acier: str = "S235",
|
|
30
|
+
classe_transv: int = 1, **kwargs):
|
|
31
|
+
"""Initialise un profilé laminé acier.
|
|
32
|
+
|
|
33
|
+
Args:
|
|
34
|
+
designation (str): Désignation du profil (ex: "IPE 300", "HEA 200", "HEB 260")
|
|
35
|
+
classe_acier (str, optional): Classe d'acier selon EN 1993-1-1 Tableau 3.1
|
|
36
|
+
(ex: "S235", "S275", "S355"). Defaults to "S235".
|
|
37
|
+
classe_transv (int, optional): Classe transversale de la section (1, 2 ou 3)
|
|
38
|
+
selon EN 1993-1-1 §5.5. Defaults to 1.
|
|
39
|
+
**kwargs: Arguments transmis à la classe parent Plat.
|
|
40
|
+
|
|
41
|
+
Raises:
|
|
42
|
+
ValueError: Si designation n'est pas dans DESIGNATIONS.
|
|
43
|
+
"""
|
|
44
|
+
# Validation de la désignation avant appel du parent
|
|
45
|
+
if designation not in self.DESIGNATIONS:
|
|
46
|
+
raise ValueError(
|
|
47
|
+
f"Désignation '{designation}' invalide. Valeurs acceptées : {self.DESIGNATIONS}"
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
self.designation = designation
|
|
51
|
+
|
|
52
|
+
# Chargement des données géométriques depuis le CSV
|
|
53
|
+
self._load_profil_data()
|
|
54
|
+
|
|
55
|
+
# Appel du parent Plat avec t=tw (épaisseur âme)
|
|
56
|
+
# h et b ne sont pas passés car ils seraient écrasés par Plat
|
|
57
|
+
super().__init__(t=self.tw.value*10**3, h=self.h.value*10**3, b=self.b.value*10**3,
|
|
58
|
+
classe_acier=classe_acier, classe_transv=classe_transv,
|
|
59
|
+
**kwargs)
|
|
60
|
+
|
|
61
|
+
# Restauration des valeurs de h et b après l'appel du parent
|
|
62
|
+
self.h = self._h_backup
|
|
63
|
+
self.b = self._b_backup
|
|
64
|
+
|
|
65
|
+
# Surcharge de fy et fu selon l'épaisseur maximale (max(tw, tf))
|
|
66
|
+
self.__fy_fu()
|
|
67
|
+
|
|
68
|
+
def _load_profil_data(self):
|
|
69
|
+
"""Charge les caractéristiques géométriques du profil depuis le CSV."""
|
|
70
|
+
df = self._PROFIL_DATA
|
|
71
|
+
profil = df[df["designation"] == self.designation].iloc[0]
|
|
72
|
+
|
|
73
|
+
# Dimensions géométriques
|
|
74
|
+
self.h = profil["h"] * si.mm
|
|
75
|
+
self.b = profil["b"] * si.mm
|
|
76
|
+
self.tw = profil["tw"] * si.mm # épaisseur âme
|
|
77
|
+
self.tf = profil["tf"] * si.mm # épaisseur semelle
|
|
78
|
+
self.r = profil["r"] * si.mm # rayon congé
|
|
79
|
+
|
|
80
|
+
# Sauvegarde pour restauration après appel super().__init__
|
|
81
|
+
self._h_backup = self.h
|
|
82
|
+
self._b_backup = self.b
|
|
83
|
+
|
|
84
|
+
# Caractéristiques de section
|
|
85
|
+
self.A = profil["A"] * si.mm**2
|
|
86
|
+
self.Av = profil["Av"] * si.mm**2
|
|
87
|
+
self.Avz = profil["Avz"] * si.mm**2 if pd.notna(profil["Avz"]) else None
|
|
88
|
+
|
|
89
|
+
# Moments quadratiques
|
|
90
|
+
self.Iy = profil["Iy"] * si.mm**4
|
|
91
|
+
self.Iz = profil["Iz"] * si.mm**4
|
|
92
|
+
|
|
93
|
+
# Modules de flexion
|
|
94
|
+
self.Wely = profil["Wely"] * si.mm**3
|
|
95
|
+
self.Welz = profil["Welz"] * si.mm**3
|
|
96
|
+
self.Wply = profil["Wply"] * si.mm**3
|
|
97
|
+
self.Wplz = profil["Wplz"] * si.mm**3
|
|
98
|
+
|
|
99
|
+
# Rayons de giration
|
|
100
|
+
self.iy = profil["iy"] * si.mm
|
|
101
|
+
self.iz = profil["iz"] * si.mm
|
|
102
|
+
|
|
103
|
+
# Masse linéique
|
|
104
|
+
self.masse = profil["masse"] * si.kg / si.m
|
|
105
|
+
|
|
106
|
+
def __fy_fu(self):
|
|
107
|
+
"""Définit fy et fu en fonction de la classe d'acier et de l'épaisseur maximale.
|
|
108
|
+
|
|
109
|
+
Surcharge la méthode de Plat pour utiliser max(tw, tf) au lieu de t uniquement,
|
|
110
|
+
car les profilés ont deux épaisseurs différentes (âme et semelle).
|
|
111
|
+
"""
|
|
112
|
+
t_max = max(self.tw, self.tf)
|
|
113
|
+
|
|
114
|
+
if t_max <= 40 * si.mm:
|
|
115
|
+
self.fy = self._Plat__classe_acier.loc["t<= 40 fy"] * si.MPa
|
|
116
|
+
self.fu = self._Plat__classe_acier.loc["t<= 40 fu"] * si.MPa
|
|
117
|
+
elif 40 * si.mm < t_max <= 80 * si.mm:
|
|
118
|
+
self.fy = self._Plat__classe_acier.loc["40<t<= 80 fy"] * si.MPa
|
|
119
|
+
self.fu = self._Plat__classe_acier.loc["40<t<= 80 fu"] * si.MPa
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def type_profil(self):
|
|
123
|
+
"""Retourne le type de profil (IPE, HEA, HEB, etc.)."""
|
|
124
|
+
df = self._PROFIL_DATA
|
|
125
|
+
return df[df["designation"] == self.designation].iloc[0]["type"]
|
|
@@ -6,7 +6,7 @@ from matplotlib import pyplot as plt
|
|
|
6
6
|
|
|
7
7
|
import forallpeople as si
|
|
8
8
|
si.environment("structural")
|
|
9
|
-
from ourocode.eurocode.core.
|
|
9
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
10
10
|
|
|
11
11
|
# sys.path.append(os.path.join(os.getcwd(), "ourocode"))
|
|
12
12
|
# from eurocode.EC3_Element_droit import Plat
|
|
@@ -7,7 +7,7 @@ from math import sin, cos, radians, sqrt, pi
|
|
|
7
7
|
|
|
8
8
|
import forallpeople as si
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.ec5.assemblage.pointe import Pointe
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ from math import sin, cos, radians, sqrt, pi
|
|
|
7
7
|
|
|
8
8
|
import forallpeople as si
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.core.projet import Projet
|
|
13
13
|
from ourocode.eurocode.ec5.element_droit.barre import Barre
|
|
@@ -7,7 +7,7 @@ from math import sin, cos, radians, sqrt, pi
|
|
|
7
7
|
|
|
8
8
|
import forallpeople as si
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.ec5.assemblage.assemblage import Assemblage
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ from math import sin, cos, radians, sqrt, pi
|
|
|
7
7
|
|
|
8
8
|
import forallpeople as si
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.ec5.assemblage.boulon import Boulon
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ from math import sin, cos, radians, sqrt, pi
|
|
|
7
7
|
|
|
8
8
|
import forallpeople as si
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.ec5.assemblage.assemblage import Assemblage
|
|
13
13
|
from ourocode.eurocode.ec5.element_droit.barre import Barre
|
|
@@ -7,7 +7,7 @@ from math import sin, cos, radians, sqrt, pi
|
|
|
7
7
|
|
|
8
8
|
import forallpeople as si
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.ec5.assemblage.assemblage import Assemblage, interpolationLineaire
|
|
13
13
|
|
|
@@ -7,7 +7,7 @@ from math import sin, cos, radians, sqrt, pi
|
|
|
7
7
|
|
|
8
8
|
import forallpeople as si
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.ec5.assemblage.pointe import Pointe
|
|
13
13
|
from ourocode.eurocode.ec5.assemblage.boulon import Boulon
|
|
@@ -7,7 +7,7 @@ import numpy as np
|
|
|
7
7
|
import forallpeople as si
|
|
8
8
|
|
|
9
9
|
si.environment("structural")
|
|
10
|
-
from ourocode.eurocode.core.
|
|
10
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
11
11
|
|
|
12
12
|
from ourocode.eurocode.core.batiment import Batiment
|
|
13
13
|
from ourocode.eurocode.ec5.assemblage import Assemblage
|
|
@@ -10,7 +10,7 @@ import numpy as np
|
|
|
10
10
|
|
|
11
11
|
import forallpeople as si
|
|
12
12
|
si.environment("structural")
|
|
13
|
-
from ourocode.eurocode.core.
|
|
13
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
14
14
|
|
|
15
15
|
from ourocode.eurocode.ec5.element_droit.barre import Barre
|
|
16
16
|
|
|
@@ -10,7 +10,7 @@ import numpy as np
|
|
|
10
10
|
|
|
11
11
|
import forallpeople as si
|
|
12
12
|
si.environment("structural")
|
|
13
|
-
from ourocode.eurocode.core.
|
|
13
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
14
14
|
|
|
15
15
|
from ourocode.eurocode.ec5.element_droit.barre import Barre
|
|
16
16
|
|
|
@@ -10,7 +10,7 @@ import numpy as np
|
|
|
10
10
|
|
|
11
11
|
import forallpeople as si
|
|
12
12
|
si.environment("structural")
|
|
13
|
-
from ourocode.eurocode.core.
|
|
13
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
14
14
|
|
|
15
15
|
from ourocode.eurocode.ec5.element_droit.barre import Barre
|
|
16
16
|
from ourocode.eurocode.ec5.element_droit.compression import Compression
|
|
@@ -10,7 +10,7 @@ import numpy as np
|
|
|
10
10
|
|
|
11
11
|
import forallpeople as si
|
|
12
12
|
si.environment("structural")
|
|
13
|
-
from ourocode.eurocode.core.
|
|
13
|
+
from ourocode.eurocode.core._renderer import handcalc
|
|
14
14
|
|
|
15
15
|
from ourocode.eurocode.ec5.element_droit.barre import Barre
|
|
16
16
|
|