diff options
Diffstat (limited to 'src/pspicetoKicad/ImportPspice.py')
-rw-r--r-- | src/pspicetoKicad/ImportPspice.py | 156 |
1 files changed, 88 insertions, 68 deletions
diff --git a/src/pspicetoKicad/ImportPspice.py b/src/pspicetoKicad/ImportPspice.py index 1b97efc0..c92f7582 100644 --- a/src/pspicetoKicad/ImportPspice.py +++ b/src/pspicetoKicad/ImportPspice.py @@ -16,52 +16,66 @@ class ImportPspiceLibrary(QtGui.QWidget): def imortLib(self): self.home = os.path.expanduser("~") 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.arg + if self.libLocation: + 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.arg + else: + 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: + self.libLocation = os.path.join(self.worspace_loc,"ConvertedLib") + + #Check if library is present + if os.path.isdir(self.libLocation): + pass + else: + os.mkdir(self.libLocation) + try: + #Moving files to necessary location + for libfile in glob.glob('*.lib'): + self.obj_Appconfig.print_info('Copying file '+libfile+' to ' +self.libLocation) + shutil.copy(libfile, self.libLocation) + self.obj_Appconfig.print_info('Removing file '+libfile) + os.remove(libfile) + + self.msg = QtGui.QMessageBox() + self.msgContent = "Successfully imported and converted PSPICE library to Kicad library.<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_() + except Exception as e: + self.msg = QtGui.QErrorMessage(None) + self.msg.showMessage('Error while moving libaray to '+self.libLocation+ " "+str(e)) + self.obj_Appconfig.print_error('Error while moving libaray to '+self.libLocation+ " "+str(e)) + self.msg.setWindowTitle('Error Message') else: - 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) - self.msg.setText(self.msgContent) - self.msg.setWindowTitle("Message") - self.obj_Appconfig.print_info(self.msgContent) - self.msg.exec_() + 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") + 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") - + self.obj_Appconfig.print_info('No files selected. Process Aborted') - - + class ConvertPspiceKicad(QtGui.QWidget): """ This is used to convert Pspice schematic into Kicad schematic @@ -76,56 +90,62 @@ class ConvertPspiceKicad(QtGui.QWidget): 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.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) + if self.pspiceSchFileLoc: + self.pspiceSchFileName = os.path.basename(str(self.pspiceSchFileLoc)) + 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): + self.obj_Appconfig.print_info("Output Directory 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) - 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) + self.obj_Appconfig.print_info('No file selected. Process Aborted') def createProjectFile(self,pspiceSchFileLoc,outputDir): print "Create Project File is called" + print "Schematic File Location---------->",pspiceSchFileLoc + print "Output Directory-------------->",outputDir #Create command to be run if platform.system() == 'Linux': #Check for 32 or 64 bit if platform.architecture()[0] == '64bit': - self.cmd = "../pspicetoKicad/schConverter64 "+pspiceSchFileLoc+" "+self.outputDir + self.cmd = "../pspicetoKicad/schConverter64 "+pspiceSchFileLoc+" "+outputDir else: - self.cmd = "../pspicetoKicad/schConverter32 "+pspiceSchFileLoc+" "+self.outputDir + self.cmd = "../pspicetoKicad/schConverter32 "+pspiceSchFileLoc+" "+outputDir elif platform.system() == 'Windows': print "Needs to include for Windows" #Running command - self.status = os.system(str(self.cmd)) + 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>"+outputDir+"</b>.<br/>\ You can open the project from eSim workspace" self.msg.setTextFormat(QtCore.Qt.RichText) self.msg.setText(self.msgContent) |