For SF45 you can also configure the travel speed. Due to the flow of the code I cannot find this in SF41
With 5D machines this makes more sense, as you have good control over the width.
* All: Save settings in .skeinforge_pypy to not mess up normal skeinforge profiles.
* All: Default settings changed to match Ultimaker with dimension firmware (Marlin or Sprinter)
+* All: Modified "Object first layer speed" settings to work on the first 3 layers (configurable)
+* SF45: Added "Object first layer travel speed" setting, to slow down the travel on the first layers.
+ Reduces the chance that a travel pulls the first layer lose.
* SF41: Dimensions patch against short pauses
* SF41: Speedup patch in euclidean.py (Merged in mainline SF43)
diff -r -x'*.pyc' -N -u ori/41/fabmetheus_utilities/archive.py target/SF41/fabmetheus_utilities/archive.py
--- ori/41/fabmetheus_utilities/archive.py 2011-04-12 00:32:25.000000000 +0200
-+++ target/SF41/fabmetheus_utilities/archive.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/fabmetheus_utilities/archive.py 2011-12-15 10:57:21.000000000 +0100
@@ -18,7 +18,7 @@
__license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
def addToNamePathDictionary(directoryPath, namePathDictionary):
diff -r -x'*.pyc' -N -u ori/41/fabmetheus_utilities/euclidean.py target/SF41/fabmetheus_utilities/euclidean.py
--- ori/41/fabmetheus_utilities/euclidean.py 2011-04-15 02:32:27.000000000 +0200
-+++ target/SF41/fabmetheus_utilities/euclidean.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/fabmetheus_utilities/euclidean.py 2011-12-15 10:57:21.000000000 +0100
@@ -64,7 +64,7 @@
def addElementToPixelList( element, pixelDictionary, x, y ):
return squareValues
diff -r -x'*.pyc' -N -u ori/41/fabmetheus_utilities/settings.py target/SF41/fabmetheus_utilities/settings.py
--- ori/41/fabmetheus_utilities/settings.py 2011-04-26 10:32:32.000000000 +0200
-+++ target/SF41/fabmetheus_utilities/settings.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/fabmetheus_utilities/settings.py 2011-12-15 10:57:21.000000000 +0100
@@ -271,7 +271,7 @@
if repository.baseNameSynonym != None:
text = archive.getFileText(archive.getProfilesPath(getProfileBaseNameSynonym(repository)), False)
readSettingsFromText(repository, text)
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/alterations/end.gcode target/SF41/skeinforge_application/alterations/end.gcode
--- ori/41/skeinforge_application/alterations/end.gcode 1970-01-01 01:00:00.000000000 +0100
-+++ target/SF41/skeinforge_application/alterations/end.gcode 2011-12-14 15:01:34.000000000 +0100
++++ target/SF41/skeinforge_application/alterations/end.gcode 2011-12-15 10:57:21.000000000 +0100
@@ -0,0 +1,10 @@
+(start of end.gcode)
+M104 S0 (extruder heat off)
+
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/alterations/start.gcode target/SF41/skeinforge_application/alterations/start.gcode
--- ori/41/skeinforge_application/alterations/start.gcode 1970-01-01 01:00:00.000000000 +0100
-+++ target/SF41/skeinforge_application/alterations/start.gcode 2011-12-14 15:02:41.000000000 +0100
++++ target/SF41/skeinforge_application/alterations/start.gcode 2011-12-15 10:57:21.000000000 +0100
@@ -0,0 +1,30 @@
+(start of start.txt)
+M92 E926.5 (the number of extruder steps to take in 1mm of filament)
+
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeiniso.py target/SF41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeiniso.py
--- ori/41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeiniso.py 2011-04-14 06:57:37.000000000 +0200
-+++ target/SF41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeiniso.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeiniso.py 2011-12-15 10:57:21.000000000 +0100
@@ -297,7 +297,7 @@
self.baseNameSynonym = 'behold.csv'
self.fileNameInput = settings.FileNameInput().getFromFileName( [ ('Gcode text files', '*.gcode') ], 'Open File for Skeiniso', self, '')
settings.LabelSeparator().getFromRepository(self)
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py target/SF41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py
--- ori/41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py 2011-04-14 06:57:37.000000000 +0200
-+++ target/SF41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py 2011-12-15 10:57:21.000000000 +0100
@@ -195,7 +195,7 @@
self.baseNameSynonym = 'skeinview.csv'
self.fileNameInput = settings.FileNameInput().getFromFileName( [ ('Gcode text files', '*.gcode') ], 'Open File for Skeinlayer', self, '')
self.goAroundExtruderOffTravel = settings.BooleanSetting().getFromValue('Go Around Extruder Off Travel', self, False )
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py 2011-04-08 10:20:48.000000000 +0200
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py 2011-12-15 10:57:21.000000000 +0100
@@ -157,7 +157,7 @@
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 )
carving.getCarveCornerMaximum(),
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py 2011-02-09 08:31:34.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py 2011-12-15 10:57:21.000000000 +0100
@@ -166,7 +166,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.holdingForce = settings.FloatSpin().getFromValue( 0.0, 'Holding Force (bar):', self, 100.0, 0.0 )
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py 2011-02-22 08:41:38.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py 2011-12-15 10:57:21.000000000 +0100
@@ -86,7 +86,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.executeTitle = 'Clip'
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py 2011-02-22 08:41:38.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py 2011-12-15 10:57:21.000000000 +0100
@@ -126,7 +126,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, '')
def execute(self):
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py 2011-03-08 08:30:18.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py 2011-12-15 10:57:21.000000000 +0100
@@ -142,7 +142,7 @@
self.orbit = settings.MenuRadio().getFromMenuButtonDisplay(self.coolType, 'Orbit', self, False)
self.slowDown = settings.MenuRadio().getFromMenuButtonDisplay(self.coolType, 'Slow Down', self, True)
settings.LabelSeparator().getFromRepository(self)
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py 2011-03-22 21:08:23.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py 2011-12-15 10:57:21.000000000 +0100
@@ -124,7 +124,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.addLinearMoveExtrusionDistanceLine( - self.repository.retractionDistance.value )
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/export.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/export.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/export.py 2011-02-09 08:28:22.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/export.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/export.py 2011-12-15 10:57:21.000000000 +0100
@@ -214,7 +214,7 @@
self.exportLabel = settings.LabelDisplay().getFromName('Export Operations: ', self)
self.exportPlugins = []
self.fileExtension = settings.StringSetting().getFromValue('File Extension:', self, 'gcode')
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py 2011-03-29 22:07:15.000000000 +0200
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py 2011-12-15 10:57:21.000000000 +0100
@@ -808,7 +808,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 )
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/home.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/home.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/home.py 2011-02-22 08:41:38.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/home.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/home.py 2011-12-15 10:57:21.000000000 +0100
@@ -82,7 +82,7 @@
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, '')
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py 2011-04-19 09:36:28.000000000 +0200
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py 2011-12-15 10:57:21.000000000 +0100
@@ -113,7 +113,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, '')
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py 2011-02-09 08:31:44.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py 2011-12-15 10:57:21.000000000 +0100
@@ -88,7 +88,7 @@
'Set the default settings, execute title & settings fileName.'
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.limit.html', self )
self.executeTitle = 'Limit'
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py 2011-02-09 08:33:32.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py 2011-12-15 10:57:21.000000000 +0100
@@ -105,7 +105,7 @@
self.fileNameInput = settings.FileNameInput().getFromFileName(
fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Multiply', self, '')
self.centerX = settings.FloatSpin().getFromValue(-100.0, 'Center X (mm):', self, 100.0, 0.0)
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py 2011-04-23 09:44:37.000000000 +0200
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py 2011-12-15 11:41:05.000000000 +0100
@@ -358,7 +358,7 @@
self.baseInfillDensity = settings.FloatSpin().getFromValue(0.3, 'Base Infill Density (ratio):', self, 0.9, 0.5)
self.baseLayerThicknessOverLayerThickness = settings.FloatSpin().getFromValue(
self.interfaceNozzleLiftOverInterfaceLayerThickness = settings.FloatSpin().getFromValue(
0.25, 'Interface Nozzle Lift over Interface Layer Thickness (ratio):', self, 0.85, 0.45)
settings.LabelSeparator().getFromRepository(self)
+@@ -385,7 +385,7 @@
+ self.nameOfSupportStartFile = settings.StringSetting().getFromValue(
+ 'Name of Support Start File:', self, 'support_start.gcode')
+ 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(
+@@ -394,6 +394,8 @@
+ 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.operatingNozzleLiftOverLayerThickness = settings.FloatSpin().getFromValue(
+ 0.3, 'Operating Nozzle Lift over Layer Thickness (ratio):', self, 0.7, 0.5)
+@@ -744,9 +746,9 @@
+ paths = euclidean.getPathsFromEndpoints(endpoints, 1.5 * self.interfaceStep, aroundPixelTable, aroundWidth)
+ feedRateMinuteMultiplied = self.feedRateMinute
+ supportFlowRateMultiplied = self.supportFlowRate
+- if self.layerIndex == 0:
+- feedRateMinuteMultiplied *= self.repository.objectFirstLayerFeedRateInfillMultiplier.value
+- supportFlowRateMultiplied *= self.repository.objectFirstLayerFlowRateInfillMultiplier.value
++ if self.layerIndex < self.repository.objectFirstLayersLayerAmount.value:
++ feedRateMinuteMultiplied *= ((self.repository.objectFirstLayerFeedRateInfillMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
++ supportFlowRateMultiplied *= ((self.repository.objectFirstLayerFlowRatePerimeterMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
+ self.addFlowRateValueIfDifferent(supportFlowRateMultiplied)
+ for path in paths:
+ self.distanceFeedRate.addGcodeFromFeedRateThreadZ(feedRateMinuteMultiplied, path, self.travelFeedRateMinute, z)
+@@ -874,14 +876,17 @@
+ z += self.operatingJump
+ flowRate = self.oldFlowRateInput
+ temperature = self.objectNextLayersTemperature
++ if self.layerIndex < self.repository.objectFirstLayersLayerAmount.value:
++ if self.isPerimeterPath:
++ feedRateMinuteMultiplied *= self.repository.objectFirstLayerFeedRatePerimeterMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
++ flowRate *= self.repository.objectFirstLayerFlowRatePerimeterMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
++ else:
++ feedRateMinuteMultiplied *= self.repository.objectFirstLayerFeedRateInfillMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
++ flowRate *= self.repository.objectFirstLayerFlowRateInfillMultiplier.value * (self.repository.objectFirstLayersLayerAmount.value - self.layerIndex)) + self.layerIndex) / self.repository.objectFirstLayersLayerAmount.value
+ if self.layerIndex == 0:
+ if self.isPerimeterPath:
+- feedRateMinuteMultiplied *= self.repository.objectFirstLayerFeedRatePerimeterMultiplier.value
+- flowRate *= self.repository.objectFirstLayerFlowRatePerimeterMultiplier.value
+ temperature = self.objectFirstLayerPerimeterTemperature
+ else:
+- feedRateMinuteMultiplied *= self.repository.objectFirstLayerFeedRateInfillMultiplier.value
+- flowRate *= self.repository.objectFirstLayerFlowRateInfillMultiplier.value
+ temperature = self.objectFirstLayerInfillTemperature
+ self.addFlowRateValueIfDifferent(flowRate)
+ self.addTemperatureLineIfDifferent(temperature)
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py 2011-02-22 08:41:38.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py 2011-12-15 10:57:21.000000000 +0100
@@ -148,15 +148,15 @@
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 )
def execute(self):
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py
--- ori/41/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py 2011-02-09 08:31:01.000000000 +0100
-+++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py 2011-12-13 16:40:24.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py 2011-12-15 10:57:21.000000000 +0100
@@ -122,7 +122,7 @@
"Set the default settings, execute title & settings fileName."
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.temperature.html', self )
self.coolingRate = settings.FloatSpin().getFromValue( 1.0, 'Cooling Rate (Celcius/second):', self, 20.0, 3.0 )
diff -r -x'*.pyc' -N -u ori/41/skeinforge_application/skeinforge.py target/SF41/skeinforge_application/skeinforge.py
--- ori/41/skeinforge_application/skeinforge.py 2011-04-27 02:14:25.000000000 +0200
-+++ target/SF41/skeinforge_application/skeinforge.py 2011-12-14 15:07:47.000000000 +0100
++++ target/SF41/skeinforge_application/skeinforge.py 2011-12-15 10:57:21.000000000 +0100
@@ -228,6 +228,7 @@
from skeinforge_application.skeinforge_utilities import skeinforge_profile
import os
diff -r -x'*.pyc' -N -u ori/45/fabmetheus_utilities/archive.py target/SF45/fabmetheus_utilities/archive.py
--- ori/45/fabmetheus_utilities/archive.py 2011-10-09 09:33:57.000000000 +0200
-+++ target/SF45/fabmetheus_utilities/archive.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/fabmetheus_utilities/archive.py 2011-12-15 10:57:21.000000000 +0100
@@ -18,7 +18,7 @@
__license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
def addToNamePathDictionary(directoryPath, namePathDictionary):
diff -r -x'*.pyc' -N -u ori/45/fabmetheus_utilities/settings.py target/SF45/fabmetheus_utilities/settings.py
--- ori/45/fabmetheus_utilities/settings.py 2011-11-05 06:16:39.000000000 +0100
-+++ target/SF45/fabmetheus_utilities/settings.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/fabmetheus_utilities/settings.py 2011-12-15 10:57:21.000000000 +0100
@@ -289,7 +289,7 @@
if repository.baseNameSynonym != None:
text = archive.getFileText(archive.getProfilesPath(getProfileBaseNameSynonym(repository)), False)
readSettingsFromText(repository, text)
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/alterations/end.gcode target/SF45/skeinforge_application/alterations/end.gcode
--- ori/45/skeinforge_application/alterations/end.gcode 1970-01-01 01:00:00.000000000 +0100
-+++ target/SF45/skeinforge_application/alterations/end.gcode 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/alterations/end.gcode 2011-12-15 10:57:21.000000000 +0100
@@ -0,0 +1,10 @@
+(start of end.gcode)
+M104 S0 (extruder heat off)
+
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/alterations/start.gcode target/SF45/skeinforge_application/alterations/start.gcode
--- ori/45/skeinforge_application/alterations/start.gcode 1970-01-01 01:00:00.000000000 +0100
-+++ target/SF45/skeinforge_application/alterations/start.gcode 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/alterations/start.gcode 2011-12-15 10:57:21.000000000 +0100
@@ -0,0 +1,30 @@
+(start of start.txt)
+M92 E926.5 (the number of extruder steps to take in 1mm of filament)
+
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py target/SF45/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py
--- ori/45/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py 2011-11-01 08:59:54.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/analyze_plugins/skeinlayer.py 2011-12-15 10:57:21.000000000 +0100
@@ -200,7 +200,7 @@
self.baseNameSynonym = 'skeinview.csv'
self.fileNameInput = settings.FileNameInput().getFromFileName( [ ('Gcode text files', '*.gcode') ], 'Open File for Skeinlayer', self, '')
self.goAroundExtruderOffTravel = settings.BooleanSetting().getFromValue('Go Around Extruder Off Travel', self, False )
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py 2011-11-05 23:59:49.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py 2011-12-14 15:43:45.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py 2011-12-15 10:57:21.000000000 +0100
@@ -163,7 +163,7 @@
self.addLayerTemplateToSVG = settings.BooleanSetting().getFromValue('Add Layer Template to SVG', self, True)
self.extraDecimalPlaces = settings.FloatSpin().getFromValue(0.0, 'Extra Decimal Places (float):', self, 3.0, 2.0)
carving.getCarveCornerMaximum(),
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py 2011-09-29 05:15:43.000000000 +0200
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py 2011-12-14 15:45:43.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/chamber.py 2011-12-15 10:57:21.000000000 +0100
@@ -201,7 +201,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.holdingForce = settings.FloatSpin().getFromValue( 0.0, 'Holding Force (bar):', self, 100.0, 0.0 )
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py 2011-11-05 04:20:52.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py 2011-12-15 10:57:21.000000000 +0100
@@ -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.executeTitle = 'Clip'
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py 2011-11-01 09:00:22.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/comb.py 2011-12-15 10:57:21.000000000 +0100
@@ -126,7 +126,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, '')
def execute(self):
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py 2011-11-05 06:50:45.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/cool.py 2011-12-15 10:57:21.000000000 +0100
@@ -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)
settings.LabelSeparator().getFromRepository(self)
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py 2011-11-06 00:12:00.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py 2011-12-15 10:57:21.000000000 +0100
@@ -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.maximumEValueBeforeReset = settings.FloatSpin().getFromValue(0.0, 'Maximum E Value before Reset (float):', self, 999999.9, 91234.0)
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/export.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/export.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/export.py 2011-10-17 22:31:29.000000000 +0200
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/export.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/export.py 2011-12-15 10:57:21.000000000 +0100
@@ -339,7 +339,7 @@
self.exportLabel = settings.LabelDisplay().getFromName('Export Operations: ', self)
self.exportPlugins = []
self.fileExtension = settings.StringSetting().getFromValue('File Extension:', self, 'gcode')
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py 2011-11-08 06:25:20.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py 2011-12-14 15:41:36.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py 2011-12-15 10:57:21.000000000 +0100
@@ -803,7 +803,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.distanceFeedRate.addTagRoundedLine('infillWidth', self.infillWidth)
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/home.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/home.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/home.py 2011-11-06 00:03:11.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/home.py 2011-12-14 15:39:15.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/home.py 2011-12-15 10:57:21.000000000 +0100
@@ -82,7 +82,7 @@
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, '')
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py 2011-10-17 10:32:26.000000000 +0200
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py 2011-12-15 10:57:21.000000000 +0100
@@ -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, '')
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py 2011-10-24 08:01:44.000000000 +0200
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/limit.py 2011-12-15 10:57:21.000000000 +0100
@@ -85,7 +85,7 @@
'Set the default settings, execute title & settings fileName.'
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.limit.html', self )
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py 2011-10-24 08:08:11.000000000 +0200
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py 2011-12-14 15:42:23.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/multiply.py 2011-12-15 10:57:21.000000000 +0100
@@ -112,7 +112,7 @@
self.fileNameInput = settings.FileNameInput().getFromFileName(
fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Multiply', self, '')
self.centerX = settings.FloatSpin().getFromValue(-100.0, 'Center X (mm):', self, 100.0, 0.0)
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py 2011-11-05 23:59:49.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py 2011-12-15 10:57:21.000000000 +0100
@@ -338,7 +338,7 @@
self.baseInfillDensity = settings.FloatSpin().getFromValue(0.3, 'Base Infill Density (ratio):', self, 0.9, 0.5)
self.baseLayerThicknessOverLayerThickness = settings.FloatSpin().getFromValue(
settings.LabelSeparator().getFromRepository(self)
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py 2011-11-05 23:59:49.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py 2011-12-14 15:45:26.000000000 +0100
-@@ -180,8 +180,8 @@
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py 2011-12-15 11:32:27.000000000 +0100
+@@ -180,18 +180,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, 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 Layer -', self)
++ settings.LabelDisplay().getFromName('- Object First Layers -', self)
self.objectFirstLayerFeedRateInfillMultiplier = settings.FloatSpin().getFromValue(
-@@ -200,7 +200,7 @@
+ 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)
+@@ -200,7 +204,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.executeTitle = 'Speed'
def execute(self):
+@@ -233,11 +237,11 @@
+ flowRate *= self.repository.bridgeFlowRateMultiplier.value
+ if self.isPerimeterPath:
+ flowRate *= self.repository.perimeterFlowRateMultiplier.value
+- if self.layerIndex == 0:
++ if self.layerIndex < self.repository.objectFirstLayersLayerAmount.value:
+ if self.isPerimeterPath:
+- 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
+@@ -270,14 +274,16 @@
+ feedRateMinute *= self.repository.bridgeFeedRateMultiplier.value
+ if self.isPerimeterPath:
+ feedRateMinute *= self.repository.perimeterFeedRateMultiplier.value
+- if self.layerIndex == 0:
++ if self.layerIndex < self.repository.objectFirstLayersLayerAmount.value:
+ if self.isPerimeterPath:
+- 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):
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py
--- ori/45/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py 2011-09-28 20:58:13.000000000 +0200
-+++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py 2011-12-14 15:39:44.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge_plugins/craft_plugins/temperature.py 2011-12-15 10:57:21.000000000 +0100
@@ -122,7 +122,7 @@
"Set the default settings, execute title & settings fileName."
skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge_plugins.craft_plugins.temperature.html', self )
self.coolingRate = settings.FloatSpin().getFromValue( 1.0, 'Cooling Rate (Celcius/second):', self, 20.0, 3.0 )
diff -r -x'*.pyc' -N -u ori/45/skeinforge_application/skeinforge.py target/SF45/skeinforge_application/skeinforge.py
--- ori/45/skeinforge_application/skeinforge.py 2011-11-08 10:32:18.000000000 +0100
-+++ target/SF45/skeinforge_application/skeinforge.py 2011-12-14 15:34:38.000000000 +0100
++++ target/SF45/skeinforge_application/skeinforge.py 2011-12-15 10:57:21.000000000 +0100
@@ -228,6 +228,7 @@
from skeinforge_application.skeinforge_utilities import skeinforge_profile
import os