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)