Barres, sections, matériaux, cas et combinaisons, efforts internes simultanés.
Ce que le moteur calcule réellement
Cette page présente l'implémentation C# inspectée : une route A2 dédiée à la traction, et une branche A1 expérimentale pour d'autres vérifications. Elle ne présente pas un logiciel complètement certifié.
1. Périmètre réellement examiné
Ce document décrit les fichiers de la dernière version de notre projet RobotEC9_Clause_01_Traction_A2, et non les fonctionnalités projetées :
src/RobotEC9.Core/A2TensionEngine.cs— traction, route 2007+A1+A2 ;src/RobotEC9.Core/EluEngine.cs— calculs partiels de l'édition 2007+A1 ;src/RobotEC9.Core/Models.cs— données d'entrée, hypothèses et résultats ;src/RobotEC9.RobotDesktop/MainForm.cs— préparation des données récupérées de Robot ;tests/RobotEC9.Tests/Program.cs— essais arithmétiques et tests de non-régression écrits.
ATTENTION AUX ÉDITIONS : la méthode EluEngine.Evaluate() distribue les calculs selon Code.Edition :
| Édition choisie | Ce que fait réellement le logiciel |
|---|---|
EN1999-1-1:2007+A1:2009+A2:2013 |
Appelle A2TensionEngine.Evaluate() : traction §6.2.3 uniquement. Les autres vérifications restent hors périmètre. |
EN1999-1-1:2007+A1:2009 |
Appelle EluEngine : calculs partiels de section, interaction et stabilité décrits ci-dessous. |
EN1999-1-1:2023 |
Retourne NotVerified. Aucune formule 2023 n'est programmée. |
La NF EN 1999-1-1/NA de juillet 2016 complète en France la première génération et ses amendements A1/A2 ; son contenu chiffré n'a pas été intégré ni vérifié dans le code [S3].
1.1 Extraits normatifs très courts
- EN 1999-1-1:2007+A1, §6.2.3 : « local failure at a section with holes » [S1, p. 63 imprimée].
- Amendement A2, modification du §6.2.4 : « in sections with transverse weld » [S2, p. 7 imprimée].
Ces extraits servent uniquement à identifier les dispositions. Les explications ci-dessous sont reformulées et les équations sont présentées comme relations de calcul, sans reproduction de pages de norme. Pour vérifier une exigence obligatoire ou une exception, consulter le texte de référence dans son édition intégrale.
Vérifications prioritaires : ce qui est réellement développé
Les fonctionnalités ci-dessous sont présentes dans le prototype à des degrés divers. Un calcul programmé ne signifie ni vérification normative complète ni conformité de la structure.
Dans la route 2007 + A1 + A2, seul le moteur de traction A2TensionEngine est actuellement raccordé. Compression, flexion, cisaillement, interactions et
stabilité appartiennent encore à la branche de calcul expérimentale 2007 + A1. L'annexe nationale française et l'édition 2023 ne sont pas qualifiées.
P1 — Modules programmés ou raccordés
| Module | Référence | Ce qui fonctionne dans le prototype | État réel |
|---|---|---|---|
| Classification des sections | §6.1.4 | Classement des parois planes non raidies selon leurs paramètres EC9 ; classes N, My, Mz transmises à SectionData si les données sont confirmées.
|
Codé et raccordé ; validation incomplète |
| Lecture des sections RobotOM | Prétraitement | Lecture des dimensions de profilés standard ; préremplissage des parois N/My/Mz, observé sur un IPE 100. Rayons, soudures et contraintes de flexion encore à contrôler. | Testé pour IPE 100 ; géométrie utile non qualifiée |
| Traction | §6.2.3, A2 | Résistances brute, nette et soudure transversale si toutes les aires et caractéristiques nécessaires sont fournies. | Codé partiellement · A2 |
| Compression des sections | §6.2.4 | Cas limités de résistance de section ; propriétés efficaces et HAZ encore indisponibles. | Partiel · A1 seulement |
| Flexion My et Mz | §6.2.5 | Formules de résistance conditionnelles à la classe et aux modules de résistance connus. | Partiel · A1 seulement |
| Cisaillement Vy et Vz | §6.2.6 | Vérification simple lorsque l'aire de cisaillement et les hypothèses requises sont disponibles. | Partiel · A1 seulement |
| Interactions N + My + Mz | §6.2.9 | Quelques interactions de section ; aucune généralisation aux profils et cas combinés non couverts. | Cas limités · A1 seulement |
| Flexion sous cisaillement élevé | §§6.2.8–6.2.10 | Détection de conditions nécessitant un calcul plus complet. | Garde-fou uniquement |
| Flambement par flexion Y/Z | §6.3.1 | Résistance partielle sous longueurs de flambement et caractéristiques prescrites. | Partiel · A1 seulement |
| Déversement | §6.3.2 | Contrôle partiel si le moment critique Mcr est fourni et les prérequis sont établis. |
Partiel · A1 seulement |
P1 — Vérifications encore non achevées
| Famille P1 | Travail restant | État |
|---|---|---|
| Matériaux §3.2 | Bibliothèque alliage / état métallurgique / forme de produit / épaisseur ; détermination du groupe A/B et des résistances f0, fu. |
À développer |
| Annexe nationale France | Paramètres nationaux et vérification complète de l'édition consolidée A2. | Non qualifiée |
| Classification §6.1.4 | Gradients de contraintes et ψ automatiques sous N + My + Mz, rayons et parois efficaces selon la famille de section ; cas particuliers. |
À compléter |
| Sections efficaces §6.1.5 | Réduction des parois de classe 4, puis Aeff, inerties et modules efficaces de la section. |
Non développé |
| Zones soudées §6.1.6 | Étendue des zones HAZ et réduction de résistance selon alliage, état et procédé. | Non développé |
| Résistance ELU §§6.2.3–6.2.10 | Finaliser A2 pour compression, flexion, cisaillement, torsion/interactions pertinentes ; géométrie nette et HAZ complètes. | À compléter |
| Stabilité §6.3 | Flambement torsionnel / flexion-torsion, calcul de Mcr, déversement complet et stabilité sous compression-flexion biaxiale (§6.3.3). |
À compléter |
| Qualification du logiciel | Cas de référence indépendants, unités et signes Robot, stations critiques, combinaisons, essais A2 et annexe française. | Non qualifié |
P1 désigne ici l'ordre de développement du projet, pas une classification de la norme. Les explications détaillées et formules figurent dans les fiches ouvertes ci-dessous. Tous les résultats réglementaires restent provisoires.
De Robot aux vérifications EC9
Conversions d'unités, résistance de section, stabilité, conditions d'applicabilité.
Taux U, clause utilisée, hypothèses, refus de conclure si données insuffisantes.
2. Conventions communes du moteur
| Symbole ou champ | Signification | Unité moteur |
|---|---|---|
Nn / N_Ed |
Effort normal ; positif = traction, négatif = compression (convention à recouper avec Robot) | N |
Vyn, Vzn |
Efforts tranchants locaux | N |
MxnMm, MynMm, MznMm |
Torsion, moments autour des axes locaux y et z | N·mm |
Ag, Aeff, Anet, Au,eff, Av |
Aires brute, efficace, nette, efficace ultime soudure transversale, cisaillement | mm² |
Iy, Iz |
Moments quadratiques bruts | mm⁴ |
Wel, Wpl, Weff, Wnet |
Modules de résistance élastique, plastique, efficace, net | mm³ |
f0 |
Limite conventionnelle d'élasticité à 0,2 % | MPa = N/mm² |
fu |
Résistance ultime en traction | MPa |
E |
Module d'élasticité | MPa |
gammaM1, gammaM2 |
Coefficients partiels de résistance | sans dimension |
x/L |
Station relative de lecture Robot (Position) |
0 à 1 |
U |
Taux d'utilisation = action de calcul / résistance, ou expression d'interaction | sans dimension |
Le prototype utilise par défaut gammaM1 = 1,10, gammaM2 = 1,25 et E = 70 000 MPa, mais ce ne sont pas des données
nationales ni matériau validées. Elles doivent être justifiées par l'édition, l'annexe nationale, la nuance, l'état métallurgique, la forme de produit et
l'épaisseur avant utilisation réelle.
Mécanisme de décision : un calcul local est Pass si U <= 1, Fail si U > 1, NotVerified si
les prérequis ne sont pas déterminés et NotApplicable si la sollicitation est absente. Un Pass local ne vaut pas conformité de la barre ni de
la structure. Les tests numériques ci-dessous utilisent des données fictives.
Formules et vérifications ELU
Ouvrir une vérification pour consulter ses équations, données nécessaires, exemples numériques et limites de programmation. Les schémas sont illustratifs.
A01Traction — section brute, trous et soudure transversaleEN 1999-1-1 · Traction · A2A2 · partiel
Fichier : src/RobotEC9.Core/A2TensionEngine.cs
Identifiants des résultats : TENSION_GROSS, TENSION_NET, TENSION_TRANSVERSE_WELD, TENSION.
Référence : §6.2.3 [S1] et correction de l'équation (6.19b) par A2 [S2, modification n° 12, p. 7].
A01.1 Plastification de la section brute — (6.18)
\[ N_{o,Rd}=\frac{A_g\,f_0}{\gamma_{M1}} \qquad U_o=\frac{N_{Ed}}{N_{o,Rd}}. \]
Calcul codé : gross = s.AreaMm2 * m.FoMpa / c.GammaM1. En cas de soudure longitudinale, le moteur A2 bloque cette route :
les réductions HAZ sur la section longitudinale ne sont pas calculées.
A01.2 Rupture à une section perforée — (6.19a)
\[ N_{u,Rd,\mathrm{trous}}=\frac{0{,}9\,A_{net}\,f_u}{\gamma_{M2}} \qquad U_{u,\mathrm{trous}}=\frac{N_{Ed}}{N_{u,Rd,\mathrm{trous}}}. \]
Calcul codé : net = 0.9 * s.AreaNetMm2.Value * m.FuMpa / c.GammaM2 seulement si HasHoles et
AreaNetMm2 disponible.
Attention : Anet doit déjà contenir les déductions des trous sur le chemin de rupture critique ; le code ne
recherche pas les cheminements en quinconce ni les effets d'attache sur une seule aile (§6.2.2 / §8.5).
A01.3 Rupture dans une section avec soudure transversale — (6.19b), A2
\[ N_{u,Rd,\mathrm{soudure\ transv.}}=\frac{A_{u,eff}\,f_u}{\gamma_{M2}} \qquad U_{u,\mathrm{soudure}}=\frac{N_{Ed}}{N_{u,Rd,\mathrm{soudure}}}. \]
Calcul codé : transverse = s.AreaHazUltimateMm2.Value * m.FuMpa / c.GammaM2, si HasLocalizedWelds et
AreaHazUltimateMm2 disponible.
Attention : A2 précise que Au,eff tient compte, selon le cas, de la réduction liée au voilement local de classe 4 et de l'affaiblissement
dans la zone affectée thermiquement (HAZ). Notre programme ne détermine pas ce Au,eff : il exige une aire calculée et documentée en amont
[S2, pp. 5 et 7]. Le champ HasLocalizedWelds est utilisé pour ce cas, mais la distinction entre tous les types possibles de soudures doit encore être
fiabilisée.
A01.4 Résistance retenue et taux de travail
\[ N_{t,Rd}=\min\left(N_{o,Rd},\ N_{u,Rd,\mathrm{trous}}\ \text{si trous},\ N_{u,Rd,\mathrm{soudure}}\ \text{si soudure transversale}\right), \qquad U_t=\frac{N_{Ed}}{N_{t,Rd}}. \]
Le moteur suppose une sollicitation N_Ed = max(0, Nn) ; si Nn <= 0, la traction est déclarée NotApplicable.
Blocages NotVerified : propriétés et origine de section absentes, trous non inventoriés, aire nette manquante, HAZ transversale non
définie, soudure longitudinale, trous et HAZ simultanés sur un chemin critique non justifié, annexe et matériaux non documentés. La vérification globale reste bloquée
même si TENSION passe.
A01.5 Exemple de calcul du programme (fictif)
Données des tests : Ag = 1 900 mm², Anet = 1 600 mm², Au,eff = 1 450 mm², f0 = 260 MPa, fu = 310 MPa,
gammaM1 = 1,10, gammaM2 = 1,25, N_Ed = 100 000 N.
| Résistance | Calcul | Résultat |
|---|---|---|
Brute No,Rd |
1900 × 260 / 1,10 |
449 090,91 N |
Trous Nu,Rd |
0,9 × 1600 × 310 / 1,25 |
357 120 N |
Soudure transversale Nu,Rd |
1450 × 310 / 1,25 |
359 600 N |
Si seuls les trous sont présents, Nt,Rd = min(449090,91 ; 357120) = 357120 N et U = 100000 / 357120 ≈ 0,2800. Si seule la
soudure transversale est présente, Nt,Rd = 359600 N. Le programme refuse volontairement de conclure pour une combinaison de trous et de
HAZ non caractérisée.
Tests déjà écrits : plastification brute, trous, soudure transversale, détails critiques inconnus, aire nette absente, Au,eff absent, trous
+ soudure combinés, soudure longitudinale, annexe non confirmée, refus de la route 2023. Compilation/exécution et validation indépendante sur exemples normatifs
: non attestées ici.
B01Traction historique — branche A1EN 1999-1-1 · Traction · A1A1 · partiel
Résultat : TENSION ; fichier : EluEngine.cs, branche traction.
\[ N_{o,Rd}^{\rm code}=\frac{A_e f_0}{\gamma_{M1}},\quad N_{u,Rd,\mathrm{trous}}^{\rm code}=\frac{0{,}9 A_{net}f_u}{\gamma_{M2}},\quad N_{u,Rd,\mathrm{HAZ}}^{\rm code}=\frac{A_{u,\mathrm{HAZ}}f_u}{\gamma_{M2}}. \]
Le moteur prend le minimum des résistances applicables. Ae est obtenu par AreaEffMm2 ?? AreaMm2 ; le moteur bloque lorsque
l'aire efficace requise manque. L'applicabilité exacte de cette aire et la géométrie des soudures doivent être vérifiées conformément au §6.2.3 et au §6.1.6 [S1].
La version A2 (partie A) doit être privilégiée pour la traction dans le périmètre français de première génération.
B02Compression de sectionEN 1999-1-1 · Compression · A1A1 · partiel
Résultat : COMPRESSION_SECTION ; fichier : EluEngine.cs.
\[ N_{o,Rd}^{\rm code}=\frac{A_{eff}f_0}{\gamma_{M1}},\qquad N_{u,Rd,\mathrm{trous}}^{\rm code}=\frac{A_{net}f_u}{\gamma_{M2}}, \qquad N_{c,Rd}^{\rm code}=\min(\text{résistances applicables}). \]
N_Ed = max(0, -Nn) ; U_c = N_Ed / Nc,Rd. Le contrôle des trous n'est effectué que si HasHoles est vrai et AreaNetMm2
connu. La réduction Aeff doit être fournie si la section est de classe 4 ou affectée de HAZ.
Écart majeur à corriger pour A2 : l'amendement ajoute explicitement le cas soudure transversale avec une résistance liée à
Au,eff (équation 6.21b), et clarifie l'équation 6.22. Cette branche ne l'intègre pas. Les zones affectées, le voilement
local et la classe de compression ne sont pas déterminés automatiquement [S2, p. 7].
Test écrit : Ag = 1900 mm², f0 = 260 MPa, gammaM1 = 1,10 → No,Rd = 449090,91 N pour une section sans
réduction.
B03Flexion simple My / MzEN 1999-1-1 · Flexion · A1A1 · partiel
Résultats : BENDING_Y, BENDING_Z ; méthode : YieldBendingResistance() puis Check().
Pour une flexion suivant l'axe concerné, le moteur calcule, sous réserve de la classe :
\[ M_{o,Rd}^{\rm code}=\frac{W_{\mathrm{choisi}}\,f_0}{\gamma_{M1}},\quad W_{\mathrm{choisi}}=\begin{cases} W_{pl} & \text{classe 1 ou 2}\\ W_{el} & \text{classe 3}\\ W_{eff} & \text{classe 4} \end{cases} \]
En présence de soudure longitudinale, les valeurs WplHaz, WelHaz ou WeffHaz sont exigées. En présence de trous ou de soudure
localisée, le code compare aussi à :
\[ M_{u,Rd}^{\rm code}=\frac{W_{net} f_u}{\gamma_{M2}},\qquad M_{Rd}^{\rm code}=\min(M_{o,Rd}^{\rm code},M_{u,Rd}^{\rm code}\ \text{si applicable}),\quad U_M=\frac{|M_{Ed}|}{M_{Rd}^{\rm code}}. \]
Hypothèse explicite : le code choisit le coefficient de forme conservatif de classe 3 alpha3 = 1. Les classes et les modules
plastiques/efficaces ne sont pas calculés automatiquement. Le module Wnet doit être fourni. La conformité de chaque catégorie, de la
répartition HAZ et de la déformation plastique est à vérifier à la source [S1, §6.2.5.1 et tableau 6.4, pp. 64–65].
Écart A2 : ajout d'une formule propre aux soudures transversales (6.24b) utilisant Wu,eff ; absente de la route A1 [S2, p.
8].
Test écrit : classe 3, Wel = 57316,6667 mm³, f0 = 260 MPa → Mo,Rd = 13 547 575,76 N·mm, soit
13,548 kN·m.
B04Effort tranchant Vy / VzEN 1999-1-1 · Cisaillement · A1A1 · partiel
Résultats : SHEAR_Y, SHEAR_Z ; fichier : EluEngine.cs.
\[ V_{Rd}^{\rm code}=\frac{A_vf_0}{\sqrt{3}\,\gamma_{M1}},\qquad U_V=\frac{|V_{Ed}|}{V_{Rd}^{\rm code}}. \]
Av (ShearAreaYmm2 / ShearAreaZmm2) doit être fourni par direction. Le code n'évalue cette expression que si
HasNonSlenderShearWebs a été confirmé et si aucune HAZ n'est présente. En cas d'âme élancée, d'âme raidie ou de cisaillement en HAZ,
le contrôle SHEAR_* renvoie NotVerified. En cas de torsion associée, le contrôle simple SHEAR_* peut rester
calculé, mais l'interaction torsion–cisaillement est NotVerified : la barre n'est pas vérifiée au complet [S1, p. 67].
Test écrit : Av = 900 mm², f0 = 260 MPa, gammaM1 = 1,10 → VRd ≈ 122818,15 N.
B05Torsion de Saint-VenantEN 1999-1-1 · Torsion · A1A1 · partiel
Résultat : TORSION ; fichier : EluEngine.cs.
\[ T_{Rd}^{\rm code}=\frac{W_{T,pl}f_0}{\sqrt3\,\gamma_{M1}},\qquad U_T=\frac{|M_{x,Ed}|}{T_{Rd}^{\rm code}}. \]
La donnée PlasticTorsionModulusMm3 est obligatoire. La route est bloquée en cas de soudure/HAZ. Le logiciel ne calcule ni torsion de
gauchissement, ni bimoment, ni distorsion. Si la torsion coexiste avec cisaillement ou flexion, TORSION_INTERACTIONS vaut NotVerified.
Il n'y a donc pas de vérification complète de torsion combinée, même si le taux de torsion simple est affiché [S1, §6.2.7, pp. 67–69].
B06Interactions N + My + MzEN 1999-1-1 · Interaction · A1A1 · partiel
Résultat : SECTION_INTERACTION ; fichier : EluEngine.cs.
Le calcul s'applique uniquement si la section est déclarée doublement symétrique et appartient à une famille connue (OpenDoublySymmetric,
Hollow, Solid). On définit dans le code :
\[ r_N=\frac{|N_{Ed}|}{\omega_0 N_{Rd}},\quad r_y=\frac{|M_{y,Ed}|}{\omega_0 M_{y,Rd}},\quad r_z=\frac{|M_{z,Ed}|}{\omega_0 M_{z,Rd}}. \]
- Sections ouvertes doublement symétriques, en adoptant les exposants égaux à 1 dans les expressions historiques (6.40), (6.41) :
\[ U_{40}=r_N+r_y,\qquad U_{41}=r_N+r_y+r_z,\qquad U_{\rm code}=\max(U_{40},U_{41}). \]
- Sections creuses ou pleines, expression historique (6.43) :
\[ U_{43}=r_N^{\psi}+\left(r_y^{1{,}7}+r_z^{1{,}7}\right)^{0{,}6},\qquad \psi=\begin{cases}1{,}3&\text{section creuse}\\2{,}0&\text{section pleine.}\end{cases} \]
Le coefficient omega0 vaut 1 sans soudure localisée ; sinon il doit être fourni explicitement. Des combinaisons N–M et M–M sont déclenchées à partir des
six efforts du même cas et de la même station [S1, §6.2.9, pp. 69–70].
Deux limites importantes : (1) le moteur prend ici NRd = Aeff*f0/gammaM1 sans traiter toutes les réductions locales propres au signe N et
aux détails ; (2) A2 a remplacé (6.40) et (6.41), en supprimant omega0 de leurs dénominateurs : la présente implémentation A1 ne doit pas
être réutilisée pour A2. La formule (6.43) et les hypothèses doivent également être revues dans le contexte consolidé et les éventuelles soudures [S2, p. 8].
Test écrit : section creuse avec N = −100 kN, My = 3 kN·m, Mz = 2,5 kN·m, NRd = 449090,91 N et
My,Rd = Mz,Rd = 13 547 575,76 N·mm ; le test compare l'expression U43 calculée au résultat numérique du code.
B07Interaction flexion / cisaillementEN 1999-1-1 · Interaction · A1Garde-fou uniquement
Résultat : MOMENT_SHEAR. Le logiciel ne recalcule pas encore une résistance réduite en flexion : il sert de
garde-fou.
Si toutes les résistances au cisaillement requises sont connues et si :
\[ |V_{Ed}|\le 0{,}5 V_{Rd}, \]
le code indique NotApplicable pour une réduction de flexion sous réserve de l'absence de voilement au cisaillement. Si une résistance
manque ou si |VEd| > 0,5 VRd, il renvoie NotVerified.
La formule de réduction qui reste à programmer dans le domaine d'application pertinent est :
\[ \rho=\left(\frac{2|V_{Ed}|}{V_{Rd}}-1\right)^2,\qquad f_{0,V}=f_0(1-\rho), \]
voir §6.2.8 (6.38) et §6.2.10 (6.46)–(6.47) [S1, pp. 69 et 71]. Ces dernières équations sont indiquées ici comme cible de développement, elles ne sont pas calculées actuellement.
B08Flambement par flexionEN 1999-1-1 · Flambement · A1A1 · partiel
Résultats : BUCKLING_Y, BUCKLING_Z ; fonctions : EulerCriticalN(), BucklingChi(),
FlexuralBuckling().
Par axe :
\[ N_{cr}=\frac{\pi^2 EI}{L_{cr}^2},\qquad \bar\lambda=\sqrt{\frac{A_{eff}f_0}{N_{cr}}}, \]
\[ \phi=\frac12\left[1+\alpha(\bar\lambda-\bar\lambda_0)+\bar\lambda^2\right],\qquad \chi=\min\left(1;\frac{1}{\phi+\sqrt{\phi^2-\bar\lambda^2}}\right), \]
\[ N_{b,Rd}^{\rm code}=\chi\frac{A_{eff}f_0}{\gamma_{M1}},\qquad U_b=\frac{|N_{Ed,\rm compression}|}{N_{b,Rd}^{\rm code}}. \]
Le code force chi = 1 pour lambda <= lambda0. Les paramètres codés pour les courbes de flambement flexionnel du tableau 6.6
sont :
| Classe de matériau de flambement | alpha |
lambda0 |
|---|---|---|
| A | 0,20 | 0,10 |
| B | 0,32 | 0,00 |
Conditions / limites : longueurs efficaces Lcr,Y, Lcr,Z fournies et justifiées ; E,
Iy, Iz bruts valides ; Aeff fourni si nécessaire ; absence de soudure pour cette branche. Le code n'implémente
pas le facteur kappa des éléments soudés, la classification auto, ni la stabilité couplée N+M. Le mode de flambement par torsion/flexion-torsion
(BUCKLING_TORSIONAL) reste NotVerified sauf exclusion argumentée fournie ; aucune valeur Ncr,T seule ne constitue un
calcul complet [S1, pp. 71–74].
Test arithmétique écrit : E = 70 000 MPa, I = 2 865 833,333 mm⁴, Lcr = 3000 mm → Ncr ≈ 219991,65 N.
B09DéversementEN 1999-1-1 · Déversement · A1A1 · partiel
Résultat : LTB ; méthode : BucklingChi() sur une élancement de déversement.
\[ \bar\lambda_{LT}=\sqrt{\frac{M_{o,Rd}\,\gamma_{M1}}{M_{cr}}},\qquad \chi_{LT}=\min\left(1;\frac{1}{\phi_{LT}+\sqrt{\phi_{LT}^2-\bar\lambda_{LT}^2}}\right), \]
\[ \phi_{LT}=\frac12[1+\alpha_{LT}(\bar\lambda_{LT}-\bar\lambda_{0,LT})+\bar\lambda_{LT}^2], \qquad M_{b,Rd}^{\rm code}=\chi_{LT}M_{o,Rd}. \]
| Classe de section | alphaLT |
lambda0,LT |
|---|---|---|
| 1–2 | 0,10 | 0,60 |
| 3–4 | 0,20 | 0,40 |
Point critique : Mcr doit être déterminé à l'extérieur du moteur en tenant compte du diagramme des moments, des conditions
d'appui, du maintien latéral et du niveau d'application des charges. Mcr n'est pas calculé par RobotEC9. En l'absence de Mcr,
le résultat est NotVerified, sauf déversement explicitement justifié comme inapplicable. Les sections avec HAZ, les cas de maintien complexes et les
interactions de stabilité ne sont pas qualifiés [S1, §6.3.2, pp. 75–76].
C01 Classification des sections aluminium EN 1999-1-1 · §6.1.4 · Classes 1 à 4 A1 · raccordé, tests à confirmer
Principe de la classification
La classification d'une section aluminium permet de déterminer sa sensibilité au voilement local sous l'effet des contraintes de compression.
Chaque paroi comprimée est étudiée séparément. La classe la plus défavorable détermine celle de la section complète.
| Classe | Comportement mécanique |
|---|---|
| 1 | Résistance plastique et capacité de rotation suffisante pour l'analyse plastique. |
| 2 | Résistance plastique atteignable, capacité de rotation limitée. |
| 3 | Résistance élastique atteignable, mais voilement local limitant la plastification. |
| 4 | Voilement local avant atteinte de la limite conventionnelle d'élasticité. Section efficace nécessaire. |
Géométrie des parois
Calcul de l'élancement des parois
Pour une paroi plane non raidie, l'élancement dépend de la répartition des contraintes.
Compression uniforme :
\[ \beta=\frac{b}{t} \tag{6.1} \]Paroi interne en flexion avec axe neutre au milieu :
\[ \beta=0{,}40\frac{b}{t} \tag{6.2} \]Gradient de contrainte pour les cas couverts par l'expression (6.3) :
\[ \beta=\eta\frac{b}{t} \tag{6.3} \] \[ \eta= \begin{cases} 0{,}70+0{,}30\psi & -1\leq\psi\leq1 \\[4pt] \dfrac{0{,}80}{1-\psi} & \psi<-1 \end{cases} \]b : largeur de paroi en mm ; t : épaisseur en mm ; ψ : rapport des contraintes longitudinales aux bords de la paroi, référencé à la compression maximale.
Le cas d'une paroi en saillie avec compression maximale au bord libre relève de l'expression β = b/t. Le choix de la formule doit suivre la répartition réelle des contraintes.
Coefficient matériau
\(f_0\) représente la limite conventionnelle d'élasticité à 0,2 %, exprimée en MPa. Le groupe de matériau A ou B doit être déterminé selon les tableaux de matériaux de l'Eurocode 9.
Limites de classification — Tableau 6.2
Les limites \(\beta_1\), \(\beta_2\) et \(\beta_3\) sont obtenues en multipliant les valeurs ci-dessous par \(\varepsilon\).
| Matériau | Paroi | β1/ε | β2/ε | β3/ε |
|---|---|---|---|---|
| A sans soudure | Interne | 11 | 16 | 22 |
| A avec soudure | Interne | 9 | 13 | 18 |
| B sans soudure | Interne | 13 | 16,5 | 18 |
| B avec soudure | Interne | 10 | 13,5 | 15 |
| A sans soudure | En saillie | 3 | 4,5 | 6 |
| A avec soudure | En saillie | 2,5 | 4 | 5 |
| B sans soudure | En saillie | 3,5 | 4,5 | 5 |
| B avec soudure | En saillie | 3 | 3,5 | 4 |
Référence : EN 1999-1-1:2007+A1:2009, §6.1.4.4, tableau 6.2. La qualification de la version consolidée A2 et de l'annexe nationale française reste à effectuer.
Détermination de la classe
Parois de poutres en flexion :
\[ \mathrm{Classe}= \begin{cases} 1 & \beta\leq\beta_1\\ 2 & \beta_1<\beta\leq\beta_2\\ 3 & \beta_2<\beta\leq\beta_3\\ 4 & \beta>\beta_3 \end{cases} \]Parois en compression uniforme :
\[ \mathrm{Classe}= \begin{cases} 1\ \mathrm{ou}\ 2 & \beta\leq\beta_2\\ 3 & \beta_2<\beta\leq\beta_3\\ 4 & \beta>\beta_3 \end{cases} \]Dans notre classificateur, lorsque la compression uniforme conduit à « classe 1 ou 2 », la valeur 2 est retenue comme convention de programmation. Ce choix ne remplace pas une analyse de la capacité de rotation lorsqu'elle est requise.
Exemple numérique — EN AW-6082 T4
Profil en I non soudé, groupe de matériau B, avec \(f_0=110\) MPa.
| Paroi | Sollicitation | β | Classe |
|---|---|---|---|
| Âme 180 × 6 | Flexion pure | 12,00 | 1 |
| Semelle 35 × 8 | Flexion pure | 4,375 | 1 |
| Âme 180 × 6 | Compression pure | 30,00 | 4 |
| Semelle 35 × 8 | Compression pure | 4,375 | 1 ou 2 |
Résultat : la section est de classe 1 en flexion pure et de classe 4 en compression pure pour cet exemple.
Exemple recoupé avec la publication Dlubal « Classification des sections selon l'EN 1999-1-1 ».
Implémentation dans RobotEC9
Import automatique de la géométrie Robot
Robot EC9 Aluminium comporte un connecteur de géométrie destiné à préremplir les parois des profilés en I symétriques à partir de RobotOM.
Les dimensions H, B, tw et tf sont utilisées pour constituer un inventaire préliminaire des âmes et semelles, pour N, My et Mz.
Les dimensions utiles EC9, les rayons, les soudures, les groupes de matériaux et les gradients de contraintes doivent encore être contrôlés.
L'import automatique ne constitue pas une validation de la classe de section.
Lecture de la géométrie par RobotOM
Robot EC9 dispose d'un lecteur des dimensions de sections via l'API Autodesk RobotOM. Il récupère notamment la hauteur, la largeur, les épaisseurs de l'âme et des semelles ainsi que les rayons lorsqu'ils sont disponibles.
Cette lecture constitue la première étape vers la classification automatique des sections selon l'EN 1999-1-1 §6.1.4.
Classe C# : Ec9SectionClassifier
Méthodes : ClassifyPart() et ClassifySection().
La classification des parois planes non raidies est reliée au modèle de barres lu dans Autodesk Robot Structural Analysis via RobotOM. L'ingénieur saisit et confirme encore les dimensions et la répartition des contraintes pour les parois de chaque barre : elles ne sont pas extraites automatiquement des contours des profilés Robot.
Transmission des classes aux vérifications ELU
| Sollicitation | Classe EC9 | Champ transmis au moteur |
|---|---|---|
| Compression axiale N | ClasseN |
SectionData.CompressionClass |
| Flexion My | ClasseMy |
SectionData.Y.Class |
| Flexion Mz | ClasseMz |
SectionData.Z.Class |
Contrôles appliqués lors du transfert
Pour chacune des barres, la méthode C# Verifier() transmet une classe comprise entre 1 et 4 uniquement si l'inventaire des parois a été confirmé
(ParoisCompletesConfirmees) et si la valeur de f0 correspond à celle utilisée lors de la classification. Sinon, elle transmet la valeur
0, signifiant « classe non établie ».
Règle de transfert informatique :
Classe ELU = classe calculée si les données de classification sont confirmées et cohérentes ; sinon classe 0.
La classe 0 n'est pas une classe normative et ne constitue jamais un résultat de conformité.
Propriétés géométriques et matériaux
| Donnée | Source | Unité interne |
|---|---|---|
| Aire brute | RobotOM | mm² |
| Inerties Iy et Iz | RobotOM | mm⁴ |
| Résistance f0 | Valeur matériau contrôlée et saisie | MPa |
| Dimensions et contraintes des parois | Saisie vérifiée par l'ingénieur | mm et valeurs sans dimension |
| Classes N, My, Mz | Ec9SectionClassifier |
1 à 4, sinon 0 |
Soudures, détails et limites de calcul
Lorsqu'une soudure est déclarée dans les parois, le code signale les détails comme non vérifiés tant que le type de soudure, sa position et les effets de la zone affectée thermiquement (HAZ) ne sont pas établis. Les indicateurs « absence de trou » ou « absence de soudure longitudinale » ne sont pas déduits de RobotOM : ils ne doivent pas être interprétés comme des contrôles effectués.
La transmission des classes N, My et Mz au moteur ELU est codée. La compilation sur la DLL RobotOM utilisée, les essais d'intégration sur des modèles réels et la validation normative indépendante restent à confirmer.
Les sections efficaces de classe 4 (§6.1.5), le traitement complet des effets HAZ, les parois raidies ou courbes et l'extraction automatique des contours Robot restent à développer. Le raccordement n'établit pas à lui seul la conformité réglementaire de la structure.
La prise en compte exhaustive de l'amendement A2, de l'annexe nationale française et de l'édition 2023 reste à valider séparément.
Sources techniques
- EN 1999-1-1:2007+A1:2009, §6.1.4.2 à §6.1.4.4, tableau 6.2.
- Dlubal — Classification des sections aluminium
- Texte de travail EN 1999-1-1:2007+A1
C02 Résistance au voilement local EN 1999-1-1 · §6.1.5 · Sections de classe 4 Code partiel
Réduction de l'épaisseur des parois comprimées
Pour les éléments de classe 4, le voilement local est pris en compte en réduisant l'épaisseur des parois à l'aide du coefficient rho_c.
Coefficients — Tableau 6.3
| Groupe | Paroi | C1 | C2 |
|---|---|---|---|
| A sans soudure | Interne | 32 | 220 |
| A avec soudure | Interne | 29 | 198 |
| B sans soudure | Interne | 29 | 198 |
| B avec soudure | Interne | 25 | 150 |
| A sans soudure | En saillie | 10 | 24 |
| A avec soudure | En saillie | 9 | 20 |
| B sans soudure | En saillie | 9 | 20 |
| B avec soudure | En saillie | 8 | 16 |
Cas des sections dissymétriques
Cette limitation concerne les parois planes en saillie de sections dissymétriques.
Implémentation dans RobotEC9
La classe C# Ec9LocalBuckling réutilise la classification des parois du §6.1.4. Elle calcule le coefficient rho_c et l'épaisseur efficace nominale de chaque paroi plane non raidie.
Deux colonnes supplémentaires sont prévues dans l'onglet Classification EC9 : rho_c et teff.
Calcul géométrique de la section efficace
Pour les profilés en I doublement symétriques, Robot EC9 utilise les propriétés géométriques brutes extraites de Robot Structural Analysis, puis retire la matière correspondant aux réductions d'épaisseur des parois de classe 4.
Les termes de réduction des inerties sont déterminés géométriquement, en tenant compte des moments propres des parties retirées et du théorème de Huygens.
Résultats calculés
| Propriété | Symbole | Unité |
|---|---|---|
| Aire efficace | Aeff | mm² |
| Centre de gravité efficace | yeff / zeff | mm |
| Inerties efficaces | Iy,eff / Iz,eff | mm⁴ |
| Modules élastiques efficaces | Wy,eff / Wz,eff | mm³ |
Intégration dans Robot EC9
La classe C# Ec9EffectiveSection exploite les coefficients rho_c précédemment calculés. Elle utilise les cinq parois d'un profil en I symétrique sous compression uniforme N.
Le programme contrôle la cohérence de l'aire brute Robot avec la géométrie du profil, puis calcule les propriétés efficaces.
Le traitement reste limité aux profils en I symétriques, à sections constantes, sous compression uniforme. Les effets HAZ, la flexion, les efforts combinés et les sections dissymétriques ne sont pas encore traités.
Les caractéristiques efficaces ne sont pas encore utilisées pour délivrer une conformité ELU. Les tests numériques et normatifs indépendants doivent être validés.
La réduction des épaisseurs est programmée, mais les propriétés géométriques complètes de la section efficace ne sont pas encore calculées.
Restent à développer : Aeff, Iy_eff, Iz_eff, modules de résistance efficaces, déplacement du centre de gravité et itération sous efforts combinés.
Les résultats ne sont pas encore utilisés pour établir la conformité ELU d'une barre.
Références normatives
EN 1999-1-1:2007+A1:2009, §6.1.5, équations (6.11) et (6.12), tableau 6.3 et figure 6.5.
Ce qu’il reste à développer
3. Contrôles indispensables absents ou seulement signalés
| Identifiant / famille | Situation actuelle | Conséquence |
|---|---|---|
CLASSIFICATION — §6.1.4
|
Classification des parois planes non raidies implémentée dans le module C# autonome. Tests et validation en cours. | Extraction automatique des profils Robot, parois raidies, sections courbes et cas particuliers encore à développer. |
EFFECTIVE_SECTION — classe 4 et HAZ |
Aires et modules efficaces non calculés | Aucune réduction automatiquement démontrée |
MATERIAL — §3.2 |
Pas de bibliothèque alliage–état–épaisseur certifiée | f0, fu et classe de matériau saisies extérieurement |
NATIONAL_ANNEX — NA:2016 |
Annexe non qualifiée ; coefficients non verrouillés | Pas de conclusion française valable |
BUCKLING_TORSIONAL — §6.3.1.4 |
Mode torsion/flexion-torsion non calculé | NotVerified si non écarté par justification |
BEAM_COLUMN — §6.3.3 |
Interaction de stabilité N + My + Mz non implémentée | NotVerified si compression et flexion |
TORSION_INTERACTIONS — §6.2.7 |
Non calculé | NotVerified pour torsion combinée |
| Appuis locaux / poinçonnement / âmes — §6.7 | Non calculés | Vérifications de charges localisées non disponibles |
| Assemblages — chapitre 8 (édition 2007) | Non calculés | Pas de boulons/soudures vérifiés |
| Édition 2023 | Aucun moteur normatif actif | Toute demande 2023 renvoie NotVerified |
Anomalies fonctionnelles à surveiller :
- La WinForms
MainForm.Verifier()renseigne actuellementFamily = Other,DoublySymmetric = false,CompressionClass = 0,Y.Class = 0,Z.Class = 0, et aucune valeurWel/Wpl/Weff. Cela empêche normalement la flexion et les interactions A1 de s'exécuter sur une barre lue de Robot. Ces valeurs ne doivent pas être inventées : elles devront résulter d'un module de géométrie/classification vérifié. - La fenêtre fournit un seul jeu
f0,fupour toutes les barres sélectionnées, et des longueurs de flambement Y/Z communes ; cela ne convient pas aux profils ou matériaux différents sans adaptation. - L'annexe nationale y est initialisée avec
NationalAnnexVerified = false. Les coefficients restent des valeurs par défaut démonstratives. - La lecture Robot échantillonne des stations (11 par défaut). Elle ne garantit pas les maxima entre stations ni tous les points singuliers ; la liste de cas et de combinaisons ELU doit être justifiée.
- Des conditions d'absence de trous/soudures reposent sur une confirmation de l'ingénieur, et non sur une détection automatique dans Robot.
- Risque à corriger :
MaterialData.BucklingClassest initialisé implicitement àAsi l’interface ne le renseigne pas. Or la courbe A/B doit découler des caractéristiques normatives de l’alliage et du produit, jamais d’une valeur par défaut silencieuse. - La variable
OverallestFailsi une vérification locale est déjà en échec ; sinonNotVerifiedsi une exigence manque. En branche A1,SCOPE_GATEmaintient explicitement le résultat global non vérifié. En branche A2,OTHER_CLAUSESjoue ce rôle.
Essais numériques et non-régression
4. État des tests (fichier tests/RobotEC9.Tests/Program.cs)
| Famille | Essais écrits dans le code | Ce que ces essais prouvent réellement |
|---|---|---|
| Traction A2 | Brute, trous, soudure transversale, défauts d'entrée et d'inventaire | Cohérence des calculs élémentaires et des garde-fous si exécutés |
| Compression A1 | Résistance A × f0 / gammaM1 |
Arithmétique d'un cas simple |
| Flexion A1 | Section classe 3 | Arithmétique Wel × f0 / gammaM1 |
| Cisaillement A1 | Av × f0 / (sqrt(3) × gammaM1) |
Arithmétique d'un cas simple |
| Interaction section creuse A1 | Expression (6.43) | Reproduction de la même expression, pas une validation indépendante de sa portée |
Euler et chi |
Charge critique Euler et décroissance de chi |
Cohérence algébrique, pas validation de la courbe complète |
| Garde-fous | Classe 4 sans section efficace, effort tranchant élevé, édition 2023 | Refus de certains calculs incomplets |
| Conversion d'unités | kN → N et kN·m → N·mm | Conversion pour un jeu d'unités explicitement choisi |
Ces tests ne remplacent pas : (i) un calcul à la main indépendant fondé sur chaque cas normatif, (ii) les exemples officiels/commentés, (iii) l'analyse des clauses transversales, (iv) les essais sur des sections/soudures réelles, (v) une compilation et exécution contrôlée de la solution Visual Studio, et (vi) la revue par un ingénieur compétent.
Pour exécuter les tests depuis la racine de la solution :
dotnet run --project tests/RobotEC9.Tests
Le résultat PASS dans la console désigne la réussite d'un test logiciel, pas une conformité EN 1999.
Textes normatifs et traçabilité
Les sources sont citées pour permettre la vérification des clauses. Aucun texte intégral protégé par droit d'auteur n'est reproduit ici.
5. Sources et traçabilité des clauses
[S1] Texte de travail première génération, version A1 :
BS EN 1999-1-1:2007+A1:2009, Eurocode 9 — Design of aluminium structures — Part 1-1,
copie en ligne :
Consulter le document source ↗
Sections consultées dans le PDF :
- p. 63–64 imprimées : §6.2.3 traction, §6.2.4 compression, début §6.2.5 ;
- pp. 65–67 : tableau 6.4, flexion, cisaillement et torsion ;
- pp. 69–70 : interaction flexion–cisaillement et effort normal–flexion ;
- pp. 71–74 : flambement des éléments comprimés, tableaux 6.5–6.7 ;
- pp. 75–76 : déversement et ses courbes de réduction.
Cette copie sert au recoupement ; il faut confirmer sa conformité à l'exemplaire normatif officiel applicable au projet.
[S2] Texte de l'amendement A2 — aperçu technique :
EN 1999-1-1:2007/FprA2:2013, modifications ensuite publiées comme amendement A2 (en France NF EN
1999-1-1/A2:2014), aperçu PDF :
Consulter le
document source ↗
Pages 5 à 8 imprimées : définitions Au,eff, Wu,eff, correction (6.19b), ajout (6.21b) et (6.24b), changements (6.40) et (6.41).
Cet aperçu est libellé FprA2 ; la vérification finale doit être faite sur l'amendement publié, et non uniquement sur l'avant-projet.
[S3] AFNOR, source officielle de l'annexe nationale française :
Consulter le document source ↗
La fiche confirme NF EN 1999-1-1/NA, juillet 2016, applicable à la version 2007 et aux amendements A1/A2. Les 17 pages du texte de l'annexe et les valeurs nationales n'ont pas été vérifiées ici.
[S4] Édition 2023, informations bibliographiques :
BS EN 1999-1-1:2023 — fiche de l'organisme de normalisation :
Consulter le document source ↗
Aucune expression de l'édition 2023 n'est importée par le présent prototype. Il faudra acquérir et analyser son texte complet et ses paramètres nationaux applicables avant de programmer cette édition.
[S5] Code source audité : RobotEC9_Clause_01_Traction_A2.zip — dernier état partagé dans cette conversation, notamment les chemins énumérés à la
section 1. Les numéros de lignes sont susceptibles de changer ; utiliser les noms des classes, méthodes et identifiants de résultat.
Journal de qualification
6. Journal de qualification — à compléter clause par clause
| N° | Clause | Calcul C# | Recoupement du texte | Essai arithmétique | Essai indépendant | Approuvé pour usage réel |
|---|---|---|---|---|---|---|
| C01 | 6.2.3 traction A2 | Oui, partiel | A1 et avant-projet A2 consultés | Écrit | Non | Non |
| C02 | 6.2.4 compression A1 | Oui, partiel | A1 consulté ; A2 distinct | Écrit | Non | Non |
| C03 | 6.2.5 flexion A1 | Oui, partiel | A1 consulté ; A2 distinct | Écrit | Non | Non |
| C04 | 6.2.6 cisaillement A1 | Oui, partiel | A1 consulté | Écrit | Non | Non |
| C05 | 6.2.7 torsion simple A1 | Oui, partiel | A1 consulté | Non identifié | Non | Non |
| C06 | 6.2.9 interaction A1 | Oui, partiel | A1 consulté ; A2 modifie les équations ouvertes | Écrit | Non | Non |
| C07 | 6.2.8 / 6.2.10 flexion + cisaillement | Seuil seulement | A1 consulté | Garde-fou écrit | Non | Non |
| C08 | 6.3.1 flambement flexionnel | Oui, partiel | A1 consulté | Euler + chi partiels |
Non | Non |
| C09 | 6.3.2 déversement | Oui, si Mcr fourni |
A1 consulté | Non identifié | Non | Non |
| C10 | NA française 2016 | Non | Fiche AFNOR seule | Non | Non | Non |
| C11 | EN 1999-1-1:2023 | Non | Fiche bibliographique seule | Test du blocage | Non | Non |
Conditions pour changer un statut en « qualifié »
- Confirmer les dispositions sur l'exemplaire intégral officiel de l'édition visée, amendements et annexe nationale inclus.
- Contrôler la portée de la formule (type de section, état de contrainte, assemblages, soudage, classe, produits/épaisseurs).
- Écrire un jeu indépendant de référence : hypothèses, valeurs intermédiaires, résultats manuels, tolérances.
- Ajouter des tests aux frontières de validité, avec refus explicite si les entrées obligatoires manquent.
- Vérifier sur Robot les unités, axes, signes, combinaisons, stations critiques et résultats simultanés.
- Consigner édition/date, source et version du code ayant servi à la qualification.
Conclusion de l'audit : notre projet contient une base de calcul ELU documentable, mais seule la traction A2 est isolée dans la nouvelle route ; le reste est une branche A1 exploratoire. Aucune vérification n'est aujourd'hui qualifiée pour émettre une note de calcul réglementaire.

