<jupyter_start><jupyter_text>Calculs de RDM simples<jupyter_code>from ipywidgets import interact, widgets
from pprint import pprint
from IPython.display import HTML
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
import numpy as np
HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
The raw code for this IPython notebook is by default hidden for easier reading.
To toggle on/off the raw code, click <a href="javascript:code_toggle()">here</a>.''')<jupyter_output><empty_output><jupyter_text>Pour une poutre recherche des valeurs extrèmes moment et effort tranchant (M,V)<jupyter_code>#definition des fonctions de bases
def poutre_bi_articule(L,q,P):
    R=q*L/2+P/2
    M_max=q*L**2/8+P*L/4
    V_max=q*L*2+P/2
    return (locals())
def poutre_bi_encastre(L,q,P):
    R=q*L/2+P/2
    M_max=q*L**2/12+P*L/8
    V_max=q*L*2+P/2
    return (locals())
def poutre_porte_a_faux(L,q,P):
    R=q*L+P
    M_max=q*L**2/2+P*L
    V_max=q*L*P
    return (locals())

def poutre(Type,L,q,P):
    """
    Calcul des valeurs maximums pour différents type de poutre d'après les formules RDM de base
    Attention aux unités elles doivent etre cohérente 
    
    :param L: Longueur de la poutre (m)
    :param q: charge répartie appliqué sur la poutre (kN/m)
    :param q: charge ponctuel appliqué au point le plus défavorable (kN)
    
    :return: ensemble des valeurs de calcul
    """
    return (Type(L,q,P))
optiondict={
    "bi-encastré":poutre_bi_encastre,
    "bi-articulé":poutre_bi_articule,
    "porte-à-faux":poutre_porte_a_faux
}
print (poutre.__doc__)
a=interact(poutre,
         Type=widgets.Select(options=optiondict),
         L=widgets.FloatText(value=7.5),
         q=widgets.FloatText(value=35),
         P=widgets.FloatText(value=0)
        )<jupyter_output>Calcul des valeurs maximums pour différents type de poutre d'après les formules RDM de base
    Attention aux unités elles doivent etre cohérente 
    
    :param L: Longueur de la poutre (m)
    :param q: charge répartie appliqué sur la poutre (kN/m)
    :param q: charge ponctuel appliqué au point le plus défavorable (kN)
    
    :return: ensemble des valeurs de calcul<jupyter_text>Pour une dalle recherche des valeurs extrèmes moment (M,V)<jupyter_code>def dalle_Mx(Type,a,b,qs):
    """
    Calcul des valeurs maximums pour différents type de dalle d'après les formules RDM de base
    Attention aux unités elles doivent etre cohérente 
    
    :param a: Longueur de la dalle (m)
    :param b: Largeur de la dalle (m)
    :param qs: charge répartie appliqué sur la poutre (kPa)
    
    :return: ensemble des valeurs de calcul
    """
    if (b<a):
        c=b
        b=a
        a=c
    M_x=Type(b/a)*qs*a**2
    
    result=locals()
    if "c" in result:
        del result["c"]
    del result["Type"]
    return (result)


key_art=[1,
    1.1,
    1.2,
    1.3,
    1.4,
    1.5,
    1.6,
    1.7,
    1.8,
    1.9,
    2,
    3,
    4,
    5,
    20,]
beta_art=[
    0.0479,
    0.0553,
    0.0626,
    0.0693,
    0.0753,
    0.0812,
    0.0862,
    0.0908,
    0.0948,
    0.0985,
    0.1017,
    0.1189,
    0.1235,
    0.1246,
    0.125,
]

key_enc=[
    1,
    1.1,
    1.2,
    1.3,
    1.4,
    1.5,
    1.6,
    1.7,
    1.8,
    1.9,
    2,
]

beta_enc=[
    0.0513,
    0.0581,
    0.0639,
    0.0687,
    0.0726,
    0.0757,
    0.0780,
    0.0799,
    0.0812,
    0.0822,
    0.0829,
]

coef_beta_art = interp1d(key_art, beta_art)
coef_beta_enc = interp1d(key_enc, beta_enc)

option_dalle={
    "encastré":coef_beta_enc,
    "articulé":coef_beta_art,
}

## test de la fonction d'interpolation

#xnew = np.linspace(1, 2, num=41, endpoint=True)
#plt.plot(xnew, coef_beta_art(xnew), '-',xnew, coef_beta_enc(xnew), '+',)
print (dalle_Mx.__doc__)
a=interact(dalle_Mx,
         Type=widgets.Select(options=option_dalle),
         a=widgets.FloatText(value=7),
         b=widgets.FloatText(value=6),
         qs=widgets.FloatText(value=15)
        )<jupyter_output>Calcul des valeurs maximums pour différents type de dalle d'après les formules RDM de base
    Attention aux unités elles doivent etre cohérente 
    
    :param a: Longueur de la dalle (m)
    :param b: Largeur de la dalle (m)
    :param qs: charge répartie appliqué sur la poutre (kPa)
    
    :return: ensemble des valeurs de calcul
{'fraction_non_alphanumeric': 0.12099484651579655, 'fraction_numerical': 0.04660542236164015, 'mean_word_length': 2.919227392449517, 'pattern_counts': {'":': 5, '<': 16, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '481522', 'license': 'BSD-2-Clause', 'n_tokens_mistral': 1934, 'n_tokens_neox': 1846, 'n_words': 439, 'path': 'RDM.ipynb', 'repo_name': 'freddupont/gc_tool', 'size': '4463'}