summaryrefslogtreecommitdiff
path: root/src/projManagement/Kicad.py
diff options
context:
space:
mode:
authorfossee2019-08-29 12:03:11 +0530
committerfossee2019-08-29 12:03:11 +0530
commitfe3bd934634bb2dae1cadf35e7c6d59facbedf66 (patch)
treeab841ad9ca3d56f7eb85cb3650f6608b80656027 /src/projManagement/Kicad.py
parentf7567ac99f21fb6c87d60f309f0aa71dee6ae975 (diff)
downloadeSim-fe3bd934634bb2dae1cadf35e7c6d59facbedf66.tar.gz
eSim-fe3bd934634bb2dae1cadf35e7c6d59facbedf66.tar.bz2
eSim-fe3bd934634bb2dae1cadf35e7c6d59facbedf66.zip
adding files
Diffstat (limited to 'src/projManagement/Kicad.py')
-rw-r--r--src/projManagement/Kicad.py164
1 files changed, 164 insertions, 0 deletions
diff --git a/src/projManagement/Kicad.py b/src/projManagement/Kicad.py
new file mode 100644
index 00000000..a80f6259
--- /dev/null
+++ b/src/projManagement/Kicad.py
@@ -0,0 +1,164 @@
+#===============================================================================
+#
+# FILE: openKicad.py
+#
+# USAGE: ---
+#
+# DESCRIPTION: It calls kicad schematic
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Fahim Khan, fahim.elex@gmail.com
+# ORGANIZATION: eSim team at FOSSEE, IIT Bombay.
+# CREATED: Tuesday 17 Feb 2015
+# REVISION: ---
+#===============================================================================
+
+import os
+import Validation
+from configuration.Appconfig import Appconfig
+import Worker
+from PyQt4 import QtGui
+
+class Kicad:
+ """
+ This class called the Kicad Schematic,KicadtoNgspice Converter,Layout editor and Footprint Editor
+ """
+ def __init__(self,dockarea):
+ self.obj_validation = Validation.Validation()
+ self.obj_appconfig = Appconfig()
+ self.obj_dockarea= dockarea
+
+ def openSchematic(self):
+ """
+ This function create command to open Kicad schematic
+ """
+ print "Function : Open Kicad Schematic"
+ self.projDir = self.obj_appconfig.current_project["ProjectName"]
+ try:
+ self.obj_appconfig.print_info('Kicad Schematic is called for project ' + self.projDir)
+ except:
+ pass
+ #Validating if current project is available or not
+
+ if self.obj_validation.validateKicad(self.projDir):
+ #print "calling Kicad schematic ",self.projDir
+ self.projName = os.path.basename(self.projDir)
+ self.project = os.path.join(self.projDir,self.projName)
+
+ #Creating a command to run
+ self.cmd = "eeschema "+self.project+".sch "
+ self.obj_workThread = Worker.WorkerThread(self.cmd)
+ self.obj_workThread.start()
+
+ else:
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('Please select the project first. You can either create new project or open existing project')
+ self.obj_appconfig.print_warning('Please select the project first. You can either create new project or open existing project')
+ self.msg.setWindowTitle("Error Message")
+
+
+ '''
+ #Commenting as it is no longer needed as PBC and Layout will open from eeschema
+ def openFootprint(self):
+ """
+ This function create command to open Footprint editor
+ """
+ print "Kicad Foot print Editor called"
+ self.projDir = self.obj_appconfig.current_project["ProjectName"]
+ try:
+ self.obj_appconfig.print_info('Kicad Footprint Editor is called for project : ' + self.projDir)
+ except:
+ pass
+ #Validating if current project is available or not
+
+ if self.obj_validation.validateKicad(self.projDir):
+ #print "calling Kicad FootPrint Editor ",self.projDir
+ self.projName = os.path.basename(self.projDir)
+ self.project = os.path.join(self.projDir,self.projName)
+
+ #Creating a command to run
+ self.cmd = "cvpcb "+self.project+".net "
+ self.obj_workThread = Worker.WorkerThread(self.cmd)
+ self.obj_workThread.start()
+
+ else:
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('Please select the project first. You can either create new project or open existing project')
+ self.obj_appconfig.print_warning('Please select the project first. You can either create new project or open existing project')
+ self.msg.setWindowTitle("Error Message")
+
+ def openLayout(self):
+ """
+ This function create command to open Layout editor
+ """
+ print "Kicad Layout is called"
+ self.projDir = self.obj_appconfig.current_project["ProjectName"]
+ try:
+ self.obj_appconfig.print_info('PCB Layout is called for project : ' + self.projDir)
+ except:
+ pass
+ #Validating if current project is available or not
+ if self.obj_validation.validateKicad(self.projDir):
+ print "calling Kicad schematic ",self.projDir
+ self.projName = os.path.basename(self.projDir)
+ self.project = os.path.join(self.projDir,self.projName)
+
+ #Creating a command to run
+ self.cmd = "pcbnew "+self.project+".net "
+ self.obj_workThread = Worker.WorkerThread(self.cmd)
+ self.obj_workThread.start()
+
+ else:
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('Please select the project first. You can either create new project or open existing project')
+ self.obj_appconfig.print_warning('Please select the project first. You can either create new project or open existing project')
+ self.msg.setWindowTitle("Error Message")
+
+ '''
+
+ def openKicadToNgspice(self):
+ """
+ This function create command to call kicad to Ngspice converter.
+ """
+ print "Function: Open Kicad to Ngspice Converter"
+
+ self.projDir = self.obj_appconfig.current_project["ProjectName"]
+ try:
+ self.obj_appconfig.print_info('Kicad to Ngspice Conversion is called')
+ self.obj_appconfig.print_info('Current Project is ' + self.projDir)
+ except:
+ pass
+ #Validating if current project is available or not
+ if self.obj_validation.validateKicad(self.projDir):
+ #Cheking if project has .cir file or not
+ if self.obj_validation.validateCir(self.projDir):
+ self.projName = os.path.basename(self.projDir)
+ self.project = os.path.join(self.projDir,self.projName)
+
+ #Creating a command to run
+ """
+ self.cmd = "python ../kicadtoNgspice/KicadtoNgspice.py " +self.project+".cir "
+ self.obj_workThread = Worker.WorkerThread(self.cmd)
+ self.obj_workThread.start()
+ """
+ var=self.project+".cir"
+ self.obj_dockarea.kicadToNgspiceEditor(var)
+
+
+
+ else:
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('The project does not contain any Kicad netlist file for conversion.')
+ self.obj_appconfig.print_error('The project does not contain any Kicad netlist file for conversion.')
+ self.msg.setWindowTitle("Error Message")
+
+ else:
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('Please select the project first. You can either create new project or open existing project')
+ self.obj_appconfig.print_warning('Please select the project first. You can either create new project or open existing project')
+ self.msg.setWindowTitle("Error Message")
+
+