Aller au contenu

EC5_Element_droit — EN 1995-1-1

Vérification des éléments droits en bois selon EN 1995-1-1.

element_droit

__all__ module-attribute

__all__ = ['Barre', 'Flexion', 'Traction', 'Compression', 'Compression_perpendiculaire', 'Compression_inclinees', 'Cisaillement', 'Verification_EC5']

Barre

Barre(b: mm, h: mm, section: str = LIST_SECTION, Hi: int = 12, Hf: int = 12, classe: str = CLASSE, cs: int = CS, effet_systeme: bool = ('False', 'True'), **kwargs)

Bases: Projet

Classe définissant les caractéristiques d'un élément droit en bois.

Cette classe décrit la géométrie, la classe de résistance et les conditions d'exploitation d'une barre (poutre, colonne) selon l'EN 1995.

Elle calcule automatiquement les dimensions de section en fonction de l'humidité de pose (retrait/gonflement) et donne accès aux caractéristiques mécaniques normatives du matériau.

Initialise un élément droit en bois avec ses caractéristiques.

Parameters:

Name Type Description Default
b mm

Largeur de pose de la pièce en millimètres (dimension brute).

required
h mm

Hauteur de pose de la pièce en millimètres (dimension brute).

required
section str

Type de section transversale. "Rectangulaire" ou "Circulaire". Defaults to "Rectangulaire".

LIST_SECTION
Hi int

Humidité initiale de pose en %. Humidité au moment de la fabrication/pose. Defaults to 12.

12
Hf int

Humidité finale d'équilibre en % selon l'AN (Hf = 12). Humidité en service. Defaults to 12.

12
classe str

Classe de résistance du bois selon l'EC5. Ex: "C24", "GL28h", "LVL". Defaults to "C24".

CLASSE
cs int

Classe de service selon l'EC5 §2.3.1.3. 1 = intérieur chauffé, 2 = couvert non chauffé, 3 = extérieur. Defaults to 1.

CS
effet_systeme bool

Active l'effet de système (k_sys = 1.1) pour les éléments permettant une redistribution des charges (solives avec répartition continue). Defaults to False.

('False', 'True')
**kwargs

Arguments supplémentaires transmis à Projet.

{}
Note

Les dimensions de calcul (b_calcul, h_calcul) sont automatiquement ajustées pour tenir compte du retrait si Hi > Hf (AN B90 = 0.25%).

Raises:

Type Description
ValueError

Si la section, la classe ou la classe de service est invalide.

inertie property

inertie: list

Retourne le moment quadratique d'une section rectangulaire en mm4 avec pour argument : b ou d : Largeur ou diamètre de la poutre en mm h : Hauteur de la poutre en mm

caract_meca property

caract_meca: Series

Retourne les caractéristiques méca du bois sous forme de dataframe pandas

gamma_M_table property

gamma_M_table: Series

Retourne le tableau des gamma M pour le type de bois sélectionné

K_mod_table property

K_mod_table

Retourne le tableau des Kmod du bois

k_sys property

k_sys

Détermine le Ksys d'un élément si celui-ci permet une redistribution des charges continues.

Emean_fin

Emean_fin(psy_2: float) -> tuple

Calcule le module de Young final E_mean,fin selon l'EC5 §2.3.2.2.

Le module final tient compte du fluage par la formule : E_mean,fin = E_0,mean / (1 + psi_2 × k_def)

où psi_2 est le coefficient de combinaison quasi-permanente et k_def dépend de la classe de service et du type de bois.

Parameters:

Name Type Description Default
psy_2 float

Coefficient psi_2 de la combinaison quasi-permanente. 0 pour le court terme, 1 pour le long terme, ou valeur calculée.

required

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est E_mean,fin en MPa.

Note

Ce module final est utilisé pour les calculs de flèche en ELS selon l'EC5 §2.2.3 et §7.2.

fleche

fleche(long: mm, Ed_WinstQ: mm = 0, Ed_Wnetfin: mm = 0, Ed_Wfin: mm = 0, Ed_W2: mm = 0, limit_W2: int = 500, type_ele=TYPE_ELE, type_bat=TYPE_BAT) -> tuple

Vérifie les taux de travail des flèches selon l'EC5 §7.2.

Compare les flèches calculées aux limites normatives pour différents critères ELS. Génère automatiquement un tableau de synthèse avec _add_synthese_taux_travail.

Parameters:

Name Type Description Default
long mm

Portée entre appuis à vérifier en millimètres.

required
Ed_WinstQ mm

Flèche instantanée sous charge variable Q seule. Defaults to 0.

0
Ed_Wnetfin mm

Flèche nette finale (sous combinaison quasi-permanente). Defaults to 0.

0
Ed_Wfin mm

Flèche finale totale (y compris fluage). Defaults to 0.

0
Ed_W2 mm

Flèche w2 tenant compte du phasage de pose pour éléments fragiles (cloisons, platrerie). Defaults to 0.

0
limit_W2 int

Limite de flèche w2 pour éléments fragiles. Valeur courante : 500 (L/500). Defaults to 500.

500
type_ele str

Type d'élément selon limite_fleche.csv.

TYPE_ELE
type_bat str

Type de bâtiment.

TYPE_BAT

Returns:

Name Type Description
tuple tuple

(latex_string, valeurs) où valeurs contient les taux de travail.

Note

