# Python: module skeinforge_application.skeinforge_plugins.craft_plugins.skirt

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

Previous / Next / Contents

`
Skirt is a script to give the extruder some extra time to begin extruding properly before beginning the object, and to put a baffle around the model in order to keep the extrusion warm.
It is loosely based on Lenbook's outline plugin:
http://www.thingiverse.com/thing:4918
it is also loosely based on the outline that Nophead sometimes uses:
http://hydraraptor.blogspot.com/2010/01/hot-metal-and-serendipity.html
and also loosely based on the baffles that Nophead made to keep corners warm:
http://hydraraptor.blogspot.com/2010/09/some-corners-like-it-hot.html
If you want only an outline, set 'Layers To' to one. This gives the extruder some extra time to begin extruding properly before beginning your object, and gives you an early verification of where your object will be extruded.
If you also want an insulating skirt around the entire object, set 'Layers To' to a huge number, like 9876554321. This will additionally make an insulating baffle around the object; to prevent moving air from cooling the object, which increases warping, especially in corners.
Operation
Settings
Gap over Perimeter Width
Layers To
Examples
`

## Operation

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

## Settings

### Gap over Perimeter Width

Default is one.
Defines the ratio of the gap between the object and the skirt over the perimeter width. If the ratio is too low, the skirt will connect to the object, if the ratio is too high, the skirt willl not provide much insulation for the object.

#### Layers To

Default is a one.
Defines the number of layers of the skirt. If you want only an outline, set 'Layers To' to one. If you want an insulating skirt around the entire object, set 'Layers To' to a huge number, like 9876554321.

## Examples

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

Previous / Next / Contents

Modules

``

__init__
fabmetheus_utilities.archive
fabmetheus_utilities.euclidean
fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret

fabmetheus_utilities.gcodec
fabmetheus_utilities.intercircle
math
fabmetheus_utilities.settings

skeinforge_application.skeinforge_utilities.skeinforge_craft
skeinforge_application.skeinforge_utilities.skeinforge_polyfile
skeinforge_application.skeinforge_utilities.skeinforge_profile
sys

fabmetheus_utilities.geometry.solids.triangle_mesh

Classes

``

LoopCrossDictionary
SkirtRepository
SkirtSkein

class LoopCrossDictionary
`` | `Loop with a horizontal and vertical dictionary.`

Methods defined here:

__init__(self)
  `Initialize LoopCrossDictionary.`

__repr__(self)
  `Get the string representation of this LoopCrossDictionary.`

class SkirtRepository
`` | `A class to handle the skirt settings.`

Methods defined here:

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

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

class SkirtSkein
`` | `A class to skirt a skein of extrusions.`

Methods defined here:

__init__(self)
  `Initialize variables.`

addFlowRateLineIfDifferent(self, flowRate)
  `Add a line of temperature if different.`

addSkirt(self, z)
  `At skirt at z to gcode output.`

addTemperatureLineIfDifferent(self, temperature)
  `Add a line of temperature if different.`

createSegmentDictionaries(self, loopCrossDictionary)
  `Create horizontal and vertical segment dictionaries.`

createSkirtLoops(self)
  `Create the skirt loops.`

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

getHorizontalXIntersectionsTable(self, loop)
  `Get the horizontal x intersections table from the loop.`

parseBoundaries(self)
  `Parse the boundaries and union them.`

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

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

setSkirtFeedFlowTemperature(self)
  `Set the skirt feed rate, flow rate and temperature to that of the next extrusion.`

unifyLayer(self, loopCrossDictionary)
  `Union the loopCrossDictionary with the unifiedLoop.`

Functions

``

getCraftedText(fileName, text='', repository=None)
  `Skirt the fill file or text.`

getCraftedTextFromText(gcodeText, repository=None)
  `Skirt the fill text.`

getNewRepository()
  `Get new repository.`

getOuterLoops(loops)
  `Get widdershins outer loops.`

main()
  `Display the skirt dialog.`

writeOutput(fileName, shouldAnalyze=True)
  `Skirt 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)