Permalink
Browse files

trying again...

Signed-off-by: Ahmet Cem TURAN <ahmetcemturan@gmail.com>
  • Loading branch information...
1 parent 576ad05 commit 5006d157dd48b094a1f881386f9490d1e98421a6 @ahmetcemturan committed Sep 26, 2011
Showing with 96,807 additions and 0 deletions.
  1. +182 −0 SFACT Readme.txt
  2. +15 −0 alterations/end.gmc
  3. +2 −0 alterations/example_end.gmc
  4. +5 −0 alterations/example_homing.gmc
  5. +7 −0 alterations/replace.csv
  6. +6 −0 alterations/start.gmc
  7. +2,242 −0 calibration/_33x10.STL
  8. +2,158 −0 calibration/_33x20.STL
  9. +2,214 −0 calibration/_40x10.STL
  10. +2,158 −0 calibration/_40x20.STL
  11. +2,214 −0 calibration/_75x10.STL
  12. BIN calibration/accuracy.stl
  13. +310 −0 calibration/bridge.STL
  14. BIN calibration/calibration parts.jpg
  15. BIN calibration/long_full.stl
  16. BIN calibration/overhang.STL
  17. +59,054 −0 calibration/pencildome.stl
  18. BIN calibration/retraction.STL
  19. +19,378 −0 calibration/short_full.STL
  20. +2,886 −0 calibration/simple_print.stl
  21. BIN calibration/star.STL
  22. BIN calibration/testpiece.STL
  23. BIN calibration/vertex_blobs.STL
  24. +164 −0 documentation/skeinforge_application.skeinforge_plugins.analyze_plugins.synopsis.html
  25. +620 −0 sfact.py
  26. +1 −0 skeinforge/.idea/.name
  27. +9 −0 skeinforge/.idea/SF45.iml
  28. +5 −0 skeinforge/.idea/encodings.xml
  29. +15 −0 skeinforge/.idea/misc.xml
  30. +9 −0 skeinforge/.idea/modules.xml
  31. +90 −0 skeinforge/.idea/projectCodeStyle.xml
  32. +7 −0 skeinforge/.idea/vcs.xml
  33. +597 −0 skeinforge/.idea/workspace.xml
  34. +182 −0 skeinforge/SFACT Readme.txt
  35. 0 skeinforge/__init__.py
  36. +15 −0 skeinforge/alterations/end.gmc
  37. +2 −0 skeinforge/alterations/example_end.gmc
  38. +5 −0 skeinforge/alterations/example_homing.gmc
  39. +7 −0 skeinforge/alterations/replace.csv
  40. +6 −0 skeinforge/alterations/start.gmc
  41. +2,242 −0 skeinforge/calibration/_33x10.STL