Les limites de flèche sont définies dans le fichier limite_fleche.csv selon les recommandations de l'Annexe Nationale française.

Flexion

Flexion(lo_rel_y: mm, lo_rel_z: mm, coeflef_y: float = 0.9, coeflef_z: float = 0.9, pos: str = LOAD_POS, *args, **kwargs)

Bases: Barre

Classe de vérification à la flexion selon l'EN 1995-1-1 §6.1.6, §6.2.3, §6.2.4 et §6.3.3.

Cette classe effectue les vérifications de résistance à la flexion et de stabilité au déversement (flambement latéral) pour des poutres en bois.

Elle hérite de la classe Barre pour récupérer les caractéristiques géométriques et mécaniques, et utilise le pattern _from_parent_class pour l'enchaînement des vérifications.

Initialise une vérification en flexion avec paramètres de déversement.

Parameters:

Name Type Description Default
lo_rel_y mm

Longueur de déversement effective autour de l'axe Y (entre appuis latéraux), en millimètres.

required
lo_rel_z mm

Longueur de déversement effective autour de l'axe Z, en millimètres.

required
coeflef_y float

Coefficient de longueur efficace selon l'EC5. - Appuis simple : 1.0 (moment constant), 0.9 (charge répartie), 0.8 (charge concentrée centrale) - Porte-à-faux : 0.5 (charge répartie), 0.8 (charge concentrée bout) Defaults to 0.9.

0.9
coeflef_z float

Idem pour l'axe Z. Defaults to 0.9.

0.9
pos str

Position de la charge verticale sur la hauteur. "Charge sur fibre comprimée": charge au-dessus de l'axe neutre (aggrave le déversement, +2h sur l_ef) "Charge sur fibre neutre": charge au centre de gravité "Charge sur fibre tendue": charge en dessous de l'axe neutre (favorise la stabilité, -0.5h sur l_ef)

LOAD_POS
*args

Arguments transmis à la classe parent Barre.

()
**kwargs

Arguments nommés transmis à Barre (b, h, classe, etc.).

{}
Note

La longueur efficace de déversement l_ef est calculée par : l_ef = lo_rel × coeflef (+ correction selon pos)

K_h property

K_h

Retourne le coef. Kh qui peut augmenter la resistance caractéristique fm,k et ft,k

K_m property

K_m

Coefficient de distribution des contraintes K_m selon l'EC5 §6.1.6.

Ce coefficient réduit la contrainte de flexion calculée pour les sections rectangulaires en bois massif, BLC ou LVL afin de tenir compte de la redistribution plastique des contraintes.

Returns:

Name Type Description
float

Valeur de K_m. - 0.7 pour les sections rectangulaires en bois massif, BLC, LVL - 1.0 pour les sections circulaires ou les panneaux dérivés

sigma_m_crit property

sigma_m_crit: tuple

Contrainte critique de déversement sigma_m,crit selon l'EC5 §6.3.3.

Calculée par la formule de l'EC5 : sigma_m,crit = (0.78 × b² × E_0,05) / (h × l_ef)

Cette contrainte caractérise la stabilité latérale de la poutre. Elle est corrigée en fonction de la position de la charge (pos).

Returns:

Name Type Description
tuple tuple

(latex_string, valeurs) où valeurs est un dict {'y': ..., 'z': ...} avec les contraintes critiques pour chaque direction.

lamb_rel_m property

lamb_rel_m: tuple

Élancement relatif en flexion lambda_rel,m selon l'EC5 §6.3.3.

Rapport entre la résistance caractéristique et la contrainte critique : lambda_rel,m = sqrt(f_m,k / sigma_m,crit)

Cet élancement caractérise le risque de déversement : - lambda_rel,m <= 0.75 : pas de risque de déversement (K_crit = 1) - 0.75 < lambda_rel,m <= 1.4 : zone de transition - lambda_rel,m > 1.4 : risque élevé de déversement

Returns:

Name Type Description
tuple tuple

(latex_string, valeurs) où valeurs est un dict {'y': ..., 'z': ...} avec les élancements relatifs pour chaque direction.

K_crit property

K_crit

Coefficient de déversement K_crit selon l'EC5 §6.3.3.

    Ce coefficient minore la résistance à la flexion pour tenir compte

du risque de déversement latéral. Il dépend de l'élancement relatif :

    - lambda_rel,m <= 0.75 : K_crit = 1 (pas de déversement)
    - 0.75 < lambda_rel,m <= 1.4 : K_crit = 1.56 - 0.75 × lambda_rel,m
    - lambda_rel,m > 1.4 : K_crit = 1 / lambda_rel,m²

    Returns:
        tuple: (latex_string, valeurs) où valeurs est un dict {'y': ..., 'z': ...}
            avec les coefficients de déversement pour chaque direction.

    Note:
        La vérification finale utilise : sigma_m,d <= K_crit × f_m,d

f_m_d

f_m_d(loadtype=Barre.LOAD_TIME, typecombi=Barre.TYPE_ACTION)

Calcule la résistance de calcul en flexion f_m,d selon l'EC5 §6.1.6.

La résistance est déterminée à partir de la résistance caractéristique fm,0,k et des coefficients de modification (kmod, γM).

Parameters:

Name Type Description Default
loadtype str

Classe de durée de chargement (permanent, long terme, etc.). Voir Barre.LOAD_TIME pour les valeurs possibles.

LOAD_TIME
typecombi str

