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 script to smooth the surface skin of an object by replacing the perimeter surface with a surface printed at half 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 perimeters are divided horizontally.

#### Vertical Divisions

Default: 2
Defines the number of times the skinned infill and perimeters 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 perimeter not to adhere well to the print surface.

#### Tips

Due to the very small Z-axis moves skinning can generate as it prints the perimeter, 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 two half-height perimeter layers for each layer, printing the perimeter 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 perimeters 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 perimeter loop to the gcode.` addSkinnedInfill(self) `Add skinned infill.` addSkinnedInfillBoundary(self, infillBoundaries, offsetY, upperZ, z) `Add skinned infill boundary.` addSkinnedPerimeter(self) `Add skinned perimeter.` 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)