Exemplo n.º 1
0
	def delete(self):
		"Delete the selection of a listbox setting."
		self.profileListboxSetting.setToDisplay()
		self.profileListboxSetting.listSetting.setValueToFolders()
		if self.profileListboxSetting.value not in self.profileListboxSetting.listSetting.value:
			return
		lastSelectionIndex = 0
		currentSelectionTuple = self.profileListboxSetting.listbox.curselection()
		if len(currentSelectionTuple) > 0:
			lastSelectionIndex = int(currentSelectionTuple[0])
		else:
			print('No profile is selected, so no profile will be deleted.')
			return
		craftTypeName = self.profileListboxSetting.listSetting.craftTypeName
		settings.deleteDirectory(archive.getProfilesPath(craftTypeName), self.profileListboxSetting.value)
		settings.deleteDirectory(settings.getProfilesDirectoryInAboveDirectory(craftTypeName), self.profileListboxSetting.value)
		self.profileListboxSetting.listSetting.setValueToFolders()
		if len(self.profileListboxSetting.listSetting.value) < 1:
			defaultSettingsDirectory = archive.getProfilesPath(os.path.join(craftTypeName, self.profileListboxSetting.defaultValue))
			archive.makeDirectory(defaultSettingsDirectory)
			self.profileListboxSetting.listSetting.setValueToFolders()
		lastSelectionIndex = min(lastSelectionIndex, len(self.profileListboxSetting.listSetting.value) - 1)
		self.profileListboxSetting.value = self.profileListboxSetting.listSetting.value[lastSelectionIndex]
		self.profileListboxSetting.setStateToValue()
		self.no()
Exemplo n.º 2
0
 def delete(self):
     "Delete the selection of a listbox setting."
     self.profileListboxSetting.setToDisplay()
     self.profileListboxSetting.listSetting.setValueToFolders()
     if self.profileListboxSetting.value not in self.profileListboxSetting.listSetting.value:
         return
     lastSelectionIndex = 0
     currentSelectionTuple = self.profileListboxSetting.listbox.curselection(
     )
     if len(currentSelectionTuple) > 0:
         lastSelectionIndex = int(currentSelectionTuple[0])
     else:
         print('No profile is selected, so no profile will be deleted.')
         return
     craftTypeName = self.profileListboxSetting.listSetting.craftTypeName
     settings.deleteDirectory(archive.getProfilesPath(craftTypeName),
                              self.profileListboxSetting.value)
     settings.deleteDirectory(
         settings.getProfilesDirectoryInAboveDirectory(craftTypeName),
         self.profileListboxSetting.value)
     self.profileListboxSetting.listSetting.setValueToFolders()
     if len(self.profileListboxSetting.listSetting.value) < 1:
         defaultSettingsDirectory = archive.getProfilesPath(
             os.path.join(craftTypeName,
                          self.profileListboxSetting.defaultValue))
         archive.makeDirectory(defaultSettingsDirectory)
         self.profileListboxSetting.listSetting.setValueToFolders()
     lastSelectionIndex = min(
         lastSelectionIndex,
         len(self.profileListboxSetting.listSetting.value) - 1)
     self.profileListboxSetting.value = self.profileListboxSetting.listSetting.value[
         lastSelectionIndex]
     self.profileListboxSetting.setStateToValue()
     self.no()
Exemplo n.º 3
0
	def getSelectedFolder(self):
		"Get the selected folder."
		settingProfileSubfolder = settings.getSubfolderWithBasename( self.value, archive.getProfilesPath( self.listSetting.craftTypeName ) )
		if settingProfileSubfolder != None:
			return settingProfileSubfolder
		toolProfileSubfolder = settings.getSubfolderWithBasename( self.value, settings.getProfilesDirectoryInAboveDirectory( self.listSetting.craftTypeName ) )
		return toolProfileSubfolder
Exemplo n.º 4
0
def addListsSetCraftProfile(craftSequence, defaultProfile, repository,
                            fileNameHelp):
    "Set the craft profile repository."
    settings.addListsToRepository(fileNameHelp, repository)
    repository.craftSequenceLabel = settings.LabelDisplay().getFromName(
        'Craft Sequence: ', repository)
    craftToolStrings = []
    for craftTool in craftSequence[:-1]:
        craftToolStrings.append(
            settings.getEachWordCapitalized(craftTool) + '->')
    craftToolStrings.append(settings.getEachWordCapitalized(craftSequence[-1]))
    for craftToolStringIndex in xrange(0, len(craftToolStrings), 5):
        craftLine = ' '.join(
            craftToolStrings[craftToolStringIndex:craftToolStringIndex + 5])
        settings.LabelDisplay().getFromName(craftLine, repository)
    settings.LabelDisplay().getFromName('', repository)
    repository.profileList = ProfileList().getFromName('Profile List:',
                                                       repository)
    repository.profileListbox = ProfileListboxSetting().getFromListSetting(
        repository.profileList, 'Profile Selection:', repository,
        defaultProfile)
    repository.addListboxSelection = AddProfile(
    ).getFromProfileListboxSettingRepository(repository.profileListbox,
                                             repository)
    repository.deleteListboxSelection = DeleteProfile(
    ).getFromProfileListboxSettingRepository(repository.profileListbox,
                                             repository)
    directoryName = archive.getProfilesPath()
    archive.makeDirectory(directoryName)
    repository.windowPosition.value = '0+400'
