skeinforge_tools.craft_plugins.raft ($Date: 2008/21/04 $)
index
/home/enrique/Desktop/backup/babbleold/script/reprap/pyRepRap/skeinforge_tools/craft_plugins/raft.py

Previous / Next / Contents


Raft is a script to create a raft, elevate the nozzle and set the temperature.

The raft manual page is at:
http://www.bitsfrombytes.com/wiki/index.php?title=Skeinforge_Raft

Allan Ecker aka The Masked Retriever's has written two quicktips for raft which follow below.
"Skeinforge Quicktip: The Raft, Part 1" at:
http://blog.thingiverse.com/2009/07/14/skeinforge-quicktip-the-raft-part-1/
"Skeinforge Quicktip: The Raft, Part II" at:
http://blog.thingiverse.com/2009/08/04/skeinforge-quicktip-the-raft-part-ii/

Pictures of rafting in action are available from the Metalab blog at:
http://reprap.soup.io/?search=rafting

Raft is based on the Nophead's reusable raft, which has a base layer running one way, and a couple of perpendicular layers above. Each set of layers can be set to a different temperature. There is the option of having the extruder orbit the raft for a while, so the heater barrel has time to reach a different temperature, without ooze accumulating around the nozzle.

The important values for the raft settings are the temperatures of the raft, the first layer and the next layers. These will be different for each material. The default settings for ABS, HDPE, PCL & PLA are extrapolated from Nophead's experiments.


Operation
Settings
  Add Raft, Elevate Nozzle, Orbit and Set Altitude
  Base
    Base Feed Rate Multiplier
    Base Flow Rate Multiplier
    Base Infill Density
    Base Layer Height over Layer Thickness
    Base Layers
    Base Nozzle Lift over Base Layer Thickness
  Bottom Altitude
  Infill Overhang over Extrusion Width
  Interface
    Interface Feed Rate Multiplier
    Interface Flow Rate Multiplier
    Interface Infill Density
    Interface Layer Thickness over Extrusion Height
    Interface Layers
    Interface Nozzle Lift over Interface Layer Thickness
  Object First Layer Feed Rate Infill Multiplier
  Object First Layer Feed Rate Perimeter Multiplier
    Object First Layer Flow Rate Multiplier
  Operating Nozzle Lift over Layer Thickness
  Raft Size
    Raft Margin
    Raft Additional Margin over Length
  Support
    Support Cross Hatch
    Support Flow Rate over Operating Flow Rate
    Support Gap over Perimeter Extrusion Width
    Support Material Choice
      Empty Layers Only
      Everywhere
      Exterior Only
      None
    Support Minimum Angle
Alterations
  support_start.gcode
  support_end.gcode
Examples

Operation


The default 'Activate Raft' checkbox is on. When it is on, the functions described below will work, when it is off, the functions will not be called. The raft script sets the temperature.

Settings


Add Raft, Elevate Nozzle, Orbit and Set Altitude

When selected, the script will also create a raft, elevate the nozzle, orbit and set the altitude of the bottom of the raft.

Base

Base Feed Rate Multiplier

Default is one.

Defines the base feed rate multiplier. The greater the 'Base Feed Rate Multiplier', the thinner the base, the lower the 'Base Feed Rate Multiplier', the thicker the base.

Base Flow Rate Multiplier

Default is one.

Defines the base flow rate multiplier. The greater the 'Base Flow Rate Multiplier', the thicker the base, the lower the 'Base Flow Rate Multiplier', the thinner the base.

Base Infill Density

Default is 0.5.

Defines the infill density ratio of the base of the raft.

Base Layer Height over Layer Thickness

Default is two.

Defines the ratio of the height & width of the base layer compared to the height and width of the object infill. The feed rate will be slower for raft layers which have thicker extrusions than the object infill.

Base Layers

Default is one.

Defines the number of base layers.

Base Nozzle Lift over Base Layer Thickness

Default is 0.4.

Defines the amount the nozzle is above the center of the base extrusion divided by the base layer thickness.

Bottom Altitude

Default is zero.

Defines the altitude of the bottom of the raft.

Infill Overhang over Extrusion Width

Default is 0.05.

Defines the ratio of the infill overhang over the the extrusion width of the raft.

Interface

Interface Feed Rate Multiplier

Default is one.

Defines the interface feed rate multiplier. The greater the 'Interface Feed Rate Multiplier', the thinner the interface, the lower the 'Interface Feed Rate Multiplier', the thicker the interface.

Interface Flow Rate Multiplier

Default is one.

