Add retract on jumps only setting
This commit is contained in:
parent
16c043e469
commit
2aa6b89221
3 changed files with 9 additions and 2 deletions
|
@ -382,6 +382,7 @@ def getProfileInformation():
|
|||
'Retract_Within_Island': DEFSET,
|
||||
'Retraction_Distance_millimeters': storedSettingFloat('retraction_amount'),
|
||||
'Restart_Extra_Distance_millimeters': storedSettingFloat('retraction_extra'),
|
||||
'Only_Retract_On_Jumps': storedSetting("retract_on_jumps_only"),
|
||||
},'alteration': {
|
||||
'Activate_Alteration': storedSetting('add_start_end_gcode'),
|
||||
'Name_of_End_File': "end.gcode",
|
||||
|
|
|
@ -165,6 +165,7 @@ class DimensionRepository:
|
|||
self.retractionDistance = settings.FloatSpin().getFromValue( 0.0, 'Retraction Distance (millimeters):', self, 100.0, 0.0 )
|
||||
self.restartExtraDistance = settings.FloatSpin().getFromValue( 0.0, 'Restart Extra Distance (millimeters):', self, 100.0, 0.0 )
|
||||
self.executeTitle = 'Dimension'
|
||||
self.onlyRetractOnJumps = settings.BooleanSetting().getFromValue('Only Retract On Jumps', self, True )
|
||||
|
||||
def execute(self):
|
||||
'Dimension button has been clicked.'
|
||||
|
@ -192,6 +193,7 @@ class DimensionSkein:
|
|||
self.travelFeedRatePerSecond = None
|
||||
self.zDistanceRatio = 5.0
|
||||
self.addRetraction = False
|
||||
self.onlyRetractOnJumps = True
|
||||
|
||||
def addLinearMoveExtrusionDistanceLine(self, extrusionDistance):
|
||||
'Get the extrusion distance string from the extrusion distance.'
|
||||
|
@ -203,6 +205,7 @@ class DimensionSkein:
|
|||
def getCraftedGcode(self, gcodeText, repository):
|
||||
'Parse gcode text and store the dimension gcode.'
|
||||
self.repository = repository
|
||||
self.onlyRetractOnJumps = repository.onlyRetractOnJumps.value
|
||||
filamentRadius = 0.5 * repository.filamentDiameter.value
|
||||
filamentPackingArea = math.pi * filamentRadius * filamentRadius * repository.filamentPackingDensity.value
|
||||
self.minimumTravelForRetraction = self.repository.minimumTravelForRetraction.value
|
||||
|
@ -380,7 +383,7 @@ class DimensionSkein:
|
|||
self.absoluteDistanceMode = True
|
||||
elif firstWord == 'G91':
|
||||
self.absoluteDistanceMode = False
|
||||
elif firstWord == '(<nextmovehasspacejump>)':
|
||||
elif firstWord == '(<nextmovehasspacejump>)' and self.onlyRetractOnJumps:
|
||||
#Check for the space jump moves for retraction, these tags are added by the comb plugin.
|
||||
self.addLinearMoveExtrusionDistanceLine(-self.repository.retractionDistance.value * self.retractionRatio)
|
||||
self.addRetraction = True
|
||||
|
@ -392,7 +395,7 @@ class DimensionSkein:
|
|||
self.distanceFeedRate.addLine('G92 E0')
|
||||
self.totalExtrusionDistance = 0.0
|
||||
elif firstWord == 'M101':
|
||||
if self.addRetraction:
|
||||
if self.addRetraction or not self.onlyRetractOnJumps:
|
||||
self.addLinearMoveExtrusionDistanceLine(self.restartDistance * self.retractionRatio)
|
||||
self.addRetraction = False
|
||||
if self.totalExtrusionDistance > self.repository.maximumEValueBeforeReset.value:
|
||||
|
@ -402,6 +405,8 @@ class DimensionSkein:
|
|||
self.isExtruderActive = True
|
||||
elif firstWord == 'M103':
|
||||
self.retractionRatio = self.getRetractionRatio(lineIndex)
|
||||
if not self.onlyRetractOnJumps:
|
||||
self.addLinearMoveExtrusionDistanceLine(-self.repository.retractionDistance.value * self.retractionRatio)
|
||||
self.isExtruderActive = False
|
||||
elif firstWord == 'M108':
|
||||
self.flowRate = float( splitLine[1][1 :] )
|
||||
|
|
|
@ -29,6 +29,7 @@ profileDefaultSettings = {
|
|||
'retraction_speed': '40.0',
|
||||
'retraction_amount': '0.0',
|
||||
'retraction_extra': '0.0',
|
||||
'retract_on_jumps_only': 'True',
|
||||
'travel_speed': '150',
|
||||
'max_z_speed': '3.0',
|
||||
'bottom_layer_speed': '20',
|
||||
|
|
Loading…
Reference in a new issue