summaryrefslogtreecommitdiff
path: root/src/pspicetoKicad/ImportPspice.py
diff options
context:
space:
mode:
authorFahim2015-10-16 17:39:40 +0530
committerFahim2015-10-16 17:39:40 +0530
commit5122bdf3700de9479fb18b95e30eecb98e4caf77 (patch)
treec02e13eba1b877933ddc09ff130530725e1d2e46 /src/pspicetoKicad/ImportPspice.py
parentc5a5c9eda015f8855c5e8481834a740fc5b625b4 (diff)
downloadeSim-5122bdf3700de9479fb18b95e30eecb98e4caf77.tar.gz
eSim-5122bdf3700de9479fb18b95e30eecb98e4caf77.tar.bz2
eSim-5122bdf3700de9479fb18b95e30eecb98e4caf77.zip
Subject: Modification for Pspice to Kicad converter
Description: Modification for Pspice to Kicad converter.
Diffstat (limited to 'src/pspicetoKicad/ImportPspice.py')
-rw-r--r--src/pspicetoKicad/ImportPspice.py93
1 files changed, 68 insertions, 25 deletions
diff --git a/src/pspicetoKicad/ImportPspice.py b/src/pspicetoKicad/ImportPspice.py
index db485aad..1b97efc0 100644
--- a/src/pspicetoKicad/ImportPspice.py
+++ b/src/pspicetoKicad/ImportPspice.py
@@ -2,6 +2,8 @@ from PyQt4 import QtGui,QtCore
from configuration.Appconfig import Appconfig
import os
import platform
+import shutil
+import glob
class ImportPspiceLibrary(QtGui.QWidget):
"""
@@ -13,26 +15,37 @@ class ImportPspiceLibrary(QtGui.QWidget):
def imortLib(self):
self.home = os.path.expanduser("~")
- self.libLocation = QtGui.QFileDialog.getOpenFileName(self,"open",self.home)
- self.obj_Appconfig.print_info('File selected : '+self.libLocation)
+ self.worspace_loc = self.obj_Appconfig.default_workspace['workspace']
+ #self.sourceLoc = os.path.join(str(os.getcwd()),"*.lib")
+ self.destinationLoc = os.path.join(self.worspace_loc,"ConvertedLib")
+ self.libLocation = QtGui.QFileDialog.getOpenFileNames(self,"open",self.home,"*.slb")
+ self.tempList = [] #Hold library file in the form of string
+
+ #print "Source---------->",self.sourceLoc
+ print "Destination--------->",self.destinationLoc
+
+ for item in self.libLocation:
+ self.tempList.append(str(item))
+ self.obj_Appconfig.print_info('File selected : '+str(self.tempList))
+ self.arg = ' '.join(self.tempList)
+
#Create command to run
-
if platform.system() == 'Linux':
#Check for 32 or 64 bit
if platform.architecture()[0] == '64bit':
- self.cmd = "../pspicetoKicad/libConverter64 "+self.libLocation
+ self.cmd = "../pspicetoKicad/libConverter64 "+self.arg
else:
- self.cmd = "../pspicetoKicad/libConverter32 "+self.libLocation
-
+ self.cmd = "../pspicetoKicad/libConverter32 "+self.arg
elif platform.system() == 'Windows':
print "Needs to include for Windows"
-
-
+
self.status = os.system(str(self.cmd))
-
-
+
if self.status == 0:
+ #Moving files to necessary location
+ for libfile in glob.glob('*.lib'):
+ shutil.move(libfile, self.worspace_loc)
self.msg = QtGui.QMessageBox()
self.msgContent = "Successfully imported and converted PSPICE library to Kicad library.<br/>"
self.msg.setTextFormat(QtCore.Qt.RichText)
@@ -40,13 +53,14 @@ class ImportPspiceLibrary(QtGui.QWidget):
self.msg.setWindowTitle("Message")
self.obj_Appconfig.print_info(self.msgContent)
self.msg.exec_()
-
else:
self.msg = QtGui.QErrorMessage(None)
self.msg.showMessage('Error while converting PSPICE library to Kicad library')
self.obj_Appconfig.print_error('Error while converting PSPICE library to Kicad library')
self.msg.setWindowTitle("Error Message")
-
+
+
+
class ConvertPspiceKicad(QtGui.QWidget):
"""
@@ -59,30 +73,59 @@ class ConvertPspiceKicad(QtGui.QWidget):
def runConverter(self):
self.obj_Appconfig.print_info('Running PSPICE to Kicad converter')
self.home = os.path.expanduser("~")
+ self.worspace_loc = self.obj_Appconfig.default_workspace['workspace']
+
self.pspiceSchFileLoc = QtGui.QFileDialog.getOpenFileName(self,"open",self.home)
self.pspiceSchFileName = os.path.basename(str(self.pspiceSchFileLoc))
- self.worspace_loc = self.obj_Appconfig.default_workspace['workspace']
- self.outputDir = os.path.join(self.worspace_loc,self.pspiceSchFileName)
+ self.pspiceProjName = os.path.splitext(self.pspiceSchFileName)[0]
+ self.outputDir = os.path.join(self.worspace_loc,self.pspiceProjName)
+ #Check if project is already exists
+ if os.path.isdir(self.outputDir):
+ print "Already present"
+ self.obj_Appconfig.print_info("Output Project "+self.outputDir+" is already present")
+ reply = QtGui.QMessageBox.question(self, 'Message',"eSim project with same name is already exist. Do you want to delete it ?", \
+ QtGui.QMessageBox.Yes |QtGui.QMessageBox.No, QtGui.QMessageBox.No)
+ if reply == QtGui.QMessageBox.Yes:
+ print "Deleting Project and creating new"
+ self.obj_Appconfig.print_info("Deleting Project and creating new")
+ shutil.rmtree(self.outputDir, ignore_errors=False, onerror=self.errorRemove)
+ os.mkdir(self.outputDir)
+ #Calling Function
+ self.createProjectFile(self.pspiceSchFileLoc,self.outputDir)
+ else:
+ self.msg = QtGui.QMessageBox()
+ self.msgContent = "PSPICE to Kicad schematic conversion aborted.<br/>\
+ You can change the Pspice schematic file name and upload it again.<br/>"
+ self.msg.setTextFormat(QtCore.Qt.RichText)
+ self.msg.setText(self.msgContent)
+ self.msg.setWindowTitle("Message")
+ self.obj_Appconfig.print_info(self.msgContent)
+ self.msg.exec_()
+ else:
+ os.mkdir(self.outputDir)
+ #Calling Function
+ self.createProjectFile(self.pspiceSchFileLoc,self.outputDir)
+
+ def createProjectFile(self,pspiceSchFileLoc,outputDir):
+ print "Create Project File is called"
#Create command to be run
if platform.system() == 'Linux':
#Check for 32 or 64 bit
if platform.architecture()[0] == '64bit':
- self.cmd = "../pspicetoKicad/schConverter64 "+self.pspiceSchFileLoc+" "+self.outputDir
+ self.cmd = "../pspicetoKicad/schConverter64 "+pspiceSchFileLoc+" "+self.outputDir
else:
- self.cmd = "../pspicetoKicad/schConverter32 "+self.pspiceSchFileLoc+" "+self.outputDir
-
+ self.cmd = "../pspicetoKicad/schConverter32 "+pspiceSchFileLoc+" "+self.outputDir
elif platform.system() == 'Windows':
print "Needs to include for Windows"
#Running command
self.status = os.system(str(self.cmd))
-
-
+
if self.status == 0:
self.msg = QtGui.QMessageBox()
self.msgContent = "Successfully converted PSPICE schematic to Kicad Schematic.<br/>\
- Project is available in eSim workspace at <b>"+self.outputDir+"</b>.<br\>\
+ Project is available in eSim workspace at <b>"+self.outputDir+"</b>.<br/>\
You can open the project from eSim workspace"
self.msg.setTextFormat(QtCore.Qt.RichText)
self.msg.setText(self.msgContent)
@@ -96,8 +139,8 @@ class ConvertPspiceKicad(QtGui.QWidget):
self.obj_Appconfig.print_error('Error while converting PSPICE schematic to Kicad Schematic')
self.msg.setWindowTitle("Error Message")
-
-
-
-
- \ No newline at end of file
+ def errorRemove(self,func, path, exc):
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('Error while removing existing project. <br/> Please check whether directory is Read only.')
+ self.obj_Appconfig.print_error('Error while removing existing project')
+ self.msg.setWindowTitle("Error Message") \ No newline at end of file