Exemplo n.º 5
0
def addListsSetCraftProfile(craftSequence, defaultProfile, repository, fileNameHelp):
    "Set the craft profile repository."
    settings.addListsToRepository(fileNameHelp, repository)
    repository.craftSequenceLabel = settings.LabelDisplay().getFromName("Craft Sequence: ", repository)
    craftToolStrings = []
    for craftTool in craftSequence[:-1]:
        craftToolStrings.append(settings.getEachWordCapitalized(craftTool) + "->")
    craftToolStrings.append(settings.getEachWordCapitalized(craftSequence[-1]))
    for craftToolStringIndex in xrange(0, len(craftToolStrings), 5):
        craftLine = " ".join(craftToolStrings[craftToolStringIndex : craftToolStringIndex + 5])
        settings.LabelDisplay().getFromName(craftLine, repository)
    settings.LabelDisplay().getFromName("", repository)
    repository.profileList = ProfileList().getFromName("Profile List:", repository)
    repository.profileListbox = ProfileListboxSetting().getFromListSetting(
        repository.profileList, "Profile Selection:", repository, defaultProfile
    )
    repository.addListboxSelection = AddProfile().getFromProfileListboxSettingRepository(
        repository.profileListbox, repository
    )
    repository.deleteListboxSelection = DeleteProfile().getFromProfileListboxSettingRepository(
        repository.profileListbox, repository
    )
    directoryName = archive.getProfilesPath()
    archive.makeDirectory(directoryName)
    repository.windowPosition.value = "0+400"
Exemplo n.º 6
0
	def getSelectedFolder(self):
		"Get the selected folder."
		settingProfileSubfolder = settings.getSubfolderWithBasename( self.value, archive.getProfilesPath( self.listSetting.craftTypeName ) )
		if settingProfileSubfolder is not None:
			return settingProfileSubfolder
		toolProfileSubfolder = settings.getSubfolderWithBasename( self.value, settings.getProfilesDirectoryInAboveDirectory( self.listSetting.craftTypeName ) )
		return toolProfileSubfolder
Exemplo n.º 7
0
	def setValueToFolders(self):
		"Set the value to the folders in the profiles directories."
		self.value = settings.getFolders( archive.getProfilesPath( self.craftTypeName ) )
		defaultFolders = settings.getFolders( settings.getProfilesDirectoryInAboveDirectory( self.craftTypeName ) )
		for defaultFolder in defaultFolders:
			if defaultFolder not in self.value:
				self.value.append( defaultFolder )
		self.value.sort()
Exemplo n.º 8
0
	def setValueToFolders(self):
		"Set the value to the folders in the profiles directories."
		self.value = settings.getFolders( archive.getProfilesPath( self.craftTypeName ) )
		defaultFolders = settings.getFolders( settings.getProfilesDirectoryInAboveDirectory( self.craftTypeName ) )
		for defaultFolder in defaultFolders:
			if defaultFolder not in self.value:
				self.value.append( defaultFolder )
		self.value.sort()
Exemplo n.º 9
0
	def __init__(self):
		"Set the default entities, execute title & repository fileName."
		settings.addListsToRepository('skeinforge_application.skeinforge_utilities.skeinforge_profile.html', '', self )
		importantFileNames = ['extrusion']
		self.craftRadios = settings.getRadioPluginsAddPluginFrame( getPluginsDirectoryPath(), importantFileNames, getPluginFileNames(), self )
		ProfilePluginRadioButtonsSaveListener().getFromRadioPlugins( self.craftRadios, self )
		for craftRadio in self.craftRadios:
			craftRadio.updateFunction = self.updateRelay
		directoryName = archive.getProfilesPath()
		gcodec.makeDirectory(directoryName)
		self.windowPosition.value = '0+200'
Exemplo n.º 10
0
	def __init__(self):
		"Set the default entities, execute title & repository fileName."
		settings.addListsToRepository('skeinforge_application.skeinforge_utilities.skeinforge_profile.html', self)
		importantFileNames = ['extrusion']
		self.craftRadios = settings.getRadioPluginsAddPluginFrame( getPluginsDirectoryPath(), importantFileNames, getPluginFileNames(), self )
		ProfilePluginRadioButtonsSaveListener().getFromRadioPlugins( self.craftRadios, self )
		for craftRadio in self.craftRadios:
			craftRadio.updateFunction = self.updateRelay
		directoryName = archive.getProfilesPath()
		archive.makeDirectory(directoryName)
		self.windowPosition.value = '0+200'