Defines the interface flow rate multiplier. The greater the 'Interface Flow Rate Multiplier', the thicker the interface, the lower the 'Interface Flow Rate Multiplier', the thinner the interface.

Interface Infill Density

Default is 0.5.

Defines the infill density ratio of the interface of the raft.

Interface Layer Thickness over Extrusion Height

Default is one.

Defines the ratio of the height & width of the interface layer compared to the height and width of the object infill. The feed rate will be slower for raft layers which have thicker extrusions than the object infill.

Interface Layers

Default is two.

Defines the number of interface layers.

Interface Nozzle Lift over Interface Layer Thickness

Default is 0.45.

Defines the amount the nozzle is above the center of the interface extrusion divided by the interface layer thickness.

Object First Layer Feed Rate Infill Multiplier

Default is one.

Defines the object first layer infill feed rate multiplier. The greater the 'Object First Layer Feed Rate Infill Multiplier, the thinner the infill, the lower the 'Object First Layer Feed Rate Infill Multiplier', the thicker the infill.

Object First Layer Feed Rate Perimeter Multiplier

Default is one.

Defines the object first layer perimeter feed rate multiplier. The greater the 'Object First Layer Feed Rate Perimeter Multiplier, the thinner the perimeter, the lower the 'Object First Layer Feed Rate Perimeter Multiplier', the thicker the perimeter.

Object First Layer Flow Rate Multiplier

Default is one.

Defines the object first layer flow rate multiplier. The greater the 'Object First Layer Flow Rate Multiplier', the thicker the first layer, the lower the 'Object First Layer Flow Rate Multiplier, the thinner the first layer.

Operating Nozzle Lift over Layer Thickness

Default is 0.5.

Defines the amount the nozzle is above the center of the operating extrusion divided by the layer thickness.

Raft Size

The raft fills a rectangle whose base size is the rectangle around the bottom layer of the object expanded on each side by the 'Raft Margin' plus the 'Raft Additional Margin over Length (%)' percentage times the length of the side.

Raft Margin

Default is three millimeters.

Raft Additional Margin over Length

Default is 1 percent.

Support

Support Cross Hatch

Default is off.

When selected, the support material will cross hatched.

Support Flow Rate over Operating Flow Rate

Default is 0.9.

Defines the ratio of the flow rate when the support is extruded over the operating flow rate. With a number less than one, the support flow rate will be smaller so the support will be thinner and easier to remove.

Support Gap over Perimeter Extrusion Width

Default is 0.5.

Defines the gap between the support material and the object over the perimeter extrusion width.

Support Material Choice

Default is 'None' because the raft takes time to generate.

Empty Layers Only
When selected, support material will be only on the empty layers. This is useful when making identical objects in a stack.

Everywhere
When selected, support material will be added wherever there are overhangs, even inside the object. Because support material inside objects is hard or impossible to remove, this option should only be chosen if the object has a cavity that needs support and there is some way to extract the support material.

Exterior Only
When selected, support material will be added only the exterior of the object. This is the best option for most objects which require support material.

None
When selected, raft will not add support material.

Support Minimum Angle

Default is sixty degrees.

Defines the minimum angle that a surface overhangs before support material is added.

Alterations


If support material is generated, raft looks for alteration files in the alterations folder in the .skeinforge folder in the home directory. Raft does not care if the text file names are capitalized, but some file systems do not handle file name cases properly, so to be on the safe side you should give them lower case names. If it doesn't find the file it then looks in the alterations folder in the skeinforge_tools folder. If it doesn't find anything there it looks in the craft_plugins folder.

support_start.gcode

If support material is generated, raft will add support_start.gcode, if it exists, to the start of the support gcode.

support_end.gcode

If support material is generated, raft will add support_end.gcode, if it exists, to the end of the support gcode.

Examples


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


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


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


