Tuesday 8 August 2017

Mach Number Calculator

img_a_01

Code for the simple Mach Number calculator:

from Tkinter import *

def mc():
    # 1st Function
    try:
        ns00, ns01 = a00.get(), a01.get()
        ns02, ns03 = a02.get(), a03.get()
        V = ns00
        k = ns01
        R = ns02
        T = ns03  
        """ M : Mach Number """
        M = V / (k * R * T) ** 0.5
        a = "M = " + "{:10.10f}".format(M)
    except ZeroDivisionError:
        a =  "Zero Div Error"
        print "Zero Division Error"
    except ValueError:
        a =  "Value Error"
        print "Value Error"
    ns1.config(text = a)
    ns1.grid(row = 5, column = 1, sticky = W)

def ent(var, row, col, width = None):
    # 2nd Function
    w = Entry(root, textvariable = var, width = 19)
    w.grid(row = row, column = col)
    return w

def tx7(x, y, txt):
    # 3rd Function
    w = c1.create_text(x, y, anchor = W, font="Impact", text = txt)
    return w

def txt(x, y, txt, size, colour):
    c1.create_text( x, y,
                    anchor = W,
                    font = ("Verdana", size),
                    text = txt,
                    fill = colour)

def line(x0, y0, color, x1, y1):
    # 4th Function
    w = c1.create_line(x0, y0, x1, y1, fill = color)
    return w

def btn(txt, row, col, cmd = None):
    # 5th Function
    w = Button(root, text = txt, command = cmd)
    w.grid(row = row, column = col)
    return w

def lab(txt, row, col):
    # 6th Function
    w = Label(root, text = txt)
    w.grid(row = row, column = col)
    return w

def frame_c(c1, c2):
    # 7th Function
    line(x0, y0, c1, x3, y3), line(x0, y0, c2, x1, y1)
    line(x2, y2, c1, x1, y1), line(x2, y2, c2, x3, y3)

root = Tk()

ch, cw = 70, 200
x0, y0 = 02 , 02
x1, y1 = 02 , ch - 2
x2, y2 = cw - 2, ch - 2
x3, y3 = cw - 2, 02

c1 = Canvas(root, height = ch, width = cw)

frame_c("blue", "green")

a0, b0 = 5, 12
line(112 + a0, 32 + b0, "red", 116 + a0, 45 + b0)
line(116 + a0, 24 + b0, "red", 116 + a0, 45 + b0)
line(116 + a0, 24 + b0, "red", 165 + a0, 24 + b0)

tx7(20, 30, "M"), tx7(40, 30, "=")
tx7(59, 22, "_"), tx7(80, 30, "=")
tx7(60, 20, "V"), tx7(60, 40, "c")
tx7(144, 22, "_"), tx7(125, 49, "k")
tx7(140, 20, "V"), tx7(140, 49, "R")
tx7(157, 49, "T"), tx7(137, 22, "_")
tx7(130, 22, "_"), tx7(121, 22, "_")
tx7(151, 22, "_"), tx7(158, 22, "_")
tx7(114, 22, "_"), tx7(165, 22, "_")
c1.grid(row = 0, column = 0, columnspan = 3)

'''     0,0     0,1     0,2
        1,0     1,1     1,2
        2,0     2,1     2,2
        3,0     3,1     3,2
        4,0     4,1     4,2
'''
a00, a01 = DoubleVar(), DoubleVar()
a02, a03 = DoubleVar(), DoubleVar()

v1, k1, r1, t1, e1 = "V =", "k =", "R =", "T =", "Execute"
s0, s1, s2, s3, s4 = "m/s", " ", "J/(kg-K)", " K", "<>"

lab(v1, 1,0)    ; ent(a00, 1,1) ; lab(s0, 1,2)
lab(k1, 2,0)    ; ent(a01, 2,1) ; lab(s1, 2,2)
lab(r1, 3,0)    ; ent(a02, 3,1) ; lab(s2, 3,2)
lab(t1, 4,0)    ; ent(a03, 4,1) ; lab(s3, 4,2)
btn(e1, 5,0, mc); Label(root)   ; lab(s4, 5,2)

ns1 = Label(root)

root.title("Mach Number")
root.mainloop()
 
img_01

(Further reading of the Mach number is kind of easy to be found :D).

4 comments:

  1. Thanks for posting this article with us . Keep Posting
    Python Course in Solapur

    ReplyDelete
  2. Very Informative and Helpful. Keep uploading these types of articles. Data Science Classes in Nagpur, Data Science Courses in Nagpur | Data Science Classes in Nagpur in IT Education Centre. Thank You...

    ReplyDelete