Académique Documents
Professionnel Documents
Culture Documents
……………………………………………………………………………………..
Ministère des Enseignements Supérieurs et de la Recherche (MESR)
……………………………………………………………………………………..
Encadreurs :
Rédigé par : ✓ M. HASSANE AMADOU (Enseignant
ANAROUA GOUZAYE Abdoul Razak, au département Mécanique) ;
élève Ingénieur Electromécanique Signature :
Promotion 2020
Conception et Réalisation d’un logiciel de Calcul de Resistance des Matériaux (RDM) pour les systèmes
d’exploitation Windows, Mac Os et Linux
Dédicace
À ma très chère mère qui m’a soutenu et conseillé de ne jamais baisser les
bras même après le décès de mon père, que son âme repose en paix et
que le paradis soit la demeure éternelle pour lui et tous les proches qui nous
ont quitté.
À tous les membres de ma famille, petits et grands.
À tous les enseignants de l’EMIG, c’est grâce à la formation de qualité dont
j’ai bénéficié, que je peux défendre mon titre.
À tous mes chers amis qui m’ont beaucoup aidé durant ces années
d’études.
À tous ceux qui m’aiment et que j’aime.
Remerciement
Nous tenons tout d’abord à remercier ALLAH Seigneur de l’univers, qui nous a donné
le courage d’accomplir ce modeste travail.
En effet c’est grâce à l’attention qu’on nous a éprouvé que nous avons choisi d’aborder
ce sujet dans notre projet industriel.
Enfin, nous tenons à remercier toutes les personnes qui ont participé de près ou de
loin à la rédaction de ce document.
Introduction Générale
Les projets industriels sont une forme de travaux pratiques réalisés en binôme
ou individuel par les élèves techniciens supérieurs et ingénieurs de l’EMIG en fin de
cycle.
En effet ils constituent un moyen d’optimiser nos connaissances théoriques et
pratiques acquises tout au long de notre formation. L’objet de notre étude se tourne
vers la conception et la réalisation d’un logiciel de calcul de Resistance des Matériaux
(RDM) pour les systèmes d’exploitation Windows, Mac Os et Linux.
Le Présent document est le fruit d’un travail acharné structuré en quatre chapitres, à
savoir :
❖ Une introduction à la RDM ;
❖ Une étude préalable du projet ;
❖ L’illustration des différents composants du logiciel ;
❖ Et enfin un manuel d’utilisation.
1
INTRODUCTION A LA RDM
Avec :
• {𝝉𝒊 }𝑨 : Torseur des forces intérieures ou des actions mutuelles entre les
différents éléments du système en un point A quelconque.
• {𝝉𝒆 }𝑨 : Torseur des forces extérieures appliquées au système au point A.
Soit sous forme détaillée :
𝑅⃗ ⃗0
{𝜏}𝐴 = { } = { }
⃗⃗ 𝐴
𝑀 ⃗0
𝐴 𝐴
𝑅⃗ et 𝑀
⃗⃗ 𝐴 sont respectivement la résultante des forces et le moment résultant en A des
forces.
1.6 Les liaisons
L’écriture des équations d’équilibre nécessite de :
❖ Définir sans ambiguïté le système matériel à étudier ;
❖ Faire le bilan des forces appliquées au système.
Or un système matériel peut être composé de plusieurs solides indéformables ; l’étude
de l’équilibre de l’un des solides nécessite son « isolement ».
Isoler un solide, c’est supprimer ses liaisons avec les pièces voisines et les remplacer
par des torseurs dont les effets sont équivalents (principe d’action mutuelles).
Le bilan de forces appliquées au système isolé comprend :
❖ Les forces extérieures directement appliquées (généralement connues) ;
❖ Les forces intérieures éventuelles (cas de torseur de gauche : inconnues
généralement) ;
❖ Les forces de volume (poids, électromagnétique, etc.) ;
❖ Les forces de liaisons (action de contact : généralement inconnues).
Dans le cas des problèmes plans, la schématisation des liaisons et des efforts exercés
se ramène à trois types décrits comme suit :
❖ Appui simple :
Ce type d’’appui, laisse à la structure toute liberté de pivoter autour de O (extrémité de
la poutre) et de se déplacer perpendiculairement à la droite joignant les points de
contact. Si on néglige les frottements, la réaction d’appui à la direction de la droite
précisée, et introduit une seule inconnue dans l’étude de la poutre.
❖ Articulation (et appui fixe) :
Matérialisé par une rotule. Cet appui autorise les rotations d’une extrémité de la poutre
ou d’un des éléments constituant la structure. La direction de la réaction R est
inconnue, mais la ligne d’action passe par le centre de l’articulation. L’articulation
introduit deux inconnues, par exemple les projections sur deux directions du plan
moyen.
❖ Encastrement :
L’encastrement interdit tout déplacement de la section droite de l’appui ; Sa réaction
est une force de densité variable répartie sur toute l’étendue de la section : En vertu
du principe de Saint Venant, ces forces peuvent être remplacer par leur résultante
générale R, et leur moment M rapportés au centre de gravité G : Ce type d’appui
introduit donc 3 inconnues, les deux projections de R sur deux axes du plan moyen et
l’intensité du moment M qui est perpendiculaire au plan moyen.
• Réparties
❖ Les actions de liaison (forces volumiques) qui sont des efforts appliqués sur
la poutre par les liaisons qui la maintiennent en place.
• Les plus courantes : pesanteur
∑ ⃗𝑭𝒆𝒙𝒕 = ⃗𝟎 ⃗0
{ ⟹ {𝜏}𝐺 = { }
⃗0
∑ ⃗𝑴
⃗⃗ 𝑮 = ⃗𝟎 𝐺
découpage, par un système de forces intérieures agissant dans la section. Ces forces
sont appelées torseur de gauche de B sur A.
Ainsi :
𝑅⃗ −𝑅⃗
{𝜏𝐵⁄𝐴 }𝐺 = { ⃗⃗ } 𝑒𝑡 {𝜏𝐴⁄𝐵 }𝐺 = {⃗⃗⃗⃗⃗⃗⃗ } = − {𝜏𝐵⁄𝐴 }𝐺
𝑀𝐺 𝐺 −𝑀𝐺 𝐺
𝑅𝑥 = 𝑁1 = 𝑒𝑓𝑓𝑜𝑟𝑡 𝑛𝑜𝑟𝑚𝑎𝑙
𝑅⃗(𝐺,𝑥,𝑦,𝑧) = {𝑅𝑦 = 𝑇2 = 𝑒𝑓𝑓𝑜𝑟𝑡 𝑡𝑟𝑎𝑛𝑐ℎ𝑎𝑛𝑡
𝑅𝑧 = 𝑇3 = 𝑒𝑓𝑓𝑜𝑟𝑡 𝑡𝑟𝑎𝑛𝑐ℎ𝑎𝑛𝑡
𝑀𝑥 = 𝑀1 = 𝑚𝑜𝑚𝑒𝑛𝑡 𝑑𝑒 𝑡𝑜𝑟𝑠𝑖𝑜𝑛
⃗⃗ (𝐺,𝑥,𝑦,𝑧)
𝑀 = { 𝑀𝑦 = 𝑀2 = 𝑚𝑜𝑚𝑒𝑛𝑡 𝑓𝑙é𝑐ℎ𝑖𝑠𝑠𝑎𝑛𝑡
𝑀𝑧 = 𝑀3 = 𝑚𝑜𝑚𝑒𝑛𝑡 𝑓𝑙é𝑐ℎ𝑖𝑠𝑠𝑎𝑛𝑡
1.8 Conclusion
La Résistance des matériaux est un domaine vraiment vaste et d’une importance
capitale pour un ingénieur exerçant dans le domaine de la conception, notons que ce
qu’on vient de voir précédemment n’est que la partie visible de l’Iceberg, mais
largement suffisante pour nous permettre de réaliser les algorithmes qui se baserons
sur ces principes fondamentaux afin de réaliser des calculs plus complexes et
poussés.
2
ETUDE PREALABLE
b) La bibliothèque wxPython
wxPython est une implémentation libre en Python de l'interface de programmation
wxWidgets. Cette bibliothèque Python est utilisée pour la création d'interfaces
graphiques, et est l'alternative de Tkinter la plus utilisée wxPython est multiplateforme,
et le même logiciel peut être exécuté sur Windows, UNIX et apparentés, et MacOs
sans modification. Pour la création et gestion des widgets, l'interface de
programmation du système d'exploitation hôte est utilisée le plus possible, ce qui
donne une apparence native à l'application. wxPython essaie d'unir la simplicité et la
lecture facile de Python avec une interface de programmation très complète. Ceci
donne un cycle de développement rapide tout en permettant une grande complexité si
nécessaire.
2.5 Conclusion
Ce chapitre est en réalité d’une très grande importance, car il nous permettra
d’avoir une bonne organisation et de nous focaliser sur le problème poser, car
plusieurs outils informatiques existent et la plupart sont capables de réaliser le même
travail, donc il est primordial pour nous en tant que développeur, avant la mise en place
de n’importe quel projet, de choisir les outils les plus adaptés tout en tenant compte
de leurs rapidités, leurs fiabilités, leurs complexités, leurs popularités pour ne citer que
cela.
3
LES DIFFERENTS
COMPOSANTS DU
LOGICIEL
class Appui(wx.ClientDC):
def __init__(self, parent=None, x=None, h=None):
wx.ClientDC.__init__(self, parent)
self.x = x
self.h = h
##### Code et déclarations Ici ######
# Appui Simple
def AppuiSimple(self):
##### Code et déclarations Ici ######
# Encastrement gauche
def Encastrement_Gauche(self):
##### Code et déclarations Ici ######
# Encastrement droite
def Encastrement_Droite(self):
##### Code et déclarations Ici ######
# Affiche la valeur de l'appui
def Valeur(self, val=""):
class Avertissement(wx.Dialog):
def OnDestroy(self):
self.Close()
self.Destroy()
class Charges(wx.ClientDC) :
def __init__(self,parent=None,h=None,pos_1= None,
pos_2,None,intensite = None):
##### Code et déclarations Ici ######
def Afficher(self):
##### Code et déclarations Ici ######
def Charge_Positive(self):
##### Code et déclarations Ici ######
def Charge_Negative(self):
##### Code et déclarations Ici ######
def Valeur(self):
def Verification(self,e):
self.Get_Choix()
self.Close()
self.Destroy()
def Get_Choix(self):
choix = self.radioBox.GetSelection()
self.parent.choix = choix
if __name__ == '__main__':
pass
• Fonction Validation () ;
• Fonction Conditions () ;
• Fonction OnDestroy () ;
• Et la fonction Recuperation ().
class Edition(wx.Dialog):
def Reponse(self,evt):
e = evt.GetId()
if e == 100 :
self.Conditions()
if e == 101 :
self.Fermeture()
def Conditions(self):
try:
self.saisie = float(self.m_textCtrl1.Value)
except Exception as error:
Alerte.Alerte(self,error)
else:
if self.var == "X1" :
self.Conditions_X1()
elif self.var == "X2" :
self.Conditions_X2()
elif self.var == "L" :
self.Conditions_L()
def Conditions_X1(self):
##### Code et déclarations Ici ######
def Conditions_X2(self):
##### Code et déclarations Ici ######
def Conditions_L(self):
##### Code et déclarations Ici ######
def Fermeture(self) :
self.Close()
self.Destroy()
if __name__ == '__main__':
pass
Le menu « Fichier »
Le menu « Afficher »
Le menu « Editer »
Le menu « Aide »
import wx
import Alerte
class MyFileDropTarget(wx.FileDropTarget):
if __name__ == '__main__':
pass
3.4 Conclusion
Ce chapitre est en réalité l’étape du développement de notre logiciel. Pour des
raisons de clarté nous avions décidé d’énumérer juste les noms de quelques
procédures dans chaque classe sans entrer en profondeur, car le code source complet
comporte une dizaine de milliers de lignes de code.
4
MANUEL D’UTILISATION
- Une nouvelle fenêtre s’ouvre, choisissez l’unité de longueur et des efforts puis
valider en cliquant sur le bouton « Valider »
4.5 Suppression
Il peut y arriver d’avoir besoin de supprimer une donnée dans notre projet, c’est le but
de cette partie ; nous verrons comment supprimer une charge ponctuelle ou répartie,
ces deux étapes sont à peu près identiques.
4.5.1 Supprimer une charge ponctuelle
Pour supprimer une charge ponctuelle il suffit de suivre les étapes décrites ci-dessous :
- Sélectionner votre charge dans la liste située en haut à droite dans la fenêtre
principale ;
- Cliquer sur le septième bouton de la barre d’outils en partant de la gauche ;
- Un message d’alerte vous demandera votre confirmation cliquer sur « Ok » ;
- La charge est maintenant supprimée et tous les paramètres sont
automatiquement mis à jour.
4.5.2 Supprimer une charge répartie
Pour supprimer une charge repartie il faut suivre les étapes décrites ci-dessous :
- Sélectionner votre charge dans la liste située en bas à droite dans la fenêtre
principale ;
- Cliquer sur le huitième bouton de la barre d’outils en partant de la gauche ;
- Un message d’alerte vous demandera votre confirmation cliquer sur « Ok » ;
- La charge est maintenant supprimée et tous les paramètres sont
automatiquement mis à jour.
Conclusion Générale
À la fin de ce document, nous pouvons affirmer sans risque de nous tromper
que l’informatique féra disparaitre pas mal de disciplines et parallèlement en créer
d’autre cela sous-entend la disparition et l’apparition des nouveaux secteurs de travail.
Donc il est d’une importance capitale pour un ingénieurs de savoir au moins utiliser les
outils informatiques de base pour pouvoir suivre la tendance, sans quoi il sera dépassé
par les évènements.
Le logiciel que nous avons mis en place, sera certainement très utile pour toute
personnes débutant dans le secteur industriel.
En effet le logiciel dispose de pas mal de fonctionnalité et est actuellement à sa version
2.1, il existe pas mal des choses à mettre au point c’est la raison pour laquelle nous
avons besoin de vos remarques et suggestions pour les incorporer dans une version
ultérieure.
Bibliographie