I decided to add a few features to the export module of Skeinforge which may also be useful to others.  I've committed these changes to my fork of the (unofficial) git repo.  If they seem popular then i'll fire an email to Enrique with a patch.

Add Profile To File Extension

Simply adds the current profile to the file extension,  e.g. test.my_profile_name.gcode.

Archive Used Profile As Zip

Creates a Zip file archive of the current profile, e.g. test.my_profile_name.zip

Export Profile Values As CSV File

Creates a Comma Separated Value file containing all profile values, e.g. test.my_profile_name.csv.

The format is: plugin,name,value, e.g. carve,Layer Thickness (mm):,0.4

Add Descriptive Extension

Because I am inconsistent in my profile management I often tweak a setting of a profile before printing.  This means the profile name usually does not reflect the actual profile values.  This option adds key profile values as an extension to the gcode file. If a module is turned off then the value is not added to the extension.

E.g. .04hx06w_33Ff_03fill.4off.gcode where:

  • 04h = "Layer Thickness (mm):" 0.4
  • x
  • 06w = 0.6 width i.e. 0.4 times "Perimeter Width over Thickness (ratio):" 1.5
  • _
  • 33Ff = "Flow Rate Setting (float):" 33.0 and "Feed Rate (mm/s):" 33.0.  If either value has a positive value after the decimal place then this is also shown, but if it is zero it is hidden.  Also, if the values differ (which they shouldn't with 5D volumetrics) then each is displayed seperately, i.e. 30F35.2f = "Flow Rate Setting (float):" 30.0 and "Feed Rate (mm/s):" 35.2
  • _
  • 03fill = "Infill Solidity (ratio):" 0.3
  • 4off = "Number of Columns (integer):" x "Number of Rows (integer):" from the Multiply Tab, e.g. 2x2.  If these values are both 1 then this part is not shown.

Add Timestamp Extension

Adds the current date and time as an extension in format YYYYmmdd_HHMMSS (so it is sortable if one has many files), e.g. test.my_profile_name.20110613_220113.gcode


Using all the options together yields a few files with long names but it means that each time a STL is processed one can:

  • see which profile was used (from the filename),
  • see which key values were used  (from the filename),
  • see all the profile values (from the csv),
  • recreate the profile (from the zip),
  • and ensure sure that all gcode files are unique and not overwritten each time (with timestamp).