Exemplo n.º 11
0
	def addSelection(self):
		"Add the selection of a listbox setting."
		entryText = self.entry.get()
		if entryText == '':
			print('To add to the profiles, enter the material name.')
			return
		self.profileListboxSetting.listSetting.setValueToFolders()
		if entryText in self.profileListboxSetting.listSetting.value:
			print('There is already a profile by the name of %s, so no profile will be added.' % entryText )
			return
		self.entry.delete( 0, settings.Tkinter.END )
		craftTypeProfileDirectory = archive.getProfilesPath( self.profileListboxSetting.listSetting.craftTypeName )
		destinationDirectory = os.path.join( craftTypeProfileDirectory, entryText )
		shutil.copytree( self.profileListboxSetting.getSelectedFolder(), destinationDirectory )
		self.profileListboxSetting.listSetting.setValueToFolders()
		self.profileListboxSetting.value = entryText
		self.profileListboxSetting.setStateToValue()
Exemplo n.º 12
0
	def addSelection(self):
		"Add the selection of a listbox setting."
		entryText = self.entry.get()
		if entryText == '':
			print('To add to the profiles, enter the material name.')
			return
		self.profileListboxSetting.listSetting.setValueToFolders()
		if entryText in self.profileListboxSetting.listSetting.value:
			print('There is already a profile by the name of %s, so no profile will be added.' % entryText )
			return
		self.entry.delete( 0, settings.Tkinter.END )
		craftTypeProfileDirectory = archive.getProfilesPath( self.profileListboxSetting.listSetting.craftTypeName )
		destinationDirectory = os.path.join( craftTypeProfileDirectory, entryText )
		shutil.copytree( self.profileListboxSetting.getSelectedFolder(), destinationDirectory )
		self.profileListboxSetting.listSetting.setValueToFolders()
		self.profileListboxSetting.value = entryText
		self.profileListboxSetting.setStateToValue()
Exemplo n.º 13
0
def writeOutput(fileName, shouldAnalyze=True):
    'Export a gcode linear move file.'

    if fileName == '':
        return None
    repository = ExportRepository()
    settings.getReadRepository(repository)
    startTime = time.time()
    print('File ' + archive.getSummarizedFileName(fileName) +
          ' is being chain exported.')
    fileNameSuffix = fileName[:fileName.rfind('.')]

    if repository.addExportSuffix.value:
        fileNameSuffix += '_export'

    if (repository.profileFileExtension.value == True):
        profileName = skeinforge_profile.getProfileName(
            skeinforge_profile.getCraftTypeName())
        if profileName:
            fileNameSuffix += '.' + string.replace(profileName, ' ', '_')

    if (repository.descriptiveExtension.value == True):
        fileNameSuffix += descriptiveExtension()

    if (repository.timestampExtension.value == True):
        fileNameSuffix += '.' + strftime("%Y%m%d_%H%M%S")

    if (repository.archiveProfile.value == True):
        profileName = skeinforge_profile.getProfileName(
            skeinforge_profile.getCraftTypeName())
        if profileName:
            profileZipFileName = fileNameSuffix + '.zip'
            zipper(
                archive.getProfilesPath(
                    skeinforge_profile.getProfileDirectory()),
                profileName + '/', profileZipFileName)
            print('Profile archived to ' + profileZipFileName)

    if (repository.exportProfileAsCsv.value == True):
        csvExportFilename = fileNameSuffix + '.csv'
        archive.writeFileText(csvExportFilename, Condenser().readSettings())

    fileNameSuffix += '.' + repository.fileExtension.value
    gcodeText = gcodec.getGcodeFileText(fileName, '')
    procedures = skeinforge_craft.getProcedures('export', gcodeText)
    gcodeText = skeinforge_craft.getChainTextFromProcedures(
        fileName, procedures[:-1], gcodeText)
    if gcodeText == '':
        return None
    if repository.savePenultimateGcode.value:
        penultimateFileName = fileName[:fileName.
                                       rfind('.')] + '_penultimate.gcode'
        archive.writeFileText(penultimateFileName, gcodeText)
        print('The penultimate file is saved as ' +
              archive.getSummarizedFileName(penultimateFileName))
    exportGcode = getCraftedTextFromText(gcodeText, repository)
    window = None
    if shouldAnalyze:
        window = skeinforge_analyze.writeOutput(fileName, fileNameSuffix,
                                                gcodeText)
    replaceableExportGcode = None
    selectedPluginModule = getSelectedPluginModule(repository.exportPlugins)
    if selectedPluginModule == None:
        replaceableExportGcode = exportGcode
    else:
        if selectedPluginModule.globalIsReplaceable:
            replaceableExportGcode = selectedPluginModule.getOutput(
                exportGcode)
        else:
            selectedPluginModule.writeOutput(fileNameSuffix, exportGcode)
    if replaceableExportGcode != None:
        replaceableExportGcode = getReplaceableExportGcode(
            repository.nameOfReplaceFile.value, replaceableExportGcode)
        archive.writeFileText(fileNameSuffix, replaceableExportGcode)
        print('The exported file is saved as ' +
              archive.getSummarizedFileName(fileNameSuffix))
    if repository.alsoSendOutputTo.value != '':
        if replaceableExportGcode == None:
            replaceableExportGcode = selectedPluginModule.getOutput(
                exportGcode)
        sendOutputTo(replaceableExportGcode, repository.alsoSendOutputTo.value)
    print('It took %s to export the file.' %
          euclidean.getDurationString(time.time() - startTime))

    return window
