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

Previous / Next / Contents


This plugin smooths jagged extruder paths. It takes shortcuts through jagged paths and decreases the feed rate to compensate.

Smooth is based on ideas in Nophead's frequency limit post:

http://hydraraptor.blogspot.com/2010/12/frequency-limit.html

The smooth manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Smooth


Operation
Settings
  Layers From
  Maximum Shortening over Width
Examples

Operation


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

Settings


Layers From

Default: 1

Defines which layer of the print the smoothing process starts from. If this is set this to zero, that might cause the smoothed parts of the bottom edge not to adhere well to the print surface. However, this is just a potential problem in theory, no bottom adhesion problem has been reported.

Maximum Shortening over Width

Default: 1.2

Defines the maximum shortening of the shortcut compared to the original path. Smooth goes over the path and if the shortcut between the midpoint of one line and the midpoint of the second line after is not too short compared to the original and the shortcut is not too long, it replaces the jagged original with the shortcut. If the maximum shortening is too much, smooth will shorten paths which should not of been shortened and will leave blobs and holes in the model. If the maximum shortening is too little, even jagged paths that could be shortened safely won't be smoothed.

Examples


The following examples smooth the file Screw Holder Bottom.stl. The examples are run in a terminal in the folder which contains Screw Holder Bottom.stl and smooth.py.

> python smooth.py
This brings up the smooth dialog.

> python smooth.py Screw Holder Bottom.stl
The smooth tool is parsing the file:
Screw Holder Bottom.stl
..
The smooth tool has created the file:
.. Screw Holder Bottom_smooth.gcode


Previous / Next / Contents


 
Modules
       
__init__
fabmetheus_utilities.archive
fabmetheus_utilities.euclidean
fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret
fabmetheus_utilities.gcodec
fabmetheus_utilities.settings
skeinforge_application.skeinforge_utilities.skeinforge_craft
skeinforge_application.skeinforge_utilities.skeinforge_polyfile
skeinforge_application.skeinforge_utilities.skeinforge_profile
sys

 
Classes
       
SmoothRepository
SmoothSkein

 
class SmoothRepository
    A class to handle the smooth settings.
 
  Methods defined here:
__init__(self)
Set the default settings, execute title & settings fileName.
execute(self)
Smooth button has been clicked.

 
class SmoothSkein
    A class to smooth a skein of extrusions.
 
  Methods defined here:
__init__(self)
Initialize.
addSmoothedInfill(self)
Add smoothed infill.
getCraftedGcode(self, gcodeText, repository)
Parse gcode text and store the smooth gcode.
getIsParallelToRotation(self, segment)
Determine if the segment is parallel to the rotation.
parseInitialization(self)
Parse gcode initialization and store the parameters.
parseLine(self, line)
Parse a gcode line and add it to the smooth skein.

 
Functions
       
getCraftedText(fileName, gcodeText, repository=None)
Smooth a gcode linear move text.
getCraftedTextFromText(gcodeText, repository=None)
Smooth a gcode linear move text.
getNewRepository()
Get new repository.
main()
Display the smooth dialog.
writeOutput(fileName, shouldAnalyze=True)
Smooth a gcode linear move file.  Chain smooth the gcode if it is not already smoothed.

 
Data
        __author__ = 'Enrique Perez (perez_enrique aht yahoo.com) & James Blackwell (jim_blag ahht hotmail.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 aht yahoo.com) & James Blackwell (jim_blag ahht hotmail.com)