Added patch for SF48.
parent
c72a0a85e0
commit
f5a994db4d
|
@ -0,0 +1,437 @@
|
|||
--- ori/48/fabmetheus_utilities/archive.py
|
||||
+++ target/SF48/fabmetheus_utilities/archive.py
|
||||
@@ -18,7 +18,7 @@
|
||||
__license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
|
||||
|
||||
|
||||
-globalTemporarySettingsPath = os.path.join(os.path.expanduser('~'), '.skeinforge')
|
||||
+globalTemporarySettingsPath = os.path.join(os.path.expanduser('~'), '.skeinforge_pypy')
|
||||
|
||||
|
||||
def addToNamePathDictionary(directoryPath, namePathDictionary):
|
||||
--- ori/48/fabmetheus_utilities/settings.py
|
||||
+++ target/SF48/fabmetheus_utilities/settings.py
|
||||
@@ -301,7 +301,7 @@
|
||||
if repository.baseNameSynonym != None:
|
||||
text = archive.getFileText(archive.getProfilesPath(getProfileName(repository.baseNameSynonym, repository)), False)
|
||||
if text == '':
|
||||
- print('The default %s will be written in the .skeinforge folder in the home directory.' % repository.title.lower() )
|
||||
+ print('The default %s will be written in the .skeinforge_pypy folder in the home directory.' % repository.title.lower() )
|
||||
text = archive.getFileText(getProfilesDirectoryInAboveDirectory(getProfileBaseName(repository)), False)
|
||||
if text != '':
|
||||
readSettingsFromText(repository, text)
|
||||
--- ori/48/skeinforge_application/alterations/end.gcode
|
||||
+++ target/SF48/skeinforge_application/alterations/end.gcode
|
||||
@@ -0,0 +1,10 @@
|
||||
+(start of end.gcode)
|
||||
+M104 S0 (extruder heat off)
|
||||
+M106 (fan on)
|
||||
+G91 (relative positioning)
|
||||
+G1 Z+10 E-5 F400 (move Z up a bit and retract filament by 5mm)
|
||||
+G1 X-20 Y-20 F1500 (move X and Y over a bit)
|
||||
+M84 (steppers off)
|
||||
+G90 (absolute positioning)
|
||||
+(end of end.gcode)
|
||||
+
|
||||
--- ori/48/skeinforge_application/alterations/start.gcode
|
||||
+++ target/SF48/skeinforge_application/alterations/start.gcode
|
||||
@@ -0,0 +1,31 @@
|
||||
+(start of start.txt)
|
||||
+M92 E926.5 (the number of extruder steps to take in 1mm of filament)
|
||||
+G21 (metric values)
|
||||
+G21
|
||||
+G21 (all the extra G21 commands are comments - skeinforge eats lines without a gcode)
|
||||
+G21
|
||||
+G90 (absolute positioning)
|
||||
+G21
|
||||
+G28 X0 Y0 (move X/Y to min endstops)
|
||||
+G28 Z0 (move Z to min endstops)
|
||||
+G21
|
||||
+G21 ( if your prints start too high, try changing the Z0.0 below )
|
||||
+G21 ( to Z1.0 - the number after the Z is the actual, physical )
|
||||
+G21 ( height of the nozzle in mm. This can take some messing around )
|
||||
+G21 ( with to get just right... )
|
||||
+G21
|
||||
+G92 X0 Y0 Z0 E0 (reset software position to front/left/z=0.0)
|
||||
+G21
|
||||
+G1 Z15.0 F400 (move the platform down 15mm)
|
||||
+G92 E0 (zero the extruded length)
|
||||
+G21
|
||||
+G1 F75 E5 (extrude 5mm of feed stock)
|
||||
+G1 F75 E3.5 (reverse feed stock by 1.5mm)
|
||||
+G92 E0 (zero the extruded length again)
|
||||
+G21
|
||||
+M1 (Clean the nozzle then press YES to continue...)
|
||||
+G21
|
||||
+G1 X100 Y100 F3500 (go to the middle of the platform)
|
||||
+G1 Z0.0 F400 (back to Z=0 and start the print!)
|
||||
+(end of start.txt)
|
||||
+
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py
|
||||
@@ -200,7 +200,7 @@
|
||||
self.baseNameSynonym = 'skeinview.csv'
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( [ ('Gcode text files', '*.gcode') ], 'Open File for Skeinlayer', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Skeinlayer')
|
||||
- self.activateSkeinlayer = settings.BooleanSetting().getFromValue('Activate Skeinlayer', self, True )
|
||||
+ self.activateSkeinlayer = settings.BooleanSetting().getFromValue('Activate Skeinlayer', self, False )
|
||||
self.addAnimation()
|
||||
self.drawArrows = settings.BooleanSetting().getFromValue('Draw Arrows', self, True )
|
||||
self.goAroundExtruderOffTravel = settings.BooleanSetting().getFromValue('Go Around Extruder Off Travel', self, False )
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py
|
||||
@@ -161,10 +161,10 @@
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getTranslatorFileTypeTuples(), 'Open File for Carve', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Carve')
|
||||
self.addLayerTemplateToSVG = settings.BooleanSetting().getFromValue('Add Layer Template to SVG', self, True)
|
||||
- self.edgeWidthOverHeight = settings.FloatSpin().getFromValue( 1.4, 'Edge Width over Height (ratio):', self, 2.2, 1.8 )
|
||||
+ self.edgeWidth = settings.FloatSpin().getFromValue( 0.1, 'Edge Width (mm):', self, 2.2, 0.4 )
|
||||
self.extraDecimalPlaces = settings.FloatSpin().getFromValue(0.0, 'Extra Decimal Places (float):', self, 3.0, 2.0)
|
||||
self.importCoarseness = settings.FloatSpin().getFromValue( 0.5, 'Import Coarseness (ratio):', self, 2.0, 1.0 )
|
||||
- self.layerHeight = settings.FloatSpin().getFromValue( 0.1, 'Layer Height (mm):', self, 1.0, 0.4 )
|
||||
+ self.layerHeight = settings.FloatSpin().getFromValue( 0.1, 'Layer Height (mm):', self, 1.0, 0.2 )
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
settings.LabelDisplay().getFromName('- Layers -', self )
|
||||
self.layersFrom = settings.IntSpin().getFromValue( 0, 'Layers From (index):', self, 20, 0 )
|
||||
@@ -190,7 +190,7 @@
|
||||
def getCarvedSVG(self, carving, fileName, repository):
|
||||
"Parse gnu triangulated surface text and store the carved gcode."
|
||||
layerHeight = repository.layerHeight.value
|
||||
- edgeWidth = repository.edgeWidthOverHeight.value * layerHeight
|
||||
+ edgeWidth = repository.edgeWidth.value
|
||||
carving.setCarveLayerHeight(layerHeight)
|
||||
importRadius = 0.5 * repository.importCoarseness.value * abs(edgeWidth)
|
||||
carving.setCarveImportRadius(max(importRadius, 0.001 * layerHeight))
|
||||
@@ -201,7 +201,7 @@
|
||||
return ''
|
||||
layerHeight = carving.getCarveLayerHeight()
|
||||
decimalPlacesCarried = euclidean.getDecimalPlacesCarried(repository.extraDecimalPlaces.value, layerHeight)
|
||||
- edgeWidth = repository.edgeWidthOverHeight.value * layerHeight
|
||||
+ edgeWidth = repository.edgeWidth.value
|
||||
svgWriter = svg_writer.SVGWriter(
|
||||
repository.addLayerTemplateToSVG.value,
|
||||
carving.getCarveCornerMaximum(),
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py
|
||||
@@ -205,7 +205,7 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.chamber.html', self )
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Chamber', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Chamber')
|
||||
- self.activateChamber = settings.BooleanSetting().getFromValue('Activate Chamber', self, True )
|
||||
+ self.activateChamber = settings.BooleanSetting().getFromValue('Activate Chamber', self, False )
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
settings.LabelDisplay().getFromName('- Bed -', self )
|
||||
self.bedTemperature = settings.FloatSpin().getFromValue(20.0, 'Bed Temperature (Celcius):', self, 90.0, 60.0)
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py
|
||||
@@ -92,7 +92,7 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.clip.html', self )
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Clip', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Clip')
|
||||
- self.activateClip = settings.BooleanSetting().getFromValue('Activate Clip', self, True )
|
||||
+ self.activateClip = settings.BooleanSetting().getFromValue('Activate Clip', self, False )
|
||||
self.clipOverEdgeWidth = settings.FloatSpin().getFromValue( 0.1, 'Clip Over Perimeter Width (ratio):', self, 0.8, 0.5 )
|
||||
self.maximumConnectionDistanceOverEdgeWidth = settings.FloatSpin().getFromValue( 1.0, 'Maximum Connection Distance Over Perimeter Width (ratio):', self, 20.0, 10.0 )
|
||||
self.executeTitle = 'Clip'
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py
|
||||
@@ -160,7 +160,7 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.comb.html', self )
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Comb', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Comb')
|
||||
- self.activateComb = settings.BooleanSetting().getFromValue('Activate Comb', self, False )
|
||||
+ self.activateComb = settings.BooleanSetting().getFromValue('Activate Comb', self, True )
|
||||
self.runningJumpSpace = settings.FloatSpin().getFromValue(0.0, 'Running Jump Space (mm):', self, 5.0, 2.0)
|
||||
self.executeTitle = 'Comb'
|
||||
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py
|
||||
@@ -149,7 +149,7 @@
|
||||
self.orbit = settings.MenuRadio().getFromMenuButtonDisplay(self.coolType, 'Orbit', self, False)
|
||||
self.slowDown = settings.MenuRadio().getFromMenuButtonDisplay(self.coolType, 'Slow Down', self, True)
|
||||
self.maximumCool = settings.FloatSpin().getFromValue(0.0, 'Maximum Cool (Celcius):', self, 10.0, 2.0)
|
||||
- self.minimumLayerTime = settings.FloatSpin().getFromValue(0.0, 'Minimum Layer Time (seconds):', self, 120.0, 60.0)
|
||||
+ self.minimumLayerTime = settings.FloatSpin().getFromValue(0.0, 'Minimum Layer Time (seconds):', self, 120.0, 10.0)
|
||||
self.minimumOrbitalRadius = settings.FloatSpin().getFromValue(
|
||||
0.0, 'Minimum Orbital Radius (millimeters):', self, 20.0, 10.0)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py
|
||||
@@ -148,7 +148,7 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.dimension.html', self )
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Dimension', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Dimension')
|
||||
- self.activateDimension = settings.BooleanSetting().getFromValue('Activate Dimension', self, False )
|
||||
+ self.activateDimension = settings.BooleanSetting().getFromValue('Activate Dimension', self, True )
|
||||
extrusionDistanceFormatLatentStringVar = settings.LatentStringVar()
|
||||
self.extrusionDistanceFormatChoiceLabel = settings.LabelDisplay().getFromName('Extrusion Distance Format Choice: ', self )
|
||||
settings.Radio().getFromRadio( extrusionDistanceFormatLatentStringVar, 'Absolute Extrusion Distance', self, True )
|
||||
@@ -156,7 +156,7 @@
|
||||
self.extruderRetractionSpeed = settings.FloatSpin().getFromValue( 4.0, 'Extruder Retraction Speed (mm/s):', self, 34.0, 13.3 )
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
settings.LabelDisplay().getFromName('- Filament -', self )
|
||||
- self.filamentDiameter = settings.FloatSpin().getFromValue(1.0, 'Filament Diameter (mm):', self, 6.0, 2.8)
|
||||
+ self.filamentDiameter = settings.FloatSpin().getFromValue(1.0, 'Filament Diameter (mm):', self, 6.0, 2.89)
|
||||
self.filamentPackingDensity = settings.FloatSpin().getFromValue(0.7, 'Filament Packing Density (ratio):', self, 1.0, 0.85)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
self.maximumEValueBeforeReset = settings.FloatSpin().getFromValue(0.0, 'Maximum E Value before Reset (float):', self, 999999.9, 91234.0)
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/export.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/export.py
|
||||
@@ -338,17 +338,20 @@
|
||||
self.exportLabel = settings.LabelDisplay().getFromName('Export Operations: ', self)
|
||||
self.exportPlugins = []
|
||||
exportLatentStringVar = settings.LatentStringVar()
|
||||
- self.doNotChangeOutput = settings.RadioCapitalized().getFromRadio(exportLatentStringVar, 'Do Not Change Output', self, True)
|
||||
+ self.doNotChangeOutput = settings.RadioCapitalized().getFromRadio(exportLatentStringVar, 'Do Not Change Output', self, False)
|
||||
self.doNotChangeOutput.directoryPath = None
|
||||
allExportPluginFileNames = exportPluginFileNames + exportStaticPluginFileNames
|
||||
for exportPluginFileName in allExportPluginFileNames:
|
||||
exportPlugin = None
|
||||
+ default = False
|
||||
+ if exportPluginFileName == "gcode_small":
|
||||
+ default = True
|
||||
if exportPluginFileName in exportPluginFileNames:
|
||||
path = os.path.join(exportPluginsFolderPath, exportPluginFileName)
|
||||
- exportPlugin = settings.RadioCapitalizedButton().getFromPath(exportLatentStringVar, exportPluginFileName, path, self, False)
|
||||
+ exportPlugin = settings.RadioCapitalizedButton().getFromPath(exportLatentStringVar, exportPluginFileName, path, self, default)
|
||||
exportPlugin.directoryPath = exportPluginsFolderPath
|
||||
else:
|
||||
- exportPlugin = settings.RadioCapitalized().getFromRadio(exportLatentStringVar, exportPluginFileName, self, False)
|
||||
+ exportPlugin = settings.RadioCapitalized().getFromRadio(exportLatentStringVar, exportPluginFileName, self, default)
|
||||
exportPlugin.directoryPath = exportStaticDirectoryPath
|
||||
self.exportPlugins.append(exportPlugin)
|
||||
self.fileExtension = settings.StringSetting().getFromValue('File Extension:', self, 'gcode')
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py
|
||||
@@ -798,7 +798,7 @@
|
||||
self.infillPatternLine = settings.Radio().getFromRadio( infillLatentStringVar, 'Line', self, True )
|
||||
self.infillPerimeterOverlap = settings.FloatSpin().getFromValue( 0.0, 'Infill Perimeter Overlap (ratio):', self, 0.4, 0.15 )
|
||||
self.infillSolidity = settings.FloatSpin().getFromValue( 0.04, 'Infill Solidity (ratio):', self, 0.3, 0.2 )
|
||||
- self.infillWidthOverThickness = settings.FloatSpin().getFromValue(1.3, 'Infill Width over Thickness (ratio):', self, 1.7, 1.5)
|
||||
+ self.infillWidth = settings.FloatSpin().getFromValue( 0.1, 'Infill Width:', self, 1.7, 0.4 )
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
self.solidSurfaceThickness = settings.IntSpin().getFromValue(0, 'Solid Surface Thickness (layers):', self, 5, 3)
|
||||
self.startFromChoice = settings.MenuButtonDisplay().getFromName('Start From Choice:', self)
|
||||
@@ -1247,7 +1247,7 @@
|
||||
return
|
||||
elif firstWord == '(<layerHeight>':
|
||||
self.layerHeight = float(splitLine[1])
|
||||
- self.infillWidth = self.repository.infillWidthOverThickness.value * self.layerHeight
|
||||
+ self.infillWidth = self.repository.infillWidth.value
|
||||
self.surroundingSlope = math.tan(math.radians(min(self.repository.surroundingAngle.value, 80.0)))
|
||||
self.distanceFeedRate.addTagRoundedLine('infillPerimeterOverlap', self.repository.infillPerimeterOverlap.value)
|
||||
self.distanceFeedRate.addTagRoundedLine('infillWidth', self.infillWidth)
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/home.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/home.py
|
||||
@@ -82,10 +82,10 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.home.html', self)
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Home', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Home')
|
||||
- self.activateHome = settings.BooleanSetting().getFromValue('Activate Home', self, True )
|
||||
+ self.activateHome = settings.BooleanSetting().getFromValue('Activate Home', self, False )
|
||||
self.nameOfHomeFile = settings.StringSetting().getFromValue('Name of Home File:', self, 'home.gcode')
|
||||
self.executeTitle = 'Home'
|
||||
-
|
||||
+
|
||||
def execute(self):
|
||||
"Home button has been clicked."
|
||||
fileNames = skeinforge_polyfile.getFileOrDirectoryTypesUnmodifiedGcode(self.fileNameInput.value, fabmetheus_interpret.getImportPluginFileNames(), self.fileNameInput.wasCancelled)
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py
|
||||
@@ -116,7 +116,7 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.jitter.html', self)
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Jitter', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Jitter')
|
||||
- self.activateJitter = settings.BooleanSetting().getFromValue('Activate Jitter', self, True)
|
||||
+ self.activateJitter = settings.BooleanSetting().getFromValue('Activate Jitter', self, False)
|
||||
self.jitterOverEdgeWidth = settings.FloatSpin().getFromValue(1.0, 'Jitter Over Perimeter Width (ratio):', self, 3.0, 2.0)
|
||||
self.executeTitle = 'Jitter'
|
||||
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py
|
||||
@@ -86,7 +86,7 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.limit.html', self )
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Limit', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Limit')
|
||||
- self.activateLimit = settings.BooleanSetting().getFromValue('Activate Limit', self, True)
|
||||
+ self.activateLimit = settings.BooleanSetting().getFromValue('Activate Limit', self, False)
|
||||
self.maximumInitialFeedRate = settings.FloatSpin().getFromValue(0.5, 'Maximum Initial Feed Rate (mm/s):', self, 10.0, 1.0)
|
||||
self.executeTitle = 'Limit'
|
||||
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py
|
||||
@@ -112,11 +112,11 @@
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName(
|
||||
fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Multiply', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Multiply')
|
||||
- self.activateMultiply = settings.BooleanSetting().getFromValue('Activate Multiply', self, False)
|
||||
+ self.activateMultiply = settings.BooleanSetting().getFromValue('Activate Multiply', self, True)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
settings.LabelDisplay().getFromName('- Center -', self )
|
||||
- self.centerX = settings.FloatSpin().getFromValue(-100.0, 'Center X (mm):', self, 100.0, 0.0)
|
||||
- self.centerY = settings.FloatSpin().getFromValue(-100.0, 'Center Y (mm):', self, 100.0, 0.0)
|
||||
+ self.centerX = settings.FloatSpin().getFromValue(-100.0, 'Center X (mm):', self, 100.0, 105.0)
|
||||
+ self.centerY = settings.FloatSpin().getFromValue(-100.0, 'Center Y (mm):', self, 100.0, 105.0)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
settings.LabelDisplay().getFromName('- Number of Cells -', self)
|
||||
self.numberOfColumns = settings.IntSpin().getFromValue(1, 'Number of Columns (integer):', self, 10, 1)
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py
|
||||
@@ -351,7 +351,7 @@
|
||||
self.baseInfillDensity = settings.FloatSpin().getFromValue(0.3, 'Base Infill Density (ratio):', self, 0.9, 0.5)
|
||||
self.baseLayerThicknessOverLayerThickness = settings.FloatSpin().getFromValue(
|
||||
1.0, 'Base Layer Thickness over Layer Thickness:', self, 3.0, 2.0)
|
||||
- self.baseLayers = settings.IntSpin().getFromValue(0, 'Base Layers (integer):', self, 3, 1)
|
||||
+ self.baseLayers = settings.IntSpin().getFromValue(0, 'Base Layers (integer):', self, 3, 0)
|
||||
self.baseNozzleLiftOverBaseLayerThickness = settings.FloatSpin().getFromValue(
|
||||
0.2, 'Base Nozzle Lift over Base Layer Thickness (ratio):', self, 0.8, 0.4)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
@@ -369,7 +369,7 @@
|
||||
self.interfaceLayerThicknessOverLayerThickness = settings.FloatSpin().getFromValue(
|
||||
1.0, 'Interface Layer Thickness over Layer Thickness:', self, 3.0, 1.0)
|
||||
self.interfaceLayers = settings.IntSpin().getFromValue(
|
||||
- 0, 'Interface Layers (integer):', self, 3, 2)
|
||||
+ 0, 'Interface Layers (integer):', self, 3, 0)
|
||||
self.interfaceNozzleLiftOverInterfaceLayerThickness = settings.FloatSpin().getFromValue(
|
||||
0.25, 'Interface Nozzle Lift over Interface Layer Thickness (ratio):', self, 0.85, 0.45)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py
|
||||
@@ -184,18 +184,22 @@
|
||||
self.dutyCycleAtBeginning = settings.FloatSpin().getFromValue( 0.0, 'Duty Cyle at Beginning (portion):', self, 1.0, 1.0 )
|
||||
self.dutyCycleAtEnding = settings.FloatSpin().getFromValue( 0.0, 'Duty Cyle at Ending (portion):', self, 1.0, 0.0 )
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
- self.feedRatePerSecond = settings.FloatSpin().getFromValue( 2.0, 'Feed Rate (mm/s):', self, 50.0, 16.0 )
|
||||
- self.flowRateSetting = settings.FloatSpin().getFromValue( 50.0, 'Flow Rate Setting (float):', self, 250.0, 210.0 )
|
||||
+ self.feedRatePerSecond = settings.FloatSpin().getFromValue( 2.0, 'Feed Rate (mm/s):', self, 250.0, 50.0 )
|
||||
+ self.flowRateSetting = settings.FloatSpin().getFromValue( 50.0, 'Flow Rate Setting (float):', self, 250.0, 50.0 )
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
- settings.LabelDisplay().getFromName('- Object First Layer -', self)
|
||||
+ settings.LabelDisplay().getFromName('- Object First Layers -', self)
|
||||
self.objectFirstLayerFeedRateInfillMultiplier = settings.FloatSpin().getFromValue(
|
||||
0.2, 'Object First Layer Feed Rate Infill Multiplier (ratio):', self, 1.0, 0.4)
|
||||
self.objectFirstLayerFeedRatePerimeterMultiplier = settings.FloatSpin().getFromValue(
|
||||
0.2, 'Object First Layer Feed Rate Perimeter Multiplier (ratio):', self, 1.0, 0.4)
|
||||
+ self.objectFirstLayerFeedRateTravelMultiplier = settings.FloatSpin().getFromValue(
|
||||
+ 0.2, 'Object First Layer Feed Rate Travel Multiplier (ratio):', self, 1.0, 0.4)
|
||||
self.objectFirstLayerFlowRateInfillMultiplier = settings.FloatSpin().getFromValue(
|
||||
0.2, 'Object First Layer Flow Rate Infill Multiplier (ratio):', self, 1.0, 0.4)
|
||||
self.objectFirstLayerFlowRatePerimeterMultiplier = settings.FloatSpin().getFromValue(
|
||||
0.2, 'Object First Layer Flow Rate Perimeter Multiplier (ratio):', self, 1.0, 0.4)
|
||||
+ self.objectFirstLayersLayerAmount = settings.IntSpin().getFromValue(
|
||||
+ 1, 'Object First Layers Amount Of Layers For Speed Change:', self, 10, 3)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
self.orbitalFeedRateOverOperatingFeedRate = settings.FloatSpin().getFromValue( 0.1, 'Orbital Feed Rate over Operating Feed Rate (ratio):', self, 0.9, 0.5 )
|
||||
self.maximumZFeedRatePerSecond = settings.FloatSpin().getFromValue(0.5, 'Maximum Z Feed Rate (mm/s):', self, 10.0, 1.0)
|
||||
@@ -204,7 +208,7 @@
|
||||
self.perimeterFeedRateMultiplier = settings.FloatSpin().getFromValue(0.5, 'Perimeter Feed Rate Multiplier (ratio):', self, 1.0, 1.0)
|
||||
self.perimeterFlowRateMultiplier = settings.FloatSpin().getFromValue(0.5, 'Perimeter Flow Rate Multiplier (ratio):', self, 1.0, 1.0)
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
- self.travelFeedRatePerSecond = settings.FloatSpin().getFromValue( 2.0, 'Travel Feed Rate (mm/s):', self, 50.0, 16.0 )
|
||||
+ self.travelFeedRatePerSecond = settings.FloatSpin().getFromValue( 2.0, 'Travel Feed Rate (mm/s):', self, 350.0, 250.0 )
|
||||
self.executeTitle = 'Speed'
|
||||
|
||||
def execute(self):
|
||||
@@ -237,11 +241,11 @@
|
||||
flowRate *= self.repository.bridgeFlowRateMultiplier.value
|
||||
if self.isEdgePath:
|
||||
flowRate *= self.repository.perimeterFlowRateMultiplier.value
|
||||
- if self.layerIndex == 0:
|
||||
+ if self.layerIndex < self.repository.objectFirstLayersLayerAmount.value:
|
||||
if self.isEdgePath:
|
||||
- flowRate *= self.repository.objectFirstLayerFlowRatePerimeterMultiplier.value
|
||||
+ flowRate *= ((self.repository.objectFirstLayerFlowRatePerimeterMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
|
||||
else:
|
||||
- flowRate *= self.repository.objectFirstLayerFlowRateInfillMultiplier.value
|
||||
+ flowRate *= ((self.repository.objectFirstLayerFlowRateInfillMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
|
||||
if flowRate != self.oldFlowRate:
|
||||
self.distanceFeedRate.addLine('M108 S' + euclidean.getFourSignificantFigures(flowRate))
|
||||
self.oldFlowRate = flowRate
|
||||
@@ -274,14 +278,16 @@
|
||||
feedRateMinute *= self.repository.bridgeFeedRateMultiplier.value
|
||||
if self.isEdgePath:
|
||||
feedRateMinute *= self.repository.perimeterFeedRateMultiplier.value
|
||||
- if self.layerIndex == 0:
|
||||
+ if self.layerIndex < self.repository.objectFirstLayersLayerAmount.value:
|
||||
if self.isEdgePath:
|
||||
- feedRateMinute *= self.repository.objectFirstLayerFeedRatePerimeterMultiplier.value
|
||||
+ feedRateMinute *= ((self.repository.objectFirstLayerFeedRatePerimeterMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
|
||||
else:
|
||||
- feedRateMinute *= self.repository.objectFirstLayerFeedRateInfillMultiplier.value
|
||||
+ feedRateMinute *= ((self.repository.objectFirstLayerFeedRateInfillMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
|
||||
self.addFlowRateLine()
|
||||
if not self.isExtruderActive:
|
||||
feedRateMinute = self.travelFeedRateMinute
|
||||
+ if self.layerIndex < self.repository.objectFirstLayersLayerAmount.value:
|
||||
+ feedRateMinute *= ((self.repository.objectFirstLayerFeedRateTravelMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
|
||||
return self.distanceFeedRate.getLineWithFeedRate(feedRateMinute, line, splitLine)
|
||||
|
||||
def parseInitialization(self):
|
||||
--- ori/48/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py
|
||||
@@ -126,7 +126,7 @@
|
||||
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.temperature.html', self )
|
||||
self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Temperature', self, '')
|
||||
self.openWikiManualHelpPage = settings.HelpPage().getOpenFromAbsolute('http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Temperature')
|
||||
- self.activateTemperature = settings.BooleanSetting().getFromValue('Activate Temperature', self, True )
|
||||
+ self.activateTemperature = settings.BooleanSetting().getFromValue('Activate Temperature', self, False )
|
||||
settings.LabelSeparator().getFromRepository(self)
|
||||
settings.LabelDisplay().getFromName('- Rate -', self )
|
||||
self.coolingRate = settings.FloatSpin().getFromValue( 1.0, 'Cooling Rate (Celcius/second):', self, 20.0, 3.0 )
|
||||
--- ori/48/skeinforge_application/skeinforge.py
|
||||
+++ target/SF48/skeinforge_application/skeinforge.py
|
||||
@@ -228,6 +228,8 @@
|
||||
from skeinforge_application.skeinforge_utilities import skeinforge_profile
|
||||
import os
|
||||
import sys
|
||||
+import platform
|
||||
+import subprocess
|
||||
|
||||
|
||||
# document raft, stretch, then carve, comb, fill, inset, oozebane, splodge, temperature, speed once they are updated
|
||||
@@ -561,7 +563,6 @@
|
||||
repository = getNewRepository()
|
||||
repository.fileNameInput.value = fileName
|
||||
repository.execute()
|
||||
- settings.startMainLoopFromConstructor(repository)
|
||||
|
||||
|
||||
class SkeinforgeRepository:
|
||||
@@ -578,13 +579,35 @@
|
||||
settings.LabelDisplay().getFromName('', self)
|
||||
importantFileNames = ['craft', 'profile']
|
||||
getRadioPluginsAddPluginGroupFrame(archive.getSkeinforgePluginsPath(), importantFileNames, getPluginFileNames(), self)
|
||||
- self.executeTitle = 'Skeinforge'
|
||||
+ self.executeTitle = 'Skeinforge a file...'
|
||||
+
|
||||
+ def getPyPyExe(self):
|
||||
+ pypyExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../pypy-1.7/pypy.exe"));
|
||||
+ if os.path.exists(pypyExe):
|
||||
+ return pypyExe
|
||||
+ pypyExe = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../pypy-1.7/bin/pypy"));
|
||||
+ if os.path.exists(pypyExe):
|
||||
+ return pypyExe
|
||||
+ pypyExe = "/bin/pypy";
|
||||
+ if os.path.exists(pypyExe):
|
||||
+ return pypyExe
|
||||
+ pypyExe = "/usr/bin/pypy";
|
||||
+ if os.path.exists(pypyExe):
|
||||
+ return pypyExe
|
||||
+ pypyExe = "/usr/local/bin/pypy";
|
||||
+ if os.path.exists(pypyExe):
|
||||
+ return pypyExe
|
||||
+ return False
|
||||
|
||||
def execute(self):
|
||||
'Skeinforge button has been clicked.'
|
||||
fileNames = skeinforge_polyfile.getFileOrDirectoryTypesUnmodifiedGcode(self.fileNameInput.value, fabmetheus_interpret.getImportPluginFileNames(), self.fileNameInput.wasCancelled)
|
||||
+ pypyExe = self.getPyPyExe()
|
||||
for fileName in fileNames:
|
||||
- skeinforge_craft.writeOutput(fileName)
|
||||
+ if pypyExe == False or platform.python_implementation() == "PyPy":
|
||||
+ skeinforge_craft.writeOutput(fileName)
|
||||
+ else:
|
||||
+ subprocess.call([pypyExe, __file__, fileName])
|
||||
|
||||
def save(self):
|
||||
'Profile has been saved and profile menu should be updated.'
|
Loading…
Reference in New Issue