Exemplo n.º 14
0
def writeOutput(fileName, shouldAnalyze=True):
    """Export a gcode linear move file."""

    if fileName == '':
        return None
    repository = ExportRepository()
    settings.getReadRepository(repository)
    startTime = time.time()
    print('File ' + archive.getSummarizedFileName(fileName) + ' is being chain exported.')
    fileNameSuffix = fileName[: fileName.rfind('.')]

    if repository.addExportSuffix.value:
        fileNameSuffix += '_export'

    if repository.profileFileExtension.value:
        profileName = skeinforge_profile.getProfileName(skeinforge_profile.getCraftTypeName())
        if profileName:
            fileNameSuffix += '.' + string.replace(profileName, ' ', '_')

    if repository.descriptiveExtension.value:
        fileNameSuffix += descriptiveExtension()

    if repository.timestampExtension.value:
        fileNameSuffix += '.'+strftime("%Y%m%d_%H%M%S")

    if repository.archiveProfile.value:
        profileName = skeinforge_profile.getProfileName(skeinforge_profile.getCraftTypeName())
        if profileName:
            profileZipFileName = fileNameSuffix + '.zip'
            zipper(archive.getProfilesPath(skeinforge_profile.getProfileDirectory()), profileName+'/', profileZipFileName)
            print('Profile archived to ' + profileZipFileName)

    if repository.exportProfileAsCsv.value:
        csvExportFilename = fileNameSuffix + '.csv'
        archive.writeFileText(csvExportFilename, Condenser().readSettings())

    fileNameSuffix += '.' + repository.fileExtension.value
    gcodeText = gcodec.getGcodeFileText(fileName, '')
    procedures = skeinforge_craft.getProcedures('export', gcodeText)
    gcodeText = skeinforge_craft.getChainTextFromProcedures(fileName, procedures[ : - 1 ], gcodeText)
    if gcodeText == '':
        return None
    fileNamePenultimate = fileName[: fileName.rfind('.')] + '_penultimate.gcode'
    filePenultimateWritten = False
    if repository.savePenultimateGcode.value:
        archive.writeFileText(fileNamePenultimate, gcodeText)
        filePenultimateWritten = True
        print('The penultimate file is saved as ' + archive.getSummarizedFileName(fileNamePenultimate))
    exportGcode = getCraftedTextFromText(gcodeText, repository)
    window = None
    if shouldAnalyze:
        window = skeinforge_analyze.writeOutput(fileName, fileNamePenultimate, fileNameSuffix,
            filePenultimateWritten, gcodeText)
    replaceableExportGcode = None
    selectedPluginModule = getSelectedPluginModule(repository.exportPlugins)
    if selectedPluginModule is None:
        replaceableExportGcode = exportGcode
    else:
        if selectedPluginModule.globalIsReplaceable:
            replaceableExportGcode = selectedPluginModule.getOutput(exportGcode)
        else:
            selectedPluginModule.writeOutput(fileNameSuffix, exportGcode)
    if replaceableExportGcode is not None:
        replaceableExportGcode = getReplaceableExportGcode(repository.nameOfReplaceFile.value, replaceableExportGcode)
        archive.writeFileText( fileNameSuffix, replaceableExportGcode )
        print('The exported file is saved as ' + archive.getSummarizedFileName(fileNameSuffix))
    if repository.alsoSendOutputTo.value != '':
        if replaceableExportGcode is None:
            replaceableExportGcode = selectedPluginModule.getOutput(exportGcode)
        sendOutputTo(replaceableExportGcode, repository.alsoSendOutputTo.value)
    print('It took %s to export the file.' % euclidean.getDurationString(time.time() - startTime))

    return window