Type de combinaison d'actions. "fondamentale" ou "accidentelle". Defaults to "fondamentale".

TYPE_ACTION

Returns:

Name Type Description
float

Résistance de calcul fm,d en MPa avec unité (si.MPa).

sigma_m_d

sigma_m_d(My: kN * m, Mz: kN * m) -> tuple

Calcule les contraintes de flexion sigma_m,d selon l'EC5 §6.1.6.

Détermine les contraintes normales dues aux moments fléchissants My et Mz en utilisant la formule de Navier : σ = M·y/I

Parameters:

Name Type Description Default
My kN * m

Moment fléchissant autour de l'axe y (moment vertical) en kN·m. Mettre 0 si pas de flexion selon cet axe.

required
Mz kN * m

Moment fléchissant autour de l'axe z (moment horizontal) en kN·m. Mettre 0 si pas de flexion selon cet axe.

required

Returns:

Name Type Description
tuple tuple

(latex_string, valeurs) où valeurs est un dictionnaire : {"y": sigma_my_d, "z": sigma_mz_d} en MPa avec unités.

Note

Les valeurs sont stockées dans l'attribut sigma_m_rd. Pour une section rectangulaire : sigma = M·h/(2·I) = 6·M/(b·h²)

taux_m_d

taux_m_d(compression: object = None, traction: object = None) -> tuple

Calcule les taux de travail en flexion selon l'EC5 §6.1.6, §6.2.3 et §6.3.3.

Vérifie les critères de résistance en flexion pure, flexion déviée, flexo-compression et flexo-traction selon les équations : - 6.11 et 6.12 : Flexion déviée avec K_m (facteur de distribution) - 6.33 : Flexion avec déversement (K_crit) - 6.17-6.20 : Combinaisons flexion + traction/compression - 6.35 : Flexo-compression avec risque de déversement

Parameters:

Name Type Description Default
compression Compression

Objet Compression déjà calculé pour les combinaisons flexo-compression. Defaults to None.

None
traction Traction

Objet Traction déjà calculé pour les combinaisons flexo-traction. Defaults to None.

None

Returns:

Name Type Description
tuple tuple

(latex_string, taux_dict) où taux_dict contient : - "equ6.11", "equ6.12" : Flexion déviée - "equ6.33y", "equ6.33z" : Flexion avec déversement - "equ6.17", "equ6.18" : Flexion + traction (si traction fournie) - "equ6.19", "equ6.20" : Flexion + compression (si compression fournie) - "equ6.23-6.35" : Combinaisons avancées (si compression fournie) Valeurs en pourcentage (0.85 = 85%).

Note

Cette méthode met à jour automatiquement la synthèse des taux de travail via _add_synthese_taux_travail.

Traction

Traction(*args, **kwargs)

Bases: Barre

Classe de vérification des éléments bois en traction axiale selon l'EC5 §6.1.2.

Effectue les calculs de résistance et de contrainte en traction axiale selon l'Eurocode 5 - Partie 1-1. Hérite de Barre pour les caractéristiques géométriques et mécaniques.

La vérification principale est le taux de travail en traction (équation 6.1): σ_t,0,d / (f_t,0,d · k_h) ≤ 1

Initialise un objet de vérification en traction axiale.

Hérite de toutes les caractéristiques de Barre (section, classe de bois, etc.). Aucun paramètre supplémentaire requis à l'initialisation.

Parameters:

Name Type Description Default
*args

Arguments positionnels transmis à Barre.

()
**kwargs

Arguments nommés transmis à Barre (b, h, classe, etc.).

{}

K_h property

K_h

Retourne le coef. Kh qui peut augmenter la resistance caractéristique fm,k et ft,k

f_t_0_d

f_t_0_d(loadtype=Barre.LOAD_TIME, typecombi=Barre.TYPE_ACTION)

Calcule la résistance de calcul en traction axiale f_t,0,d selon l'EC5 §6.1.2.

Détermine la résistance à partir de la résistance caractéristique ft,0,k et des coefficients de modification (kmod, γM).

Parameters:

Name Type Description Default
loadtype str

Classe de durée de chargement. Voir Barre.LOAD_TIME pour les valeurs possibles.

LOAD_TIME
typecombi str

Type de combinaison d'actions. "fondamentale" ou "accidentelle". Defaults to "fondamentale".

TYPE_ACTION

Returns:

Name Type Description
float

Résistance de calcul ft,0,d en MPa avec unité (si.MPa).

sigma_t_0_d

sigma_t_0_d(Ft0d: kN, Anet: mm ** 2 = None) -> tuple

Calcule la contrainte de traction axiale sigma_t,0,d selon l'EC5 §6.1.2.

Détermine la contrainte normale due à l'effort de traction axial. Prend en compte une section nette réduite (perçages, entailles) si spécifiée.

Parameters:

Name Type Description Default
Ft0d kN

Effort de traction axial en kN.

required
Anet mm ** 2

Aire nette de la section en mm² si réduction (perçages, entailles). Doit être ≤ aire brute. Defaults to None.

None

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est sigma_t,0,d en MPa avec unité.

Raises:

Type Description
ValueError

Si Anet > aire brute de la section.

Note

La valeur est stockée dans l'attribut sigma_t_0_rd. Pour les assemblages boulonnés, utiliser Anet pour tenir compte des trous.

taux_t_0_d

taux_t_0_d() -> tuple