Sorry, we could not display the entire diff because too many files (745) changed.
View
182 SFACT Readme.txt
@@ -0,0 +1,182 @@
+I have modified Skeinforge to be more practical and easier to tune. features include:
+
+
+A more up to date version could be found at http://dl.dropbox.com/u/38819298/SFACT%20Readme.txt
+
+Also trying to get the SFACT wiki up and running: https://github.com/ahmetcemturan/SFACT/wiki
+
+SFACT is at home: http://www.reprapfordummies.net
+
+
+
+
+-Will not mess up your old Skeinforge settings as it will use its own sfact_settings directory inside its own folder.
+
+-Deleted unused plugins and unused settings.
+
+-Namings changed to be more understandable.
+
+-Important settings moved to top of Plugin Tab.
+
+-Default values give good prints rightaway.
+
+-Internally used Gcode files use extension .gmc now.
+
+-Most Feedrates are now entered as values (mm/s) and their respective flowrates are 1 so you dont have to enter everything twice.
+
+ CARVE:
+
+-Extrusion width is now entered in mm instead of a ratio to layer height.
+
+CHAMBER:
+
+-Moved Turn Extruder off at shutdown to Chamber.
+
+-Added Turn PrintBed off at shutdown.
+
+CLIP:
+
+Clip over Perimeter width is now calculated automatically. The default is 1 and can be tuned from there.
+
+DIMENSION:
+
+-Added feature for calibration.
+
+-Retract can be set conditionally depending on extrusion amount before retract and the travel move in retracted state. Also retract can be forced to happen if moving over loops.
+
+EXPORT:
+
+Replaced Export plugin with Gary Hodgson's plugin.
+
+-Option to export settings as Zip file or a single CSV file for sharing.
+
+-Option to individually name the exported gcode files with description, timestamp and profile used.
+
+FILL:
+
+-Infill width over layerthickness setting is replaced by Extrusion Lines Extra spacing.
+
+-Extrusion Lines Extra spacing is calculated automatically and defaults to 1 for tuning.
+
+-Infill Overlap over Perimeter is also calculated internally and defaults to 1 so it can be easily tweaked.
+
+INSET:
+
+The inset value is now Overlap Removal and is also calculated internally with default 1 for tweaking.
+
+PREFACE:
+
+-Added the option to send Extruder reset (G92 E0) command before print so that the extruder does not spool back after priming. (Even without start.gmc file)
+
+RAFT:
+
+-Ordering, grouping and namings changed to reflect the use of interface settings for the support structures.
+
+-Support feedrate and support flowrate can be set seperately.
+
+-Support extension(s) are now more understandable.
+
+-First Layer feedrates are given in mm/s instead of a ratio to the main feedrate.
+-A travel feedrate for the first layer can be specified now.
+
+SPEED:
+
+-Feedrates are entered as values with respective flowrates as 1, instead of entering same value again. (except for Bridge Feedrate).
+-Note that Flowrates are always in reference to the respective Feedrate. (No need to change the flowrate when you change the speed, the ratio is calculated accordingly..)
+
+-Nozzle Lift setting has been changed to "Extra nozzle Lift over object" and defaults to 0.
+
+-Wipe is on by default and is around the 0 point
+
+
+
+(CAUTION: If you want to use SFACT from within Pronterface, you need to copy the files into a folder called skeinforge within the folder of Pronterface. Then you will need to manually copy or move the sfact_profiles folder into that directory as otherwise SFACT wont see the default profiles shipped with it.)
+
+For alterations files to work You need to put the alterations files into: ..\skeinforge_application\alterations\ directory...
+
+
+
+The latest working version is available here: http://www.reprapfordummies.net/downloads/SFACT.rar
+
+The latest development version is: https://github.com/ahmetcemturan/SFACT
+
+ You need to have Python installed (if you had Skeinforge running before thats sufficent)
+
+1-Extract the contents of the RAR file into a Folder of your choice :)
+
+Go into folder skeinforge_application.
+
+2-Click skeinforge.py
+
+3-Go to DIMENSION tab and enter your "measured" filament diameter.
+
+4-Go to Carve, enter reasonable Layer height and Extrusion width values.(this step is not necessary for the first try)
+
+(Try to have layer height slightly lower than nozzle diameter and Extrusion width slightly wider than nozzle diameter.)
+
+5-Click Skeinforge at the bottom of the tab and choose the STL file to slice.
+
+6-Generated Gcode will be created in the same folder as the STL file.
+
+Enjoy good Prints.
+
+
+
+CALIBRATION:
+
+If you should feel the need to calibrate:
+
+1-Print a thin walled test object (Single wall)
+
+Measure the width of the wall.
+
+2-Go to Dimension and check the Calibration Checkbox.
+
+3-Enter the Measured value.
+
+4-ReSkein and print the object. (During the Skein the command window will display a packing ratio. Note it somewhere (the first 4 digits are enough)
+
+5-If satisfied with the print, go to DIMENSION tab uncheck the calibration checkbox and enter that value into the packing density Box.
+
+6-You are done. Repeat when needed. Changing extrusion values should not necessarily arise the need for recalibration...
+
+
+Known Bugs:
+-Skin plugin skips first extra perimeter loop if extra perimeters set to 1. Works when 0 or >=2.
+-will not create correct
+
+
+Updated and working versions of SFACT and help are under : www.reprapfordummies.net
+
+and the development is under: https://github.com/ahmetcemturan/SFACT (Master branch)
+
+License is same as Skeinforge (GNU Affero General Public License)
+
+
+14.9.2011
+
+Main changes:
+DIMENSION:Retraction handled differently.
+Now the only variable is the Oozerate. SFACt automatically does retraction based on the duration of the move that it will do in retracted state.
+SPEED and INSET
+Bridging:
+Bridge settings are calculated automatically so that your extrusion xsection equals the nozzle-orifice x-section..
+As it will not change the layer height it will alter the extrusion width to achieve that.
+The default bridge feedrate is now referencing the perimeter feedrate.
+Also the settings for bridge spacing in INSET is now calculated according to the newly calculated extrusion width of the bridge extrusion.
+You can experiment with values from 1-2 for the spacing that should all give decent results. � personally prefer closer to 2 and have set default accordingly.
+RAFT:
+Raft feed and flowrates are working now.
+First layer travel feedrate now controls all travel moves..
+EXPORT:
+The export archiving commands have moved to the top menu. (>Analyze>Synopsis)
+There is also an option for Gen3 users to have small gcode with their Z-commands on a seperate line (for faster Z moves)
+If you get memory errors during skein disable skeiniso. (enabled by default)
+For being able to open a preview lateron you should enable exporting penultimate gcode.
+CARVE:Extra decimals range is now 2-6 with 4 as default. (needed for the finer printing possibilities..)
+COOL: You can now specify a minimum feedrate so you dont end up having the printhead move at 2mm/s and ruining your top layer.
+SKIN and LEADIN: Is calculating the flow correctly now. But a bug prevents the inner ring from being extruded when the extra perimeters option in Fill is set to 1. (0 or more than one works without problems..)
+Also I found that the option to prefer loops in INSET produces better result hence is set as default.
+
+GENERAL:I also changed most of the broken links that were in the top menu.
+A more detailed explanation will be posted at www.reprapfordummies.net
View
15 alterations/end.gmc
@@ -0,0 +1,15 @@
+G91 ; Make coordinates relative
+G92 E0 ; reset Extruder counter
+G1 E-2 F900 ;Retract extuder 2mm at 900mm/min
+G1 Z2 F400 ;Move up tw mm (from current position because it is all relative now)
+G1 Z2 F5000 ; Move Z another 2mm up
+G90 ; Use absolute coordinates again
+G1 X5 Y5 F3000.0 ;go to almost home
+M84 ;disable steppers so they dont get hot during idling...
+
+;or you can use this one comment out
+;G1 X10.0 F4000 ;home (almost) x
+;G1 Y170 F4000 ; move the print to the front.
+;M104 S0 ; make sure the extuder is turned off.
+;M140 S0 ; make sure the bed is turned off.
+;M84 ; shut down motors.
View
2 alterations/example_end.gmc
@@ -0,0 +1,2 @@
+(this is a sample gcode end file, it must be renamed end.gcode for skeinforge to recognize it)
+M2
View
5 alterations/example_homing.gmc
@@ -0,0 +1,5 @@
+(this is a sample gcode homing file, it must be renamed homing.gcode for skeinforge to recognize it)
+G1 X-250.0
+G92 X0 ;set x 0
+G1 Y-250.0
+G92 Y0 ;set y 0
View
7 alterations/replace.csv
@@ -0,0 +1,7 @@
+M101
+M103
+M108 S*.* ;
+M108 ;
+G1 F0.0
+M113 S0.0
+M113 ;
View
6 alterations/start.gmc
@@ -0,0 +1,6 @@
+G92 E0 ;reset extruder
+G1 E3 F1200 ;Prime extruder 3mm
+G1 E2 F1200 ;retract extruder 1mm
+G92 E0 ;reset extruder
+G1 Z1 F3000 ;Move Z 1mm up to avid head crashing into printbed
+G92 E0 ;reset extruder
View
2,242 calibration/_33x10.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
2,158 calibration/_33x20.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
2,214 calibration/_40x10.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
2,158 calibration/_40x20.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
2,214 calibration/_75x10.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/accuracy.stl
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
310 calibration/bridge.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/calibration parts.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/long_full.stl
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/overhang.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
59,054 calibration/pencildome.stl
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/retraction.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
19,378 calibration/short_full.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
2,886 calibration/simple_print.stl
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/star.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/testpiece.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN calibration/vertex_blobs.STL
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
164 documentation/skeinforge_application.skeinforge_plugins.analyze_plugins.synopsis.html
@@ -0,0 +1,164 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: module skeinforge_application.skeinforge_plugins.analyze_plugins.synopsis</title>
+</head><body bgcolor="#f0f0f8">
+
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
+<tr bgcolor="#7799ee">
+<td valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="skeinforge_application.html"><font color="#ffffff">skeinforge_application</font></a>.<a href="skeinforge_application.skeinforge_plugins.html"><font color="#ffffff">skeinforge_plugins</font></a>.<a href="skeinforge_application.skeinforge_plugins.analyze_plugins.html"><font color="#ffffff">analyze_plugins</font></a>.synopsis</strong></big></big> ($Date: 2008/21/04 $)</font></td
+><td align=right valign=bottom
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/skeinforge_application/skeinforge_plugins/analyze_plugins/synopsis.py">/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/skeinforge_application/skeinforge_plugins/analyze_plugins/synopsis.py</a></font></td></tr></table>
+ <p>
+<a href="skeinforge_application.skeinforge_plugins.analyze_plugins.statistic.html">Previous</a> / <a href="skeinforge_application.skeinforge_plugins.analyze_plugins.vectorwrite.html">Next</a> / <a href="contents.html">Contents</a>
+</p>
+<p><tt><br>
+Synopsis is an analyze plugin to export the profile from a skeinforge gcode file as a csv or zip file.<br>
+ <br>
+The synopsis manual page is at:<br>
+<a href="http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Synopsis">http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Synopsis</a><br>
+ <br>
+<br />
+<a href="#Operation">Operation</a><br />
+<a href="#Settings">Settings</a><br />
+&nbsp;&nbsp;<a href="#Export Profile As CSV File">Export Profile As CSV File</a><br />
+&nbsp;&nbsp;<a href="#Export Profile As Zip File">Export Profile As Zip File</a><br />
+<a href="#Examples">Examples</a><br />
+<br />
+<a name="Operation" id="Operation"></a><h2>Operation</h2>
+<hr>
+
+The default 'Activate Synopsis' checkbox is off. When it is on, the functions described below will work when called from the skeinforge toolchain, when it is off, the functions will not be called from the toolchain. The functions will still be called, whether or not the 'Activate Synopsis' checkbox is on, when synopsis is run directly.<br>
+ <br>
+<a name="Settings" id="Settings"></a><h2>Settings</h2>
+<hr>
+
+<a name="Export Profile As CSV File" id="Export Profile As CSV File"></a><h3>Export Profile As CSV File</h3>
+
+Default is on.<br>
+ <br>
+If 'Export Profile As CSV File' is selected, the profile from a skeinforge gcode file with comments will be exported as a csv (comma separated values) file.<br>
+ <br>
+<a name="Export Profile As Zip File" id="Export Profile As Zip File"></a><h3>Export Profile As Zip File</h3>
+
+Default is off.<br>
+ <br>
+If 'Export Profile As Zip File' is selected, the profile from a skeinforge gcode file with comments will be exported as a zip file.<br>
+ <br>
+<a name="Examples" id="Examples"></a><h2>Examples</h2>
+<hr>
+
+Below are examples of synopsis being used. These examples are run in a terminal in the folder which contains Screw Holder_penultimate.gcode and synopsis.py.<br>
+ <br>
+&gt; python synopsis.py<br>
+This brings up the synopsis dialog.<br>
+ <br>
+&gt; python synopsis.py Screw Holder_penultimate.gcode<br>
+The synopsis file is saved as Screw_Holder_penultimate_synopsis.csv</tt>
+<br />
+<br />
+<p>
+<a href="skeinforge_application.skeinforge_plugins.analyze_plugins.statistic.html">Previous</a> / <a href="skeinforge_application.skeinforge_plugins.analyze_plugins.vectorwrite.html">Next</a> / <a href="contents.html">Contents</a>
+</p>
+<hr>
+</p>
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#aa55cc">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
+
+<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="__init__.html">__init__</a><br>
+<a href="fabmetheus_utilities.archive.html">fabmetheus_utilities.archive</a><br>
+<a href="fabmetheus_utilities.euclidean.html">fabmetheus_utilities.euclidean</a><br>
+</td><td width="25%" valign=top><a href="fabmetheus_utilities.gcodec.html">fabmetheus_utilities.gcodec</a><br>
+<a href="os.html">os</a><br>
+<a href="fabmetheus_utilities.settings.html">fabmetheus_utilities.settings</a><br>
+</td><td width="25%" valign=top><a href="skeinforge_application.skeinforge_utilities.skeinforge_polyfile.html">skeinforge_application.skeinforge_utilities.skeinforge_polyfile</a><br>
+<a href="skeinforge_application.skeinforge_utilities.skeinforge_profile.html">skeinforge_application.skeinforge_utilities.skeinforge_profile</a><br>
+<a href="sys.html">sys</a><br>
+</td><td width="25%" valign=top><a href="time.html">time</a><br>
+<a href="zipfile.html">zipfile</a><br>
+</td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ee77aa">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
+
+<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%"><dl>
+<dt><font face="helvetica, arial"><a href="skeinforge_application.skeinforge_plugins.analyze_plugins.synopsis.html#AbridgedSetting">AbridgedSetting</a>
+</font></dt><dt><font face="helvetica, arial"><a href="skeinforge_application.skeinforge_plugins.analyze_plugins.synopsis.html#SynopsisRepository">SynopsisRepository</a>
+</font></dt></dl>
+ <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#000000" face="helvetica, arial"><a name="AbridgedSetting">class <strong>AbridgedSetting</strong></a></font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
+<td colspan=2><tt>A&nbsp;class&nbsp;to&nbsp;handle&nbsp;an&nbsp;abridged&nbsp;setting.<br>&nbsp;</tt></td></tr>
+<tr><td>&nbsp;</td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="AbridgedSetting-__init__"><strong>__init__</strong></a>(self, splitLine)</dt><dd><tt>Initialize.</tt></dd></dl>
+
+<dl><dt><a name="AbridgedSetting-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Get&nbsp;the&nbsp;tab&nbsp;separated&nbsp;representation&nbsp;of&nbsp;this&nbsp;<a href="#AbridgedSetting">AbridgedSetting</a>.</tt></dd></dl>
+
+</td></tr></table> <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#000000" face="helvetica, arial"><a name="SynopsisRepository">class <strong>SynopsisRepository</strong></a></font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
+<td colspan=2><tt>A&nbsp;class&nbsp;to&nbsp;handle&nbsp;the&nbsp;synopsis&nbsp;settings.<br>&nbsp;</tt></td></tr>
+<tr><td>&nbsp;</td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="SynopsisRepository-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Set&nbsp;the&nbsp;default&nbsp;settings,&nbsp;execute&nbsp;title&nbsp;&amp;&nbsp;settings&nbsp;fileName.</tt></dd></dl>
+
+<dl><dt><a name="SynopsisRepository-execute"><strong>execute</strong></a>(self)</dt><dd><tt>Write&nbsp;button&nbsp;has&nbsp;been&nbsp;clicked.</tt></dd></dl>
+
+</td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#eeaa77">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
+
+<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%"><dl><dt><a name="-addAbridgedSettings"><strong>addAbridgedSettings</strong></a>(abridgedSettings, repositoryWriter)</dt><dd><tt>Add&nbsp;the&nbsp;abridged&nbsp;settings&nbsp;to&nbsp;a&nbsp;repository&nbsp;writer.</tt></dd></dl>
+ <dl><dt><a name="-exportProfileAsCSVFile"><strong>exportProfileAsCSVFile</strong></a>(abridgedSettings, suffixFileNameWithoutExtension)</dt><dd><tt>Export&nbsp;the&nbsp;profile&nbsp;from&nbsp;the&nbsp;gcode&nbsp;text&nbsp;as&nbsp;a&nbsp;csv&nbsp;file.</tt></dd></dl>
+ <dl><dt><a name="-exportProfileAsZipFile"><strong>exportProfileAsZipFile</strong></a>(abridgedSettings, suffixDirectoryName, suffixFileNameWithoutExtension)</dt><dd><tt>Export&nbsp;the&nbsp;profile&nbsp;from&nbsp;the&nbsp;gcode&nbsp;text&nbsp;as&nbsp;a&nbsp;zip&nbsp;file.</tt></dd></dl>
+ <dl><dt><a name="-getAbridgedSettings"><strong>getAbridgedSettings</strong></a>(gcodeText)</dt><dd><tt>Get&nbsp;the&nbsp;abridged&nbsp;settings&nbsp;from&nbsp;the&nbsp;gcode&nbsp;text.</tt></dd></dl>
+ <dl><dt><a name="-getNewRepository"><strong>getNewRepository</strong></a>()</dt><dd><tt>Get&nbsp;new&nbsp;repository.</tt></dd></dl>
+ <dl><dt><a name="-getWindowAnalyzeFile"><strong>getWindowAnalyzeFile</strong></a>(fileName)</dt><dd><tt>Write&nbsp;scalable&nbsp;vector&nbsp;graphics&nbsp;for&nbsp;a&nbsp;gcode&nbsp;file.</tt></dd></dl>
+ <dl><dt><a name="-getWindowAnalyzeFileGivenText"><strong>getWindowAnalyzeFileGivenText</strong></a>(fileName, gcodeText, repository<font color="#909090">=None</font>)</dt><dd><tt>Write&nbsp;scalable&nbsp;vector&nbsp;graphics&nbsp;for&nbsp;a&nbsp;gcode&nbsp;file&nbsp;given&nbsp;the&nbsp;settings.</tt></dd></dl>
+ <dl><dt><a name="-main"><strong>main</strong></a>()</dt><dd><tt>Display&nbsp;the&nbsp;synopsis&nbsp;dialog.</tt></dd></dl>
+ <dl><dt><a name="-writeOutput"><strong>writeOutput</strong></a>(fileName, fileNamePenultimate, fileNameSuffix, filePenultimateWritten, gcodeText<font color="#909090">=''</font>)</dt><dd><tt>Write&nbsp;scalable&nbsp;vector&nbsp;graphics&nbsp;for&nbsp;a&nbsp;skeinforge&nbsp;gcode&nbsp;file,&nbsp;if&nbsp;activate&nbsp;synopsis&nbsp;is&nbsp;selected.</tt></dd></dl>
+</td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#55aa55">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
+
+<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%"><strong>__author__</strong> = 'Enrique Perez (perez_enrique@yahoo.com)'<br>
+<strong>__credits__</strong> = 'Gary Hodgson &lt;http://garyhodgson.com/reprap/2011/06/hacking-skeinforge-export-module/&gt;'<br>
+<strong>__date__</strong> = '$Date: 2008/21/04 $'<br>
+<strong>__license__</strong> = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'<br>
+<strong>absolute_import</strong> = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)</td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#7799ee">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
+
+<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%">Enrique&nbsp;Perez&nbsp;(perez_enrique@yahoo.com)</td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#7799ee">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Credits</strong></big></font></td></tr>
+
+<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%">Gary&nbsp;Hodgson&nbsp;&lt;<a href="http://garyhodgson.com/reprap/2011/06/hacking-skeinforge-export-module/">http://garyhodgson.com/reprap/2011/06/hacking-skeinforge-export-module/</a>&gt;</td></tr></table>
+</body></html>
View
620 sfact.py
@@ -0,0 +1,620 @@
+#!/usr/bin/python
+"""
+This page is in the table of contents.
+==Overview==
+===Introduction===
+Skeinforge is a GPL tool chain to forge a gcode skein for a model.
+
+The tool chain starts with carve, which carves the model into layers, then the layers are modified by other tools in turn like fill, comb, tower, raft, stretch, hop, wipe, fillet & export. Each tool automatically gets the gcode from the previous tool. So if you want a carved & filled gcode, call the fill tool and it will call carve, then it will fill and output the gcode. If you want to use all the tools, call export and it will call in turn all the other tools down the chain to produce the gcode file.
+
+If you do not want a tool after preface to modify the output, deselect the Activate checkbox for that tool. When the Activate checkbox is off, the tool will just hand off the gcode to the next tool without modifying it.
+
+The skeinforge module provides a single place to call up all the setting dialogs. When the 'Skeinforge' button is clicked, skeinforge calls export, since that is the end of the chain.
+
+The plugin buttons which are commonly used are bolded and the ones which are rarely used have normal font weight.
+
+There are also tools which handle settings for the chain, like polyfile.
+
+The analyze tool calls plugins in the analyze_plugins folder, which will analyze the gcode in some way when it is generated if their Activate checkbox is selected.
+
+The interpret tool accesses and displays the import plugins.
+
+The default settings are similar to those on Nophead's machine. A setting which is often different is the 'Layer Thickness' in carve.
+
+===Command Line Interface===
+To bring up the skeinforge dialog without a file name, type:
+python skeinforge_application/skeinforge.py
+
+Slicing a file from skeinforge_utilities/skeinforge_craft.py, for example:
+python skeinforge_application/skeinforge_utilities/skeinforge_craft.py test.stl
+
+will slice the file and exit. This is the correct option for programs which use skeinforge to only generate a gcode file.
+
+Slicing a file from skeinforge.py, for example:
+python skeinforge_application/skeinforge.py test.stl
+
+will slice the file and bring up the skeinforge window and the analyze windows and then skeinforge will wait for user input.
+
+Slicing a file from skeinforge_plugins/craft.py, for example:
+python skeinforge_application/skeinforge_plugins/craft.py test.stl
+
+will slice the file and bring up the analyze windows only and then skeinforge will wait for user input.
+
+===Contribute===
+You can contribute by helping develop the manual at:
+http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge
+
+There is also a forum thread about how to contribute to skeinforge development at:
+http://dev.forums.reprap.org/read.php?12,27562
+
+I will only reply to emails from contributors or to complete bug reports.
+
+===Documentation===
+There is a manual at:
+http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge
+
+There is also documentation is in the documentation folder, in the doc strings for each module and it can be called from the '?' button or the menu or by clicking F1 in each setting dialog.
+
+A list of other tutorials is at:
+http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge#Tutorials
+
+Skeinforge tagged pages on thingiverse can be searched for at:
+http://www.thingiverse.com/search?cx=015525747728168968820%3Arqnsgx1xxcw&cof=FORID%3A9&ie=UTF-8&q=skeinforge&sa=Search&siteurl=www.thingiverse.com%2F#944
+
+===Fabrication===
+To fabricate a model with gcode and the Arduino you can use the send.py in the fabricate folder. The documentation for it is in the folder as send.html and at:
+http://reprap.org/bin/view/Main/ArduinoSend
+
+Another way is to use an EMC2 or similar computer controlled milling machine, as described in the "ECM2 based repstrap" forum thread at:
+http://forums.reprap.org/read.php?1,12143
+
+using the M-Apps package, which is at:
+http://forums.reprap.org/file.php?1,file=772
+
+Another way is to use Zach's ReplicatorG at:
+http://replicat.org/
+
+There is also an older Processing script at:
+http://reprap.svn.sourceforge.net/viewvc/reprap/trunk/users/hoeken/arduino/GCode_Host/
+
+Yet another way is to use the reprap host, written in Java, to load and print gcode:
+http://dev.www.reprap.org/bin/view/Main/DriverSoftware#Load_GCode
+
+For jogging, the Metalab group wrote their own exerciser, also in Processing:
+http://reprap.svn.sourceforge.net/viewvc/reprap/trunk/users/metalab/processing/GCode_Exerciser/
+
+The Metalab group has descriptions of skeinforge in action and their adventures are described at:
+http://reprap.soup.io/
+
+There is a board about printing issues at:
+http://www.bitsfrombytes.com/fora/user/index.php?board=5.0
+
+You can buy the Rapman (an improved Darwin) from Bits from Bytes at:
+http://www.bitsfrombytes.com/
+
+You can buy the Makerbot from Makerbot Industries at:
+http://www.makerbot.com/
+
+===File Formats===
+An explanation of the gcodes is at:
+http://reprap.org/bin/view/Main/Arduino_GCode_Interpreter
+
+and at:
+http://reprap.org/bin/view/Main/MCodeReference
+
+A gode example is at:
+http://forums.reprap.org/file.php?12,file=565
+
+The settings are saved as tab separated .csv files in the .skeinforge folder in your home directory. The settings can be set in the tool dialogs. The .csv files can also be edited with a text editor or a spreadsheet program set to separate tabs.
+
+The Scalable Vector Graphics file produced by vectorwrite can be opened by an SVG viewer or an SVG capable browser like Mozilla:
+http://www.mozilla.com/firefox/
+
+A good triangle surface format is the GNU Triangulated Surface format, which is supported by Mesh Viewer and described at:
+http://gts.sourceforge.net/reference/gts-surfaces.html#GTS-SURFACE-WRITE
+
+You can export GTS files from Art of Illusion with the Export GNU Triangulated Surface.bsh script in the Art of Illusion Scripts folder.
+
+STL is an inferior triangle surface format, described at:
+http://en.wikipedia.org/wiki/STL_(file_format)
+
+If you're using an STL file and you can't even carve it, try converting it to a GNU Triangulated Surface file in Art of Illusion. If it still doesn't carve, then follow the advice in the troubleshooting section.
+
+===Getting Skeinforge===
+The latest version is at:
+http://members.axion.net/~enrique/reprap_python_beanshell.zip
+
+a sometimes out of date version is in the last reprap_python_beanshell.zip attachment in the last post of the Fabmetheus blog at:
+http://fabmetheus.blogspot.com/
+
+another sometimes out of date version is at:
+https://reprap.svn.sourceforge.net/svnroot/reprap/trunk/reprap/miscellaneous/python-beanshell-scripts/
+
+===Getting Started===
+For skeinforge to run, install python 2.x on your machine, which is available from:
+http://www.python.org/download/
+
+To use the settings dialog you'll also need Tkinter, which probably came with the python installation. If it did not, look for it at:
+http://www.tcl.tk/software/tcltk/
+
+If you want python and Tkinter together on MacOS, you can try:
+http://www.astro.washington.edu/users/rowen/ROPackage/Overview.html
+
+If you want python and Tkinter together on all platforms and don't mind filling out forms, you can try the ActivePython package from Active State at:
+http://www.activestate.com/Products/activepython/feature_list.mhtml
+
+The computation intensive python modules will use psyco if it is available and run about twice as fast. Psyco is described at:
+http://psyco.sourceforge.net/index.html
+
+The psyco download page is:
+http://psyco.sourceforge.net/download.html
+
+Skeinforge imports Stereolithography (.stl) files or GNU Triangulated Surface (.gts) files. If importing an STL file directly doesn't work, an indirect way to import an STL file is by turning it into a GTS file is by using the Export GNU Triangulated Surface script at:
+http://members.axion.net/~enrique/Export%20GNU%20Triangulated%20Surface.bsh
+
+The Export GNU Triangulated Surface script is also in the Art of Illusion folder, which is in the same folder as skeinforge.py. To bring the script into Art of Illusion, drop it into the folder ArtOfIllusion/Scripts/Tools/. Then import the STL file using the STL import plugin in the import submenu of the Art of Illusion file menu. Then from the Scripts submenu in the Tools menu, choose 'Export GNU Triangulated Surface' and select the imported STL shape. Click the 'Export Selected' checkbox and click OK. Once you've created the GTS file, you can turn it into gcode by typing in a shell in the same folder as skeinforge:
+> python skeinforge.py
+
+When the skeinforge dialog pops up, click 'Skeinforge', choose the file which you exported in 'Export GNU Triangulated Surface' and the gcode file will be saved with the suffix '_export.gcode'.
+
+Or you can turn files into gcode by adding the file name, for example:
+> python skeinforge.py Screw Holder Bottom.stl
+
+===License===
+GNU Affero General Public License
+http://www.gnu.org/licenses/agpl.html
+
+===Motto===
+I may be slow, but I get there in the end.
+
+===Troubleshooting===
+If there's a bug, try downloading the very latest version because skeinforge is often updated without an announcement. The very latest version is at:
+http://members.axion.net/~enrique/reprap_python_beanshell.zip
+
+If there is still a bug, then first prepare the following files:
+
+1. stl file
+2. pictures explaining the problem
+3. your settings (pack the whole .skeinforge directory with all your settings)
+4. alterations folder, if you have any active alterations files
+
+Then zip all the files.
+
+Second, write a description of the error, send the description and the archive to the developer, enrique ( perez_enrique AT yahoo.com.removethispart ). After a bug fix is released, test the new version and report the results to enrique, whether the fix was successful or not.
+
+If the dialog window is too big for the screen, on most Linux window managers you can move a window by holding down the Alt key and then drag the window with the left mouse button to get to the off screen widgets.
+
+If you can't use the graphical interface, you can change the settings for skeinforge by using a text editor or spreadsheet to change the settings in the profiles folder in the .skeinforge folder in your home directory.
+
+Comments and suggestions are welcome, however, I won't reply unless you are a contributor. Likewise, I will only answer your questions if you contribute to skeinforge in some way. Some ways of contributing to skeinforge are in the contributions thread at:
+http://dev.forums.reprap.org/read.php?12,27562
+
+You could also contribute articles to demozendium on any topic:
+http://fabmetheus.crsndoo.com/wiki/index.php/Main_Page
+
+If you contribute in a significant way to another open source project, I will consider that also.
+
+When I answered everyone's questions, eventually I received more questions than I had time to answer, so now I only answer questions from contributors.
+
+I reserve the right to make any correspondence public. Do not send me any correspondence marked confidential. If you do I will delete it.
+
+
+==Examples==
+The following examples forge the STL file Screw Holder.stl. The examples are run in a terminal in the folder which contains Screw Holder.gts and skeinforge.py.
+
+> python skeinforge.py
+This brings up the dialog, after clicking 'Skeinforge', the following is printed:
+The exported file is saved as Screw Holder_export.gcode
+
+> python skeinforge.py Screw Holder.stl
+The exported file is saved as Screw Holder_export.gcode
+
+To run only fill for example, type in the craft_plugins folder which fill is in:
+> python fill.py
+
+"""
+
+from __future__ import absolute_import
+import __init__
+
+from fabmetheus_utilities.fabmetheus_tools import fabmetheus_interpret
+from fabmetheus_utilities import archive
+from fabmetheus_utilities import euclidean
+from fabmetheus_utilities import gcodec
+from fabmetheus_utilities import settings
+from optparse import OptionParser
+from skeinforge_application.skeinforge_utilities import skeinforge_craft
+from skeinforge_application.skeinforge_utilities import skeinforge_polyfile
+from skeinforge_application.skeinforge_utilities import skeinforge_profile
+import os
+import sys
+
+
+# attributeDictionary, write, getTextContent, comment, pcdata, idDictionary.., importName getImportChain, document, rootElement
+# cool travel bug? getLayerTimeActive multiplier = active / (remainder + active) http://forums.reprap.org/read.php?154,91413
+# double circle top infill in skin & above layer, should clip before getAroundsFromPath(
+# circle is average radius in circle, cylinder, drill, extrude
+# infuse _extrusion
+# cutting ahmet
+# smooth http://hydraraptor.blogspot.com/2010/12/frequency-limit.html _extrusion
+# think about changing getOverlapRatio(loop, pointDictionary) < 0.2 to 0.51
+# change topOverBottom in linearbearingexample to pegAngle
+# add links download manual svg_writer, add left right arrow keys to layer
+# change thickness to face width in gear xml
+# documentation Retract When Crossing
+# document announce skirt convex
+# announcement clairvoyance, synopsis, export http://garyhodgson.com/reprap/2011/06/hacking-skeinforge-export-module/
+# maybe in svgReader if loop intersection with previous union else add
+# think about http://code.google.com/p/skeinarchiver/ and/or undo
+#
+# unimportant
+# minor outline problem when an end path goes through a path, like in the letter A
+# view profile 1 mm thickness
+#
+# raftPerimeter outset by maximum thickness
+# xmlparser to xmldocument, xmlelement of xml dom, originally 563 http://stackoverflow.com/questions/1971186/how-to-set-elements-id-in-pythons-xml-dom-minidom
+# When opening a file for craft I wondered if there is an option to set the file type to .stl as it currently defaults to .xml
+# scrollbar/width problem when starting with narrow view like help/meta/profile
+# check inset loop for intersection with rotatedLoopLayer.loops
+# maybe make vectorwrite prominent, not skeiniso, probably not because it doesn't work on Mac
+# move more __file__
+# close, getPillarByLoopLists, addConcave, polymorph original graph section, loop, add step object, add continuous object
+# hollow top
+# chamber: heated bed off at a layer http://blog.makerbot.com/2011/03/17/if-you-cant-stand-the-heat/
+# packingDensity or density in grid - probably just density
+# derivations for shapes
+# think about rectangular getVector3RemoveByPre..
+# links in layerTemplate
+# del previous, add begin & end if far get actual path
+# linearbearingexample 15 x 1 x 2, linearbearingcage
+# add date time 11.01.02|12:08
+# polling
+# connectionfrom, to, connect, xaxis
+# lathe, transform normal in getRemaining, getConnection
+# getConnection of some kind like getConnectionVertexes, getConnection
+# xml_creation
+# voronoi average location intersection looped inset intercircles
+# 'fileName, text, repository' commandLineInterface
+# delete: text = text.replace(('\nName %sValue\n' % globalSpreadsheetSeparator), ('\n_Name %sValue\n' % globalSpreadsheetSeparator))
+#
+#
+# multiply to table + boundary bedBound bedWidth bedHeight bedFile.csv
+# getNormal, getIsFlat?
+# info statistics, procedures, xml if any
+# test solid arguments
+# combine xmlelement with csvelement using example.csv & geometry.csv, csv _format, _column, _row, _text
+# pixel, voxel, surfaxel/boxel, lattice, mesh
+# probably not replace getOverlapRatio with getOverlap if getOverlapRatio is never small, always 0.0
+# mesh. for cube, then cyliner, then sphere after lathe
+# dimension extrude diameter, density
+# thermistor lookup table
+# add overview link to crnsdoo index and svg page
+# stretch add back addAlong
+# import, write, copy examples
+# maybe remove default warnings from scale, rotate, translate, transform
+# easy helix
+# write tool; maybe write one deep
+#
+#
+# tube
+# rotor
+# coin
+# demozendium privacy policy, maybe thumbnail logo
+# pymethe
+# test translate
+# full lathe
+# pyramid
+# round extrusion ?, fillet
+# make html statistics, move statistics to folder
+# manipulate solid, maybe manipulate around elements
+# boolean loop corner outset
+# mechaslab advanced drainage, shingles
+# dovetail
+# maybe not getNewObject, getNew, addToBoolean
+# work out close and radius
+# maybe try to get rid of comment if possible
+# maybe have add function as well as append for list and string
+# maybe move and give geometryOutput to cube, cylinder, sphere
+#
+# comb -> maybe add back running jump look at outside loops only for jump, find closest points, find slightly away inside points, link
+# global simplify pathBetween
+# comb documentation
+#
+# maybe move widen before bottom
+# maybe add 1 to max layer input to iso in layer_template.svg
+# maybe save all generated_files option
+# table to dictionary
+# check for last existing then remove unneeded fill code (getLastExistingFillLoops) from euclidean
+# remove cool set at end of layer
+# add fan on when hot in chamber
+# maybe measuring rod
+# getLayerThickness from xml
+# maybe center for xy plane
+# remove comments from clip, bend
+# winding into coiling, coil into wind & weave
+# later, precision
+# documentation
+# http://wiki.makerbot.com/configuring-skeinforge
+#
+#
+# remove index from CircleIntersection remove ahead or behind from CircleIntersection _speed
+# cache surroundingCarves _speed
+# probably not speed up CircleIntersection by performing isWithinCircles before creation _speed
+# pixelSet instead of pixelTable for arounds _speed
+#
+#
+# add hook _extrusion
+# integral thin width _extrusion
+# layer color, for multilayer start http://reprap.org/pub/Main/MultipleMaterialsFiles/legend.xml _extrusion
+# maybe double height shells option _extrusion
+# maybe raft triple layer base, middle interface with hot loop or ties
+# somehow, add pattern to outside, http://blog.makerbot.com/2010/09/03/lampshades/
+# implement acceleration & collinear removal in penultimate viewers _extrusion
+#
+# rename skeinforge_profile.addListsToCraftTypeRepository to skeinforge_profile.addToCraftTypeRepository after apron
+# basic tool
+# arch, ceiling
+# meta setting, rename setting _setting
+# add polish, has perimeter, has cut first layer (False)
+# probably not set addedLocation in distanceFeedRate after arc move
+# maybe horizontal bridging and/or check to see if the ends are standing on anything
+# thin self? check when removing intersecting paths in inset
+# maybe later remove isPerimeterPathInSurroundLoops, once there are no weird fill bugs, also change getHorizontalSegmentListsFromLoopLists
+# save all analyze viewers of the same name except itself, update help menu self.wikiManualPrimary.setUpdateFunction
+# check alterations folder first, if there is something copy it to the home directory, if not check the home directory
+# set temperature in temperature
+# add links to demozendium in help
+# maybe add hop only if long option
+#
+#
+#
+# help primary menu item refresh
+# add plugin help menu, add craft below menu
+# give option of saving when switching profiles
+# xml & svg more forgiving, svg make defaults for layerThickness
+# option of surrounding lines in display
+# maybe add connecting line in display line
+# maybe check inset loops to see if they are smaller, but this would be slow
+# maybe status bar
+# maybe measurement ruler mouse tool
+# search rss from blogs, add search links for common materials, combine created on or progress bar with searchable help
+# boundaries, center radius z bottom top, alterations file, circular or rectangular, polygon, put cool minimum radius orbits within boundaries, <bounds> bound.. </bounds>
+# move & rotate model
+# possible jitter bug http://cpwebste.blogspot.com/2010/04/hydras-first-print.html
+# trial, meta in a grid settings
+# maybe interpret svg_convex_mesh
+#laminate tool head
+#maybe use 5x5 radius search in circle node
+#maybe add layer updates in behold, skeinlayer and maybe others
+#lathe winding, extrusion and cutting; synonym for rotation or turning, loop angle
+# maybe split into source code and documentation sections
+# transform plugins, start with sarrus http://www.thingiverse.com/thing:1425
+# maybe make setting backups
+# maybe settings in gcode or saved versions
+# move skeinforge_utilities to fabmetheus_utilities
+# maybe lathe cutting
+# maybe lathe extrusion
+# maybe lathe millng
+# maybe lathe winding & weaving
+#
+#
+#
+# pick and place
+# search items, search links, choice entry field
+# svg triangle mesh, svg polygon mesh
+# simulate
+#transform
+# juricator
+# probably not run along sparse infill to avoid stops
+#custom inclined plane, inclined plane from model, screw, fillet travel as well maybe
+# probably not stretch single isLoop
+#maybe much afterwards make congajure multistep view
+#maybe stripe although model colors alone can handle it
+#stretch fiber around shape, maybe modify winding for asymmetric shapes
+#multiple heads around edge
+#maybe add rarely used tool option
+#angle shape for overhang extrusions
+#maybe m111? countdown
+#first time tool tip
+#individual tool tip to place in text
+# maybe try to simplify raft layer start
+# maybe make temp directory
+# maybe carve aoi xml testing and check xml gcode
+# maybe cross hatch support polishing???
+# maybe print svg view from current layer or zero layer in single view
+# maybe check if tower is picking the nearest island
+# maybe combine skein classes in fillet
+# maybe isometric svg option
+
+#Manual
+#10,990
+#11,1776,786
+#12,3304,1528
+#1,4960,1656
+#2, 7077,2117
+#3, 9598,2521
+#4 12014,2305
+#5 14319,2536
+#6 16855,3226
+#7 20081, 2189
+#8 22270, 2625
+#9 24895, 2967, 98
+#10 27862, 3433, 110
+#11 31295, 3327
+#12 34622
+#85 jan7, 86jan11, 87 jan13, 88 jan15, 91 jan21, 92 jan23, 95 jan30, 98 feb6
+#make one piece electromagnet spool
+#stepper rotor with ceramic disk magnet in middle, electromagnet with long thin spool line?
+#stepper motor
+#make plastic coated thread in vat with pulley
+#tensile stuart platform
+#kayak
+#gear vacuum pump
+#gear turbine
+#heat engine
+#solar power
+#sailboat
+#yacht
+#house
+#condo with reflected gardens in between buildings
+#medical equipment
+#cell counter, etc..
+#pipe clamp lathe
+# square tube driller & cutter
+
+# archihedrongagglevoteindexium
+# outline images
+# look from top of intersection circle plane to look for next, add a node; tree out until all are stepped on then connect, when more than three intersections are close
+# when loading a file, we should have a preview of the part and orientation in space
+# second (and most important in my opinion) would be the ability to rotate the part on X/Y/Z axis to chose it's orientation
+# third, a routine to detect the largest face and orient the part accordingly. Mat http://reprap.kumy.net/
+# concept, three perpendicular slices to get display spheres
+# extend lines around short segment after cross hatched boolean
+# concept, donation, postponement, rotate ad network, cached search options
+# concept, local ad server, every time the program runs it changes the iamge which all the documentation points to from a pool of ads
+# concept, join cross slices, go from vertex to two orthogonal edges, then from edges to each other, if not to a common point, then simplify polygons by removing points which do not change the area much
+# concept, each node is fourfold, use sorted intersectionindexes to find close, connect each double sided edge, don't overlap more than two triangles on an edge
+# concept, diamond cross section loops
+# concept, in file, store polygon mesh and centers
+# concept, display spheres or polygons would have original triangle for work plane
+# .. then again no point with slices
+# concept, filled slices, about 2 mm thick
+# concept, rgb color triangle switch to get inside color, color golden ratio on 5:11 slope with a modulo 3 face
+# concept, interlaced bricks at corners ( length proportional to corner angle )
+# concept, new links to archi, import links to archi and adds skeinforge tool menu item, back on skeinforge named execute tool is added
+# concept, trnsnt
+# concept, indexium expand condense remove, single text, pymetheus
+# concept, inscribed key silencer
+# concept, spreadsheet to python and/or javascript
+# concept, range voting for posters, informative, complainer, funny, insightful, rude, spammer, literacy, troll?
+# concept, intermittent cloud with multiple hash functions
+
+
+__author__ = 'Enrique Perez (perez_enrique@yahoo.com) modifed as SFACT by Ahmet Cem Turan (ahmetcemturan@gmail.com)'
+__credits__ = """
+Adrian Bowyer <http://forums.reprap.org/profile.php?12,13>
+Brendan Erwin <http://forums.reprap.org/profile.php?12,217>
+Greenarrow <http://forums.reprap.org/profile.php?12,81>
+Ian England <http://forums.reprap.org/profile.php?12,192>
+John Gilmore <http://forums.reprap.org/profile.php?12,364>
+Jonwise <http://forums.reprap.org/profile.php?12,716>
+Kyle Corbitt <http://forums.reprap.org/profile.php?12,90>
+Michael Duffin <http://forums.reprap.org/profile.php?12,930>
+Marius Kintel <http://reprap.soup.io/>
+Nophead <http://www.blogger.com/profile/12801535866788103677>
+PJR <http://forums.reprap.org/profile.php?12,757>
+Reece.Arnott <http://forums.reprap.org/profile.php?12,152>
+Wade <http://forums.reprap.org/profile.php?12,489>
+Xsainnz <http://forums.reprap.org/profile.php?12,563>
+Zach Hoeken <http://blog.zachhoeken.com/>
+
+Organizations:
+Art of Illusion <http://www.artofillusion.org/>"""
+__date__ = '$Date: 2008/02/05 $'
+__license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
+
+
+def addToProfileMenu(profileSelection, profileType, repository):
+ 'Add a profile menu.'
+ pluginFileNames = skeinforge_profile.getPluginFileNames()
+ craftTypeName = skeinforge_profile.getCraftTypeName()
+ pluginModule = skeinforge_profile.getCraftTypePluginModule()
+ profilePluginSettings = settings.getReadRepository(pluginModule.getNewRepository())
+ for pluginFileName in pluginFileNames:
+ skeinforge_profile.ProfileTypeMenuRadio().getFromMenuButtonDisplay(profileType, pluginFileName, repository, craftTypeName == pluginFileName)
+ for profileName in profilePluginSettings.profileList.value:
+ skeinforge_profile.ProfileSelectionMenuRadio().getFromMenuButtonDisplay(profileSelection, profileName, repository, profileName == profilePluginSettings.profileListbox.value)
+
+def getNewRepository():
+ 'Get new repository.'
+ return SkeinforgeRepository()
+
+def getPluginFileNames():
+ 'Get skeinforge plugin fileNames.'
+ return archive.getPluginFileNamesFromDirectoryPath(archive.getSkeinforgePluginsPath())
+
+def getRadioPluginsAddPluginGroupFrame(directoryPath, importantFileNames, names, repository):
+ 'Get the radio plugins and add the plugin frame.'
+ repository.pluginGroupFrame = settings.PluginGroupFrame()
+ radioPlugins = []
+ for name in names:
+ radioPlugin = settings.RadioPlugin().getFromRadio(name in importantFileNames, repository.pluginGroupFrame.latentStringVar, name, repository, name == importantFileNames[0])
+ radioPlugin.updateFunction = repository.pluginGroupFrame.update
+ radioPlugins.append( radioPlugin )
+ defaultRadioButton = settings.getSelectedRadioPlugin(importantFileNames + [radioPlugins[0].name], radioPlugins)
+ repository.pluginGroupFrame.getFromPath(defaultRadioButton, directoryPath, repository)
+ return radioPlugins
+
+def writeOutput(fileName):
+ 'Craft a file, display dialog.'
+ repository = getNewRepository()
+ repository.fileNameInput.value = fileName
+ repository.execute()
+ settings.startMainLoopFromConstructor(repository)
+
+
+class SkeinforgeRepository:
+ 'A class to handle the skeinforge settings.'
+ def __init__(self):
+ 'Set the default settings, execute title & settings fileName.'
+ skeinforge_profile.addListsToCraftTypeRepository('skeinforge_application.skeinforge.html', self)
+ self.fileNameInput = settings.FileNameInput().getFromFileName( fabmetheus_interpret.getGNUTranslatorGcodeFileTypeTuples(), 'Open File for Skeinforge', self, '')
+ self.profileType = settings.MenuButtonDisplay().getFromName('Profile Type: ', self )
+ self.profileSelection = settings.MenuButtonDisplay().getFromName('Profile Selection: ', self)
+ addToProfileMenu( self.profileSelection, self.profileType, self )
+ settings.LabelDisplay().getFromName('Search:', self )
+ reprapSearch = settings.HelpPage().getFromNameAfterHTTP('github.com/ahmetcemturan/SFACT', 'SFACT Update', self)
+ skeinforgeSearch = settings.HelpPage().getFromNameAfterHTTP('www.reprapfordummies.net/index.php/softwaresection/44-gcode-generators/49-sfact-homepage', 'SFACT Help', self )
+ skeinforgeSearch.column += 6
+ webSearch = settings.HelpPage().getFromNameAfterHTTP('www.reprap.org', 'Reprap', self)
+ webSearch.column += 4
+ versionText = archive.getFileText( archive.getVersionFileName() )
+ self.version = settings.LabelDisplay().getFromName('Version: ' + versionText, self)
+ settings.LabelDisplay().getFromName('', self)
+ importantFileNames = ['craft', 'profile']
+ getRadioPluginsAddPluginGroupFrame(archive.getSkeinforgePluginsPath(), importantFileNames, getPluginFileNames(), self)
+ self.executeTitle = 'Skeinforge'
+
+ def execute(self):
+ 'Skeinforge button has been clicked.'
+ fileNames = skeinforge_polyfile.getFileOrDirectoryTypesUnmodifiedGcode(self.fileNameInput.value, fabmetheus_interpret.getImportPluginFileNames(), self.fileNameInput.wasCancelled)
+ for fileName in fileNames:
+ skeinforge_craft.writeOutput(fileName)
+
+ def save(self):
+ 'Profile has been saved and profile menu should be updated.'
+ self.profileType.removeMenus()
+ self.profileSelection.removeMenus()
+ addToProfileMenu(self.profileSelection, self.profileType, self)
+ self.profileType.addRadiosToDialog(self.repositoryDialog)
+ self.profileSelection.addRadiosToDialog(self.repositoryDialog)
+
+
+def main():
+ 'Display the skeinforge dialog.'
+ parser = OptionParser()
+ parser.add_option(
+ '-p', '--prefdir', help='set path to preference directory', action='store', type='string', dest='preferencesDirectory')
+ parser.add_option(
+ '-s', '--start', help='set start file to use', action='store', type='string', dest='startFile')
+ parser.add_option(
+ '-e', '--end', help='set end file to use', action='store', type='string', dest='endFile')
+ parser.add_option(
+ '-o', '--option', help='set an individual option in the format "module:preference=value"',
+ action='append', type='string', dest='preferences')
+ (options, args) = parser.parse_args()
+ if options.preferencesDirectory:
+ archive.globalTemporarySettingsPath = options.preferencesDirectory
+ if options.preferences:
+ for prefSpec in options.preferences:
+ (moduleName, prefSpec) = prefSpec.split(':', 1)
+ (prefName, valueName) = prefSpec.split('=', 1)
+ settings.addPreferenceOverride(moduleName, prefName, valueName)
+ sys.argv = [sys.argv[0]] + args
+ if len( args ) > 0:
+ writeOutput( ' '.join(args) )
+ else:
+ settings.startMainLoopFromConstructor(getNewRepository())
+
+if __name__ == '__main__':
+ main()
View
1 skeinforge/.idea/.name
@@ -0,0 +1 @@
+SF45
View
9 skeinforge/.idea/SF45.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <content url="file://$MODULE_DIR$" />
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module>
+
View
5 skeinforge/.idea/encodings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
+</project>
+
View
15 skeinforge/.idea/misc.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="DependencyValidationManager">
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+ </component>
+ <component name="Git.Settings">
+ <option name="CHECKOUT_INCLUDE_TAGS" value="false" />
+ <option name="UPDATE_CHANGES_POLICY" value="STASH" />
+ </component>
+ <component name="ProjectResources">
+ <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
+ </component>
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.1 (C:/Python27/python.exe)" project-jdk-type="Python SDK" />
+</project>
+
View
9 skeinforge/.idea/modules.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/SF45.iml" filepath="$PROJECT_DIR$/.idea/SF45.iml" />
+ </modules>
+ </component>
+</project>
+
View
90 skeinforge/.idea/projectCodeStyle.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CodeStyleSettingsManager">
+ <option name="PER_PROJECT_SETTINGS">
+ <value>
+ <ADDITIONAL_INDENT_OPTIONS fileType="css">
+ <option name="INDENT_SIZE" value="4" />
+ <option name="CONTINUATION_INDENT_SIZE" value="8" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ <ADDITIONAL_INDENT_OPTIONS fileType="haml">
+ <option name="INDENT_SIZE" value="2" />
+ <option name="CONTINUATION_INDENT_SIZE" value="8" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ <ADDITIONAL_INDENT_OPTIONS fileType="js">
+ <option name="INDENT_SIZE" value="4" />
+ <option name="CONTINUATION_INDENT_SIZE" value="4" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ <ADDITIONAL_INDENT_OPTIONS fileType="py">
+ <option name="INDENT_SIZE" value="4" />
+ <option name="CONTINUATION_INDENT_SIZE" value="8" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ <ADDITIONAL_INDENT_OPTIONS fileType="sass">
+ <option name="INDENT_SIZE" value="2" />
+ <option name="CONTINUATION_INDENT_SIZE" value="8" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ <ADDITIONAL_INDENT_OPTIONS fileType="sql">
+ <option name="INDENT_SIZE" value="2" />
+ <option name="CONTINUATION_INDENT_SIZE" value="8" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ <ADDITIONAL_INDENT_OPTIONS fileType="xml">
+ <option name="INDENT_SIZE" value="4" />
+ <option name="CONTINUATION_INDENT_SIZE" value="8" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ <ADDITIONAL_INDENT_OPTIONS fileType="yml">
+ <option name="INDENT_SIZE" value="2" />
+ <option name="CONTINUATION_INDENT_SIZE" value="8" />
+ <option name="TAB_SIZE" value="4" />
+ <option name="USE_TAB_CHARACTER" value="false" />
+ <option name="SMART_TABS" value="false" />
+ <option name="LABEL_INDENT_SIZE" value="0" />
+ <option name="LABEL_INDENT_ABSOLUTE" value="false" />
+ <option name="USE_RELATIVE_INDENTS" value="false" />
+ </ADDITIONAL_INDENT_OPTIONS>
+ </value>
+ </option>
+ </component>
+</project>
+
View
7 skeinforge/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="" vcs="" />
+ </component>
+</project>
+
View
597 skeinforge/.idea/workspace.xml
@@ -0,0 +1,597 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ChangeListManager">
+ <list default="true" id="9e5fd901-3f48-42b9-af1d-73dbd652ce37" name="Default" comment="" />
+ <ignored path="SF45.iws" />
+ <ignored path=".idea/workspace.xml" />
+ <option name="TRACKING_ENABLED" value="true" />
+ <option name="SHOW_DIALOG" value="false" />
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+ <option name="LAST_RESOLUTION" value="IGNORE" />
+ </component>
+ <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
+ <component name="CreatePatchCommitExecutor">
+ <option name="PATCH_PATH" value="" />
+ <option name="REVERSE_PATCH" value="false" />
+ </component>
+ <component name="DaemonCodeAnalyzer">
+ <disable_hints />
+ </component>
+ <component name="DatabaseView">
+ <flatten value="false" />
+ <groupTables value="false" />
+ </component>
+ <component name="FavoritesManager">
+ <favorites_list name="SF45" />
+ </component>
+ <component name="FileEditorManager">
+ <leaf>
+ <file leaf-file-name="fill.py" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="911" column="71" selection-start="47250" selection-end="47250" vertical-scroll-proportion="-10.846154">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="version.txt" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/fabmetheus_utilities/version.txt">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="0" column="22" selection-start="22" selection-end="22" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="skeinforge.py" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="492" column="12" selection-start="24137" selection-end="24149" vertical-scroll-proportion="-7.576923">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="archive.py" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/fabmetheus_utilities/archive.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="14" column="54" selection-start="305" selection-end="346" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="fabmetheus_utilities.archive.html" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.archive.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="84" column="47" selection-start="13952" selection-end="13952" vertical-scroll-proportion="-6.8846154">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="fabmetheus_utilities.euclidean.html" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.euclidean.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="501" column="47" selection-start="70750" selection-end="70750" vertical-scroll-proportion="-7.6153846">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret.html" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="91" column="47" selection-start="7282" selection-end="7282" vertical-scroll-proportion="-8.807693">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="fabmetheus_utilities.fabmetheus_tools.interpret_plugins.csv.html" pinned="false" current="true" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.fabmetheus_tools.interpret_plugins.csv.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="207" column="4" selection-start="17280" selection-end="17280" vertical-scroll-proportion="0.66056913">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="extrusion.py" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="30" column="120" selection-start="1566" selection-end="1566" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="speed.py" pinned="false" current="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="224" column="0" selection-start="10945" selection-end="10945" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ </leaf>
+ </component>
+ <component name="FindManager">
+ <FindUsagesManager>
+ <setting name="OPEN_NEW_TAB" value="false" />
+ </FindUsagesManager>
+ </component>
+ <component name="IdeDocumentHistory">
+ <option name="changedFiles">
+ <list>
+ <option value="$PROJECT_DIR$/models/xml_models/tetra.xml" />
+ <option value="$PROJECT_DIR$/models/xml_models/tetrawedge.xml" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/clip.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/carve.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/jitter.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/export.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/analyze_plugins/statistic.py" />
+ <option value="$PROJECT_DIR$/fabmetheus_utilities/archive.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/inset.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/skin.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py" />
+ <option value="$PROJECT_DIR$/fabmetheus_utilities/version.txt" />
+ <option value="$PROJECT_DIR$/skeinforge_application/skeinforge.py" />
+ </list>
+ </option>
+ </component>
+ <component name="ProjectLevelVcsManager" settingsEditedManually="false">
+ <OptionsSetting value="true" id="Add" />
+ <OptionsSetting value="true" id="Remove" />
+ <OptionsSetting value="true" id="Checkout" />
+ <OptionsSetting value="true" id="Update" />
+ <OptionsSetting value="true" id="Status" />
+ <OptionsSetting value="true" id="Edit" />
+ <ConfirmationsSetting value="0" id="Add" />
+ <ConfirmationsSetting value="0" id="Remove" />
+ </component>
+ <component name="ProjectReloadState">
+ <option name="STATE" value="0" />
+ </component>
+ <component name="ProjectView">
+ <navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
+ <flattenPackages />
+ <showMembers />
+ <showModules />
+ <showLibraryContents />
+ <hideEmptyPackages />
+ <abbreviatePackageNames />
+ <autoscrollToSource />
+ <autoscrollFromSource />
+ <sortByType />
+ </navigator>
+ <panes>
+ <pane id="ProjectPane">
+ <subPane>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="SF45" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="SF45" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="SF45" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="SF45" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="SF45" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="skeinforge_application" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="SF45" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="SF45" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="skeinforge_application" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="skeinforge_plugins" />
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+ </PATH_ELEMENT>
+ </PATH>
+ </subPane>
+ </pane>
+ <pane id="Favorites" />
+ <pane id="Scope" />
+ </panes>
+ </component>
+ <component name="PropertiesComponent">
+ <property name="options.splitter.main.proportions" value="0.3" />
+ <property name="WebServerToolWindowFactoryState" value="false" />
+ <property name="options.lastSelected" value="preferences.sourceCode.General" />
+ <property name="recentsLimit" value="5" />
+ <property name="options.searchVisible" value="true" />
+ <property name="options.splitter.details.proportions" value="0.2" />
+ </component>
+ <component name="RunManager" selected="Python.skeinforge">
+ <configuration default="false" name="synopsis" type="PythonConfigurationType" factoryName="Python" temporary="true">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs>
+ <env name="PYTHONUNBUFFERED" value="1" />
+ </envs>
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/analyze_plugins" />
+ <option name="IS_MODULE_SDK" value="true" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/analyze_plugins/synopsis.py" />
+ <option name="PARAMETERS" value="" />
+ <RunnerSettings RunnerId="PythonRunner" />
+ <ConfigurationWrapper RunnerId="PythonRunner" />
+ <method />
+ </configuration>
+ <configuration default="false" name="skeinforge" type="PythonConfigurationType" factoryName="Python" temporary="true">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs>
+ <env name="PYTHONUNBUFFERED" value="1" />
+ </envs>
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/skeinforge_application" />
+ <option name="IS_MODULE_SDK" value="true" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/skeinforge_application/skeinforge.py" />
+ <option name="PARAMETERS" value="" />
+ <RunnerSettings RunnerId="PyDebugRunner" />
+ <RunnerSettings RunnerId="PythonRunner" />
+ <ConfigurationWrapper RunnerId="PyDebugRunner" />
+ <ConfigurationWrapper RunnerId="PythonRunner" />
+ <method />
+ </configuration>
+ <configuration default="false" name="export" type="PythonConfigurationType" factoryName="Python" temporary="true">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs>
+ <env name="PYTHONUNBUFFERED" value="1" />
+ </envs>
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins" />
+ <option name="IS_MODULE_SDK" value="true" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/export.py" />
+ <option name="PARAMETERS" value="" />
+ <RunnerSettings RunnerId="PythonRunner" />
+ <ConfigurationWrapper RunnerId="PythonRunner" />
+ <method />
+ </configuration>
+ <configuration default="false" name="speed" type="PythonConfigurationType" factoryName="Python" temporary="true">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs>
+ <env name="PYTHONUNBUFFERED" value="1" />
+ </envs>
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins" />
+ <option name="IS_MODULE_SDK" value="true" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py" />
+ <option name="PARAMETERS" value="" />
+ <RunnerSettings RunnerId="PythonRunner" />
+ <ConfigurationWrapper RunnerId="PythonRunner" />
+ <method />
+ </configuration>
+ <configuration default="false" name="raft" type="PythonConfigurationType" factoryName="Python" temporary="true">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs>
+ <env name="PYTHONUNBUFFERED" value="1" />
+ </envs>
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins" />
+ <option name="IS_MODULE_SDK" value="true" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/raft.py" />
+ <option name="PARAMETERS" value="" />
+ <RunnerSettings RunnerId="PythonRunner" />
+ <ConfigurationWrapper RunnerId="PythonRunner" />
+ <method />
+ </configuration>
+ <configuration default="true" type="PythonUnitTestConfigurationType" factoryName="Python's unittest">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="FOLDER_NAME" value="" />
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
+ <option name="PATTERN" value="" />
+ <option name="PUREUNITTEST" value="true" />
+ <method />
+ </configuration>
+ <configuration default="true" type="PythonConfigurationType" factoryName="Python">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs>
+ <env name="PYTHONUNBUFFERED" value="1" />
+ </envs>
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="PARAMETERS" value="" />
+ <method />
+ </configuration>
+ <configuration default="true" type="PythonDocTestRunConfigurationType" factoryName="Python's doctests">
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <envs />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <module name="SF45" />
+ <option name="SCRIPT_NAME" value="" />
+ <option name="CLASS_NAME" value="" />
+ <option name="METHOD_NAME" value="" />
+ <option name="FOLDER_NAME" value="" />
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
+ <option name="PATTERN" value="" />
+ <method />
+ </configuration>
+ <list size="5">
+ <item index="0" class="java.lang.String" itemvalue="Python.synopsis" />
+ <item index="1" class="java.lang.String" itemvalue="Python.skeinforge" />
+ <item index="2" class="java.lang.String" itemvalue="Python.export" />
+ <item index="3" class="java.lang.String" itemvalue="Python.speed" />
+ <item index="4" class="java.lang.String" itemvalue="Python.raft" />
+ </list>
+ </component>
+ <component name="ShelveChangesManager" show_recycled="false" />
+ <component name="SvnConfiguration" maxAnnotateRevisions="500">
+ <option name="USER" value="" />
+ <option name="PASSWORD" value="" />
+ <option name="mySSHConnectionTimeout" value="30000" />
+ <option name="mySSHReadTimeout" value="30000" />
+ <option name="LAST_MERGED_REVISION" />
+ <option name="MERGE_DRY_RUN" value="false" />
+ <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
+ <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
+ <option name="IGNORE_SPACES_IN_MERGE" value="false" />
+ <option name="DETECT_NESTED_COPIES" value="true" />
+ <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
+ <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
+ <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
+ <option name="FORCE_UPDATE" value="false" />
+ <configuration useDefault="true">C:\Users\Ahmet\AppData\Roaming\Subversion</configuration>
+ <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
+ </component>
+ <component name="TaskManager">
+ <task active="true" id="Default" summary="Default task">
+ <changelist id="9e5fd901-3f48-42b9-af1d-73dbd652ce37" name="Default" comment="" />
+ <created>1314431059651</created>
+ <updated>1314431059651</updated>
+ </task>
+ <servers />
+ </component>
+ <component name="TodoView" selected-index="0">
+ <todo-panel id="selected-file">
+ <are-packages-shown value="false" />
+ <are-modules-shown value="false" />
+ <flatten-packages value="false" />
+ <is-autoscroll-to-source value="false" />
+ </todo-panel>
+ <todo-panel id="all">
+ <are-packages-shown value="false" />
+ <are-modules-shown value="false" />
+ <flatten-packages value="false" />
+ <is-autoscroll-to-source value="false" />
+ </todo-panel>
+ <todo-panel id="default-changelist">
+ <are-packages-shown value="false" />
+ <are-modules-shown value="false" />
+ <flatten-packages value="false" />
+ <is-autoscroll-to-source value="false" />
+ </todo-panel>
+ </component>
+ <component name="ToolWindowManager">
+ <frame x="-8" y="-8" width="1936" height="1176" extended-state="7" />
+ <editor active="false" />
+ <layout>
+ <window_info id="Data Sources" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3292683" sideWeight="0.5232816" order="-1" side_tool="false" content_ui="tabs" />
+ <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.27938342" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.44123313" sideWeight="0.9989919" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21122995" sideWeight="0.24373795" order="1" side_tool="true" content_ui="tabs" />
+ <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21122995" sideWeight="0.3073218" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4767184" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+ </layout>
+ </component>
+ <component name="VcsManagerConfiguration">
+ <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
+ <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
+ <option name="CHECK_NEW_TODO" value="true" />
+ <option name="myTodoPanelSettings">
+ <value>
+ <are-packages-shown value="false" />
+ <are-modules-shown value="false" />
+ <flatten-packages value="false" />
+ <is-autoscroll-to-source value="false" />
+ </value>
+ </option>
+ <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
+ <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
+ <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
+ <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
+ <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
+ <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
+ <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
+ <option name="ENABLE_BACKGROUND_PROCESSES" value="false" />
+ <option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
+ <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
+ <option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
+ <option name="DEFAULT_PATCH_EXTENSION" value="patch" />
+ <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
+ <option name="LAST_COMMIT_MESSAGE" />
+ <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
+ <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
+ <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
+ <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
+ <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
+ <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
+ <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
+ <option name="ACTIVE_VCS_NAME" />
+ <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
+ <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
+ <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
+ <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
+ </component>
+ <component name="XDebuggerManager">
+ <breakpoint-manager />
+ </component>
+ <component name="editorHistoryManager">
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/dimension.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="302" column="22" selection-start="15304" selection-end="15304" vertical-scroll-proportion="0.902439" />
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/fabmetheus_utilities/svg_writer.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="113" column="25" selection-start="4093" selection-end="4093" vertical-scroll-proportion="0.0" />
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/sfact_profiles/profiles/extrusion.csv">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/skin.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="168" column="115" selection-start="8431" selection-end="8431" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/fabmetheus_utilities/euclidean.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="2068" column="4" selection-start="79968" selection-end="79968" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/whittle.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="9" column="18" selection-start="502" selection-end="502" vertical-scroll-proportion="0.09497207">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/speed.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="224" column="0" selection-start="10945" selection-end="10945" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="30" column="120" selection-start="1566" selection-end="1566" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge_plugins/craft_plugins/fill.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="911" column="71" selection-start="47250" selection-end="47250" vertical-scroll-proportion="-10.846154">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/fabmetheus_utilities/version.txt">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="0" column="22" selection-start="22" selection-end="22" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/skeinforge_application/skeinforge.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="492" column="12" selection-start="24137" selection-end="24149" vertical-scroll-proportion="-7.576923">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/fabmetheus_utilities/archive.py">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="14" column="54" selection-start="305" selection-end="346" vertical-scroll-proportion="0.0">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.archive.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="84" column="47" selection-start="13952" selection-end="13952" vertical-scroll-proportion="-6.8846154">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.euclidean.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="501" column="47" selection-start="70750" selection-end="70750" vertical-scroll-proportion="-7.6153846">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="91" column="47" selection-start="7282" selection-end="7282" vertical-scroll-proportion="-8.807693">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/documentation/fabmetheus_utilities.fabmetheus_tools.interpret_plugins.csv.html">
+ <provider selected="true" editor-type-id="text-editor">
+ <state line="207" column="4" selection-start="17280" selection-end="17280" vertical-scroll-proportion="0.66056913">
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </component>
+</project>
+
View
182 skeinforge/SFACT Readme.txt
@@ -0,0 +1,182 @@
+I have modified Skeinforge to be more practical and easier to tune. features include:
+
+
+A more up to date version could be found at http://dl.dropbox.com/u/38819298/SFACT%20Readme.txt
+
+Also trying to get the SFACT wiki up and running: https://github.com/ahmetcemturan/SFACT/wiki
+
+SFACT is at home: http://www.reprapfordummies.net
+
+
+
+
+-Will not mess up your old Skeinforge settings as it will use its own sfact_settings directory inside its own folder.
+
+-Deleted unused plugins and unused settings.
+
+-Namings changed to be more understandable.
+
+-Important settings moved to top of Plugin Tab.
+
+-Default values give good prints rightaway.
+
+-Internally used Gcode files use extension .gmc now.
+
+-Most Feedrates are now entered as values (mm/s) and their respective flowrates are 1 so you dont have to enter everything twice.
+
+ CARVE:
+
+-Extrusion width is now entered in mm instead of a ratio to layer height.
+
+CHAMBER:
+
+-Moved Turn Extruder off at shutdown to Chamber.
+
+-Added Turn PrintBed off at shutdown.
+
+CLIP:
+
+Clip over Perimeter width is now calculated automatically. The default is 1 and can be tuned from there.
+
+DIMENSION:
+
+-Added feature for calibration.
+
+-Retract can be set conditionally depending on extrusion amount before retract and the travel move in retracted state. Also retract can be forced to happen if moving over loops.
+
+EXPORT:
+
+Replaced Export plugin with Gary Hodgson's plugin.
+
+-Option to export settings as Zip file or a single CSV file for sharing.
+
+-Option to individually name the exported gcode files with description, timestamp and profile used.
+
+FILL:
+
+-Infill width over layerthickness setting is replaced by Extrusion Lines Extra spacing.
+
+-Extrusion Lines Extra spacing is calculated automatically and defaults to 1 for tuning.
+
+-Infill Overlap over Perimeter is also calculated internally and defaults to 1 so it can be easily tweaked.
+
+INSET:
+
+The inset value is now Overlap Removal and is also calculated internally with default 1 for tweaking.
+
+PREFACE:
+
+-Added the option to send Extruder reset (G92 E0) command before print so that the extruder does not spool back after priming. (Even without start.gmc file)
+
+RAFT:
+
+-Ordering, grouping and namings changed to reflect the use of interface settings for the support structures.
+
+-Support feedrate and support flowrate can be set seperately.
+
+-Support extension(s) are now more understandable.
+
+-First Layer feedrates are given in mm/s instead of a ratio to the main feedrate.
+-A travel feedrate for the first layer can be specified now.