# Python: module skeinforge_application.skeinforge_plugins.craft_plugins.fillet

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

Previous / Next / Contents

`
Fillet rounds the corners slightly in a variety of ways. This is to reduce corner blobbing and sudden extruder acceleration.
The fillet manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Fillet
Operation
Settings
Fillet Procedure Choice
Arc Point
Arc Radius
Arc Segment
Bevel
Corner Feed Rate Multiplier
Fillet Radius over Perimeter Width
Reversal Slowdown over Perimeter Width
Use Intermediate Feed Rate in Corners
Examples
`

## Operation

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

## Settings

### Fillet Procedure Choice

Default is 'Bevel''.

#### Arc Point

When selected, the corners will be filleted with an arc using the gcode point form.

#### Arc Radius

When selected, the corners will be filleted with an arc using the gcode radius form.

#### Arc Segment

When selected, the corners will be filleted with an arc composed of several segments.

#### Bevel

When selected, the corners will be beveled.

### Corner Feed Rate Multiplier

Default: 1.0
Defines the ratio of the feed rate in corners over the original feed rate. With a high value the extruder will move quickly in corners, accelerating quickly and leaving a thin extrusion. With a low value, the extruder will move slowly in corners, accelerating gently and leaving a thick extrusion.

### Fillet Radius over Perimeter Width

Default is 0.35.
Defines the width of the fillet.

### Reversal Slowdown over Perimeter Width

Default is 0.5.
Defines how far before a path reversal the extruder will slow down. Some tools, like nozzle wipe, double back the path of the extruder and this option will add a slowdown point in that path so there won't be a sudden jerk at the end of the path. If the value is less than 0.1 a slowdown will not be added.

### Use Intermediate Feed Rate in Corners

Default is on.
When selected, the feed rate entering the corner will be the average of the old feed rate and the new feed rate.

## Examples

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

``

BevelSkein
  ArcSegmentSkein
    ArcPointSkein
      ArcRadiusSkein
FilletRepository

class ArcPointSkein(ArcSegmentSkein)
`` | `A class to arc point a skein of extrusions.`

Method resolution order:
  ArcPointSkein
  ArcSegmentSkein
  BevelSkein

Methods defined here:

addArc(self, afterCenterDifferenceAngle, afterPoint, beforeCenterSegment, beforePoint, center)
  `Add an arc point to the filleted skein.`

getRelativeCenter(self, centerMinusBeforeComplex)
  `Get the relative center.`

Methods inherited from ArcSegmentSkein:

splitPointGetAfter(self, location, nextLocation)
  `Fillet a point into arc segments and return the end of the last segment.`

Methods inherited from BevelSkein:

__init__(self)

addLinearMovePoint(self, feedRateMinute, point)
  `Add a gcode linear move, feedRate and newline to the output.`

getCornerFeedRate(self)
  `Get the corner feed rate, which may be based on the intermediate feed rate.`

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

getExtruderOffReversalPoint(self, afterSegment, afterSegmentComplex, beforeSegment, beforeSegmentComplex, location)
  `If the extruder is off and the path is reversing, add intermediate slow points.`

getNextLocation(self)
  `Get the next linear move. Return none is none is found.`

linearMove(self, splitLine)
  `Bevel a linear move.`

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

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

class ArcRadiusSkein(ArcPointSkein)
`` | `A class to arc radius a skein of extrusions.`

Method resolution order:
  ArcRadiusSkein
  ArcPointSkein
  ArcSegmentSkein
  BevelSkein

Methods defined here:

getRelativeCenter(self, centerMinusBeforeComplex)
  `Get the relative center.`

Methods inherited from ArcPointSkein:

addArc(self, afterCenterDifferenceAngle, afterPoint, beforeCenterSegment, beforePoint, center)
  `Add an arc point to the filleted skein.`

Methods inherited from ArcSegmentSkein:

splitPointGetAfter(self, location, nextLocation)
  `Fillet a point into arc segments and return the end of the last segment.`

Methods inherited from BevelSkein:

__init__(self)

addLinearMovePoint(self, feedRateMinute, point)
  `Add a gcode linear move, feedRate and newline to the output.`

getCornerFeedRate(self)
  `Get the corner feed rate, which may be based on the intermediate feed rate.`

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

getExtruderOffReversalPoint(self, afterSegment, afterSegmentComplex, beforeSegment, beforeSegmentComplex, location)
  `If the extruder is off and the path is reversing, add intermediate slow points.`

getNextLocation(self)
  `Get the next linear move. Return none is none is found.`

linearMove(self, splitLine)
  `Bevel a linear move.`

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

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

class ArcSegmentSkein(BevelSkein)
`` | `A class to arc segment a skein of extrusions.`

Methods defined here:

addArc(self, afterCenterDifferenceAngle, afterPoint, beforeCenterSegment, beforePoint, center)
  `Add arc segments to the filleted skein.`

splitPointGetAfter(self, location, nextLocation)
  `Fillet a point into arc segments and return the end of the last segment.`

Methods inherited from BevelSkein:

__init__(self)

addLinearMovePoint(self, feedRateMinute, point)
  `Add a gcode linear move, feedRate and newline to the output.`

getCornerFeedRate(self)
  `Get the corner feed rate, which may be based on the intermediate feed rate.`

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

getExtruderOffReversalPoint(self, afterSegment, afterSegmentComplex, beforeSegment, beforeSegmentComplex, location)
  `If the extruder is off and the path is reversing, add intermediate slow points.`

getNextLocation(self)
  `Get the next linear move. Return none is none is found.`

linearMove(self, splitLine)
  `Bevel a linear move.`

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

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

class BevelSkein
`` | `A class to bevel a skein of extrusions.`

Methods defined here:

__init__(self)

addLinearMovePoint(self, feedRateMinute, point)
  `Add a gcode linear move, feedRate and newline to the output.`

getCornerFeedRate(self)
  `Get the corner feed rate, which may be based on the intermediate feed rate.`

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

getExtruderOffReversalPoint(self, afterSegment, afterSegmentComplex, beforeSegment, beforeSegmentComplex, location)
  `If the extruder is off and the path is reversing, add intermediate slow points.`

getNextLocation(self)
  `Get the next linear move. Return none is none is found.`

linearMove(self, splitLine)
  `Bevel a linear move.`

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

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

splitPointGetAfter(self, location, nextLocation)
  `Bevel a point and return the end of the bevel. should get complex for radius`

class FilletRepository
`` | `A class to handle the fillet settings.`

Methods defined here:

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

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

Functions

``

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

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

getNewRepository()
  `Get new repository.`

main()
  `Display the fillet dialog.`

writeOutput(fileName, shouldAnalyze=True)
  `Fillet a gcode linear move file. Depending on the settings, either arcPoint, arcRadius, arcSegment, bevel or do nothing.`

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)