> python
Python 2.5.1 (r251:54863, Sep 22 2007, 01:43:31)
[GCC 4.2.1 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import raft
>>> raft.main()
This brings up the raft dialog.


>>> raft.writeOutput( 'Screw Holder Bottom.stl' )
Screw Holder Bottom.stl
The raft tool is parsing the file:
Screw Holder Bottom.stl
..
The raft tool has created the file:
Screw Holder Bottom_raft.gcode


Previous / Next / Contents


 
Modules
       
__init__
skeinforge_tools.skeinforge_utilities.consecution
skeinforge_tools.skeinforge_utilities.euclidean
skeinforge_tools.skeinforge_utilities.gcodec
skeinforge_tools.skeinforge_utilities.intercircle
skeinforge_tools.skeinforge_utilities.interpret
math
os
skeinforge_tools.meta_plugins.polyfile
skeinforge_tools.profile
skeinforge_tools.skeinforge_utilities.settings
sys

 
Classes
       
RaftRepository
RaftSkein
SupportLayer

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

 
class RaftSkein
    A class to raft a skein of extrusions.
 
  Methods defined here:
__init__(self)
addBaseLayer(self)
Add a base layer.
addBaseSegments(self, baseExtrusionWidth, baseStep)
Add the base segments.
addEmptyLayerSupport(self, boundaryLayerIndex)
Add support material to a layer if it is empty.
addFlowRateLineIfDifferent(self, flowRateOutputString)
Add a line of flow rate if different.
addFlowRateValueIfDifferent(self, flowRate)
Add a flow rate value if different.
addInterfaceLayer(self)
Add an interface layer.
addInterfaceTables(self, baseStep, interfaceExtrusionWidth)
Add a interface tables.
addLayerFromSegments(self, feedRateMultiplier, flowRateMultiplier, layerLayerThickness, layerThicknessRatio, segments, z)
Add a layer from segments and raise the extrusion top.
addLayerLine(self, z)
Add the layer gcode line and close the last layer gcode block.
addOperatingOrbits(self, boundaryLoops, pointComplex, temperatureChangeTime, z)
Add the orbits before the operating layers.
addRaft(self)
Add the raft.
addSegmentTablesToSupportLayers(self)
Add segment tables to the support layers.
addSupportLayerTemperature(self, endpoints, z)
Add support layer and temperature before the object layer.
addSupportSegmentTable(self, layerIndex)
Add support segments from the boundary layers.
addTemperatureLineIfDifferent(self, temperature)
Add a line of temperature if different.
addTemperatureOrbits(self, endpoints, temperature, z)
Add the temperature and orbits around the support layer.
addToFillXIntersectionIndexTables(self, supportLayer)
Add fill segments from the boundary layers.
extendXIntersections(self, loops, radius, xIntersectionsTable)
Extend the support segments.
getCraftedGcode(self, gcodeText, repository)
Parse gcode text and store the raft gcode.
getElevatedBoundaryLine(self, splitLine)
Get elevated boundary gcode line.
getInsetLoops(self, boundaryLayerIndex)
Inset the support loops if they are not already inset.
getInsetLoopsAbove(self, boundaryLayerIndex)
Get the inset loops above the boundary layer index.
getInsetLoopsBelow(self, boundaryLayerIndex)
Get the inset loops below the boundary layer index.
getRaftedLine(self, splitLine)
Get elevated gcode line with operating feed rate.
getStepsUntilEnd(self, begin, end, stepSize)
Get steps from the beginning until the end.
getSupportEndpoints(self)
Get the support layer segments.
getTemperatureChangeTime(self, temperature)
Get the temperature change time.
parseInitialization(self)
Parse gcode initialization and store the parameters.
parseLine(self, line)
Parse a gcode line and add it to the raft skein.
setBoundaryLayers(self)
Set the boundary layers.
setCornersZ(self)
Set maximum and minimum corners and z.
subtractJoinedFill(self, supportLayerIndex)
Join the fill then subtract it from the support layer table.
truncateSupportSegmentTables(self)
Truncate the support segments after the last support segment which contains elements.

 
class SupportLayer
    Support loops with segment tables.
 
  Methods defined here:
__init__(self, supportLoops)
__repr__(self)
Get the string representation of this loop layer.

 
Functions
       
getCraftedText(fileName, text='', repository=None)
Raft the file or text.
getCraftedTextFromText(gcodeText, repository=None)
Raft a gcode linear move text.
getCrossHatchPointLine(crossHatchPointLineTable, y)
Get the cross hatch point line.
getEndpointsFromYIntersections(x, yIntersections)
Get endpoints from the y intersections.
getExtendedLineSegment(extensionDistance, lineSegment, loopXIntersections)
Get extended line segment.
getNewRepository()
Get the repository constructor.
main()
Display the raft dialog.
setExtendedPoint(lineSegmentEnd, pointOriginal, x)
Set the point in the extended line segment.
writeOutput(fileName='')
Raft a gcode linear move file.

 
Data
        __author__ = 'Enrique Perez (perez_enrique@yahoo.com)'
__date__ = '$Date: 2008/21/04 $'
__license__ = 'GPL 3.0'
absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)

 
Author
        Enrique Perez (perez_enrique@yahoo.com)