MrDraw/SkeinPyPy/documentation/skeinforge_application.skeinforge_plugins.craft_plugins.inset.html
daid 77d04ceab8 Removed patches for different skeinforge versions. Only SF48 now.
Updated build script to create win32/linux/macos versions.
Fixed the defaults to they work with PLA.
Fixed the temperature plugin default "ON" problem.
Removed all profiles except for PLA.
2012-02-10 17:20:03 +01:00

210 lines
No EOL
17 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module skeinforge_application.skeinforge_plugins.craft_plugins.inset</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.craft_plugins.html"><font color="#ffffff">craft_plugins</font></a>.inset</strong></big></big> ($Date: 2008/02/05 $)</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/craft_plugins/inset.py">/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/skeinforge_application/skeinforge_plugins/craft_plugins/inset.py</a></font></td></tr></table>
<p>
<a href="skeinforge_application.skeinforge_plugins.craft_plugins.hop.html">Previous</a> / <a href="skeinforge_application.skeinforge_plugins.craft_plugins.jitter.html">Next</a> / <a href="contents.html">Contents</a>
</p>
<p><tt><br>
Inset will inset the outside outlines by half the edge width, and outset the inside outlines by the same amount.<br>
<br>
The inset manual page is at:<br>
<a href="http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Inset">http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge_Inset</a><br>
<br>
<br />
<a href="#Settings">Settings</a><br />
&nbsp;&nbsp;<a href="#Add Custom Code for Temperature Reading">Add Custom Code for Temperature Reading</a><br />
&nbsp;&nbsp;<a href="#Infill in Direction of Bridge">Infill in Direction of Bridge</a><br />
&nbsp;&nbsp;<a href="#Loop Order Choice">Loop Order Choice</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Ascending Area">Ascending Area</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Descending Area">Descending Area</a><br />
&nbsp;&nbsp;<a href="#Overlap Removal Width over Perimeter Width">Overlap Removal Width over Perimeter Width</a><br />
&nbsp;&nbsp;<a href="#Turn Extruder Heater Off at Shut Down">Turn Extruder Heater Off at Shut Down</a><br />
<a href="#Examples">Examples</a><br />
<br />
<a name="Settings" id="Settings"></a><h2>Settings</h2>
<hr>
<a name="Add Custom Code for Temperature Reading" id="Add Custom Code for Temperature Reading"></a><h3>Add Custom Code for Temperature Reading</h3>
Default is on.<br>
<br>
When selected, the M105 custom code for temperature reading will be added at the beginning of the file.<br>
<br>
<a name="Infill in Direction of Bridge" id="Infill in Direction of Bridge"></a><h3>Infill in Direction of Bridge</h3>
Default is on.<br>
<br>
When selected, the infill will be in the direction of any bridge across a gap, so that the fill will be able to span a bridge easier.<br>
<br>
<a name="Loop Order Choice" id="Loop Order Choice"></a><h3>Loop Order Choice</h3>
Default loop order choice is 'Ascending Area'.<br>
<br>
When overlap is to be removed, for each loop, the overlap is checked against the list of loops already extruded. If the latest loop overlaps an already extruded loop, the overlap is removed from the latest loop. The loops are ordered according to their areas.<br>
<br>
<a name="Ascending Area" id="Ascending Area"></a><h4>Ascending Area</h4>
When selected, the loops will be ordered in ascending area. With thin walled parts, if overlap is being removed the outside of the container will not be extruded. Holes will be the correct size.<br>
<br>
<a name="Descending Area" id="Descending Area"></a><h4>Descending Area</h4>
When selected, the loops will be ordered in descending area. With thin walled parts, if overlap is being removed the inside of the container will not be extruded. Holes will be missing the interior wall so they will be slightly wider than model size.<br>
<br>
<a name="Overlap Removal Width over Perimeter Width" id="Overlap Removal Width over Perimeter Width"></a><h3>Overlap Removal Width over Perimeter Width</h3>
Default is 0.6.<br>
<br>
Defines the ratio of the overlap removal width over the edge width. Any part of the extrusion that comes within the overlap removal width of another is removed. This is to prevent the extruder from depositing two extrusions right beside each other. If the 'Overlap Removal Width over Perimeter Width' is less than 0.2, the overlap will not be removed.<br>
<br>
<a name="Turn Extruder Heater Off at Shut Down" id="Turn Extruder Heater Off at Shut Down"></a><h3>Turn Extruder Heater Off at Shut Down</h3>
Default is on.<br>
<br>
When selected, the M104 S0 gcode line will be added to the end of the file to turn the extruder heater off by setting the extruder heater temperature to 0.<br>
<br>
<a name="Examples" id="Examples"></a><h2>Examples</h2>
<hr>
The following examples inset the file Screw Holder Bottom.stl. The examples are run in a terminal in the folder which contains Screw Holder Bottom.stl and inset.py.<br>
<br>
&gt; python inset.py<br>
This brings up the inset dialog.<br>
<br>
&gt; python inset.py Screw Holder Bottom.stl<br>
The inset tool is parsing the file:<br>
Screw Holder Bottom.stl<br>
..<br>
The inset tool has created the file:<br>
.. Screw Holder Bottom_inset.gcode</tt>
<br />
<br />
<p>
<a href="skeinforge_application.skeinforge_plugins.craft_plugins.hop.html">Previous</a> / <a href="skeinforge_application.skeinforge_plugins.craft_plugins.jitter.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="cmath.html">cmath</a><br>
<a href="fabmetheus_utilities.euclidean.html">fabmetheus_utilities.euclidean</a><br>
</td><td width="25%" valign=top><a href="fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret.html">fabmetheus_utilities.fabmetheus_tools.fabmetheus_interpret</a><br>
<a href="fabmetheus_utilities.gcodec.html">fabmetheus_utilities.gcodec</a><br>
<a href="fabmetheus_utilities.intercircle.html">fabmetheus_utilities.intercircle</a><br>
<a href="math.html">math</a><br>
</td><td width="25%" valign=top><a href="os.html">os</a><br>
<a href="fabmetheus_utilities.settings.html">fabmetheus_utilities.settings</a><br>
<a href="skeinforge_application.skeinforge_utilities.skeinforge_craft.html">skeinforge_application.skeinforge_utilities.skeinforge_craft</a><br>
<a href="skeinforge_application.skeinforge_utilities.skeinforge_polyfile.html">skeinforge_application.skeinforge_utilities.skeinforge_polyfile</a><br>
</td><td width="25%" valign=top><a href="skeinforge_application.skeinforge_utilities.skeinforge_profile.html">skeinforge_application.skeinforge_utilities.skeinforge_profile</a><br>
<a href="sys.html">sys</a><br>
<a href="fabmetheus_utilities.geometry.solids.triangle_mesh.html">fabmetheus_utilities.geometry.solids.triangle_mesh</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.craft_plugins.inset.html#InsetRepository">InsetRepository</a>
</font></dt><dt><font face="helvetica, arial"><a href="skeinforge_application.skeinforge_plugins.craft_plugins.inset.html#InsetSkein">InsetSkein</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="InsetRepository">class <strong>InsetRepository</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;inset&nbsp;settings.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="InsetRepository-__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="InsetRepository-execute"><strong>execute</strong></a>(self)</dt><dd><tt>Inset&nbsp;button&nbsp;has&nbsp;been&nbsp;clicked.</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="InsetSkein">class <strong>InsetSkein</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;inset&nbsp;a&nbsp;skein&nbsp;of&nbsp;extrusions.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="InsetSkein-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Initialize.</tt></dd></dl>
<dl><dt><a name="InsetSkein-addGcodeFromPerimeterPaths"><strong>addGcodeFromPerimeterPaths</strong></a>(self, isIntersectingSelf, loop, loopLayer, loopLists, radius)</dt><dd><tt>Add&nbsp;the&nbsp;edge&nbsp;paths&nbsp;to&nbsp;the&nbsp;output.</tt></dd></dl>
<dl><dt><a name="InsetSkein-addGcodeFromRemainingLoop"><strong>addGcodeFromRemainingLoop</strong></a>(self, loop, loopLayer, loopLists, radius)</dt><dd><tt>Add&nbsp;the&nbsp;remainder&nbsp;of&nbsp;the&nbsp;loop&nbsp;which&nbsp;does&nbsp;not&nbsp;overlap&nbsp;the&nbsp;alreadyFilledArounds&nbsp;loops.</tt></dd></dl>
<dl><dt><a name="InsetSkein-addGcodePerimeterBlockFromRemainingLoop"><strong>addGcodePerimeterBlockFromRemainingLoop</strong></a>(self, loop, loopLayer, loopLists, radius)</dt><dd><tt>Add&nbsp;the&nbsp;perimter&nbsp;block&nbsp;remainder&nbsp;of&nbsp;the&nbsp;loop&nbsp;which&nbsp;does&nbsp;not&nbsp;overlap&nbsp;the&nbsp;alreadyFilledArounds&nbsp;loops.</tt></dd></dl>
<dl><dt><a name="InsetSkein-addInitializationToOutput"><strong>addInitializationToOutput</strong></a>(self)</dt><dd><tt>Add&nbsp;initialization&nbsp;gcode&nbsp;to&nbsp;the&nbsp;output.</tt></dd></dl>
<dl><dt><a name="InsetSkein-addInset"><strong>addInset</strong></a>(self, loopLayer)</dt><dd><tt>Add&nbsp;inset&nbsp;to&nbsp;the&nbsp;layer.</tt></dd></dl>
<dl><dt><a name="InsetSkein-getCraftedGcode"><strong>getCraftedGcode</strong></a>(self, gcodeText, repository)</dt><dd><tt>Parse&nbsp;gcode&nbsp;text&nbsp;and&nbsp;store&nbsp;the&nbsp;bevel&nbsp;gcode.</tt></dd></dl>
<dl><dt><a name="InsetSkein-parseInitialization"><strong>parseInitialization</strong></a>(self)</dt><dd><tt>Parse&nbsp;gcode&nbsp;initialization&nbsp;and&nbsp;store&nbsp;the&nbsp;parameters.</tt></dd></dl>
<dl><dt><a name="InsetSkein-parseLine"><strong>parseLine</strong></a>(self, line)</dt><dd><tt>Parse&nbsp;a&nbsp;gcode&nbsp;line&nbsp;and&nbsp;add&nbsp;it&nbsp;to&nbsp;the&nbsp;inset&nbsp;skein.</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="-addAlreadyFilledArounds"><strong>addAlreadyFilledArounds</strong></a>(alreadyFilledArounds, loop, radius)</dt><dd><tt>Add&nbsp;already&nbsp;filled&nbsp;loops&nbsp;around&nbsp;loop&nbsp;to&nbsp;alreadyFilledArounds.</tt></dd></dl>
<dl><dt><a name="-addSegmentOutline"><strong>addSegmentOutline</strong></a>(isThick, outlines, pointBegin, pointEnd, width)</dt><dd><tt>Add&nbsp;a&nbsp;diamond&nbsp;or&nbsp;hexagonal&nbsp;outline&nbsp;for&nbsp;a&nbsp;line&nbsp;segment.</tt></dd></dl>
<dl><dt><a name="-getBridgeDirection"><strong>getBridgeDirection</strong></a>(belowLoops, layerLoops, radius)</dt><dd><tt>Get&nbsp;span&nbsp;direction&nbsp;for&nbsp;the&nbsp;majority&nbsp;of&nbsp;the&nbsp;overhanging&nbsp;extrusion&nbsp;edge,&nbsp;if&nbsp;any.</tt></dd></dl>
<dl><dt><a name="-getCraftedText"><strong>getCraftedText</strong></a>(fileName, text<font color="#909090">=''</font>, repository<font color="#909090">=None</font>)</dt><dd><tt>Inset&nbsp;the&nbsp;preface&nbsp;file&nbsp;or&nbsp;text.</tt></dd></dl>
<dl><dt><a name="-getCraftedTextFromText"><strong>getCraftedTextFromText</strong></a>(gcodeText, repository<font color="#909090">=None</font>)</dt><dd><tt>Inset&nbsp;the&nbsp;preface&nbsp;gcode&nbsp;text.</tt></dd></dl>
<dl><dt><a name="-getDoubledRoundZ"><strong>getDoubledRoundZ</strong></a>(overhangingSegment, segmentRoundZ)</dt><dd><tt>Get&nbsp;doubled&nbsp;plane&nbsp;angle&nbsp;around&nbsp;z&nbsp;of&nbsp;the&nbsp;overhanging&nbsp;segment.</tt></dd></dl>
<dl><dt><a name="-getInteriorSegments"><strong>getInteriorSegments</strong></a>(loops, segments)</dt><dd><tt>Get&nbsp;segments&nbsp;inside&nbsp;the&nbsp;loops.</tt></dd></dl>
<dl><dt><a name="-getIsIntersectingWithinList"><strong>getIsIntersectingWithinList</strong></a>(loop, loopList)</dt><dd><tt>Determine&nbsp;if&nbsp;the&nbsp;loop&nbsp;is&nbsp;intersecting&nbsp;or&nbsp;is&nbsp;within&nbsp;the&nbsp;loop&nbsp;list.</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="-getOverhangDirection"><strong>getOverhangDirection</strong></a>(belowOutsetLoops, segmentBegin, segmentEnd)</dt><dd><tt>Add&nbsp;to&nbsp;span&nbsp;direction&nbsp;from&nbsp;the&nbsp;endpoint&nbsp;segments&nbsp;which&nbsp;overhang&nbsp;the&nbsp;layer&nbsp;below.</tt></dd></dl>
<dl><dt><a name="-getSegmentsFromLoopListsPoints"><strong>getSegmentsFromLoopListsPoints</strong></a>(loopLists, pointBegin, pointEnd)</dt><dd><tt>Get&nbsp;endpoint&nbsp;segments&nbsp;from&nbsp;the&nbsp;beginning&nbsp;and&nbsp;end&nbsp;of&nbsp;a&nbsp;line&nbsp;segment.</tt></dd></dl>
<dl><dt><a name="-isCloseToLast"><strong>isCloseToLast</strong></a>(paths, point, radius)</dt><dd><tt>Determine&nbsp;if&nbsp;the&nbsp;point&nbsp;is&nbsp;close&nbsp;to&nbsp;the&nbsp;last&nbsp;point&nbsp;of&nbsp;the&nbsp;last&nbsp;path.</tt></dd></dl>
<dl><dt><a name="-isIntersectingItself"><strong>isIntersectingItself</strong></a>(loop, width)</dt><dd><tt>Determine&nbsp;if&nbsp;the&nbsp;loop&nbsp;is&nbsp;intersecting&nbsp;itself.</tt></dd></dl>
<dl><dt><a name="-isIntersectingWithinLists"><strong>isIntersectingWithinLists</strong></a>(loop, loopLists)</dt><dd><tt>Determine&nbsp;if&nbsp;the&nbsp;loop&nbsp;is&nbsp;intersecting&nbsp;or&nbsp;is&nbsp;within&nbsp;the&nbsp;loop&nbsp;lists.</tt></dd></dl>
<dl><dt><a name="-main"><strong>main</strong></a>()</dt><dd><tt>Display&nbsp;the&nbsp;inset&nbsp;dialog.</tt></dd></dl>
<dl><dt><a name="-writeOutput"><strong>writeOutput</strong></a>(fileName, shouldAnalyze<font color="#909090">=True</font>)</dt><dd><tt>Inset&nbsp;the&nbsp;carving&nbsp;of&nbsp;a&nbsp;gcode&nbsp;file.</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>__date__</strong> = '$Date: 2008/02/05 $'<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>
</body></html>