Calcule le taux de travail en traction axiale selon l'EC5 §6.1.2 (Eq. 6.1).

Vérifie le critère : σ_t,0,d / (k_h · f_t,0,d) ≤ 1

Le coefficient k_h (effet de hauteur) est pris comme le minimum des valeurs selon y et z pour être conservateur.

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est le taux en pourcentage (0.75 = 75%). Stocké dans taux_t_0_rd['equ6.1'].

Note

Cette méthode met à jour automatiquement la synthèse des taux de travail via _add_synthese_taux_travail.

Compression

Compression(lo_y: mm, lo_z: mm, type_appuis_y: str = COEF_LF, type_appuis_z: str = COEF_LF, *args, **kwargs)

Bases: Barre

Classe de vérification des éléments bois en compression axiale selon l'EC5 §6.2 et §6.3.2.

Effectue les calculs de résistance, élancement et flambement selon l'Eurocode 5 - Partie 1-1. Hérite de Barre pour les caractéristiques géométriques et mécaniques.

Vérifie : - La résistance en compression axiale (§6.2.2, Eq. 6.2) - Le flambement avec coefficient kc (§6.3.2, Eq. 6.23-6.24) - Les combinaisons flexo-compression (si objet Flexion fourni)

Initialise un objet de vérification en compression axiale.

Définit les longueurs de flambement et les coefficients de longueur efficace par axe selon les conditions d'appui.

Parameters:

Name Type Description Default
lo_y mm

Longueur de flambement suivant l'axe de rotation y en mm (flèche dans la direction z). Mettre 0 si pas de risque de flambement selon cet axe.

required
lo_z mm

Longueur de flambement suivant l'axe de rotation z en mm (flèche dans la direction y). Mettre 0 si pas de risque de flambement selon cet axe.

required
type_appuis_y str

Conditions d'appui pour le flambement selon l'axe de rotation y. Détermine β_y dans lf_y = β_y · lo_y. Valeurs possibles (voir COEF_LF): - "Encastré 1 côté" : β = 2.0 (console) - "Rotule - Rotule" : β = 1.0 (articulé-articulé) - "Encastré - Rotule" : β = 0.7 - "Encastré - Encastré" : β = 0.5 - "Encastré - Rouleau" : β = 1.0 (encastré-glissière) Defaults to "Rotule - Rotule".

COEF_LF
type_appuis_z str

Conditions d'appui pour le flambement selon l'axe de rotation z.

COEF_LF
*args

Arguments positionnels transmis à Barre.

()
**kwargs

Arguments nommés transmis à Barre (b, h, classe, etc.).

{}
Note

La longueur efficace de flambement est calculée par axe : lf_y = lo_y × β_y ; lf_z = lo_z × β_z

lamb property

lamb: tuple

Retourne l'élancement d'un poteau en compression avec risque de flambement suivant son axe de rotation

lamb_rel_Axe property

lamb_rel_Axe: tuple

Retourne l'élancement relatif d'un poteau en compression avec risque de flambement suivant son axe de rotation

k_Axe property

k_Axe

