Added minimal feedrate setting to cool settings (enhancing skeinforge!)
This commit is contained in:
parent
f6eca8e280
commit
b3888e4410
3 changed files with 12 additions and 4 deletions
|
@ -283,6 +283,7 @@ def getSkeinPyPyProfileInformation():
|
|||
'Orbital_Outset_millimeters': DEFSET,
|
||||
'Turn_Fan_On_at_Beginning': DEFSET,
|
||||
'Turn_Fan_Off_at_Ending': DEFSET,
|
||||
'Minimum_feed_rate_mm/s': storedSetting("cool_min_feedrate"),
|
||||
},'hop': {
|
||||
'Activate_Hop': "False",
|
||||
'Hop_Over_Layer_Thickness_ratio': DEFSET,
|
||||
|
|
|
@ -26,6 +26,12 @@ class advancedConfigWindow(configBase.configWindowBase):
|
|||
c = configBase.SettingRow(left, "Print order sequence", 'sequence', ['Loops > Perimeter > Infill', 'Loops > Infill > Perimeter', 'Infill > Loops > Perimeter', 'Infill > Perimeter > Loops', 'Perimeter > Infill > Loops', 'Perimeter > Loops > Infill'], 'Sequence of printing. The perimeter is the outer print edge, the loops are the insides of the walls, and the infill is the insides.');
|
||||
c = configBase.SettingRow(left, "Force first layer sequence", 'force_first_layer_sequence', True, 'This setting forces the order of the first layer to be \'Perimeter > Loops > Infill\'')
|
||||
|
||||
configBase.TitleRow(left, "Cool")
|
||||
c = configBase.SettingRow(left, "Minimum feedrate (mm/s)", 'cool_min_feedrate', False, 'The minimal layer time can cause the print to slow down so much it starts to ooze. The minimal feedrate protects against this. Even if a print gets slown down it will never be slower then this minimal feedrate.')
|
||||
|
||||
configBase.TitleRow(left, "Joris")
|
||||
c = configBase.SettingRow(left, "Joris the outer edge", 'joris', False, '[Joris] is a code name for smoothing out the Z move of the outer edge. This will create a steady Z increase over the whole print. It is intended to be used with a single walled wall thickness to make cups/vases.')
|
||||
|
||||
configBase.TitleRow(right, "Infill")
|
||||
c = configBase.SettingRow(right, "Infill pattern", 'infill_type', ['Line', 'Grid Circular', 'Grid Hexagonal', 'Grid Rectangular'], 'Pattern of the none-solid infill. Line is default, but grids can provide a strong print.')
|
||||
c = configBase.SettingRow(right, "Solid infill top", 'solid_top', True, 'Create a solid top surface, if set to false the top is filled with the fill percentage. Useful for cups/vases.')
|
||||
|
@ -35,9 +41,6 @@ class advancedConfigWindow(configBase.configWindowBase):
|
|||
c = configBase.SettingRow(right, "Support material amount (%)", 'support_rate', '100', 'Amount of material used for support, less material gives a weaker support structure which is easier to remove.')
|
||||
c = configBase.SettingRow(right, "Support distance from object (mm)", 'support_distance', '0.5', 'Distance between the support structure and the object.')
|
||||
|
||||
configBase.TitleRow(left, "Joris")
|
||||
c = configBase.SettingRow(left, "Joris the outer edge", 'joris', False, '[Joris] is a code name for smoothing out the Z move of the outer edge. This will create a steady Z increase over the whole print. It is intended to be used with a single walled wall thickness to make cups/vases.')
|
||||
|
||||
main.Fit()
|
||||
self.Fit()
|
||||
|
||||
|
|
|
@ -161,6 +161,8 @@ class CoolRepository:
|
|||
self.turnFanOnAtBeginning = settings.BooleanSetting().getFromValue('Turn Fan On at Beginning', self, True)
|
||||
self.turnFanOffAtEnding = settings.BooleanSetting().getFromValue('Turn Fan Off at Ending', self, True)
|
||||
self.executeTitle = 'Cool'
|
||||
|
||||
self.minimumFeedRate = settings.FloatSpin().getFromValue(0.0, 'Minimum feed rate (mm/s):', self, 10.0, 5.0)
|
||||
|
||||
def execute(self):
|
||||
'Cool button has been clicked.'
|
||||
|
@ -188,6 +190,7 @@ class CoolSkein:
|
|||
self.oldFlowRateString = None
|
||||
self.oldLocation = None
|
||||
self.oldTemperature = None
|
||||
self.minFeedrate = 0
|
||||
|
||||
def addCoolOrbits(self, remainingOrbitTime):
|
||||
'Add the minimum radius cool orbits.'
|
||||
|
@ -245,7 +248,7 @@ class CoolSkein:
|
|||
def getCoolMove(self, line, location, splitLine):
|
||||
'Get cool line according to time spent on layer.'
|
||||
self.feedRateMinute = gcodec.getFeedRateMinute(self.feedRateMinute, splitLine)
|
||||
return self.distanceFeedRate.getLineWithFeedRate(self.multiplier * self.feedRateMinute, line, splitLine)
|
||||
return self.distanceFeedRate.getLineWithFeedRate(max(self.minFeedrate, self.multiplier * self.feedRateMinute), line, splitLine)
|
||||
|
||||
def getCraftedGcode(self, gcodeText, repository):
|
||||
'Parse gcode text and store the cool gcode.'
|
||||
|
@ -255,6 +258,7 @@ class CoolSkein:
|
|||
self.halfCorner = complex(repository.minimumOrbitalRadius.value, repository.minimumOrbitalRadius.value)
|
||||
self.lines = archive.getTextLines(gcodeText)
|
||||
self.minimumArea = 4.0 * repository.minimumOrbitalRadius.value * repository.minimumOrbitalRadius.value
|
||||
self.minFeedrate = repository.minimumFeedRate.value * 60
|
||||
self.parseInitialization()
|
||||
self.boundingRectangle = gcodec.BoundingRectangle().getFromGcodeLines(self.lines[self.lineIndex :], 0.5 * self.edgeWidth)
|
||||
margin = 0.2 * self.edgeWidth
|
||||
|
|
Loading…
Reference in a new issue