diff options
Diffstat (limited to 'OSCAD/forntEnd/my_oscad.py')
-rwxr-xr-x | OSCAD/forntEnd/my_oscad.py | 301 |
1 files changed, 0 insertions, 301 deletions
diff --git a/OSCAD/forntEnd/my_oscad.py b/OSCAD/forntEnd/my_oscad.py deleted file mode 100755 index b83dd41..0000000 --- a/OSCAD/forntEnd/my_oscad.py +++ /dev/null @@ -1,301 +0,0 @@ -from setPath import OSCAD_HOME -from Tkinter import * -import thread -import ttk -import template -import tkMessageBox -import os.path -import os -import toolTip -import selectOption -from string import maketrans -from PIL import Image, ImageTk -import tkFileDialog -import os -import Image -import ImageTk - -def new_Project(e=None): - text.insert(END,"Select the directory to save the project\n") - directory=tkFileDialog.askdirectory() - if directory: - try: - os.chdir(directory) - text.insert(END, "Changing directory to "+directory+"\n\n") - text.yview(END) - except OSError, msg: - tkMessageBox.showerror("Change Directory Failed",msg) - else: - tkMessageBox.showwarning("Bad input","Directory is not specified, please try again") - text.insert(END, "In Main window:\n") - text.insert(END, "Please select the proper option from File Menu\n") - text.yview(END) - text.insert(END, "Please enter a project Name\n") - text.yview(END) -# Read project information (name) - project= newProject.ProjectInfo(root,text) -# Create project files - if project.status: - projectParam = newProject.ProjectParam(root,text,project.projectName) - -# Open an existing model -def open_Project(e=None): -# Read project information (name) - text.insert(END, "Please enter the project Name\n") - text.yview(END) - project= openProject.ProjectInfo(root,text) -# Open model file - if project.status: - projectParam = newProject.ProjectParam(root,text,project.projectName) - text.insert(END, "In Main window:\n") - text.insert(END, "Please select the proper option from File Menu\n") - -# Change the current directory to new directory -def changeDirectory(event=None): - folderName=tkFileDialog.askdirectory() - if folderName: - try: - os.chdir(folderName) - text.insert(END, "Changing directory to "+folderName+"\n\n") - text.yview(END) - open_Project() - except OSError, msg: - tkMessageBox.showerror("Change Directory Failed",msg) - else: - tkMessageBox.showwarning("Bad input","Directory is not specified, please try again") - text.insert(END, "In Main window:\n") - text.insert(END, "Please select the proper option from File Menu\n") - text.yview(END) - -def exit_Project(e=None): - if tkMessageBox.askokcancel("QUIT","Do you really wish to quit?"): - text.insert(END, "Bye Bye......\n") - root.destroy() - -# Display help content -def help_Project(e=None): - pass - -# Display help content -def about_Project(): - tkMessageBox.showinfo("About Editor","Created by Yogesh Dilip Save") - -def createButtonForCommand(frameName,commandName,imagePath,textlabel): - # Open images - im = Image.open(imagePath) - photo = ImageTk.PhotoImage(im) - - # Create button and set label for tools - w = Button(frameName, image=photo, width=20, height=14, command=commandName, default=ACTIVE) - w.image=photo - w.pack(side=TOP, padx=1, pady=1) - toolTip.createToolTip(w,textlabel) - -def call_system(command): - os.system(command) - -def openSchematic(e=None): - text.insert(END, " Opening schematic editor .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - #update_idletasks() - command="eeschema "+self.projectName+".sch " - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openFootprint(e=None): - text.insert(END, " Opening footprint editor .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - command="cvpcb "+self.projectName+".net " - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openLayout(e=None): - text.insert(END, " Opening layout editor .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - command="pcbnew "+self.projectName+".net " - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openNetConverter(e=None): - text.insert(END, " Running netlist converter .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - command="xterm -e \""+self.OSCAD_HOME+"/kicadtoNgspice/KicadtoNgspice.py "+self.projectName+".cir 1\"" - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openAnalysisInserter(e=None): - text.insert(END, " Opening analysis inserter .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - command=self.OSCAD_HOME+"/analysisInserter/convertgui.py" - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openModelBuilder(e=None): - text.insert(END, " Opening model editor .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - command=self.OSCAD_HOME+"/modelEditor/modelEditor.py " +self.projectName+".cir " - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openSubcircuitBuilder(e=None): - text.insert(END, " Opening Sub-circuit editor ................\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - command=self.OSCAD_HOME+"/subcktEditor/subcktEditor.py " +self.projectName+".cir " - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openNgspice(e=None): - text.insert(END, " Running ngspice circuit simulator .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - command="xterm -e \"ngspice "+self.projectName+".cir.out \"" - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - -def openSMCSim(e=None): - text.insert(END, " Running scilab based circuit simulator .........\n") - text.yview(END) - # Call all pending idle tasks, without processing any other events. - update_idletasks() - Option=selectOption.SelectOption(self,self.text,"LPCSim") - command=self.OSCAD_HOME+"/bin/scilab54 -f " +self.OSCAD_HOME+"/LPCSim/LPCSim/Main.sci -args "+self.projectName+".cir.ckt " - try: - thread.start_new_thread(self.call_system,(command,)) - except Exception,err: - print err - text.insert(END, "Select a tool from tool menu\n") - text.yview(END) - - -# Create and configure a graphical window -root = Tk() -root.title("OSCAD for Electronics and Electrical Engineers") - -# make it cover the entire screen -w, h = root.winfo_screenwidth(), root.winfo_screenheight() -root.geometry("%dx%d" % (0.65*w, 0.65*h)) -root.focus_set() - -# Create and configure a menu -menu = Menu(root) -root.config(menu=menu) - -# Create File menu -filemenu= Menu(menu) -menu.add_cascade(label="File", menu=filemenu) -filemenu.add_command(label="New F2", command=new_Project) -filemenu.add_command(label="Open F3", command=changeDirectory) -filemenu.add_separator() -filemenu.add_command(label="Exit F4", command=exit_Project) - -# Create help menu -helpmenu=Menu(menu) -menu.add_cascade(label="Help", menu=helpmenu) -helpmenu.add_command(label="Help F1",command=help_Project) -helpmenu.add_command(label="About...",command=about_Project) - -# Protocol for deletion of main window -root.protocol("WM_DELETE_WINDOW",exit_Project) - -# Create shortcut keys -root.bind("<F2>", new_Project) -root.bind("<F3>", open_Project) -root.bind("<F4>", exit_Project) -root.bind("<F1>", help_Project) -root.bind("<F5>", changeDirectory) - -mainWindow = LabelFrame(root, bd=4, relief=SUNKEN,text="Main Window", bg='lightblue') -mainWindow.pack(side=TOP,fill="both", padx=5, pady=5,expand="Y") -mainWindow.place(relheight=0.85, relwidth=0.99, rely=0.0) - -c = Canvas(mainWindow, bg='white',width=745, height=320) -c.pack() -im = Image.open(OSCAD_HOME+"/images/OSCADlogo.jpeg") -tkim = ImageTk.PhotoImage(im) -c.create_image(375, 150, image=tkim) - -buttonWindow = Frame(root, bd=4, relief=SUNKEN) -buttonWindow.pack(side=RIGHT,fill="both", padx=2, pady=2,expand="Y") -buttonWindow.place(relheight=0.6, relwidth=0.06, rely=0.04, relx=0.01) - -createButtonForCommand(buttonWindow,openSchematic,OSCAD_HOME+"/images/seLogo.jpg","Schematic Editor") -createButtonForCommand(buttonWindow,openFootprint,OSCAD_HOME+"/images/feLogo.jpg","Footprint Editor") -createButtonForCommand(buttonWindow,openLayout,OSCAD_HOME+"/images/leLogo.jpg","Layout Editor") -createButtonForCommand(buttonWindow,openAnalysisInserter,OSCAD_HOME+"/images/anLogo.jpg","Analysis Insertor") -createButtonForCommand(buttonWindow,openModelBuilder,OSCAD_HOME+"/images/mbLogo.jpg","Model builder") -createButtonForCommand(buttonWindow,openSubcircuitBuilder,OSCAD_HOME+"/images/sbLogo.jpg","Subcircuit builder") -createButtonForCommand(buttonWindow,openNetConverter,OSCAD_HOME+"/images/knLogo.jpg","NetList Converter") -createButtonForCommand(buttonWindow,openNgspice,OSCAD_HOME+"/images/ngLogo.jpg","Ngspice") -createButtonForCommand(buttonWindow,openSMCSim,OSCAD_HOME+"/images/slLogo.jpg","SMCSim") - -reportWindow = LabelFrame(root, bd=4, relief=SUNKEN,text="Report Window") -reportWindow.pack(side=BOTTOM,fill="both", padx=5, pady=5,expand="Y") -reportWindow.place(relheight=0.35, relwidth=0.99, rely=0.65) - -text = Text(reportWindow) -text.insert(INSERT, "Welcome.....\n") -text.insert(END, "First select project working directory using File Menu\n") -text.insert(END, "Then select the proper option in File Menu\n") -text.focus_set() -text.pack() -text.place(relheight=0.98, relwidth=0.99, rely=0.02) -text.config(borderwidth=5) - -scrollY = Scrollbar(reportWindow,orient=VERTICAL,command=text.yview) -scrollY.pack(fill=Y) -scrollY.place(relheight=0.98,relwidth=0.01, rely=0.02, relx=0.99) -text.config(yscrollcommand=scrollY.set) -scrollY.set(0,0.5) - - -def execute(event): - print "yogesh" - -text.bind("<Return>",execute) -mainloop() |