# Python: module skeinforge_application.skeinforge_plugins.craft_plugins.oozebane

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

Previous / Next / Contents

`
Oozebane is a script to turn off the extruder before the end of a thread and turn it on before the beginning.
The oozebane manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Oozebane
After oozebane turns the extruder on, it slows the feed rate down where the thread starts. Then it speeds it up in steps so in theory the thread will remain at roughly the same thickness from the beginning.
Operation
Settings
After Startup Distance
Early Shutdown Distance
Early Startup Maximum Distance
Early Startup Distance Constant
First Early Startup Distance
Minimum Distance for Early Shutdown
Minimum Distance for Early Startup
Slowdown Startup Steps
Examples
`

## Operation

The default 'Activate Oozebane' checkbox is on. When it is on, the functions described below will work, when it is off, the functions will not be called.

## Settings

### After Startup Distance

Default is 1.2.
When oozebane reaches the point where the extruder would of turned on, it slows down so that the thread will be thick at that point. Afterwards it speeds the extruder back up to operating speed. The speed up distance is the "After Startup Distance".

### Early Shutdown Distance

Default is 1.2.
Defines the distance before the end of the thread that the extruder will be turned off. It is the most important oozebane setting. A higher distance means the extruder will turn off sooner and the end of the line will be thinner.

### Early Startup Maximum Distance

Default is 1.2.
Defines the maximum distance before the thread starts that the extruder will be turned on

### Early Startup Distance Constant

Default is twenty.
The longer the extruder has been off, the earlier the extruder will turn back on, the ratio is one minus one over e to the power of the distance the extruder has been off over the "Early Startup Distance Constant".

### First Early Startup Distance

Default is twenty five.
Defines the distance before the first thread starts that the extruder will be turned off. This value should be high because, according to Marius, the extruder takes a second or two to extrude when starting for the first time.

### Minimum Distance for Early Shutdown

Default is zero.
Defines the minimum distance that the extruder has to be off after the thread end for the early shutdown feature to activate.

### Minimum Distance for Early Startup

Default is zero.
Defines the minimum distance that the extruder has to be off before the thread begins for the early start up feature to activate.

### Slowdown Startup Steps

Default is three.
When oozebane turns the extruder off, it slows the feed rate down in steps so in theory the thread will remain at roughly the same thickness until the end. The "Slowdown Startup Steps" setting is the number of steps, the more steps the smaller the size of the step that the feed rate will be decreased and the larger the size of the resulting gcode file.

## Examples

The following examples oozebane the file Screw Holder Bottom.stl. The examples are run in a terminal in the folder which contains Screw Holder Bottom.stl and oozebane.py.
> python oozebane.py
This brings up the oozebane dialog.
> python oozebane.py Screw Holder Bottom.stl
The oozebane tool is parsing the file:
Screw Holder Bottom.stl
..
The oozebane tool has created the file:
.. Screw Holder Bottom_oozebane.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

``

OozebaneRepository
OozebaneSkein

class OozebaneRepository
`` | `A class to handle the oozebane settings.`

Methods defined here:

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

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

class OozebaneSkein
`` | `A class to oozebane a skein of extrusions.`

Methods defined here:

__init__(self)

addAfterStartupLine(self, splitLine)
  `Add the after startup lines.`

addLineSetShutdowns(self, line)
  `Add a line and set the shutdown variables.`

getActiveFeedRateRatio(self)
  `Get the feed rate of the first active move over the operating feed rate.`

getAddAfterStartupLines(self, line)
  `Get and / or add after the startup lines.`

getAddBeforeStartupLines(self, line)
  `Get and / or add before the startup lines.`

getAddShutSlowDownLine(self, line)
  `Add the shutdown and slowdown lines.`

getAddShutSlowDownLines(self, line)
  `Get and / or add the shutdown and slowdown lines.`

getCraftedGcode(self, gcodeText, oozebaneRepository)
  `Parse gcode text and store the oozebane gcode.`

getDistanceAfterThreadBeginning(self)
  `Get the distance after the beginning of the thread.`

getDistanceToExtruderOffCommand(self, remainingDistance)
  `Get the distance to the word.`

getDistanceToThreadBeginning(self)
  `Get the distance to the beginning of the thread.`

getDistanceToThreadBeginningAfterThreadEnd(self, remainingDistance)
  `Get the distance to the thread beginning after the end of this thread.`

getDistanceToThreadEnd(self)
  `Get the distance to the end of the thread.`

getLinearMoveWithFeedRate(self, feedRate, location)
  `Get a linear move line with the feed rate.`

getLinearMoveWithFeedRateSplitLine(self, feedRate, splitLine)
  `Get a linear move line with the feed rate and split line.`

getOozebaneLine(self, line)
  `Get oozebaned gcode line.`

getShutdownFlowRateMultiplier(self, along, numberOfDistances)
  `Get the shut down flow rate multipler.`

getStartupFlowRateMultiplier(self, along, numberOfDistances)
  `Get the startup flow rate multipler.`

isClose(self, location, otherLocation)
  `Determine if the location is close to the other location.`

isCloseToEither(self, location, otherLocationFirst, otherLocationSecond)
  `Determine if the location is close to the other locations.`

isDistanceAfterThreadBeginningGreater(self)
  `Determine if the distance after the thread beginning is greater than the step index after startup distance.`

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

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

setAfterStartupFlowRates(self, afterStartupRatio)
  `Set the after startup flow rates.`

setEarlyShutdown(self)
  `Set the early shutdown variables.`

setEarlyShutdownFlowRates(self, earlyShutdownRatio)
  `Set the extrusion width.`

setEarlyStartupDistance(self, splitLine)
  `Set the early startup distance.`

setExtrusionWidth(self, oozebaneRepository)
  `Set the extrusion width.`

Functions

``

getCraftedText(fileName, text, oozebaneRepository=None)
  `Oozebane a gcode linear move file or text.`

getCraftedTextFromText(gcodeText, oozebaneRepository=None)
  `Oozebane a gcode linear move text.`

getNewRepository()
  `Get new repository.`

main()
  `Display the oozebane dialog.`

writeOutput(fileName, shouldAnalyze=True)
  `Oozebane a gcode linear move file.`

Data
`` |  | __author__ = 'Enrique Perez (perez_enrique@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@yahoo.com)