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

Previous / Next / Contents


Skin is a plugin to smooth the surface skin of an object by replacing the edge surface with a surface printed at a fraction of the carve
height. This gives the impression that the object was carved at a much thinner height giving a high-quality finish, but still prints
in a relatively short time. The latest process has some similarities with a description at:

http://adventuresin3-dprinting.blogspot.com/2011/05/skinning.html

The skin manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Skin


Operation
Settings
  Division
    Horizontal Infill Divisions
    Horizontal Perimeter Divisions
    Vertical Divisions
  Hop When Extruding Infill
  Layers From
Tips
Examples

Operation


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

Settings


Division

Horizontal Infill Divisions

Default: 2

Defines the number of times the skinned infill is divided horizontally.

Horizontal Perimeter Divisions

Default: 1

Defines the number of times the skinned edges are divided horizontally.

Vertical Divisions

Default: 2

Defines the number of times the skinned infill and edges are divided vertically.

Hop When Extruding Infill

Default is off.

When selected, the extruder will hop before and after extruding the lower infill in order to avoid the regular thickness threads.

Layers From

Default: 1

Defines which layer of the print the skinning process starts from. It is not wise to set this to zero, skinning the bottom layer is likely to cause the bottom edge not to adhere well to the print surface.

Tips


Due to the very small Z-axis moves skinning can generate as it prints the edge, it can cause the Z-axis speed to be limited by the Limit plug-in, if you have it enabled. This can cause some printers to pause excessively during each layer change. To overcome this, ensure that the Z-axis max speed in the Limit tool is set to an appropriate value for your printer, e.g. 10mm/s

Since Skin prints a number of fractional-height edge layers for each layer, printing the edge last causes the print head to travel down from the current print height. Depending on the shape of your extruder nozzle, you may get higher quality prints if you print the edges first, so the print head always travels up. This is set via the Thread Sequence Choice setting in the Fill tool.

Examples


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

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

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


Previous / Next / Contents


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

 
Classes
       
SkinRepository
SkinSkein

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

 
class SkinSkein
    A class to skin a skein of extrusions.
 
  Methods defined here:
__init__(self)
Initialize.
addFlowRateLine(self, flowRate)
Add a flow rate line.
addPerimeterLoop(self, thread, z)
Add the edge loop to the gcode.
addSkinnedInfill(self)
Add skinned infill.
addSkinnedInfillBoundary(self, infillBoundaries, offsetY, upperZ, z)
Add skinned infill boundary.
addSkinnedPerimeter(self)
Add skinned edge.
getClippedSimplifiedLoopPathByLoop(self, loop)
Get clipped and simplified loop path from a loop.
getCraftedGcode(self, gcodeText, repository)
Parse gcode text and store the skin gcode.
parseBoundaries(self)
Parse the boundaries and add them to the boundary layers.
parseInitialization(self)
Parse gcode initialization and store the parameters.
parseLine(self, line)
Parse a gcode line and add it to the skin skein.

 
Functions
       
getCraftedText(fileName, gcodeText, repository=None)
Skin a gcode linear move text.
getCraftedTextFromText(gcodeText, repository=None)
Skin a gcode linear move text.
getIsMinimumSides(loops, sides=3)
Determine if all the loops have at least the given number of sides.
getNewRepository()
Get new repository.
main()
Display the skin dialog.
writeOutput(fileName, shouldAnalyze=True)
Skin a gcode linear move file.  Chain skin the gcode if it is not already skinned.

 
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)