(function(){ var $=function(id){return document.getElementById(id)},mode='nat'; document.querySelectorAll('#atool-mode .atool-tab').forEach(function(t){t.addEventListener('click',function(){ document.querySelectorAll('#atool-mode .atool-tab').forEach(function(x){x.classList.remove('on')});t.classList.add('on');mode=t.dataset.m; $('d-classe-wrap').style.display=mode==='nat'?'':'none'})}); function f2(n){return n.toLocaleString('fr-FR',{minimumFractionDigits:2,maximumFractionDigits:2})} function f1(n){return n.toLocaleString('fr-FR',{maximumFractionDigits:1})} function alphaCalc(H,Ef,classe){ var Af=classe===1?9:classe===2?18:36,notes=[]; if(Ef>H/2){notes.push('Ef supérieure à H/2 : le calcul est effectué avec Ef = H/2 = '+f2(H/2)+' m (annexe IT 246).');Ef=H/2} var grand=function(){return(0.13*4*Math.sqrt(Af)*Math.pow(H-Ef,1.5)*0.6)/(16*Math.sqrt(Ef))}; var petit=function(){return(0.043*Math.pow(H+1.5*Math.sqrt(Af)-Ef,2.5))/(16*Math.sqrt(Ef))}; var Hl=H-Ef,D=Math.sqrt(4*Af/Math.PI),a,formule; if(classe===3){a=grand();formule='grand feu (obligatoire en classe 3)'} else if(Hl>2*D){a=petit();formule='petit feu (hauteur libre '+f2(Hl)+' m > 2 × D = '+f2(2*D)+' m)'} else{a=grand();formule='grand feu (hauteur libre '+f2(Hl)+' m ≤ 2 × D = '+f2(2*D)+' m)'} return{a:a,Ef:Ef,formule:formule,notes:notes}} $('d-go').addEventListener('click',function(){ var S=parseFloat(String($('d-surf').value).replace(',','.')),L=parseFloat(String($('d-long').value).replace(',','.')),H=parseFloat(String($('d-h').value).replace(',','.')),EfIn=parseFloat(String($('d-ef').value).replace(',','.')),sit=$('d-sit').value,aveugle=$('d-aveugle').value==='oui',classe=parseInt($('d-classe').value,10),res=$('d-res'); res.style.display='block'; if(!S||!H||(!L&&S>1600)){res.innerHTML='
Paramètres manquants : superficie et hauteur de référence sont nécessaires (et la plus grande dimension pour les grands locaux).
';return} var etapes=[],warns=[],kpis=[]; var oblig=(sit==='soussol'&&S>100)||(sit!=='soussol'&&S>300)||(aveugle&&S>100); var obligTxt=oblig?'
Désenfumage obligatoire (art. DF 7 § 1) : '+(sit==='soussol'&&S>100?'local de plus de 100 m² en sous-sol':aveugle&&S>100&&!(sit!=='soussol'&&S>300)?'local de plus de 100 m² sans ouverture sur l’extérieur':'local de plus de 300 m² en rez-de-chaussée ou en étage')+'.
':'
Désenfumage non exigé par l’article DF 7 pour ce local ('+(sit==='soussol'?'sous-sol ≤ 100 m²':'RDC/étage ≤ 300 m²'+(aveugle?', mais vérifiez le seuil de 100 m² des locaux aveugles':''))+'). Attention : les dispositions particulières du type peuvent l’imposer quand même — le calcul ci-dessous reste indicatif.
'; var nbCantons=1,sCanton=S,lOk=true; if(S>2000||(L&&L>60)){ var nS=Math.ceil(S/1600),nL=L?Math.ceil(L/60):1;nbCantons=Math.max(nS,nL);sCanton=S/nbCantons; etapes.push('Local de '+f1(S)+' m²'+(L?' / '+f1(L)+' m':'')+' → découpage en '+nbCantons+' cantons aussi égaux que possible (≤ 1 600 m² et ≤ 60 m chacun), soit ~'+f1(sCanton)+' m² par canton (§ 7.1.2).'); if(sCanton<1000){warns.push('Cantons < 1 000 m² : l’IT 246 demande d’éviter autant que possible les cantons de moins de 1 000 m² — ajustez le découpage à la géométrie réelle.')}} else{etapes.push('Local de '+f1(S)+' m²'+(L?' / '+f1(L)+' m':'')+' : pas de découpage en cantons exigé (≤ 2 000 m² et ≤ 60 m) (§ 7.1.2).')} var sansEcran=H>8&&L&&L<=60; var EfMin=H<=8?0.25*H:2,Ef=EfIn||EfMin; if(sansEcran&&!EfIn&&nbCantons===1){Ef=1;etapes.push('H > 8 m et plus grande dimension ≤ 60 m : absence d’écran de cantonnement admise, taux α calculé avec Ef = 1 m (§ 7.1.2).')} else{etapes.push('Épaisseur de fumée retenue : Ef = '+f2(Ef)+' m'+(EfIn?' (valeur saisie)':' (minimum réglementaire : '+(H<=8?'25 % de H':'2 m car H > 8 m')+')')+'.'); if(EfIn&&EfInEf inférieure au minimum : l’épaisseur de couche de fumée doit être ≥ '+f2(EfMin)+' m ('+(H<=8?'25 % de H':'2 m car H > 8 m')+') sauf réduction justifiée par le calcul du taux α (§ 7.1.2).')}} var Hl=H-Ef; if(Hl<1.8){warns.push('Hauteur libre de fumée '+f2(Hl)+' m < 1,80 m : la hauteur libre doit rester ≥ 1,80 m, au-dessus du linteau des portes et ≥ H/2 (§ 7.1.2). Réduisez Ef ou revoyez la conception.')} else if(HlHauteur libre '+f2(Hl)+' m < H/2 : la hauteur libre de fumée est au moins égale à la moitié de la hauteur de référence (§ 7.1.2).')} if(mode==='nat'){ var res1000=null,sue; var ac=alphaCalc(H,Ef,classe);ac.notes.forEach(function(n){etapes.push(n)}); if(sCanton<=1000){ sue=sCanton/200;res1000=1000*ac.a/100; etapes.push('Canton ≤ 1 000 m² : surface utile = 1/200 de la superficie = '+f2(sue)+' m² (§ 7.1.4 1°).'); if(res1000par canton'}); if(nbCantons>1)kpis.push({n:f2(sueTot)+' m²',l:'Surface utile totale
('+nbCantons+' cantons)'}); kpis.push({n:String(evacMin),l:'Évacuation(s) minimum
par canton (1 / 300 m²)'}); kpis.push({n:f1(dist)+' m',l:'Distance maxi de tout point
à une évacuation (4 × H, 30 m maxi)'}); etapes.push('Amenées d’air : surface libre au moins égale à la surface géométrique des évacuations'+(nbCantons>1?' des deux cantons les plus exigeants':' du local')+' (§ 7.1.4).'); if(H<2.5||H>15){warns.push('H hors de la table de l’annexe (2,50 à 15 m) : le taux α affiché est issu des formules de calcul — au-delà des bornes de la table, l’annexe interdit l’extrapolation : faites valider par une approche d’ingénierie (§ 8).')} }else{ var vol=sCanton*H,q12=12*vol/3600,qCap=3*sCanton/100,q=Math.min(q12,qCap),capped=q12>qCap; if(q<1.5)q=1.5; etapes.push('Volume du canton = '+f1(sCanton)+' m² × '+f2(H)+' m = '+f1(vol)+' m³.'); etapes.push('Débit de base : 12 volumes/heure = '+f1(12*vol)+' m³/h soit '+f2(q12)+' m³/s (§ 7.2.3).'); if(capped){etapes.push('Ce débit est limité à 3 m³/s pour 100 m² : plafond = '+f2(qCap)+' m³/s (§ 7.2.3).')} if(q===1.5&&Math.min(q12,qCap)<1.5){etapes.push('Le débit n’est jamais inférieur à 1,5 m³/s par local (§ 7.2.3).')} kpis.push({n:f2(q)+' m³/s',l:'Débit d’extraction
par canton'}); kpis.push({n:f1(q*3600)+' m³/h',l:'soit en horaire'}); if(nbCantons>1){kpis.push({n:nbCantons+' cantons',l:'1 ventilateur pour 2 cantons maxi,
débit du plus grand (§ 7.2.3)'})} etapes.push('Hauteur des écrans de cantonnement : ≥ '+(H<=8?'25 % de H = '+f2(0.25*H)+' m':'2 m (H > 8 m)')+' (§ 7.2.1). Amenées d’air mécaniques ou naturelles, possibles par les cantons périphériques.'); warns.push('Alimentation et commande : ventilateurs et dispositifs de commande doivent respecter le § 4 de l’IT 246 (alimentation de sécurité, mise à l’arrêt…) et la coordination avec le SSI.')} res.innerHTML=obligTxt +'
'+kpis.map(function(k){return'
'+k.n+'
'+k.l+'
'}).join('')+'
' +'

Détail du calcul

    '+etapes.map(function(s){return'
  1. '+s+'
  2. '}).join('')+'
' +warns.map(function(w){return'
'+w+'
'}).join('') +'
Références : IT 246 (arrêté du 22 mars 2004) § 7.1 et 7.2 + annexe (table des taux α et formules), articles DF 6 à DF 8 du règlement de sécurité. Formules de l’annexe reproduites à l’identique — valeurs contrôlées sur la table officielle.
'; res.scrollIntoView({behavior:'smooth',block:'nearest'}); }); })();