INGÉNIERIE DES STRUCTURES · FORMATION · BIM
Recherche & développement · Note technique D01 · 25.10.2026

Robot EC9
Aluminium.

Transparence sur les méthodes de calcul à l’Eurocode 9 : formules ELU, hypothèses, vérifications déjà programmées et travail restant à valider.

Statut du moteur : prototype de développement. Les vérifications présentées ici ne constituent pas une certification ni une note de calcul réglementaire.
Schéma analytique d’un portique aluminium soumis à des charges, avec nœuds et appuis
EN 1999-1-1Référentiel de calcul des structures aluminium
A2 · TractionRoute dédiée partiellement programmée
A1 · 9 modulesFormules partielles et garde-fous codés
Validation en coursAnnexe française et version 2023 non intégrées

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é.

À lire avant toute utilisation. Les formules ne sont pas toutes compatibles avec l'amendement A2. L'annexe nationale française de 2016 et l'édition 2023 n'ont pas été validées dans le moteur. Aucune vérification n'est qualifiée pour une note de calcul définitive.

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.

Important : édition sélectionnée ≠ ensemble des calculs disponibles.

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

ÉTAPE 01Autodesk Robot

Barres, sections, matériaux, cas et combinaisons, efforts internes simultanés.

ÉTAPE 02RobotEC9.Core

Conversions d'unités, résistance de section, stabilité, conditions d'applicabilité.

ÉTAPE 03Résultats traçables

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
Barre en traction avec trou et zone soudée transversale
Illustration pédagogique du phénomène — sans dimensionnement automatique.

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
Poteau comprimé et forme déformée de flambement
Illustration pédagogique du phénomène — sans dimensionnement automatique.

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
Poutre fléchie sous charge transversale avec diagramme de moment illustratif
Illustration pédagogique du phénomène — sans dimensionnement automatique.

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
Coupe d’un profilé en I avec axes locaux et zones de cisaillement
Illustration pédagogique du phénomène — sans dimensionnement automatique.

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
Poteau comprimé et forme déformée de flambement
Illustration pédagogique du phénomène — sans dimensionnement automatique.

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
Poutre fléchie sous charge transversale avec diagramme de moment illustratif
Illustration pédagogique du phénomène — sans dimensionnement automatique.

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

b b_w Section en I Âme : paroi interne Semelles : parois en saillie t_w : épaisseur de l'âme t_f : épaisseur de semelle
Schéma pédagogique : identification des parois comprimées d'une section en I, non à l'échelle.

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

\[ \varepsilon=\sqrt{\frac{250}{f_0}} \]

\(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.

\[ \varepsilon=\sqrt{\frac{250}{110}} =1{,}508 \] \[ \beta_{w,\mathrm{flexion}} =0{,}40\frac{180}{6}=12 \] \[ \beta_{w,\mathrm{compression}} =\frac{180}{6}=30 \] \[ \beta_f=\frac{35}{8}=4{,}375 \]
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.

Statut : intégration C# proposée, essais Robot à confirmer.

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.

Statut : extraction des dimensions programmée, compilation et vérification sur profils Robot à confirmer. Décomposition automatique des parois et calcul des gradients de contraintes restant à développer.

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.

Statut de la vérification §6.1.4 : raccordement C# proposé — validation en cours.

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

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.

\[ \lambda_p=\frac{\beta}{\varepsilon} \] \[ \rho_c= \begin{cases} 1 & \beta\leq\beta_3\\[4pt] \dfrac{C_1}{\lambda_p} -\dfrac{C_2}{\lambda_p^2} & \beta>\beta_3 \end{cases} \] \[ t_{\mathrm{eff}}=\rho_c t \]

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

\[ \rho_c \leq \frac{120}{\lambda_p^2} \]

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.

\[ \Delta A_i=b_i(t_i-t_{\mathrm{eff},i}) \] \[ A_{\mathrm{eff}} =A_{\mathrm{brute}}-\sum_i\Delta A_i \] \[ y_{\mathrm{eff}} =-\frac{\sum_i\Delta A_i y_i}{A_{\mathrm{eff}}} \] \[ z_{\mathrm{eff}} =-\frac{\sum_i\Delta A_i z_i}{A_{\mathrm{eff}}} \] \[ I_{y,\mathrm{eff}} =I_{y,\mathrm{brut}} -\sum_i\Delta I_{y,i} -A_{\mathrm{eff}}z_{\mathrm{eff}}^2 \] \[ I_{z,\mathrm{eff}} =I_{z,\mathrm{brut}} -\sum_i\Delta I_{z,i} -A_{\mathrm{eff}}y_{\mathrm{eff}}^2 \]

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.

Statut : calcul géométrique C# développé, validation en cours.

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.

Développement partiel — essais à confirmer.

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 :

  1. La WinForms MainForm.Verifier() renseigne actuellement Family = Other, DoublySymmetric = false, CompressionClass = 0, Y.Class = 0, Z.Class = 0, et aucune valeur Wel/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é.
  2. La fenêtre fournit un seul jeu f0, fu pour 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.
  3. L'annexe nationale y est initialisée avec NationalAnnexVerified = false. Les coefficients restent des valeurs par défaut démonstratives.
  4. 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.
  5. Des conditions d'absence de trous/soudures reposent sur une confirmation de l'ingénieur, et non sur une détection automatique dans Robot.
  6. Risque à corriger : MaterialData.BucklingClass est initialisé implicitement à A si 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.
  7. La variable Overall est Fail si une vérification locale est déjà en échec ; sinon NotVerified si une exigence manque. En branche A1, SCOPE_GATE maintient explicitement le résultat global non vérifié. En branche A2, OTHER_CLAUSES joue 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é »

  1. Confirmer les dispositions sur l'exemplaire intégral officiel de l'édition visée, amendements et annexe nationale inclus.
  2. Contrôler la portée de la formule (type de section, état de contrainte, assemblages, soudage, classe, produits/épaisseurs).
  3. Écrire un jeu indépendant de référence : hypothèses, valeurs intermédiaires, résultats manuels, tolérances.
  4. Ajouter des tests aux frontières de validité, avec refus explicite si les entrées obligatoires manquent.
  5. Vérifier sur Robot les unités, axes, signes, combinaisons, stations critiques et résultats simultanés.
  6. 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.