// ^_____ là : créer un fork pour modifier le code ou la valeur des variables
// ========================================================================================
// RDM Etagere Acier S235 140x40cm P = 60kg Biname 29 aout 2021
// formulaire : http://www.etrussart.be/cours_isips/organes_des_machines/c2060for.pdf (1)
// unité kg, cm ... moi vieux, je vous laisse passer en pascal et m du SI
// ========================================================================================
// VARIABLES créer un fork sur ce site/ici pour les modifier (bouton vert en haut à gauche)
// ---------
var l = 140; // longueur de la poutre en cm
var b = 40; // largeur de la poutre en cm
var h = 0.95; // hauteur/éaisseur de la poutre en cm
var E = 2100000; // module de Young de l'Acier
var R = 1600; // tension maxi acier kg/cm² (Lim Elast 2350 kg/cm² = norme)
var d = 0.00785; // densité de l'acier en kg/cm²
var P = 60; // charge centrée en kg
var hmin = 0.1; // cm pour variation de h epaisseur du plat
var hmax = 2; // cm
var hstep = 0.1; // cm
// ----------------------------------------------------------------------------------------
// CALCULS
// -------
// caractéristiques de la poutre
var Iv, I, q, Q, MP, Mq, M, s, fq, fP, f; // globales !!
function getBeam(h){
Iv = b*Math.pow(h,2)/6; // module de flexion de la poutre (1) P2 Colonne de droite µx
I = b*Math.pow(h,3)/12; // inertie de la poutre (1) P2 Colonne de droite Ix
// solicitations
q = b*h*1*d; // poids propre par centimètre de poutre en kg
Q = q*l; // poids propre de la poutre
MP = (P*l/4); // (1) P26 cas 2 en kg.cm
Mq = (q*Math.pow(l,2)/8); // (1) P26 cas 1 en kg.cm
M = MP + Mq; // moment maxi dû à P et q
s = M/Iv; // contraite de flexion en kg/cm²
fq = 5*q*Math.pow(l,4)/(384*E*I); // fleche due au poids propre en cm (1) P30 cas 1
fP = P*Math.pow(l,3)/(48*E*I); // fleche due à la charge centrée en cm (1) P30 cas 2
f = fq + fP; // fleche totale
}
// formate nombre + espace avant et apres
function NtoS (nbr, lg){
return (" " + (nbr.toFixed(lg)).slice(0, lg - 2) + " ");
}
// ----------------------------------------------------------------------------------------
// AFFICHAGE DES RESULTATS
// -----------------------
getBeam(h);
print ("\n--- RESULTATS pour h = " + h + " cm ---\n----------------------------------"
+ "\nPoids propre par cm courant : q = " + NtoS(q , 8) + " kg/cm_crt"
+ "\nPoids propre : Q = " + NtoS(Q , 8) + " kg"
+ "\nI/v du profil : I/v = " + NtoS(Iv , 8) + " cm3"
+ "\nInertie du profil : I = " + NtoS(I , 8) + " cm4"
+ "\nMoment a l/2 dû a P (=max) : MP = " + NtoS(MP , 8) + " kg.cm"
+ "\nMoment a l/2 dû a Q (=max) : Mq = " + NtoS(Mq , 8) + " kg.cm"
+ "\nMoment total à l/2 (=max) : M = " + NtoS(M , 8) + " kg.cm"
+ "\nContrainte de Flexion maxi : Sigma = " + NtoS(s , 8) + " kg/cm2 norme S235 : <" + R.toFixed(2) + " kg/cm2"
+ "\nFleche a l/2 (=max) due a Q : fq = " + NtoS(fq , 8) + " cm"
+ "\nFleche a l/2 (=max) due a p : fp = " + NtoS(fP , 8) + " cm"
+ "\nFleche totale max due à P+Q : f = " + NtoS(f , 8) + " cm");
// ----------------------------------------------------------------------------------------
// VARIATION DE H
// --------------
var line = "|-------------------------------------------------------------|"
print("\n\n" + line);
print ("| VARIATION DE L'EPAISSEUR h de " + hmin + " cm à " + hmax + " cm au pas de " + hstep + " cm|");
print (line);
print ("| Epais " + "| Sigma " + "| Fleche " + "| Poids " + "| Moment " + "| I/v " + "| I |");
print ("| cm " + "| kg/cm2 " + "| cm " + "| kg " + "| kg.cm " + "| cm3 " + "| cm4 |");
print (line);
var e;
for (e=hmin ; e<hmax+hstep ; e+=hstep){
getBeam(e);
print ("|" + NtoS(e, 7) + "|"
+ NtoS(s , 8) + "|"
+ NtoS(f , 8) + "|"
+ NtoS(Q , 8) + "|"
+ NtoS(M , 8) + "|"
+ NtoS(Iv , 8)+ "|"
+ NtoS(I , 8)+ "|"
);
}
print (line);
//
print ("\n *** Termine ... sauf erreurSSS *** ");
// ----------------------------------------------------------------------------------------