Python: module skeinforge_application.skeinforge_plugins.craft_plugins.dwindle

skeinforge_application.skeinforge_plugins.craft_plugins.dwindle ($Date: 2008/21/04 $) | index /home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/skeinforge_application/skeinforge_plugins/craft_plugins/dwindle.py

Previous / Next / Contents

`
Dwindle is a plugin to reduce the feed rate and flow rate at the end of the thread, in order to reduce the ooze when traveling. It reduces the flow rate by a bit more than the feed rate, in order to use up the pent up plastic in the thread so that there is less remaining in the ooze.
The dwindle manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Dwindle
Operation
Settings
End Rate Multiplier
Pent Up Volume
Slowdown Steps
Slowdown Volume
Examples
`

## Operation

The default 'Activate Dwindle' checkbox is off. When it is on, the functions described below will work, when it is off, nothing will be done.

## Settings

### End Rate Multiplier

Default: 0.5
Defines the ratio of the feed and flow rate at the end over the feed and flow rate of the rest of the thread. With reasonable values for the 'Pent Up Volume' and 'Slowdown Volume', the amount of ooze should be roughly proportional to the square of the 'End Rate Multiplier'. If the 'End Rate Multiplier' is too low, the printing will be very slow because the feed rate will be lower. If the 'End Rate Multiplier' is too high, there will still be a lot of ooze.

### Pent Up Volume

Default: 0.4 mm3
When the filament is stopped, there is a pent up volume of plastic that comes out afterwards. For best results, the 'Pent Up Volume' in dwindle should be set to that amount. If the 'Pent Up Volume' is too small, there will still be a lot of ooze. If the 'Pent Up Volume' is too large, the end of the thread will be thinner than the rest of the thread.

### Slowdown Steps

Default: 3
Dwindle reduces the feed rate and flow rate in steps so the thread will remain at roughly the same thickness until the end. The "Slowdown Steps" setting is the number of steps, the more steps the smaller the variation in the thread thickness, but the larger the size of the resulting gcode file and the more time spent pausing between segments.

### Slowdown Volume

Default: 5 mm3
The 'Slowdown Volume' is the volume of the end of the thread where the feed and flow rates will be decreased. If the 'Slowdown Volume' is too small, there won't be enough time to get rid of the pent up plastic, so there will still be a lot of ooze. If the 'Slowdown Volume' is too large, a bit of time will be wasted because for a large portion of the thread, the feed rate will be slow. Overall, it is best to err on being too large, because too large would only waste machine time in production, rather than the more important string removal labor time.

## Examples

The following examples dwindle the file Screw Holder Bottom.stl. The examples are run in a terminal in the folder which contains Screw Holder Bottom.stl and dwindle.py.
> python dwindle.py
This brings up the dwindle dialog.
> python dwindle.py Screw Holder Bottom.stl
The dwindle tool is parsing the file:
Screw Holder Bottom.stl
..
The dwindle tool has created the file:
.. Screw Holder Bottom_dwindle.gcode

Previous / Next / Contents

Modules

``

__init__ fabmetheus_utilities.archive fabmetheus_utilities.euclidean | fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret fabmetheus_utilities.gcodec math | fabmetheus_utilities.settings skeinforge_application.skeinforge_utilities.skeinforge_craft skeinforge_application.skeinforge_utilities.skeinforge_polyfile | skeinforge_application.skeinforge_utilities.skeinforge_profile sys

Classes

``

DwindleRepository
DwindleSkein
ThreadSection

class DwindleRepository
`` | `A class to handle the dwindle settings. `

Methods defined here:

__init__(self)
  `Set the default settings, execute title & settings fileName.`

execute(self)
  `Dwindle button has been clicked.`

class DwindleSkein
`` | `A class to dwindle a skein of extrusions. `

Methods defined here:

__init__(self)
  `Initialize.`

addThread(self)
  `Add the thread sections to the gcode.`

getCraftedGcode(self, gcodeText, repository)
  `Parse gcode text and store the dwindle gcode.`

parseInitialization(self)
  `Parse gcode initialization and store the parameters.`

parseLine(self, line)
  `Parse a gcode line and add it to the dwindle skein.`

class ThreadSection
`` | `A class to handle a volumetric section of a thread. `

Methods defined here:

__init__(self, feedRateMinute, flowRate, location, oldLocation)
  `Initialize.`

addGcodeMovementByRate(self, distanceFeedRate, endRateMultiplier, location, rateMultiplier, slowdownFlowRateMultiplier)
  `Add gcode movement by rate multiplier.`

addGcodeThreadSection(self, distanceFeedRate, endRateMultiplier, halfOverSteps, oneOverSteps, slowdownFlowRateMultiplier)
  `Add gcode thread section.`

getDwindlePortion(self, area, dwindlePortion, operatingFeedRateMinute, operatingFlowRate, slowdownVolume)
  `Get cumulative dwindle portion.`

getLocation(self, along)
  `Get location along way.`

Functions

``

getCraftedText(fileName, gcodeText, repository=None)
  `Dwindle a gcode linear move text.`

getCraftedTextFromText(gcodeText, repository=None)
  `Dwindle a gcode linear move text.`

getNewRepository()
  `Get new repository.`

main()
  `Display the dwindle dialog.`

writeOutput(fileName, shouldAnalyze=True)
  `Dwindle a gcode linear move file. Chain dwindle the gcode if it is not already dwindle.`

Data
`` |  | __author__ = 'Enrique Perez (perez_enrique aht yahoo.com)' __date__ = '$Date: 2008/21/04 $' __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html' absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)

Author
`` |  | Enrique Perez (perez_enrique aht yahoo.com)