# Python: module skeinforge_application.skeinforge_plugins.craft_plugins.comb

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

Previous / Next / Contents

`
Comb is a craft plugin to bend the extruder travel paths around holes in the slices, to avoid stringers.
The comb manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Comb
Operation
Settings
Running Jump Space
Examples
`

## Operation

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

## Settings

### Running Jump Space

Default: 2 mm
Defines the running jump space that is added before going from one island to another. If the running jump space is greater than zero, the departure from the island will also be brought closer to the arrival point on the next island so that the stringer between islands will be shorter. For an extruder with acceleration code, an extra space before leaving the island means that it will be going at high speed as it exits the island, which means the stringer between islands will be thinner.

## Examples

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

Classes

``

BoundarySegment
CombRepository
CombSkein
DistancePoint

class BoundarySegment
`` | `A boundary and segment.`

Methods defined here:

__init__(self, begin)
  `Initialize`

getSegment(self, boundarySegmentIndex, boundarySegments, edgeWidth, runningJumpSpace)
  `Get both paths along the loop from the point closest to the begin to the point closest to the end.`

class CombRepository
`` | `A class to handle the comb settings.`

Methods defined here:

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

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

class CombSkein
`` | `A class to comb a skein of extrusions.`

Methods defined here:

__init__(self)
  `Initialize`

addGcodePathZ(self, feedRateMinute, path, z)
  `Add a gcode path, without modifying the extruder, to the output.`

addIfTravel(self, splitLine)
  `Add travel move around loops if the extruder is off.`

addToLoop(self, location)
  `Add a location to loop.`

getAroundBetweenLineSegment(self, begin, boundaries, end)
  `Get the path around the loops in the way of the original line segment.`

getAroundBetweenPath(self, begin, end)
  `Get the path around the loops in the way of the original line segment.`

getBoundaries(self)
  `Get boundaries for the layer.`

getBoundaryIndexes(self, begin, boundaries, end, points)
  `Get boundary indexes and set the points in the way of the original line segment.`

getBoundarySegments(self, begin, boundaries, end)
  `Get the path broken into boundary segments whenever a different boundary is crossed.`

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

getInsidePointsAlong(self, begin, end, points)
  `Get the points along the segment if it is required to keep the path inside the widdershin boundaries.`

getPathBetween(self, loop, points)
  `Add a path between the edge and the fill.`

getWiddershins(self)
  `Get widdershins for the layer.`

parseBoundariesLayers(self, line)
  `Parse a gcode line.`

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

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

class DistancePoint
`` | `A class to get the distance of the point along a segment inside a loop.`

Methods defined here:

__init__(self, begin, loop, runningJumpSpace, segment)
  `Initialize`

Functions

``

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

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

getJumpPoint(begin, end, loop, runningJumpSpace)
  `Get running jump point inside loop.`

getJumpPointIfInside(boundary, otherPoint, edgeWidth, runningJumpSpace)
  `Get the jump point if it is inside the boundary, otherwise return None.`

getNewRepository()
  `Get new repository.`

getPathsByIntersectedLoop(begin, end, loop)
  `Get both paths along the loop from the point closest to the begin to the point closest to the end.`

main()
  `Display the comb dialog.`

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