| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 
 | #! /usr/bin/env python
# -*- coding: utf-8 -*-
 
from Tkinter import * 
from math import *
from tkMessageBox import askokcancel 
 
 
def calculer():
 
    # entree des coefficients RTA , %RTA, qv , qt , a 
    RTA,Pr,qv,qt,a = float(entr4.get()),float(entr3.get()),float(entr2.get()),float(entr1.get()),float(entr0.get())
    # Calcul des parametres :
    H=(RTA*Pr)/100
    qr=sqrt(((qv**2)+(qt**2)))
    fn=((a**2)*qr)/(8*H)
    Sn=a+(((a**3)*(qr**2))/(24*H*H))
 
    txt0.configure(text = "" + str(RTA))
    txt1.configure(text = "" + str(Pr))
    txt2.configure(text = "" + str(qv))
    txt3.configure(text = "" + str(qt))
    txt4.configure(text = "" + str(a))
 
    text_x1.configure(text = "" + str(H))
    text_x2.configure(text = "" + str(qr))
    text_x3.configure(text = "" + str(fn))
    text_x4.configure(text = "" + str(Sn))
 
def presentation(): 
    "Fenetre-message contenant la description sommaire de la methode de calcul" 
    msg =Toplevel() 
    Message(msg, bg ="dark green", fg ="white", width =810,font ="Arial 9", 
        text =''' Methode de calcul\n 
La methode choisie est assez originale, ''').pack(padx =10, pady =10)
#_________________________________________________________________________________________________________________________________________________________________________
 
def processus(): 
    "Fenetre-message contenant la description du processus" 
    msg =Toplevel() 
    Message(msg, bg ="dark green", fg ="white", width =500,font ="Arial 9", 
        text='''PROCESSUS a suivre\n
        1. Entrer les valeurs de la résistance à la traction assignée , le pourcentage de la tension, la charge verticale est horizontale et la portée.
            
        2. Cliquer sur le bouton < Resoudre ! > :
        3. Les outputs sont la flèche, la tension, la charge résultante et la longueur totale du câble :
            
        5. Cliquer sur < Quitter  !> pour abandonner \n''').pack(padx =10, pady =10) 
#_________________________________________________________________________________________________________________________________________________________________________
 
def aPropos(): 
    "Fenetre-message indiquant les versions utilisees" 
    msg =Toplevel() 
    Message(msg, width =200, aspect =100, justify =CENTER, 
        text ='''Sag and tension in overhead conductors
        UdeS, Mai 2016
        Python version 2.7
        Tk version 8.4''').pack(padx =10, pady =10)
#_________________________________________________________________________________________________________________________________________________________________________
 
def quitter(): 
    " pour quitter l'application " 
    ans=askokcancel('Sag and tension in overhead conductors',"Do you want to quit ?") 
    if ans:root.quit()
#_________________________________________________________________________________________________________________________________________________________________________
 
def makemenu(win):
    "barre de menu"
    top=Menu(win)
    win.config(menu=top)
    R=Menu(top)
    top.add_cascade(label='Presentation',menu=R,underline=0)
    R.add_command(label='Methode de calcul',command=presentation,underline=0)
    R.add_command(label='Processus',command=processus,underline=0)
    R.add_command(label='A propos',command=aPropos,underline=0)
    Q=Menu(top)
    top.add_cascade(label='Quitter !',menu=Q,underline=0)
    Q.add_command(label='Quitter  !!',command=quitter,underline=0)
    QQ=Menu(top)    
    top.add_cascade(label='play !',menu=QQ,underline=0)
    QQ.add_command(label='Load',command=quitter,underline=0)
    QQ.add_command(label='Span',command=Image,underline=0)
#_________________________________________________________________________________________________________________________________________________________________________
 
 
#Programme Principal 
root = Tk() 
root.title("Sag and tension in overhead conductors") 
root.geometry('1000x1000') 
L=500
R=8
makemenu(root)
 
#_________________________________________________________________________________________________________________________________________________________________________
 
can=Canvas(root,bg='White',height=L,width=L) 
can.grid(row=10,column=0) 
can.create_line(0,L/2,L,L/2,fill='black')
can.create_line(L/2,0,L/2,L,fill='black')
(Label(root, text = "Sag and tension in overhead conductors")).grid(row=0, column=0)
 
    #Entrees
entr4 = Entry(root) 
entr4.grid(row=1, column =1) 
entr3 = Entry(root)
entr3.grid(row=2, column =1) 
entr2 = Entry(root)
entr2.grid(row=3, column =1) 
entr1 = Entry(root)
entr1.grid(row=4, column =1)
entr0 = Entry(root)
entr0.grid(row=5, column =1)
 
 
(Label(root, text = "Saisir la RTA =")).grid(row=1, column=0,sticky=E)
txt0 = Label(root)
(Label(root, text = "Saisir la %RTA =")).grid(row=2, column=0,sticky=E)
txt1 = Label(root)
(Label(root, text = "Saisir la charge verticale qv =")).grid(row=3, column=0,sticky=E)
txt2 = Label(root)
(Label(root, text = "Saisir la charge transversale qt =")).grid(row=4, column=0,sticky=E)
txt3 = Label(root)
(Label(root, text = "Saisir la portee a =")).grid(row=5, column=0,sticky=E)
txt4 = Label(root)
 
#Output and results display
(Label(root, text = "La tension horizontale H =")).grid(row=6, column=0,sticky=E)
text_x1 = Label(root)
text_x1.grid(row=6, column =1) 
(Label(root, text = "La charge resultante Qr =")).grid(row=7, column=0,sticky=E)
text_x2 = Label(root)
text_x2.grid(row=7, column =1) 
(Label(root, text = "La fleche F=")).grid(row=8, column=0,sticky=E)
text_x3 = Label(root)
text_x3.grid(row=8, column =1) 
(Label(root, text = "La longueur totale du cable L =")).grid(row=9, column=0,sticky=E)
text_x4 = Label(root)
text_x4.grid(row=9, column =1) 
 
can.create_text(L-30,L/2-10,text='axe x',fill="green")
can.create_text(L/2+40,10,text='axe y',fill="green")
can.create_text(L-10,L/2+10,text='5',fill="green")
can.create_text(10,L/2+10,text='-5',fill="green")
can.create_text(L/2-10,L/2+10,text='0',fill="green")
can.create_text(L/2-10,10,text='5',fill="green")
can.create_text(L/2-10,L-10,text='-5',fill="green")
txt_x1=can.create_text(-10,0,text='x1',fill="yellow")
txt_x2=can.create_text(-10,0,text='x2',fill="yellow")
txt_x3=can.create_text(-10,0,text='x3',fill="yellow")
txt_x4=can.create_text(-10,0,text='x4',fill="yellow")
 
# creation d'un widget 'Canvas' contenant une image bitmap :
#can2 = Canvas(root, width =500, height =500, bg ='white')
#photo = PhotoImage(file ='pic.gif')
#can2.create_image(200,200, image =photo)
#can2.grid(row =10, column =1, rowspan =6, padx =10, pady =5)
 
button = Button(root, text='Resoudre', command =calculer) 
button.grid(row=6, column =0) 
 
 
 
 
 
root.mainloop() 
root.destroy() | 
Partager