# Python: module skeinforge_application.skeinforge_plugins.craft_plugins.dimension

skeinforge_application.skeinforge_plugins.craft_plugins.dimension ($Date: 2008/02/05 $) | index /home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py

Previous / Next / Contents

`
Dimension adds Adrian's extruder distance E value to the gcode movement lines, as described at:
http://blog.reprap.org/2009/05/4d-printing.html
and in Erik de Bruijn's conversion script page at:
http://objects.reprap.org/wiki/3D-to-5D-Gcode.php
The dimension manual page is at:
http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Dimension
Operation
Settings
Extrusion Distance Format Choice
Absolute Extrusion Distance
Relative Extrusion Distance
Extruder Retraction Speed
Filament
Filament Diameter
Filament Packing Density
Retraction Distance
Restart Extra Distance
Examples
`

## Operation

The default 'Activate Dimension' checkbox is off. When it is on, the functions described below will work, when it is off, the functions will not be called.

## Settings

### Extrusion Distance Format Choice

Default is 'Absolute Extrusion Distance' because in Adrian's description the distance is absolute. In future, because the relative distances are smaller than the cumulative absolute distances, hopefully the firmaware will be able to use relative distance.

#### Absolute Extrusion Distance

When selected, the extrusion distance output will be the total extrusion distance to that gcode line.

#### Relative Extrusion Distance

When selected, the extrusion distance output will be the extrusion distance from the last gcode line.

### Extruder Retraction Speed

Default is 13.3 mm/s.
Defines the extruder retraction feed rate.

### Filament

#### Filament Diameter

Default is 2.8 millimeters.
Defines the filament diameter.

#### Filament Packing Density

Default is 0.85. This is for ABS.
Defines the effective filament packing density.
The default value is so low for ABS because ABS is relatively soft and with a pinch wheel extruder the teeth of the pinch dig in farther, so it sees a smaller effective diameter. With a hard plastic like PLA the teeth of the pinch wheel don't dig in as far, so it sees a larger effective diameter, so feeds faster, so for PLA the value should be around 0.97. This is with Wade's hobbed bolt. The effect is less significant with larger pinch wheels.
Overall, you'll have to find the optimal filament packing density by experiment.

### Retraction Distance

Default is zero.
Defines the retraction distance when the thread ends.

### Restart Extra Distance

Default is zero.
Defines the restart extra distance when the thread restarts. The restart distance will be the retraction distance plus the restart extra distance.

## Examples

The following examples dimension the file Screw Holder Bottom.stl. The examples are run in a terminal in the folder which contains Screw Holder Bottom.stl and dimension.py.
> python dimension.py
This brings up the dimension dialog.
> python dimension.py Screw Holder Bottom.stl
The dimension tool is parsing the file:
Screw Holder Bottom.stl
..
The dimension tool has created the file:
.. Screw Holder Bottom_dimension.gcode

Previous / Next / Contents

Modules

``

skeinforge_application.skeinforge_plugins.craft_plugins.__init__
fabmetheus_utilities.archive
fabmetheus_utilities.euclidean
fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret

fabmetheus_utilities.gcodec
fabmetheus_utilities.intercircle
math
os

fabmetheus_utilities.settings
skeinforge_application.skeinforge_utilities.skeinforge_craft
skeinforge_application.skeinforge_utilities.skeinforge_polyfile
skeinforge_application.skeinforge_utilities.skeinforge_profile

sys

Classes

``

DimensionRepository
DimensionSkein

class DimensionRepository
`` | `A class to handle the dimension settings.`

Methods defined here:

__init__(self)
  `Set the default settings, execute title & settings fileName.`

execute(self)
  `Dimension button has been clicked.`

class DimensionSkein
`` | `A class to dimension a skein of extrusions.`

Methods defined here:

__init__(self)

addLinearMoveExtrusionDistanceLine(self, extrusionDistance)
  `Get the extrusion distance string from the extrusion distance.`

getCraftedGcode(self, gcodeText, repository)
  `Parse gcode text and store the dimension gcode.`

getDimensionedArcMovement(self, line, splitLine)
  `Get a dimensioned arc movement.`

getDimensionedLinearMovement(self, line, splitLine)
  `Get a dimensioned linear movement.`

getExtrusionDistanceString(self, distance, splitLine)
  `Get the extrusion distance string.`

getExtrusionDistanceStringFromExtrusionDistance(self, extrusionDistance)
  `Get the extrusion distance string from the extrusion distance.`

parseInitialization(self)
  `Parse gcode initialization and store the parameters.`

parseLine(self, lineIndex)
  `Parse a gcode line and add it to the dimension skein.`

Functions

``

getCraftedText(fileName, gcodeText='', repository=None)
  `Dimension a gcode file or text.`

getCraftedTextFromText(gcodeText, repository=None)
  `Dimension a gcode text.`

getNewRepository()
  `Get new repository.`

main()
  `Display the dimension dialog.`

writeOutput(fileName, shouldAnalyze=True)
  `Dimension a gcode file.`

Data
`` |  | __author__ = 'Enrique Perez (perez_enrique@yahoo.com)' __date__ = '$Date: 2008/02/05 $' __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'

Author
`` |  | Enrique Perez (perez_enrique@yahoo.com)