Retourne le facteur Ky ou Kz (fonction de l'axe de flambement)

kc_Axe property

kc_Axe: tuple

Retourne le coefficient multiplicateur KcAxe (axe = y ou z suivant axe de rotation en flambement) de fc,0,d

f_c_0_d

f_c_0_d(loadtype=Barre.LOAD_TIME, typecombi=Barre.TYPE_ACTION)

Calcule la résistance de calcul en compression axiale f_c,0,d selon l'EC5 §6.2.2.

Détermine la résistance à partir de la résistance caractéristique fc,0,k et des coefficients de modification (kmod, γM).

Parameters:

Name Type Description Default
loadtype str

Classe de durée de chargement. Voir Barre.LOAD_TIME pour les valeurs possibles.

LOAD_TIME
typecombi str

Type de combinaison d'actions. "fondamentale" ou "accidentelle". Defaults to "fondamentale".

TYPE_ACTION

Returns:

Name Type Description
float

Résistance de calcul fc,0,d en MPa avec unité (si.MPa).

Note

Cette valeur est réduite par le coefficient kc en cas de flambement.

sigma_c_0_d

sigma_c_0_d(Fc0d: kN, Anet: mm ** 2 = None) -> tuple

Calcule la contrainte de compression axiale sigma_c,0,d selon l'EC5 §6.2.2.

Détermine la contrainte normale due à l'effort de compression axial. Prend en compte une section nette réduite si spécifiée.

Parameters:

Name Type Description Default
Fc0d kN

Effort de compression axial en kN.

required
Anet mm ** 2

Aire nette de la section en mm² si réduction (entailles, perçages). Doit être ≤ aire brute. Defaults to None.

None

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est sigma_c,0,d en MPa avec unité.

Raises:

Type Description
ValueError

Si Anet > aire brute de la section.

Note

La valeur est stockée dans l'attribut sigma_c_0_rd.

taux_c_0_d

taux_c_0_d(flexion: object = None) -> tuple

Calcule les taux de travail en compression axiale selon l'EC5 §6.2.2 et §6.3.2.

Vérifie les critères de résistance : - Equ. 6.2 : Compression simple (sigma_c,0,d / f_c,0,d) - Equ. 6.23-6.24 : Flambement (sigma_c,0,d / (kc · f_c,0,d)) - Equ. 6.19-6.20 : Flexo-compression (si objet Flexion fourni)

Parameters:

Name Type Description Default
flexion Flexion

Objet Flexion déjà calculé pour les combinaisons flexo-compression. Defaults to None.

None

Returns:

Name Type Description
tuple tuple

(latex_string, taux_dict) où taux_dict contient : - "equ6.2" : Compression simple sans flambement - "equ6.23", "equ6.24" : Compression avec flambement selon y et z - "equ6.19", "equ6.20" : Flexo-compression (si flexion fournie) Valeurs en pourcentage (0.85 = 85%).

Note

Cette méthode met à jour automatiquement la synthèse des taux de travail via _add_synthese_taux_travail.

Compression_perpendiculaire

Compression_perpendiculaire(b_appuis: mm, l_appuis: mm, l1d: mm = 10000, l1g: mm = 10000, ad: mm = 0, ag: mm = 0, type_appuis_90: str = TYPE_APPUIS, *args, **kwargs)

Bases: Barre

Classe de vérification des éléments bois en compression perpendiculaire selon l'EC5 §6.1.5.

Effectue les calculs de résistance et de contrainte en compression perpendiculaire au fil du bois (appuis de poutres, abouts de pieux, etc.) selon l'Eurocode 5. Hérite de Barre pour les caractéristiques géométriques et mécaniques.

La vérification utilise l'équation 6.3 avec le coefficient K_c,90 : σ_c,90,d / (K_c,90 · f_c,90,d) ≤ 1

Initialise un objet de vérification en compression perpendiculaire.

Parameters:

Name Type Description Default
b_appuis mm

Largeur d'appuis en mm.

required
l_appuis mm

Longueur de l'appuis en mm.

required
l1d mm

Distance entre les charges en mm (l et l) (si pas de l1d ne rien mettre). Defaults to 10000.

10000
l1g mm

Distance entre les charges en mm (l et l) (si pas de l1g ne rien mettre). Defaults to 10000.

10000
ad mm

Distance depuis le bord jusqu'à l'appuis à droite (l) en mm (si pas de ad et au bord ne rien mettre). Defaults to 0.

0
ag mm

Distance depuis le bord jusqu'à l'appuis à gauche (l) en mm (si pas de ad et au bord ne rien mettre). Defaults to 0.

0
type_appuis_90 str

Type d'appuis (Appui continu, Appui discret). Defaults to TYPE_APPUIS.

TYPE_APPUIS
*args

Arguments transmis à Barre (classe, etc.).

()
**kwargs

Arguments transmis à Barre (b, h, etc.).

{}
Note

La longueur efficace de compression perpendiculaire l_ef est calculée en fonction de la configuration des appuis et des distances entre charges.

K_c90 property writable

K_c90

Retourne le facteur K_c,90 qui tient compte de la configuration de chargement, du fendage et de la déformation en compression avec pour argument : h : Hauteur de l'élement subissant la compression en mm lO : Longeur de l'appuis en compression en mm l1 : Distance la plus petite entre deux appuis en mm (l et l)

f_c_90_d

f_c_90_d(loadtype: str = Barre.LOAD_TIME, typecombi: str = Barre.TYPE_ACTION)

Calcule la résistance de calcul en compression perpendiculaire f_c,90,d selon l'EC5 §6.1.5.

Détermine la résistance à partir de la résistance caractéristique fc,90,k et des coefficients de modification (kmod, γM).

Parameters:

Name Type Description Default
loadtype str

Classe de durée de chargement. Voir Barre.LOAD_TIME pour les valeurs possibles.

LOAD_TIME
typecombi str

Type de combinaison d'actions. "fondamentale" ou "accidentelle". Defaults to "fondamentale".

TYPE_ACTION

Returns:

Name Type Description
float

Résistance de calcul fc,90,d en MPa avec unité (si.MPa).

sigma_c_90_d

sigma_c_90_d(Fc90d: kN) -> tuple

Calcule la contrainte de compression perpendiculaire sigma_c,90,d selon l'EC5 §6.1.5.

Détermine la contrainte en tenant compte de l'aire effective d'appui, qui inclut une diffusion des efforts sur 30 mm ou jusqu'aux bords/entraxe.

Parameters:

Name Type Description Default
Fc90d kN

Effort de compression perpendiculaire en kN.

required

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est sigma_c,90,d en MPa avec unité.

Note

L'aire effective a_ef = (l_appuis + min(30mm, distance_bord, l_appuis, 0.5×entraxe)) × b_appuis La valeur est stockée dans l'attribut sigma_c_90_rd.

taux_c_90_d

taux_c_90_d() -> tuple

Calcule le taux de travail en compression perpendiculaire selon l'EC5 §6.1.5 (Eq. 6.3).

Vérifie le critère : σ_c,90,d / (K_c,90 · f_c,90,d) ≤ 1

Le coefficient K_c,90 (déterminé par la propriété K_c90) tient compte : - De la configuration des appuis (discrets ou continus) - Du type de bois (massif, BLC, etc.) - De la hauteur de l'élément et des distances entre appuis

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est le taux en pourcentage (0.75 = 75%). Stocké dans taux_c_90_rd['equ6.3'].

Note

Cette méthode met à jour automatiquement la synthèse des taux de travail via _add_synthese_taux_travail.

show_c90

show_c90() -> None

Affiche l'image des caractéristiques d'une compression perpendiculaire

Compression_inclinees

Compression_inclinees(alpha: float = 45, **kwargs)

Bases: Compression_perpendiculaire

Classe de vérification des éléments bois en compression inclinée selon l'EC5 §6.2.2.

Effectue les calculs de résistance et de contrainte en compression inclinée par rapport au fil du bois selon l'Eurocode 5 - Partie 1-1, article 6.2.2. Hérite de Compression_perpendiculaire pour la gestion des appuis et des coefficients.

La vérification utilise l'équation 6.16 avec la formule de Hankinson : σ_c,α,d ≤ f_c,0,d / [(f_c,0,d/(K_c,90·f_c,90,d))·sin²(α) + cos²(α)]

Initialise un objet de vérification en compression inclinée.

Parameters:

Name Type Description Default
alpha float

Angle d'inclinaison de la compression par rapport au fil du bois en degrés. 0° = compression axiale, 90° = compression perpendiculaire. Defaults to 45°.

45
**kwargs

Arguments transmis à Compression_perpendiculaire (b_appuis, l_appuis, etc.).

{}

sigma_c_alpha_d

sigma_c_alpha_d(Fcad: kN) -> tuple

Calcule la contrainte de compression inclinée sigma_c,alpha,d.

Détermine la contrainte normale due à l'effort de compression inclinée, en utilisant l'aire brute d'appui (sans diffusion).

Parameters:

Name Type Description Default
Fcad kN

Effort de compression inclinée en kN.

required

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est sigma_c,alpha,d en MPa avec unité.

Note

La valeur est stockée dans l'attribut sigma_c_alpha_rd.

taux_c_alpha_d

taux_c_alpha_d(loadtype=Barre.LOAD_TIME, typecombi=Barre.TYPE_ACTION) -> tuple

Calcule le taux de travail en compression inclinée selon l'EC5 §6.2.2 (Eq. 6.16).

Vérifie le critère de Hankinson : σ_c,α,d ≤ f_c,α,d où f_c,α,d = f_c,0,d / [(f_c,0,d/(K_c,90·f_c,90,d))·sin²(α) + cos²(α)]

Parameters:

Name Type Description Default
loadtype str

Classe de durée de chargement. Voir Barre.LOAD_TIME pour les valeurs possibles.

LOAD_TIME
typecombi str

Type de combinaison d'actions. "fondamentale" ou "accidentelle". Defaults to "fondamentale".

TYPE_ACTION

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est le taux en pourcentage (0.75 = 75%). Stocké dans taux_c_alpha_rd['equ6.16'].

Note

Cette méthode met à jour automatiquement la synthèse des taux de travail via _add_synthese_taux_travail.

Cisaillement

Cisaillement(**kwargs)

Bases: Barre

Classe de vérification des éléments bois au cisaillement selon l'EC5 §6.1.7 et §6.5.

Effectue les calculs de contrainte et taux de travail au cisaillement longitudinal pour des poutres en bois selon l'Eurocode 5. Hérite de Barre pour les caractéristiques géométriques et mécaniques.

Vérifie : - La résistance au cisaillement (§6.1.7, Eq. 6.13) - Le cisaillement avec entaille (§6.5, Eq. 6.60) avec facteur K_v

Initialise un objet de vérification au cisaillement.

Hérite de toutes les caractéristiques de Barre. Initialise K_v à 1 (pas d'entaille) et h_ef à la hauteur totale.

Parameters:

Name Type Description Default
**kwargs

Arguments transmis à Barre (classe, etc.).

{}

K_cr property

K_cr

Facteur de réduction de largeur K_cr selon l'EC5 §6.1.7.

Tient compte des fissures de séchage dans le bois massif et BLC. Réduction de 33% (K_cr = 0.67) pour les sections fragilisées.

Returns:

Name Type Description
float

Valeur de K_cr. - 1.0 : Pas de réduction (bois sans fissuration significative) - 0.67 : Réduction pour bois massif h > 150mm (CS1/CS2) ou BLC (CS2/CS3)

Note

CS1/CS2 : K_cr = 0.67 si h > 150mm et bois massif CS2 : K_cr = 0.67 pour BLC CS3 : K_cr = 0.67 pour tout bois

Kv

Kv(hef: mm, x: mm, i_lo: mm, ent=('Dessous', 'Dessus')) -> tuple

Calcule le facteur de réduction d'entaille K_v selon l'EC5 §6.5.

Ce coefficient réduit la résistance au cisaillement en présence d'une entaille au niveau d'un appui (entaille en dessous ou au dessus de la poutre).

Formule EC5 : K_v = min(1, [K_n(1 + 1.1·i^1.5/√h)] / [√h·(√(α(1-α)) + 0.8·x/h·√(1/α - α²))]) où α = h_ef/h et i = i_lo/h_ef

Parameters:

Name Type Description Default
hef mm

Hauteur efficace de la poutre (hauteur - profondeur entaille) en mm.

required
x mm

Distance entre le centre de réaction à l'appui et le coin de l'entaille en mm.

required
i_lo mm

Longueur horizontale de l'entaille en mm.

required
ent str

Position de l'entaille : "Dessous" ou "Dessus". Defaults to "Dessous".

('Dessous', 'Dessus')

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est le facteur K_v (≤ 1). Si ent="Dessus", retourne K_v = 1 (pas de réduction).

Note

La valeur est stockée dans l'attribut K_v. K_n dépend du type de bois (voir DICT_KN).

f_v_d

f_v_d(loadtype=Barre.LOAD_TIME, typecombi=Barre.TYPE_ACTION)

Calcule la résistance de calcul au cisaillement f_v,d selon l'EC5 §6.1.7.

Détermine la résistance à partir de la résistance caractéristique f_v,k et des coefficients de modification (kmod, γM).

Parameters:

Name Type Description Default
loadtype str

Classe de durée de chargement. Voir Barre.LOAD_TIME pour les valeurs possibles.

LOAD_TIME
typecombi str

Type de combinaison d'actions. "fondamentale" ou "accidentelle". Defaults to "fondamentale".

TYPE_ACTION

Returns:

Name Type Description
float

Résistance de calcul f_v,d en MPa avec unité (si.MPa).

tau_d

tau_d(Vd: kN) -> tuple

Calcule la contrainte de cisaillement tau_d selon l'EC5 §6.1.7.

Détermine la contrainte de cisaillement longitudinal pour une poutre rectangulaire : τ = 1.5·V/(b_ef·h_ef)

Parameters:

Name Type Description Default
Vd kN

Effort tranchant (cisaillement) sur la poutre en kN.

required

Returns:

Name Type Description
tuple tuple

(latex_string, valeur) où valeur est tau_d en MPa avec unité.

Note

La valeur est stockée dans l'attribut tau_rd. Prend en compte K_cr (fissuration) et K_v (entaille si défini).

taux_tau_d

taux_tau_d() -> tuple

Calcule les taux de travail au cisaillement selon l'EC5 §6.1.7 et §6.5.

Vérifie les critères : - Equ. 6.13 : Cisaillement simple (tau_d / f_v,d) - Equ. 6.60 : Cisaillement avec entaille (tau_d / (K_v · f_v,d))

Returns:

Name Type Description
tuple tuple

(latex_string, valeurs) où valeurs contient les taux pour equ6.13 (sans entaille) et equ6.60 (avec entaille) en pourcentage. Stockés dans taux_tau_rd['equ6.13'] et ['equ6.60'].

Note

Cette méthode met à jour automatiquement la synthèse des taux de travail via _add_synthese_taux_travail.

show_Kv

show_Kv() -> None

Affiche l'image des caractéristiques d'une entaille au cisaillement

Verification_EC5

Verification_EC5(combinaison: object, model_result: object, elu_filter: str = ELU_FILTERS, Hi: int = 12, Hf: int = 12, effet_systeme: bool = ('False', 'True'), classe_service: int = Barre.CS, type_bat: str = Barre.TYPE_BAT, type_ele: str = Barre.TYPE_ELE, pos_charge: str = Flexion.LOAD_POS, **kwargs)

Bases: Projet

Vérifie les barres structurales d'un modèle selon l'EC5 (ELU + Flèche ELS).

Hérite de :class:~ourocode.eurocode.core.projet.Projet pour s'insérer dans la hiérarchie ourocode et bénéficier des méthodes communes (_from_parent_class, persistence, etc.). La classe stocke en interne la :class:~ourocode.eurocode.core.combinaison.Combinaison et le :class:~ourocode.eurocode.core.model_result.Model_result fournis, et expose :meth:verify et :meth:synthese pour lancer les vérifications.

Les paramètres de vérification (coefficients de longueur efficace, types d'appui pour compression) sont automatiquement récupérés depuis le champ Design de chaque barre structurale (déterminés par group_members). Les arguments type_bat, type_ele, pos_charge, Hi, Hf, effet_systeme, classe_service définis à l'initialisation s'appliquent à toutes les barres et peuvent être surchargés ponctuellement via :meth:verify.

Pour chaque combinaison ELU, :meth:Combinaison.min_type_load et :meth:Combinaison.type_combi sont utilisées pour déterminer dynamiquement kmod et γM (EN 1995-1-1 §2.3.1.2 et §2.4.1). Le taux maximal est ensuite retenu par type de vérification avec la combinaison gouvernante associée.

Initialise une vérification EC5.

Parameters:

Name Type Description Default
combinaison Combinaison

Instance :class:~ourocode.eurocode.core.combinaison.Combinaison déjà instanciée et dont les combos ont été générées.

required
model_result Model_result

Instance :class:~ourocode.eurocode.core.model_result.Model_result déjà analysée.

required
elu_filter str

Tag pour filtrer les combinaisons ELU. Valeurs acceptées : "ELU_ALL", "ELU_STR", "ELU_STR_ACC". Defaults to "ELU_ALL".

ELU_FILTERS
Hi int

Humidité initiale du bois en service (%). Defaults to 12.

12
Hf int

Humidité finale du bois en service (%). Defaults to 12.

12
effet_systeme bool

Active l'effet système (EN 1995-1-1 §6.7). Defaults to False.

('False', 'True')
classe_service str

Classe de service globale (Barre.CS). Defaults to 1.

CS
type_bat str

Type de bâtiment pour les limites de flèche (Barre.TYPE_BAT). Defaults to Barre.TYPE_BAT.

TYPE_BAT
type_ele str

Type d'élément pour les limites de flèche (Barre.TYPE_ELE). Peut être surchargé par le champ Design de la barre structurale. Defaults to Barre.TYPE_ELE.

TYPE_ELE
pos_charge str

Position de la charge verticale par rapport à la section (Flexion.LOAD_POS). Defaults to Flexion.LOAD_POS.

LOAD_POS
**kwargs

Transmis à :class:~ourocode.eurocode.core.projet.Projet (ingenieur, name, code_INSEE, alt…).

{}
Note

Les paramètres de vérification (coefficients de longueur efficace, types d'appui pour la compression) sont désormais automatiquement récupérés depuis le champ Design de chaque barre structurale (déterminés par :meth:Model_generator.group_members).

verify

verify(name: str, type_ele: str = Barre.TYPE_ELE, pos_charge: str = Flexion.LOAD_POS, Hi: int = 12, Hf: int = 12, effet_systeme: bool = ('False', 'True'), classe_service: int = Barre.CS, coeflef_y: float = None, coeflef_z: float = None, type_appuis_y: str = None, type_appuis_z: str = None) -> dict

Vérifie une barre structurale en bouclant sur toutes les combos ELU.

Pour chaque combinaison du filtre, les efforts sont extraits puis les taux Flexion / Cisaillement / Traction ou Compression sont calculés avec le kmod et la typecombi appropriés. Le taux maximal sur toutes les combos est retenu par vérification. La flèche ELS est calculée séparément via les tags W_inst_Q et W_net_fin.

Les paramètres coeflef_y, coeflef_z ainsi que les types d'appui pour la compression sont automatiquement récupérés depuis le champ Design du membre structural (déterminés par group_members). Les arguments fournis ici permettent de surcharger ces valeurs.

Parameters:

Name Type Description Default
name str

Nom de la barre structurale (clé dans :meth:Model_generator.get_structural_member).

required
type_ele str

Surcharge du type d'élément pour les limites de flèche. Priorité inférieure au champ Design de la barre structurale. Defaults to self.type_ele.

TYPE_ELE
pos_charge str

Surcharge de la position de charge. Defaults to self.pos_charge.

LOAD_POS
Hi int

Surcharge de l'humidité initiale (%). Defaults to 12.

12
Hf int

Surcharge de l'humidité finale (%). Defaults to 12.

12
effet_systeme bool

Surcharge de l'effet système. Defaults to 1.

('False', 'True')
classe_service int

Surcharge de la classe de service. Defaults to 1.

CS
coeflef_y float

Surcharge du coef. de longueur efficace y. Si None (défaut), la valeur du champ Design est utilisée (fallback 0.9 si absente).

None
coeflef_z float

Surcharge du coef. de longueur efficace z. Même logique que coeflef_y.

None
type_appuis_y str

Surcharge du type d'appui de flambement selon y (ex: "Rotule - Rotule", "Encastré - Rotule"…). Si None (défaut), la valeur du champ Design est utilisée (fallback "Rotule - Rotule" si absente).

None
type_appuis_z str

Surcharge du type d'appui de flambement selon z. Même logique que type_appuis_y.

None

Returns:

Name Type Description
dict dict

{"name", "taux", "dataframe"} où :

dict
  • "name" (str) : nom de la barre structurale ;
dict
  • "taux" (dict) : {verif_name: {"taux": float, "combinaison": str}} pour chaque vérification active (None si non applicable) ;
dict
  • "dataframe" (pd.DataFrame) : tableau synthétique avec colonnes ["Barre structurale", "Vérification", "Taux", "Statut", "Combinaison"].

Raises:

Type Description
ValueError

Si la combinaison ou le résultat MEF est absent, ou si la section est définie manuellement (b/h inconnus).

KeyError

Si name n'existe pas dans le modèle.

get_combo_objects

get_combo_objects(name: str, combo_name: str) -> dict

Retourne les objets EC5 instanciés pour une barre et une combinaison.

Lit directement depuis le cache interne peuplé par :meth:verify. Aucun recalcul n'est effectué.

Parameters:

Name Type Description Default
name str

Nom de la barre structurale.

required
combo_name str

Nom de la combinaison ELU (ex: "ELU_STR 1.35G + 1.5Q").

required

Returns:

Name Type Description
dict dict

{"Flexion", "Cisaillement", "Traction", "Compression"} où chaque valeur est l'objet EC5 instancié et calculé, ou None si la vérification n'est pas applicable (ex: pas de compression → "Compression" est None).

Raises:

Type Description
KeyError

Si verify(name) n'a pas été appelé au préalable, ou si combo_name n'appartient pas au filtre ELU utilisé.

Exemple

verif.verify("SM1") objs = verif.get_combo_objects("SM1", "ELU_STR 1.35G + 1.5Q") flexion = objs["Flexion"] display(Latex(flexion.taux_m_d()[0]))

synthese

synthese() -> pd.DataFrame

Agrège les vérifications EC5 de toutes les barres structurales.

Parcourt toutes les barres structurales via :meth:Model_generator._iter_structural_members et concatène les tableaux individuels en un unique DataFrame trié par barre structurale, puis par taux décroissant au sein de chaque barre.

Les paramètres de vérification sont ceux définis à l'initialisation. Pour des paramètres spécifiques à une barre, utilisez :meth:verify directement.

Returns:

Type Description
DataFrame

pd.DataFrame: Colonnes ["Barre structurale", "Vérification", "Taux", "Statut", "Combinaison"], triées par barre structurale puis par taux décroissant. En cas d'erreur sur une barre (section manuelle, classe inconnue…), un DataFrame ["Barre structurale", "Erreur"] est retourné à la place si aucune barre n'a pu être vérifiée.