Ferraillage transversal d’une poutre (Effort Tranchant)
Contexte : Résistance à l'effort tranchant d'une poutre en béton armé.
Dans une poutre fléchie, l'effort tranchant (V_EdEffort tranchant de calcul à l'ELU (État Limite Ultime).) génère des contraintes de cisaillement qui, combinées aux contraintes normales, provoquent une traction diagonale. Le béton ayant une faible résistance à la traction, des fissures inclinées (généralement à 45°) peuvent apparaître. Pour éviter une rupture brutale par cisaillement, on dispose des armatures transversales (cadres, étriers, épingles) qui couturent ces fissures. Cet exercice détaille la méthode de l'Eurocode 2Norme européenne EN 1992-1-1 pour le calcul des structures en béton. basée sur le modèle du treillis de Mörsch.
Remarque Pédagogique : La rupture par effort tranchant est une rupture "fragile" (soudaine), contrairement à la flexion qui est "ductile" (prévenante). C'est pourquoi le dimensionnement des cadres est une étape critique de la sécurité structurale.
Objectifs Pédagogiques
- Vérifier la résistance des bielles de béton comprimé (\(V_{\text{Rd,max}}\)).
- Calculer la section d'armatures transversales nécessaire (\(A_{\text{sw}}/s\)).
- Vérifier le pourcentage minimum d'armatures (\(A_{\text{sw,min}}\)).
- Déterminer l'espacement maximal réglementaire des cadres (\(s_{\text{max}}\)).
Données de l'étude
On considère une poutre en béton armé de section rectangulaire soumise à un effort tranchant de calcul \(V_{\text{Ed}}\) à l'ELU.
Fiche Technique / Données
| Caractéristique | Valeur |
|---|---|
| Largeur de la poutre (\(b_{\text{w}}\)) | 250 mm |
| Hauteur totale (\(h\)) | 500 mm |
| Hauteur utile (\(d\)) | 450 mm |
| Effort Tranchant ELU (\(V_{\text{Ed}}\)) | 150 kN (soit 0.150 MN) |
| Béton C25/30 | \(f_{\text{ck}} = 25\) MPa, \(f_{\text{cd}} \approx 16.7\) MPa |
| Acier B500B (Cadres) | \(f_{\text{yk}} = 500\) MPa, \(f_{\text{ywd}} = 435\) MPa |
| Inclinaison des bielles (\(\theta\)) | On choisit \(\cot \theta = 2.5\) (Optimisation) |
| Inclinaison des armatures (\(\alpha\)) | \(90^{\circ}\) (Cadres verticaux) |
Schéma de l'Effort Tranchant
Questions à traiter
- Vérifier la résistance des bielles de béton comprimé (\(V_{\text{Rd,max}}\)).
- Calculer la section d'acier transversal nécessaire par mètre (\(A_{\text{sw}}/s\)).
- Vérifier le pourcentage minimum d'armatures transversales (\(A_{\text{sw,min}}/s\)).
- Déterminer l'espacement maximal constructif (\(s_{\text{max}}\)) et proposer un ferraillage pratique.
Les bases théoriques (Treillis de Mörsch)
L'Eurocode 2 modélise la poutre comme un treillis imaginaire composé de membrures (haut/bas), de montants tendus (les cadres) et de bielles comprimées (le béton).
Résistance des bielles de béton (\(V_{\text{Rd,max}}\))
Il faut d'abord s'assurer que le béton ne va pas s'écraser sous la compression oblique avant que l'acier ne cède. C'est le mode de ruine par "écrasement de l'âme".
Vérification de la bielle
Si \(V_{\text{Ed}} > V_{\text{Rd,max}}\), il faut redimensionner la section de béton (augmenter b ou h) ou changer l'angle \(\theta\).
Résistance des aciers (\(V_{\text{Rd,s}}\))
C'est la force que peuvent reprendre les cadres coupant la fissure oblique. Les cadres agissent comme les suspentes d'un pont suspendu.
Calcul des aciers
À l'équilibre, on pose \(V_{\text{Ed}} = V_{\text{Rd,s}}\) pour trouver \(A_{\text{sw}}/s\).
Correction : Ferraillage transversal d’une poutre (Effort Tranchant)
Question 1 : Vérification des bielles comprimées (\(V_{\text{Rd,max}}\))
Principe
On vérifie que l'effort tranchant appliqué \(V_{\text{Ed}}\) ne provoque pas l'écrasement du béton dans les bielles comprimées inclinées à \(\theta\). Si cette condition n'est pas remplie, le béton explose avant que les aciers ne puissent travailler. C'est une vérification de l'état limite ultime du béton lui-même.
Mini-Cours : Le Bras de Levier z
Pour l'effort tranchant, l'Eurocode permet de prendre le bras de levier approximatif \(z = 0.9d\). C'est la hauteur efficace sur laquelle l'effort tranchant est transmis entre la membrure comprimée et la membrure tendue.
Remarque Pédagogique
Le choix de \(\cot \theta = 2.5\) minimise la quantité d'acier nécessaire mais sollicite davantage le béton en compression (bielle plus plate). C'est le choix économique standard tant que \(V_{\text{Rd,max}}\) passe.
Normes
Eurocode 2, Section 6.2.3. La résistance du béton fissuré est réduite par le facteur \(\nu_1\) car le cisaillement crée des fissures qui affaiblissent la compression.
Formule(s)
Calcul de VRd,max (bielles)
Note : Pour \(\alpha = 90^\circ\) (cadres verticaux), le terme complexe se simplifie souvent. Ici, nous utilisons la forme générale simplifiée pour \(\theta\) variable.
Hypothèses & Coefficients
- \(\alpha_{\text{cw}} = 1.0\) (Pas de précontrainte).
- \(z \approx 0.9 \cdot d = 0.9 \cdot 450 = 405\) mm.
- \(\nu_1 = 0.6 \cdot (1 - f_{\text{ck}}/250)\) (Facteur de réduction de résistance du béton fissuré).
- \(\cot \theta = 2.5\) (Choix de conception pour économiser l'acier, angle \(\theta \approx 21.8^\circ\)).
Données
| Paramètre | Valeur | Unité |
|---|---|---|
| Largeur (\(b_{\text{w}}\)) | 250 | mm |
| Résistance béton (\(f_{\text{cd}}\)) | 16.7 | MPa |
Astuces
Le terme \(1 / (\cot \theta + \tan \theta)\) est maximal pour \(\theta = 45^\circ\) (cot=1) et diminue quand on incline la bielle (cot=2.5). Donc cot=1 est le plus favorable pour le béton, mais le pire pour l'acier.
Bielle de Béton Comprimé
Calculs
Calcul de nu1
On calcule le coefficient de réduction \(\nu_1\) pour un béton C25/30. Ce coefficient prend en compte que le béton fissuré est moins résistant à la compression :
Calcul du facteur géométrique d'angle
On calcule le terme dépendant de l'angle \(\theta\). Avec \(\cot \theta = 2.5\), on a \(\tan \theta = 1/2.5 = 0.4\). Ce terme géométrique influence la capacité portante de la bielle :
Calcul Principal (VRd,max)
On injecte toutes les valeurs (en N et mm). Attention à bien utiliser les Newtons pour les forces et les mm pour les longueurs :
La poutre peut supporter au maximum 315 kN avant que le béton ne s'écrase.
Vérification des Bielles
Réflexions
On constate que \(V_{\text{Ed}} = 150 \text{ kN} < V_{\text{Rd,max}} = 315 \text{ kN}\). La condition est vérifiée avec une large marge. Le béton peut supporter la compression inclinée.
Points de vigilance
Si \(V_{\text{Ed}} > V_{\text{Rd,max}}\), augmenter les aciers ne sert à rien ! Il faut impérativement redimensionner la poutre (augmenter \(b_{\text{w}}\) ou \(h\)) ou augmenter la classe du béton.
Points à Retenir
Le choix de \(\cot \theta = 2.5\) minimise la quantité d'acier nécessaire mais sollicite davantage le béton en compression (bielle plus plate). C'est le choix économique standard tant que \(V_{\text{Rd,max}}\) passe.
Le saviez-vous ?
Le modèle des bielles et tirants a été popularisé par Ritter et Mörsch au début du 20ème siècle, bien avant les ordinateurs !
FAQ
Peut-on changer l'angle thêta ?
Oui, l'Eurocode permet de choisir \(\cot \theta\) entre 1.0 (45°) et 2.5 (21.8°). Réduire \(\cot \theta\) augmente \(V_{\text{Rd,max}}\) mais augmente aussi la quantité d'acier nécessaire.
A vous de jouer
Si on avait choisi \(\cot \theta = 1.0\) (45°), le terme d'angle vaudrait 0.5. Calculez le nouveau \(V_{\text{Rd,max}}\) approximatif.
📝 Mémo
Le béton tient bon. On peut maintenant calculer les aciers.
Question 2 : Calcul de la section d'acier (\(A_{\text{sw}}/s\))
Principe
Maintenant que la bielle de béton est vérifiée, on doit calculer la quantité d'armatures transversales (étriers) nécessaires pour "suspendre" l'effort tranchant. On raisonne en section d'acier par unité de longueur (\(A_{\text{sw}}/s\)).
Mini-Cours : Le calcul des armatures d'âme
On considère que les étriers fonctionnent comme les montants verticaux d'un treillis. La force qu'ils doivent reprendre dépend de l'effort tranchant total \(V_{\text{Ed}}\) et de l'inclinaison des bielles \(\theta\). Plus les bielles sont plates (\(\theta\) faible), plus il y a d'étriers mobilisés pour porter la charge.
Remarque Pédagogique
Le ratio \(A_{\text{sw}}/s\) représente la quantité d'acier qu'il faut mettre par millimètre de longueur de poutre. C'est l'inconnue principale du problème.
Normes
Eurocode 2, Section 6.2.3, Eq 6.8.
Formule(s)
Calcul des armatures d'effort tranchant
Cette formule dérive de l'équilibre du treillis de Mörsch.
Hypothèses
Armatures verticales (\(\alpha = 90^\circ\)) et \(\cot \theta = 2.5\).
Données
- \(V_{\text{Ed}} = 150\,000\) N
- \(z = 405\) mm
- \(f_{\text{ywd}} = f_{\text{yk}} / \gamma_s = 500 / 1.15 = 435\) MPa
- \(\cot \theta = 2.5\)
Astuces
Ne vous affolez pas si le chiffre est petit (0.xxx). C'est normal car c'est une densité linéaire (mm²/mm). Multipliez par 1000 ou 100 (cm²/m) pour mieux visualiser.
Section Transversale
Calcul(s)
Calcul Principal
On applique la formule numérique en veillant à la cohérence des unités :
Cela signifie qu'il faut 0.341 mm² d'acier par mm de longueur de poutre. Pour obtenir une valeur plus parlante, on peut multiplier par 1000 pour avoir la section nécessaire par mètre :
Nous avons donc besoin de 3.41 cm² d'acier pour chaque mètre de poutre.
Schéma (Densité d'Acier)
Réflexions
Si on choisit un cadre HA8 (diamètre 8mm), il a 2 brins verticaux. La section d'un cadre est \(A_{\text{sw}} = 2 \times 50 = 100 \text{ mm}^2\).
L'espacement théorique serait \(s = \frac{100}{0.341} \approx 293 \text{ mm}\). C'est un espacement confortable.
Points de vigilance
Ne pas oublier de diviser la résistance caractéristique de l'acier \(f_{\text{yk}}\) par le coefficient de sécurité \(\gamma_s = 1.15\) pour obtenir \(f_{\text{ywd}}\).
Points à Retenir
La section d'acier par mètre dépend inversement de \(\cot \theta\). Si on réduit \(\cot \theta\) (bielles plus raides), on a besoin de plus d'acier.
Le saviez-vous ?
On utilise souvent des épingles ou des étriers multiples pour augmenter le nombre de brins (4 brins, 6 brins...) dans les poutres très larges ou très chargées.
FAQ
Pourquoi s'exprime-t-on en Asw/s ?
Parce que c'est une densité linéaire. On peut ensuite choisir soit de fixer le diamètre et trouver l'espacement, soit fixer l'espacement et trouver le diamètre.
A vous de jouer
Si on avait pris \(\cot \theta = 1.0\), quelle serait la valeur de \(A_{\text{sw}}/s\) ? (Divisez le résultat actuel par le rapport des cot).
📝 Mémo
On a besoin de 3.41 cm² d'acier par mètre linéaire pour reprendre l'effort.
Question 3 : Vérification du pourcentage minimum
Principe
Le béton ne doit jamais être non armé à l'effort tranchant pour éviter une rupture fragile imprévue. Il existe une quantité minimale d'acier à mettre, même si le calcul précédent donnait zéro (cas des faibles charges). Cela permet une "redistribution" des efforts en cas de fissuration imprévue.
Mini-Cours : La Condition de Non-Fragilité
La section minimale d'armatures transversales assure que si une fissure se forme, les cadres seront capables de reprendre l'effort sans rompre immédiatement. C'est une sécurité fondamentale de l'ingénierie.
Remarque Pédagogique
Cette condition est souvent dimensionnante dans les zones de la poutre où l'effort tranchant est faible (milieu de travée).
Normes
Eurocode 2, Clause 9.2.2(5). Le taux minimum \(\rho_{w,\text{min}}\) dépend de la qualité du béton et de l'acier.
Formule(s)
Hypothèses
Béton C25/30 et cadres B500B verticaux (\(\sin \alpha = 1\)).
Données
| Paramètre | Valeur |
|---|---|
| \(f_{\text{ck}}\) | 25 MPa |
| \(f_{\text{yk}}\) | 500 MPa |
| \(b_{\text{w}}\) | 250 mm |
Astuces
Pour un béton C25/30 courant, le taux min est souvent autour de 0.08%. C'est une valeur repère à connaître.
Comparaison des taux
Calculs
Calcul du taux min
On calcule d'abord le ratio minimal en fonction des matériaux :
Calcul de la section linéaire minimale
On transforme ce ratio en section par mètre en multipliant par la largeur de la poutre :
Schéma (Résultat)
Comparaison
On compare la valeur calculée pour la résistance (Q2) et la valeur minimale constructive (Q3). On doit toujours respecter le maximum des deux :
Le calcul de résistance est ici prépondérant (0.341 > 0.20). C'est lui qui dimensionnera nos cadres.
Réflexions
Si le calcul Q2 avait donné 0.15 (par exemple pour un faible effort tranchant), nous aurions dû retenir 0.20 et ferrailler en conséquence.
Points de vigilance
Ne jamais oublier ce calcul. Dans les dalles ou les petites poutres, le ferraillage minimum est souvent déterminant.
Points à Retenir
Toujours vérifier ce minimum ! Il assure la ductilité et évite la rupture fragile.
Le saviez-vous ?
Pour des bétons à haute résistance (HPC), le pourcentage minimum est plus élevé car le béton est plus cassant (fragile).
FAQ
Peut-on ne pas mettre de cadres ?
Seulement dans des éléments secondaires très peu chargés (dalles, semelles) sous conditions strictes. Pour une poutre porteuse, c'est formellement interdit.
A vous de jouer
Calculez le taux min pour un béton C50/60 (fck=50) et le même acier.
📝 Mémo
On garde la valeur de 0.341 pour le choix des cadres.
Question 4 : Espacement maximal et Ferraillage Pratique
Principe
Pour assurer une bonne couture des fissures, les cadres ne doivent pas être trop espacés. L'Eurocode impose un espacement maximal longitudinal \(s_{l,\text{max}}\) pour garantir qu'au moins un cadre traversera chaque fissure potentielle qui se propagerait à 45 degrés.
Mini-Cours : L'Espacement St
L'espacement \(s\) (ou \(St\)) est la distance centre-à-centre entre deux jeux de cadres consécutifs. Il doit être suffisamment petit pour contrôler la fissuration, mais pas trop petit pour permettre le bétonnage correct (passage des granulats).
Remarque Pédagogique
L'espacement maximal réglementaire dépend de l'effort tranchant relatif. Pour simplification courante, on utilise souvent \(0.75d\).
Normes
Eurocode 2, Clause 9.2.2(6).
Pour des cadres verticaux (\(\alpha=90^\circ\)), \(\cot \alpha = 0\), donc la formule se simplifie.
Hypothèses
Cadres verticaux, pas de ferraillage suspendu complexe.
Données
| Paramètre | Valeur |
|---|---|
| Hauteur utile \(d\) | 450 mm |
| Besoin acier (Q2/Q3) | 0.341 mm²/mm |
Astuces
Choisissez toujours un espacement qui est un multiple de 1 cm (ou mieux 5 cm) pour faciliter le travail sur chantier. 25cm est mieux que 24.8cm.
Espacement Maximal
Calcul(s)
Calcul de s_max (réglementaire)
On calcule d'abord la limite normative :
Choix du ferraillage
On choisit un diamètre commercial. Prenons des cadres HA 8 (Haute Adhérence, 8mm).
- Section d'un brin HA8 : \(50.3 \text{ mm}^2\).
- Un cadre a 2 brins (jambes) : \(A_{\text{sw}} = 2 \times 50.3 = 100.6 \text{ mm}^2\).
Calcul de l'espacement nécessaire
On divise la section d'un cadre par le besoin linéaire pour trouver tous les combien on doit poser ce cadre :
Conclusion pratique
On doit respecter \(s \le 295 \text{ mm}\) (calcul de résistance) et \(s \le 337.5 \text{ mm}\) (maximum normatif). On prend la plus petite valeur et on arrondit à l'inférieur pour être en sécurité et sur des mesures rondes (multiples de 10 ou 50mm). Ici, 250 mm (25 cm) est un excellent choix.
Schéma de Réalisation
Réflexions
Un espacement de 25 cm est très standard. Si on avait trouvé 8 cm, il aurait fallu changer de diamètre (passer au HA10) pour aérer le ferraillage et permettre le bétonnage.
Points de vigilance
Ne dépassez jamais l'espacement maximal, même si le calcul de résistance vous dit que vous pouvez mettre un cadre tous les mètres !
Points à Retenir
Le premier cadre doit être placé près de l'appui (souvent à s/2) car c'est là que la fissure d'effort tranchant démarre souvent.
Le saviez-vous ?
On utilise la "Série de Caquot" pour définir des espacements variables progressifs (7, 8, 9, 10, 11, 13, 16, 20, 25, 35, 40 cm) en partant de l'appui vers le milieu de la poutre pour optimiser l'acier.
FAQ
Puis-je utiliser un diamètre 6mm ?
Oui, mais attention à la rigidité de la cage d'armature lors du levage. Le HA6 est souvent réservé aux petites poutrelles ou aux cadres de montage. Le HA8 est le standard.
A vous de jouer
Calculez l'espacement requis si on utilisait des HA6 (As = 2x28 = 56 mm2).
📝 Mémo
Ferraillage déterminé. Pensez à vérifier l'ancrage aux appuis ensuite.
Bilan du Ferraillage Transversal
Récapitulatif des vérifications et du ferraillage mis en œuvre.
📝 Grand Mémo : Effort Tranchant
Synthèse de la méthode Eurocode 2 :
-
🧱
1. Vérifier le Béton (Bielles) : Toujours commencer par \(V_{\text{Rd,max}}\). Si ça ne passe pas, changer les dimensions ou le béton. L'acier n'y changera rien.
-
📐
2. Calculer l'Acier : Utiliser la formule du treillis. Jouer sur \(\cot \theta\) (entre 1 et 2.5) pour optimiser la quantité d'acier.
-
⚠️
3. Respecter le Minimum : Ne jamais mettre moins que \(\rho_{w,\text{min}}\) et ne jamais dépasser l'espacement \(s_{\text{max}}\).
🎛️ Simulateur : Dimensionnement Cadres
Estimez l'espacement des cadres en fonction de la charge et de la largeur de la poutre.
Paramètres d'entrée
📝 Quiz final : Effort Tranchant
1. Quel type de rupture l'effort tranchant provoque-t-il généralement dans une poutre non armée transversalement ?
2. Si \(V_{\text{Ed}} > V_{\text{Rd,max}}\) (résistance des bielles dépassée), que faut-il faire ?
📚 Glossaire
- \(V_{\text{Ed}}\)
- Effort tranchant de calcul agissant (Action) à l'État Limite Ultime.
- \(V_{\text{Rd}}\)
- Effort tranchant résistant (Resistance) de la pièce.
- Bielle
- Zone de béton comprimé inclinée transmettant l'effort vers les appuis.
- Tirant
- Rôle joué par les armatures transversales (cadres) qui reprennent la traction.
Feedback
Chargement...
Outil non défini.
'; } modalTitle.textContent = title; modalContent.innerHTML = content; modalOverlay.classList.add('open'); } function closeModal() { const modalOverlay = document.getElementById('mic-tools-modal'); if(modalOverlay) modalOverlay.classList.remove('open'); } document.addEventListener('DOMContentLoaded', function() { let mainChartInstance = null; // --- LISTENERS POUR LE WIDGET GAUCHE --- const leftWidgetLinks = document.querySelectorAll('#mic-widget-left .tool-link'); leftWidgetLinks.forEach(link => { link.addEventListener('click', function(e) { e.preventDefault(); // Empêcher le scroll/saut const toolType = this.getAttribute('data-tool'); openModal(toolType); }); }); // Fermeture au clic en dehors de la modale const modalOverlay = document.getElementById('mic-tools-modal'); if(modalOverlay) { modalOverlay.addEventListener('click', function(e) { if (e.target === this) closeModal(); }); } // --- GESTION DES ARTICLES LIÉS (Droit) --- const articles = document.querySelectorAll('#mic-widget-global .article-item'); const timerCircle = document.getElementById('widget-timer-fg'); let currentArticleIndex = 0; const rotationDelay = 5000; // 5 secondes function rotateArticles() { // Masquer l'article courant articles[currentArticleIndex].classList.remove('active'); // Passer au suivant currentArticleIndex = (currentArticleIndex + 1) % articles.length; // Afficher le nouveau articles[currentArticleIndex].classList.add('active'); // Reset et relancer l'animation du chrono if(timerCircle) { // Reset instantané (supprimer la transition) timerCircle.style.transition = 'none'; timerCircle.style.strokeDashoffset = '0'; // Forcer le reflow pour que le navigateur prenne en compte le reset void timerCircle.offsetWidth; // Lancer l'animation setTimeout(() => { timerCircle.style.transition = `stroke-dashoffset ${rotationDelay}ms linear`; timerCircle.style.strokeDashoffset = '100'; // Vider le cercle }, 50); } } if(articles.length > 0) { // Lancer la première animation immédiatement if(timerCircle) { timerCircle.style.transition = `stroke-dashoffset ${rotationDelay}ms linear`; timerCircle.style.strokeDashoffset = '100'; } // Configurer la rotation setInterval(rotateArticles, rotationDelay); } // --- SIMULATEUR EFFORT TRANCHANT --- function updateSimulator() { const vedInput = document.getElementById('sim-param1'); const bwInput = document.getElementById('sim-param2'); if (!vedInput || !bwInput) return; let ved = parseFloat(vedInput.value); // kN let bw = parseFloat(bwInput.value); // mm // Hypothèses fixes const d = 450; const z = 0.9 * d; const fywd = 435; const cotTheta = 2.5; document.getElementById('sim-param1-value').textContent = `${ved}`; document.getElementById('sim-param2-value').textContent = `${bw}`; // 1. Calc VRd,max (approx) // nu1 = 0.54, fcd = 16.7, alpha_cw=1.0 // Facteur angle = 1 / (2.5 + 0.4) = 0.345 const vRdMax = (1.0 * bw * z * 0.54 * 16.7 * 0.345) / 1000; // kN // 2. Calc Asw/s req // Asw/s = VEd / (z * fywd * cotTheta) * 1000 (pour mm2/mm -> conversion) const asw_s = (ved * 1000) / (z * fywd * cotTheta); // mm2/mm // 3. Calc espacement pour HA8 (2 brins = 100 mm2) let s_req = 0; if(asw_s > 0) { s_req = 100.6 / asw_s; } document.getElementById('res-1').textContent = `${(asw_s).toFixed(3)} mm²/mm`; const statusEl = document.getElementById('res-2'); if (ved > vRdMax) { statusEl.textContent = `Béton Écrasé ! (VRd,max=${Math.round(vRdMax)})`; statusEl.style.color = "#dc2626"; } else { statusEl.textContent = `${Math.floor(s_req)} mm`; statusEl.style.color = "#16a34a"; } createOrUpdateMainChart(bw, vRdMax); } // --- GRAPHIQUE --- function createOrUpdateMainChart(bw, vRdMaxCurrent) { const ctx = document.getElementById('main-chart')?.getContext('2d'); if (!ctx) return; // Générer courbe Asw/s vs Ved const veds = [50, 100, 150, 200, 250, 300, 350, 400]; const data_asw = veds.map(v => { if (v > vRdMaxCurrent) return null; // Rupture bielles // Asw/s = V / (z * fywd * cot) // z=405, fywd=435, cot=2.5 -> denom = 440437 return (v * 1000) / 440437; }); if (mainChartInstance) { mainChartInstance.data.labels = veds; mainChartInstance.data.datasets[0].data = data_asw; mainChartInstance.update(); } else { mainChartInstance = new Chart(ctx, { type: 'line', data: { labels: veds, datasets: [{ label: 'Section Acier Requise (mm²/mm)', data: data_asw, borderColor: '#0ea5e9', backgroundColor: 'rgba(14, 165, 233, 0.1)', borderWidth: 3, fill: true, tension: 0.3, spanGaps: false // Coupe la ligne si null }] }, plugins: [ChartDataLabels], options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: true }, title: { display: true, text: 'Acier Transversal vs Effort Tranchant', font: { size: 16, family: "'Inter', sans-serif" }, color: '#334155' }, datalabels: { display: false }, tooltip: { backgroundColor: '#1e293b', padding: 12, displayColors: true, } }, scales: { x: { title: { display: true, text: 'Effort V_Ed (kN)', color: '#64748b' }, grid: { display: false } }, y: { title: { display: true, text: 'Asw/s (mm²/mm)', color: '#64748b' }, beginAtZero: true, grid: { borderDash: [5, 5] } } } } }); } } document.getElementById('sim-param1')?.addEventListener('input', updateSimulator); document.getElementById('sim-param2')?.addEventListener('input', updateSimulator); setTimeout(updateSimulator, 100); // --- LE SAVIEZ-VOUS (WIDGET GAUCHE) --- const cultureFacts = [ "L'effort tranchant est maximal près des appuis, c'est pourquoi on resserre les cadres à cet endroit.", "Sans cadres, une poutre en béton casse brutalement selon une fissure à 45 degrés.", "Les étriers servent aussi à maintenir les barres longitudinales en place pendant le coulage.", "La bielle de béton comprimé agit comme l'étai diagonal d'une structure en treillis.", "L'Eurocode 2 permet de faire varier l'angle des bielles (thêta) pour optimiser la quantité d'acier." ]; function showRandomFactInWidget() { const dykContent = document.getElementById('dyk-content'); if(!dykContent) return; // Effet de fade out/in dykContent.style.opacity = '0'; setTimeout(() => { const randomFact = cultureFacts[Math.floor(Math.random() * cultureFacts.length)]; dykContent.textContent = randomFact; // Reset animation dykContent.style.animation = 'none'; dykContent.offsetHeight; /* trigger reflow */ dykContent.style.animation = 'fadeInFact 0.5s ease forwards'; dykContent.style.opacity = '1'; }, 300); } // Initialisation immédiate et rotation showRandomFactInWidget(); setInterval(showRandomFactInWidget, 10000); // Change toutes les 10s // --- QUIZ FINAL --- function checkAllFinalQuizQuestions() { const finalQuizSection = document.getElementById('quiz-section'); if (!finalQuizSection) return; const questions = finalQuizSection.querySelectorAll('.quiz-question'); let score = 0; let total = questions.length; questions.forEach((question) => { const correctAnswer = question.getAttribute('data-correct').trim(); const selectedRadio = question.querySelector(`input[type="radio"]:checked`); const feedbackEl = question.querySelector('.quiz-feedback'); const lis = question.querySelectorAll('li'); lis.forEach(li => li.className = ''); if (selectedRadio) { const userVal = selectedRadio.value.trim(); if (userVal === correctAnswer) { score++; selectedRadio.closest('li').classList.add('user-correct'); feedbackEl.textContent = "Correct ! ✅"; feedbackEl.className = 'quiz-feedback correct'; } else { selectedRadio.closest('li').classList.add('user-incorrect'); const correctInput = question.querySelector(`input[value="${correctAnswer}"]`); if(correctInput) correctInput.closest('li').classList.add('actual-correct'); feedbackEl.textContent = "Incorrect."; feedbackEl.className = 'quiz-feedback incorrect'; } } else { feedbackEl.textContent = "Veuillez choisir une réponse."; feedbackEl.className = 'quiz-feedback incorrect'; } }); const finalFeedback = document.getElementById('quiz-final-feedback'); if (finalFeedback) { finalFeedback.innerHTML = `
Laisser un commentaire