# Python: module skeinforge_application.skeinforge_plugins.craft_plugins.clip

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

Previous / Next / Contents

`
The clip plugin clips the loop ends to prevent bumps from forming, and connects loops.
The clip manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Clip
Operation
Settings
Clip Over Perimeter Width
Maximum Connection Distance Over Perimeter Width
Examples
`

## Operation

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

## Settings

### Clip Over Perimeter Width

Default is 0.2.
Defines the ratio of the amount each end of the loop is clipped over the edge width. The total gap will therefore be twice the clip. If the ratio is too high loops will have a gap, if the ratio is too low there will be a bulge at the loop ends.
This setting will affect the output of clip, and the output of the skin. In skin the half width edges will be clipped by according to this setting.

### Maximum Connection Distance Over Perimeter Width

Default is ten.
Defines the ratio of the maximum connection distance between loops over the edge width.
Clip will attempt to connect loops that end close to each other, combining them into a spiral, so that the extruder does not stop and restart. This setting sets the maximum gap size to connect. This feature can reduce the amount of extra material or gaps formed at the loop end.
Setting this to zero disables this feature, preventing the loops from being connected.

## Examples

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

``

ClipRepository
ClipSkein

class ClipRepository
`` | `A class to handle the clip settings.`

Methods defined here:

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

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

class ClipSkein
`` | `A class to clip a skein of extrusions.`

Methods defined here:

__init__(self)

addGcodeFromThreadZ(self, thread, z)
  `Add a gcode thread to the output.`

addSegmentToPixelTables(self, location, oldLocation)
  `Add the segment to the layer and mask table.`

addTailoredLoopPath(self, line)
  `Add a clipped loop path.`

getConnectionIsCloseWithoutOverlap(self, location, path)
  `Determine if the connection is close enough and does not overlap another thread.`

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

getNextThreadIsACloseLoop(self, path)
  `Determine if the next thread is a loop.`

isNextExtruderOn(self)
  `Determine if there is an extruder on command before a move command.`

linearMove(self, splitLine)
  `Add to loop path if this is a loop or path.`

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

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

setLayerPixelTable(self)
  `Set the layer pixel table.`

Functions

``

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

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

getNewRepository()
  `Get new repository.`

main()
  `Display the clip dialog.`

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

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)