Initial file commit
This commit is contained in:
parent
c804a693a8
commit
364393dffe
102
boxes.py.AllEdges.inx
Normal file
102
boxes.py.AllEdges.inx
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>AllEdges</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.AllEdges</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">alledges</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="AllEdges">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="4" _gui-text="Hinges and HingePins">
|
||||||
|
<param name="Hinge_grip_percentage" type="int" max="9999" _gui-text="grip_percentage" gui-description="">0</param>
|
||||||
|
<param name="Hinge_outset" type="boolean" max="9999" _gui-text="outset" gui-description="have lid overlap at the sides (similar to OutSetEdge)">False</param>
|
||||||
|
<param name="Hinge_pinwidth" type="float" precision="2" max="9999" _gui-text="pinwidth" gui-description="set to lower value to get disks surrounding the pins">0.5</param>
|
||||||
|
<param name="Hinge_style" type="enum" _gui-text="style" gui-description='"outset" or "flush"'>
|
||||||
|
<item value="outset" selected="selected">outset</item>
|
||||||
|
<item value="flush">flush</item>
|
||||||
|
</param>
|
||||||
|
<param name="Hinge_axle" type="int" max="9999" _gui-text="axle" gui-description="diameter of the pin hole">2</param>
|
||||||
|
<param name="Hinge_grip_length" type="int" max="9999" _gui-text="grip_length" gui-description="fixed length of the grips on he lids">0</param>
|
||||||
|
<param name="Hinge_hingestrength" type="int" max="9999" _gui-text="hingestrength" gui-description="thickness of the arc holding the pin in place">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="5" _gui-text="Slide-on Lids">
|
||||||
|
<param name="Lid_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="Lid_second_pin" type="boolean" max="9999" _gui-text="second_pin" gui-description="">True</param>
|
||||||
|
<param name="Lid_spring" type="enum" _gui-text="spring" gui-description="">
|
||||||
|
<item value="both" selected="selected">both</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
<item value="left">left</item>
|
||||||
|
<item value="right">right</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="Lid_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="Lid_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">3.0</param>
|
||||||
|
<param name="Lid_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.05</param>
|
||||||
|
<param name="Lid_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="Lid_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="6" _gui-text="Click-on Lids">
|
||||||
|
<param name="Click_angle" type="int" max="9999" _gui-text="angle" gui-description="">5</param>
|
||||||
|
<param name="Click_bottom_radius" type="float" precision="2" max="9999" _gui-text="bottom_radius" gui-description="">0.1</param>
|
||||||
|
<param name="Click_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="7" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
58
boxes.py.AngledBox.inx
Normal file
58
boxes.py.AngledBox.inx
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>AngledBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.AngledBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">angledbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="AngledBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="n" type="int" max="9999" _gui-text="n" gui-description="number of walls at one side (1+)">5</param>
|
||||||
|
<param name="top" type="enum" _gui-text="top" gui-description="style of the top and lid">
|
||||||
|
<item value="none" selected="selected">none</item>
|
||||||
|
<item value="angled hole">angled hole</item>
|
||||||
|
<item value="angled lid">angled lid</item>
|
||||||
|
<item value="angled lid2">angled lid2</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
50
boxes.py.AngledCutJig.inx
Normal file
50
boxes.py.AngledCutJig.inx
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>AngledCutJig</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.AngledCutJig</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">angledcutjig</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="AngledCutJig">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">50</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100</param>
|
||||||
|
<param name="angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="Angle of the cut">45.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
50
boxes.py.Arcade.inx
Normal file
50
boxes.py.Arcade.inx
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Arcade</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Arcade</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">arcade</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Arcade">
|
||||||
|
<param name="width" type="float" precision="2" max="9999" _gui-text="width" gui-description="inner width of the console">450.0</param>
|
||||||
|
<param name="monitor_height" type="float" precision="2" max="9999" _gui-text="monitor_height" gui-description="inner width of the console">350.0</param>
|
||||||
|
<param name="keyboard_depth" type="float" precision="2" max="9999" _gui-text="keyboard_depth" gui-description="inner width of the console">150.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
36
boxes.py.BayonetBox.inx
Normal file
36
boxes.py.BayonetBox.inx
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>BayonetBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.BayonetBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">bayonetbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="BayonetBox">
|
||||||
|
<param name="diameter" type="float" precision="2" max="9999" _gui-text="diameter" gui-description="Diameter of the box in mm">50.0</param>
|
||||||
|
<param name="lugs" type="int" max="9999" _gui-text="lugs" gui-description="number of locking lugs">10</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.BinTray.inx
Normal file
52
boxes.py.BinTray.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>BinTray</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.BinTray</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">bintray</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="BinTray">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">50*3</param>
|
||||||
|
<param name="sy" type="string" max="9999" _gui-text="sy" gui-description='sections back to front in mm. Possible formats: overallwidth/numberof sections e.g. "250/5"; sectionwidth*numberofsections e.g. "50*5"; section widths separated by ":" e.g. "30:25.5:70'>50*3</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="front" type="float" precision="2" max="9999" _gui-text="front" gui-description="fraction of bin height covert with slope">0.4</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0.5</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
50
boxes.py.BurnTest.inx
Normal file
50
boxes.py.BurnTest.inx
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>BurnTest</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.BurnTest</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">burntest</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="BurnTest">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100</param>
|
||||||
|
<param name="step" type="float" precision="2" max="9999" _gui-text="step" gui-description="increases in burn value between the sides">0.01</param>
|
||||||
|
<param name="pairs" type="int" max="9999" _gui-text="pairs" gui-description="number of pairs (each testing four burn values)">2</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
51
boxes.py.CardBox.inx
Normal file
51
boxes.py.CardBox.inx
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>CardBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.CardBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">cardbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="CardBox">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">30</param>
|
||||||
|
<param name="cardwidth" type="float" precision="2" max="9999" _gui-text="cardwidth" gui-description="Width of the cards">65</param>
|
||||||
|
<param name="cardheight" type="float" precision="2" max="9999" _gui-text="cardheight" gui-description="Height of the cards">90</param>
|
||||||
|
<param name="num" type="int" max="9999" _gui-text="num" gui-description="number of compartments">2</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
47
boxes.py.Castle.inx
Normal file
47
boxes.py.Castle.inx
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Castle</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Castle</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">castle</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Castle">
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Unstable"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
51
boxes.py.ClosedBox.inx
Normal file
51
boxes.py.ClosedBox.inx
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>ClosedBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.ClosedBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">closedbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="ClosedBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
40
boxes.py.ConcaveKnob.inx
Normal file
40
boxes.py.ConcaveKnob.inx
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>ConcaveKnob</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.ConcaveKnob</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">concaveknob</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="ConcaveKnob">
|
||||||
|
<param name="diameter" type="float" precision="2" max="9999" _gui-text="diameter" gui-description="Diameter of the knob (mm)">50.0</param>
|
||||||
|
<param name="serrations" type="int" max="9999" _gui-text="serrations" gui-description="Number of serrations">3</param>
|
||||||
|
<param name="rounded" type="float" precision="2" max="9999" _gui-text="rounded" gui-description="Amount of circumference used for non convex parts">0.2</param>
|
||||||
|
<param name="angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="Angle between convex and concave parts">70.0</param>
|
||||||
|
<param name="bolthole" type="float" precision="2" max="9999" _gui-text="bolthole" gui-description="Diameter of the bolt hole (mm)">6.0</param>
|
||||||
|
<param name="dhole" type="float" precision="2" max="9999" _gui-text="dhole" gui-description="D-Flat in fraction of the diameter">1.0</param>
|
||||||
|
<param name="hexhead" type="float" precision="2" max="9999" _gui-text="hexhead" gui-description="Width of the hex bolt head (mm)">10.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
54
boxes.py.DiscRack.inx
Normal file
54
boxes.py.DiscRack.inx
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>DiscRack</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.DiscRack</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">discrack</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="DiscRack">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">20*10</param>
|
||||||
|
<param name="disc_diameter" type="float" precision="2" max="9999" _gui-text="disc_diameter" gui-description="Disc diameter in mm">150.0</param>
|
||||||
|
<param name="disc_thickness" type="float" precision="2" max="9999" _gui-text="disc_thickness" gui-description="Thickness of the discs in mm">5.0</param>
|
||||||
|
<param name="lower_factor" type="float" precision="2" max="9999" _gui-text="lower_factor" gui-description="Position of the lower rack grids along the radius">0.75</param>
|
||||||
|
<param name="rear_factor" type="float" precision="2" max="9999" _gui-text="rear_factor" gui-description="Position of the rear rack grids along the radius">0.75</param>
|
||||||
|
<param name="disc_outset" type="float" precision="2" max="9999" _gui-text="disc_outset" gui-description="Additional space kept between the disks and the outbox of the rack">3.0</param>
|
||||||
|
<param name="angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="Backwards slant of the rack">18</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
37
boxes.py.Display.inx
Normal file
37
boxes.py.Display.inx
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Display</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Display</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">display</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Display">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">150.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">200.0</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of the corners in mm">5.0</param>
|
||||||
|
<param name="angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="greater zero for top wider as bottom">0.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.DisplayCase.inx
Normal file
52
boxes.py.DisplayCase.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>DisplayCase</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.DisplayCase</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">displaycase</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="DisplayCase">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="overhang" type="float" precision="2" max="9999" _gui-text="overhang" gui-description="overhang for joints in mm">2</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
54
boxes.py.DisplayShelf.inx
Normal file
54
boxes.py.DisplayShelf.inx
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>DisplayShelf</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.DisplayShelf</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">displayshelf</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="DisplayShelf">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">400</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">300</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="num" type="int" max="9999" _gui-text="num" gui-description="number of shelves">3</param>
|
||||||
|
<param name="front" type="float" precision="2" max="9999" _gui-text="front" gui-description="height of front walls">20.0</param>
|
||||||
|
<param name="angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="angle of floors">30.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
47
boxes.py.DividerTray.inx
Normal file
47
boxes.py.DividerTray.inx
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>DividerTray</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.DividerTray</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">dividertray</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="DividerTray">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">50*3</param>
|
||||||
|
<param name="sy" type="string" max="9999" _gui-text="sy" gui-description='sections back to front in mm. Possible formats: overallwidth/numberof sections e.g. "250/5"; sectionwidth*numberofsections e.g. "50*5"; section widths separated by ":" e.g. "30:25.5:70'>50*3</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="slot_depth" type="float" precision="2" max="9999" _gui-text="slot_depth" gui-description="depth of the slot in mm">20</param>
|
||||||
|
<param name="slot_angle" type="float" precision="2" max="9999" _gui-text="slot_angle" gui-description="angle at which slots are generated, in degrees. 0° is vertical.">0</param>
|
||||||
|
<param name="slot_radius" type="float" precision="2" max="9999" _gui-text="slot_radius" gui-description="radius of the slot entrance in mm">2</param>
|
||||||
|
<param name="slot_extra_slack" type="float" precision="2" max="9999" _gui-text="slot_extra_slack" gui-description="extra slack (in addition to thickness and kerf) for slot width to help insert dividers">0.2</param>
|
||||||
|
<param name="divider_bottom_margin" type="float" precision="2" max="9999" _gui-text="divider_bottom_margin" gui-description="margin between box's bottom and divider's">0</param>
|
||||||
|
<param name="divider_upper_notch_radius" type="float" precision="2" max="9999" _gui-text="divider_upper_notch_radius" gui-description="divider's notch's upper radius">1</param>
|
||||||
|
<param name="divider_lower_notch_radius" type="float" precision="2" max="9999" _gui-text="divider_lower_notch_radius" gui-description="divider's notch's lower radius">8</param>
|
||||||
|
<param name="divider_notch_depth" type="float" precision="2" max="9999" _gui-text="divider_notch_depth" gui-description="divider's notch's depth">15</param>
|
||||||
|
<param name="left_wall" type="boolean" max="9999" _gui-text="left_wall" gui-description="generate wall on the left side">True</param>
|
||||||
|
<param name="right_wall" type="boolean" max="9999" _gui-text="right_wall" gui-description="generate wall on the right side">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Trays and Drawer Inserts"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
47
boxes.py.DrillBox.inx
Normal file
47
boxes.py.DrillBox.inx
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>DrillBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.DrillBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">drillbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="DrillBox">
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
57
boxes.py.ElectronicsBox.inx
Normal file
57
boxes.py.ElectronicsBox.inx
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>ElectronicsBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.ElectronicsBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">electronicsbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="ElectronicsBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="triangle" type="float" precision="2" max="9999" _gui-text="triangle" gui-description="Sides of the triangles holding the lid in mm">25.0</param>
|
||||||
|
<param name="d1" type="float" precision="2" max="9999" _gui-text="d1" gui-description="Diameter of the inner lid screw holes in mm">2.0</param>
|
||||||
|
<param name="d2" type="float" precision="2" max="9999" _gui-text="d2" gui-description="Diameter of the lid screw holes in mm">3.0</param>
|
||||||
|
<param name="d3" type="float" precision="2" max="9999" _gui-text="d3" gui-description="Diameter of the mounting screw holes in mm">3.0</param>
|
||||||
|
<param name="outsidemounts" type="boolean" max="9999" _gui-text="outsidemounts" gui-description="Add external mounting points">True</param>
|
||||||
|
<param name="holedist" type="float" precision="2" max="9999" _gui-text="holedist" gui-description="Distance of the screw holes from the wall in mm">7.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
60
boxes.py.FlexBox.inx
Normal file
60
boxes.py.FlexBox.inx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>FlexBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.FlexBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">flexbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="FlexBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="Radius of the latch in mm">15</param>
|
||||||
|
<param name="latchsize" type="float" precision="2" max="9999" _gui-text="latchsize" gui-description="size of latch in multiples of thickness">8</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
60
boxes.py.FlexBox2.inx
Normal file
60
boxes.py.FlexBox2.inx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>FlexBox2</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.FlexBox2</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">flexbox2</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="FlexBox2">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="Radius of the corners in mm">15</param>
|
||||||
|
<param name="latchsize" type="float" precision="2" max="9999" _gui-text="latchsize" gui-description="size of latch in multiples of thickness">8</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
61
boxes.py.FlexBox3.inx
Normal file
61
boxes.py.FlexBox3.inx
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>FlexBox3</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.FlexBox3</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">flexbox3</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="FlexBox3">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="z" type="float" precision="2" max="9999" _gui-text="z" gui-description="height of the box">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="height of the lid">10.0</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of the lids living hinge">10.0</param>
|
||||||
|
<param name="c" type="float" precision="2" max="9999" _gui-text="c" gui-description="clearance of the lid">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="int" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
60
boxes.py.FlexBox4.inx
Normal file
60
boxes.py.FlexBox4.inx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>FlexBox4</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.FlexBox4</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">flexbox4</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="FlexBox4">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="Radius of the corners in mm">15</param>
|
||||||
|
<param name="latchsize" type="float" precision="2" max="9999" _gui-text="latchsize" gui-description="size of latch in multiples of thickness">8</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
60
boxes.py.FlexBox5.inx
Normal file
60
boxes.py.FlexBox5.inx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>FlexBox5</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.FlexBox5</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">flexbox5</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="FlexBox5">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="top_diameter" type="float" precision="2" max="9999" _gui-text="top_diameter" gui-description="diameter at the top">60</param>
|
||||||
|
<param name="bottom_diameter" type="float" precision="2" max="9999" _gui-text="bottom_diameter" gui-description="diameter at the bottom">60</param>
|
||||||
|
<param name="latchsize" type="float" precision="2" max="9999" _gui-text="latchsize" gui-description="size of latch in multiples of thickness">8</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
42
boxes.py.FlexTest.inx
Normal file
42
boxes.py.FlexTest.inx
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>FlexTest</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.FlexTest</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">flextest</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="FlexTest">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
36
boxes.py.FlexTest2.inx
Normal file
36
boxes.py.FlexTest2.inx
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>FlexTest2</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.FlexTest2</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">flextest2</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="FlexTest2">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="fw" type="float" precision="2" max="9999" _gui-text="fw" gui-description="distance of flex cuts in multiples of thickness">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
51
boxes.py.Folder.inx
Normal file
51
boxes.py.Folder.inx
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Folder</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Folder</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">folder</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Folder">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">20</param>
|
||||||
|
<param name="r" type="float" precision="2" max="9999" _gui-text="r" gui-description="radius of the corners">10.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.GearBox.inx
Normal file
52
boxes.py.GearBox.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>GearBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.GearBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">gearbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="GearBox">
|
||||||
|
<param name="teeth1" type="int" max="9999" _gui-text="teeth1" gui-description="number of teeth on ingoing shaft">8</param>
|
||||||
|
<param name="teeth2" type="int" max="9999" _gui-text="teeth2" gui-description="number of teeth on outgoing shaft">20</param>
|
||||||
|
<param name="modulus" type="float" precision="2" max="9999" _gui-text="modulus" gui-description="modulus of the theeth in mm">3</param>
|
||||||
|
<param name="shaft" type="float" precision="2" max="9999" _gui-text="shaft" gui-description="diameter of the shaft">6.0</param>
|
||||||
|
<param name="stages" type="int" max="9999" _gui-text="stages" gui-description="number of stages in the gear reduction">4</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
42
boxes.py.Gears.inx
Normal file
42
boxes.py.Gears.inx
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Gears</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Gears</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">gears</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Gears">
|
||||||
|
<param name="teeth1" type="int" max="9999" _gui-text="teeth1" gui-description="number of teeth">12</param>
|
||||||
|
<param name="shaft1" type="float" precision="2" max="9999" _gui-text="shaft1" gui-description="diameter of the shaft 1">6.0</param>
|
||||||
|
<param name="dpercentage1" type="float" precision="2" max="9999" _gui-text="dpercentage1" gui-description="percent of the D section of shaft 1 (100 for round shaft)">75</param>
|
||||||
|
<param name="teeth2" type="int" max="9999" _gui-text="teeth2" gui-description="number of teeth in the other size of gears">32</param>
|
||||||
|
<param name="shaft2" type="float" precision="2" max="9999" _gui-text="shaft2" gui-description="diameter of the shaft2 (zero for same as shaft 1)">0.0</param>
|
||||||
|
<param name="dpercentage2" type="float" precision="2" max="9999" _gui-text="dpercentage2" gui-description="percent of the D section of shaft 1 (0 for same as shaft 1)">0</param>
|
||||||
|
<param name="modulus" type="float" precision="2" max="9999" _gui-text="modulus" gui-description="width of teeth in mm">5</param>
|
||||||
|
<param name="pressure_angle" type="float" precision="2" max="9999" _gui-text="pressure_angle" gui-description="angle of the teeth touching (in degrees)">20</param>
|
||||||
|
<param name="profile_shift" type="float" precision="2" max="9999" _gui-text="profile_shift" gui-description="in precent of the modulus">20</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
61
boxes.py.HeartBox.inx
Normal file
61
boxes.py.HeartBox.inx
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>HeartBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.HeartBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">heartbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="HeartBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">150</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">50</param>
|
||||||
|
<param name="top" type="enum" _gui-text="top" gui-description="style of the top and lid">
|
||||||
|
<item value="closed" selected="selected">closed</item>
|
||||||
|
<item value="hole">hole</item>
|
||||||
|
<item value="lid">lid</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">1.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">1.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
66
boxes.py.HingeBox.inx
Normal file
66
boxes.py.HingeBox.inx
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>HingeBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.HingeBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">hingebox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="HingeBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="lidheight" type="float" precision="2" max="9999" _gui-text="lidheight" gui-description="height of lid in mm">20.0</param>
|
||||||
|
<param name="splitlid" type="float" precision="2" max="9999" _gui-text="splitlid" gui-description="split the lid in y direction (mm)">0.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Cabinet Hinges">
|
||||||
|
<param name="CabinetHinge_bore" type="float" precision="2" max="9999" _gui-text="bore" gui-description="diameter of the pin hole in mm">3.2</param>
|
||||||
|
<param name="CabinetHinge_eyes_per_hinge" type="int" max="9999" _gui-text="eyes_per_hinge" gui-description="pieces per hinge">5</param>
|
||||||
|
<param name="CabinetHinge_hinges" type="int" max="9999" _gui-text="hinges" gui-description="number of hinges per edge">2</param>
|
||||||
|
<param name="CabinetHinge_style" type="enum" _gui-text="style" gui-description="style of hinge used">
|
||||||
|
<item value="inside" selected="selected">inside</item>
|
||||||
|
<item value="outside">outside</item>
|
||||||
|
</param>
|
||||||
|
<param name="CabinetHinge_eye" type="float" precision="2" max="9999" _gui-text="eye" gui-description="radius of the eye (in multiples of thickness)">1.5</param>
|
||||||
|
<param name="CabinetHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="space between eyes (in multiples of thickness)">0.05</param>
|
||||||
|
<param name="CabinetHinge_spacing" type="float" precision="2" max="9999" _gui-text="spacing" gui-description="minimum space around the hinge">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.Hook.inx
Normal file
52
boxes.py.Hook.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Hook</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Hook</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">hook</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Hook">
|
||||||
|
<param name="width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the hook (back plate is a bit wider)">40.0</param>
|
||||||
|
<param name="height" type="float" precision="2" max="9999" _gui-text="height" gui-description="inner height of the hook">40.0</param>
|
||||||
|
<param name="depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="inner depth of the hook">40.0</param>
|
||||||
|
<param name="strength" type="float" precision="2" max="9999" _gui-text="strength" gui-description="width of the hook from the side">20.0</param>
|
||||||
|
<param name="angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="angle of the support underneeth">45.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0.5</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
58
boxes.py.IntegratedHingeBox.inx
Normal file
58
boxes.py.IntegratedHingeBox.inx
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>IntegratedHingeBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.IntegratedHingeBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">integratedhingebox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="IntegratedHingeBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="lidheight" type="float" precision="2" max="9999" _gui-text="lidheight" gui-description="height of lid in mm">20.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Chest Hinges">
|
||||||
|
<param name="ChestHinge_hinge_strength" type="float" precision="2" max="9999" _gui-text="hinge_strength" gui-description="thickness of the arc holding the pin in place">1.0</param>
|
||||||
|
<param name="ChestHinge_pin_height" type="float" precision="2" max="9999" _gui-text="pin_height" gui-description="radius of the disc rotating in the hinge">2.0</param>
|
||||||
|
<param name="ChestHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="">0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
51
boxes.py.LBeam.inx
Normal file
51
boxes.py.LBeam.inx
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>LBeam</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.LBeam</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">lbeam</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="LBeam">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
50
boxes.py.LaserClamp.inx
Normal file
50
boxes.py.LaserClamp.inx
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>LaserClamp</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.LaserClamp</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">laserclamp</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="LaserClamp">
|
||||||
|
<param name="minheight" type="float" precision="2" max="9999" _gui-text="minheight" gui-description="minimal clamping height in mm">25.0</param>
|
||||||
|
<param name="maxheight" type="float" precision="2" max="9999" _gui-text="maxheight" gui-description="maximal clamping height in mm">50.0</param>
|
||||||
|
<param name="extraheight" type="float" precision="2" max="9999" _gui-text="extraheight" gui-description="extra height to make operation smoother in mm">0.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="int" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
37
boxes.py.LaserHoldfast.inx
Normal file
37
boxes.py.LaserHoldfast.inx
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>LaserHoldfast</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.LaserHoldfast</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">laserholdfast</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="LaserHoldfast">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">25</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">40</param>
|
||||||
|
<param name="hookheight" type="float" precision="2" max="9999" _gui-text="hookheight" gui-description="height of the top hook">5.0</param>
|
||||||
|
<param name="shaftwidth" type="float" precision="2" max="9999" _gui-text="shaftwidth" gui-description="width of the shaft">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.MagazinFile.inx
Normal file
52
boxes.py.MagazinFile.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>MagazinFile</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.MagazinFile</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">magazinfile</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="MagazinFile">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="hi" type="float" precision="2" max="9999" _gui-text="hi" gui-description="inner height of inner walls in mm (unless outside selected)(leave to zero for same as outer walls)">0.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
47
boxes.py.MakitaPowerSupply.inx
Normal file
47
boxes.py.MakitaPowerSupply.inx
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>MakitaPowerSupply</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.MakitaPowerSupply</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">makitapowersupply</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="MakitaPowerSupply">
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
58
boxes.py.NemaMount.inx
Normal file
58
boxes.py.NemaMount.inx
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>NemaMount</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.NemaMount</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">nemamount</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="NemaMount">
|
||||||
|
<param name="size" type="enum" _gui-text="size" gui-description="Nema size of the motor">
|
||||||
|
<item value="8" selected="selected">8</item>
|
||||||
|
<item value="11">11</item>
|
||||||
|
<item value="14">14</item>
|
||||||
|
<item value="16">16</item>
|
||||||
|
<item value="17">17</item>
|
||||||
|
<item value="23">23</item>
|
||||||
|
<item value="24">24</item>
|
||||||
|
<item value="34">34</item>
|
||||||
|
<item value="42">42</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
64
boxes.py.NotesHolder.inx
Normal file
64
boxes.py.NotesHolder.inx
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>NotesHolder</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.NotesHolder</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">notesholder</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="NotesHolder">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">78</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">78</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">35</param>
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
<param name="opening" type="float" precision="2" max="9999" _gui-text="opening" gui-description="percent of front that's open">40</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="int" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
51
boxes.py.OpenBox.inx
Normal file
51
boxes.py.OpenBox.inx
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>OpenBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.OpenBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">openbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="OpenBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
74
boxes.py.OrganPipe.inx
Normal file
74
boxes.py.OrganPipe.inx
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>OrganPipe</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.OrganPipe</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">organpipe</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="OrganPipe">
|
||||||
|
<param name="pitch" type="enum" _gui-text="pitch" gui-description="pitch">
|
||||||
|
<item value="c" selected="selected">c</item>
|
||||||
|
<item value="c#">c#</item>
|
||||||
|
<item value="d">d</item>
|
||||||
|
<item value="d#">d#</item>
|
||||||
|
<item value="e">e</item>
|
||||||
|
<item value="f">f</item>
|
||||||
|
<item value="f#">f#</item>
|
||||||
|
<item value="g">g</item>
|
||||||
|
<item value="g#">g#</item>
|
||||||
|
<item value="a">a</item>
|
||||||
|
<item value="a#">a#</item>
|
||||||
|
<item value="b">b</item>
|
||||||
|
</param>
|
||||||
|
<param name="octave" type="int" max="9999" _gui-text="octave" gui-description="Octave in International Pitch Notation (2 == C)">2</param>
|
||||||
|
<param name="intonation" type="float" precision="2" max="9999" _gui-text="intonation" gui-description="Intonation Number. 2 for max. efficiency, 3 max.">2.0</param>
|
||||||
|
<param name="mouthratio" type="float" precision="2" max="9999" _gui-text="mouthratio" gui-description="mouth to circumference ratio (0.1 to 0.45). Determines the width to depth ratio">0.25</param>
|
||||||
|
<param name="cutup" type="float" precision="2" max="9999" _gui-text="cutup" gui-description="Cutup to mouth ratio">0.3</param>
|
||||||
|
<param name="mensur" type="int" max="9999" _gui-text="mensur" gui-description="Distance in halftones in the Normalmensur by Töpfer">0</param>
|
||||||
|
<param name="windpressure" type="float" precision="2" max="9999" _gui-text="windpressure" gui-description="uses unit selected below">588.4</param>
|
||||||
|
<param name="windpressure_units" type="enum" _gui-text="windpressure_units" gui-description="in Pa">
|
||||||
|
<item value="Pa" selected="selected">Pa</item>
|
||||||
|
<item value="mBar">mBar</item>
|
||||||
|
<item value="mmHg">mmHg</item>
|
||||||
|
<item value="mmH2O">mmH2O</item>
|
||||||
|
</param>
|
||||||
|
<param name="stopped" type="boolean" max="9999" _gui-text="stopped" gui-description="pipe is closed at the top">False</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">3.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">3.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Unstable"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
53
boxes.py.OttoBody.inx
Normal file
53
boxes.py.OttoBody.inx
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>OttoBody</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.OttoBody</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">ottobody</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="OttoBody">
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Chest Hinges">
|
||||||
|
<param name="ChestHinge_hinge_strength" type="float" precision="2" max="9999" _gui-text="hinge_strength" gui-description="thickness of the arc holding the pin in place">1.0</param>
|
||||||
|
<param name="ChestHinge_pin_height" type="float" precision="2" max="9999" _gui-text="pin_height" gui-description="radius of the disc rotating in the hinge">2.0</param>
|
||||||
|
<param name="ChestHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="">0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
50
boxes.py.OttoLegs.inx
Normal file
50
boxes.py.OttoLegs.inx
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>OttoLegs</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.OttoLegs</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">ottolegs</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="OttoLegs">
|
||||||
|
<param name="anklebolt1" type="float" precision="2" max="9999" _gui-text="anklebolt1" gui-description="diameter for hole for ankle bolts - foot side">3.0</param>
|
||||||
|
<param name="anklebolt2" type="float" precision="2" max="9999" _gui-text="anklebolt2" gui-description="diameter for hole for ankle bolts - leg side">2.6</param>
|
||||||
|
<param name="length" type="float" precision="2" max="9999" _gui-text="length" gui-description="length of legs (34mm min)">34.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">1.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">1.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
38
boxes.py.OttoSoles.inx
Normal file
38
boxes.py.OttoSoles.inx
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>OttoSoles</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.OttoSoles</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">ottosoles</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="OttoSoles">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">56.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">36.0</param>
|
||||||
|
<param name="width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of sole stripe">4.0</param>
|
||||||
|
<param name="chamfer" type="float" precision="2" max="9999" _gui-text="chamfer" gui-description="chamfer at the corners">5.0</param>
|
||||||
|
<param name="num" type="int" max="9999" _gui-text="num" gui-description="number of soles">2</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
60
boxes.py.PaintStorage.inx
Normal file
60
boxes.py.PaintStorage.inx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>PaintStorage</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.PaintStorage</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">paintstorage</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="PaintStorage">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">300</param>
|
||||||
|
<param name="canheight" type="int" max="9999" _gui-text="canheight" gui-description="Height of the paintcans">50</param>
|
||||||
|
<param name="candiameter" type="int" max="9999" _gui-text="candiameter" gui-description="Diameter of the paintcans">30</param>
|
||||||
|
<param name="minspace" type="int" max="9999" _gui-text="minspace" gui-description="Minimum space between the paintcans">10</param>
|
||||||
|
<param name="hexpattern" type="boolean" max="9999" _gui-text="hexpattern" gui-description="Use hexagonal arrangement for the holes instead of orthogonal">False</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
39
boxes.py.Planetary.inx
Normal file
39
boxes.py.Planetary.inx
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Planetary</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Planetary</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">planetary</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Planetary">
|
||||||
|
<param name="sunteeth" type="int" max="9999" _gui-text="sunteeth" gui-description="number of teeth on sun gear">8</param>
|
||||||
|
<param name="planetteeth" type="int" max="9999" _gui-text="planetteeth" gui-description="number of teeth on planets">20</param>
|
||||||
|
<param name="maxplanets" type="int" max="9999" _gui-text="maxplanets" gui-description="limit the number of planets (0 for as much as fit)">0</param>
|
||||||
|
<param name="deltateeth" type="int" max="9999" _gui-text="deltateeth" gui-description="enable secondary ring with given delta to the ring gear">0</param>
|
||||||
|
<param name="modulus" type="float" precision="2" max="9999" _gui-text="modulus" gui-description="modulus of the theeth in mm">3</param>
|
||||||
|
<param name="shaft" type="float" precision="2" max="9999" _gui-text="shaft" gui-description="diameter of the shaft">6.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
69
boxes.py.Planetary2.inx
Normal file
69
boxes.py.Planetary2.inx
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Planetary2</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Planetary2</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">planetary2</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Planetary2">
|
||||||
|
<param name="nema_mount" type="enum" _gui-text="nema_mount" gui-description="NEMA size of motor">
|
||||||
|
<item value="8">8</item>
|
||||||
|
<item value="11">11</item>
|
||||||
|
<item value="14">14</item>
|
||||||
|
<item value="16">16</item>
|
||||||
|
<item value="17">17</item>
|
||||||
|
<item value="23" selected="selected">23</item>
|
||||||
|
<item value="24">24</item>
|
||||||
|
<item value="34">34</item>
|
||||||
|
<item value="42">42</item>
|
||||||
|
</param>
|
||||||
|
<param name="profile" type="enum" _gui-text="profile" gui-description="profile of the teeth/belt">
|
||||||
|
<item value="40DP">40DP</item>
|
||||||
|
<item value="AT5">AT5</item>
|
||||||
|
<item value="GT2_2mm" selected="selected">GT2_2mm</item>
|
||||||
|
<item value="GT2_3mm">GT2_3mm</item>
|
||||||
|
<item value="GT2_5mm">GT2_5mm</item>
|
||||||
|
<item value="H">H</item>
|
||||||
|
<item value="HTD_3mm">HTD_3mm</item>
|
||||||
|
<item value="HTD_5mm">HTD_5mm</item>
|
||||||
|
<item value="HTD_8mm">HTD_8mm</item>
|
||||||
|
<item value="MXL">MXL</item>
|
||||||
|
<item value="T10">T10</item>
|
||||||
|
<item value="T2_5">T2_5</item>
|
||||||
|
<item value="T5">T5</item>
|
||||||
|
<item value="XL">XL</item>
|
||||||
|
</param>
|
||||||
|
<param name="sunteeth" type="int" max="9999" _gui-text="sunteeth" gui-description="number of teeth on sun gear">20</param>
|
||||||
|
<param name="planetteeth" type="int" max="9999" _gui-text="planetteeth" gui-description="number of teeth on planets">20</param>
|
||||||
|
<param name="maxplanets" type="int" max="9999" _gui-text="maxplanets" gui-description="limit the number of planets (0 for as much as fit)">0</param>
|
||||||
|
<param name="deltateeth" type="int" max="9999" _gui-text="deltateeth" gui-description="enable secondary ring with given delta to the ring gear">1</param>
|
||||||
|
<param name="modulus" type="float" precision="2" max="9999" _gui-text="modulus" gui-description="modulus of the theeth in mm">3</param>
|
||||||
|
<param name="shaft" type="float" precision="2" max="9999" _gui-text="shaft" gui-description="diameter of the shaft">6.0</param>
|
||||||
|
<param name="screw1" type="float" precision="2" max="9999" _gui-text="screw1" gui-description="diameter of lower part of the screw hole">2.4</param>
|
||||||
|
<param name="screw2" type="float" precision="2" max="9999" _gui-text="screw2" gui-description="diameter of upper part of the screw hole">4.0</param>
|
||||||
|
<param name="pinsize" type="float" precision="2" max="9999" _gui-text="pinsize" gui-description="diameter of alignment pins">3.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.PoleHook.inx
Normal file
52
boxes.py.PoleHook.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>PoleHook</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.PoleHook</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">polehook</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="PoleHook">
|
||||||
|
<param name="diameter" type="float" precision="2" max="9999" _gui-text="diameter" gui-description="diameter of the thing to hook">50.0</param>
|
||||||
|
<param name="screw" type="float" precision="2" max="9999" _gui-text="screw" gui-description="diameter of the screw in mm">7.8</param>
|
||||||
|
<param name="screwhead" type="float" precision="2" max="9999" _gui-text="screwhead" gui-description="with of the screw head in mm">13.0</param>
|
||||||
|
<param name="screwheadheight" type="float" precision="2" max="9999" _gui-text="screwheadheight" gui-description="height of the screw head in mm">5.5</param>
|
||||||
|
<param name="pin" type="float" precision="2" max="9999" _gui-text="pin" gui-description="diameter of the pin in mm">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
54
boxes.py.Pulley.inx
Normal file
54
boxes.py.Pulley.inx
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Pulley</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Pulley</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">pulley</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Pulley">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">6.0</param>
|
||||||
|
<param name="profile" type="enum" _gui-text="profile" gui-description="profile of the teeth/belt">
|
||||||
|
<item value="40DP">40DP</item>
|
||||||
|
<item value="AT5">AT5</item>
|
||||||
|
<item value="GT2_2mm" selected="selected">GT2_2mm</item>
|
||||||
|
<item value="GT2_3mm">GT2_3mm</item>
|
||||||
|
<item value="GT2_5mm">GT2_5mm</item>
|
||||||
|
<item value="H">H</item>
|
||||||
|
<item value="HTD_3mm">HTD_3mm</item>
|
||||||
|
<item value="HTD_5mm">HTD_5mm</item>
|
||||||
|
<item value="HTD_8mm">HTD_8mm</item>
|
||||||
|
<item value="MXL">MXL</item>
|
||||||
|
<item value="T10">T10</item>
|
||||||
|
<item value="T2_5">T2_5</item>
|
||||||
|
<item value="T5">T5</item>
|
||||||
|
<item value="XL">XL</item>
|
||||||
|
</param>
|
||||||
|
<param name="teeth" type="int" max="9999" _gui-text="teeth" gui-description="number of teeth">20</param>
|
||||||
|
<param name="axle" type="float" precision="2" max="9999" _gui-text="axle" gui-description="diameter of the axle">5</param>
|
||||||
|
<param name="insideout" type="boolean" max="9999" _gui-text="insideout" gui-description="create a ring gear with the belt being pushed against from within">False</param>
|
||||||
|
<param name="top" type="float" precision="2" max="9999" _gui-text="top" gui-description="overlap of top rim (zero for none)">0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
69
boxes.py.Rack10Box.inx
Normal file
69
boxes.py.Rack10Box.inx
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Rack10Box</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Rack10Box</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">rack10box</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Rack10Box">
|
||||||
|
<param name="depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="inner depth in mm">100.0</param>
|
||||||
|
<param name="height" type="enum" _gui-text="height" gui-description="height in rack units">
|
||||||
|
<item value="1">1</item>
|
||||||
|
<item value="2" selected="selected">2</item>
|
||||||
|
<item value="3">3</item>
|
||||||
|
<item value="4">4</item>
|
||||||
|
<item value="5">5</item>
|
||||||
|
<item value="6">6</item>
|
||||||
|
<item value="7">7</item>
|
||||||
|
<item value="8">8</item>
|
||||||
|
<item value="9">9</item>
|
||||||
|
<item value="10">10</item>
|
||||||
|
<item value="11">11</item>
|
||||||
|
<item value="12">12</item>
|
||||||
|
<item value="13">13</item>
|
||||||
|
<item value="14">14</item>
|
||||||
|
<item value="15">15</item>
|
||||||
|
<item value="16">16</item>
|
||||||
|
</param>
|
||||||
|
<param name="triangle" type="float" precision="2" max="9999" _gui-text="triangle" gui-description="Sides of the triangles holding the lid in mm">25.0</param>
|
||||||
|
<param name="d1" type="float" precision="2" max="9999" _gui-text="d1" gui-description="Diameter of the inner lid screw holes in mm">2.0</param>
|
||||||
|
<param name="d2" type="float" precision="2" max="9999" _gui-text="d2" gui-description="Diameter of the lid screw holes in mm">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0.5</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
69
boxes.py.Rack19Box.inx
Normal file
69
boxes.py.Rack19Box.inx
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Rack19Box</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Rack19Box</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">rack19box</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Rack19Box">
|
||||||
|
<param name="depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="inner depth in mm">100.0</param>
|
||||||
|
<param name="height" type="enum" _gui-text="height" gui-description="height in rack units">
|
||||||
|
<item value="1">1</item>
|
||||||
|
<item value="2" selected="selected">2</item>
|
||||||
|
<item value="3">3</item>
|
||||||
|
<item value="4">4</item>
|
||||||
|
<item value="5">5</item>
|
||||||
|
<item value="6">6</item>
|
||||||
|
<item value="7">7</item>
|
||||||
|
<item value="8">8</item>
|
||||||
|
<item value="9">9</item>
|
||||||
|
<item value="10">10</item>
|
||||||
|
<item value="11">11</item>
|
||||||
|
<item value="12">12</item>
|
||||||
|
<item value="13">13</item>
|
||||||
|
<item value="14">14</item>
|
||||||
|
<item value="15">15</item>
|
||||||
|
<item value="16">16</item>
|
||||||
|
</param>
|
||||||
|
<param name="triangle" type="float" precision="2" max="9999" _gui-text="triangle" gui-description="Sides of the triangles holding the lid in mm">25.0</param>
|
||||||
|
<param name="d1" type="float" precision="2" max="9999" _gui-text="d1" gui-description="Diameter of the inner lid screw holes in mm">2.0</param>
|
||||||
|
<param name="d2" type="float" precision="2" max="9999" _gui-text="d2" gui-description="Diameter of the lid screw holes in mm">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0.5</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
37
boxes.py.Rack19HalfWidth.inx
Normal file
37
boxes.py.Rack19HalfWidth.inx
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Rack19HalfWidth</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Rack19HalfWidth</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">rack19halfwidth</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Rack19HalfWidth">
|
||||||
|
<param name="ru_count" type="float" precision="2" max="9999" _gui-text="ru_count" gui-description="number of rack units">1</param>
|
||||||
|
<param name="holes" type="string" max="9999" _gui-text="holes" gui-description="mounting patterns: x=xlr, m=midi, p=9v-power, w=6.5mm-wire, space=next row">xxmpwx</param>
|
||||||
|
<param name="z" type="float" precision="2" max="9999" _gui-text="z" gui-description="depth of the shorter (rackear) side">20</param>
|
||||||
|
<param name="deepz" type="float" precision="2" max="9999" _gui-text="deepz" gui-description="depth of the longer (screwed to another half sized thing) side">124</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
56
boxes.py.RackBox.inx
Normal file
56
boxes.py.RackBox.inx
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>RackBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.RackBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">rackbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="RackBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="triangle" type="float" precision="2" max="9999" _gui-text="triangle" gui-description="Sides of the triangles holding the lid in mm">25.0</param>
|
||||||
|
<param name="d1" type="float" precision="2" max="9999" _gui-text="d1" gui-description="Diameter of the inner lid screw holes in mm">2.0</param>
|
||||||
|
<param name="d2" type="float" precision="2" max="9999" _gui-text="d2" gui-description="Diameter of the lid screw holes in mm">3.0</param>
|
||||||
|
<param name="d3" type="float" precision="2" max="9999" _gui-text="d3" gui-description="Diameter of the mounting screw holes in mm">4.0</param>
|
||||||
|
<param name="holedist" type="float" precision="2" max="9999" _gui-text="holedist" gui-description="Distance of the screw holes from the wall in mm">7.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1.2</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
286
boxes.py.RectangularWall.inx
Normal file
286
boxes.py.RectangularWall.inx
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>RectangularWall</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.RectangularWall</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">rectangularwall</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="RectangularWall">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100</param>
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="C">C Abstract Edge Class</item>
|
||||||
|
<item value="d">d Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="D">D Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="g">g Corrugated edge useful as an gipping area</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="I">I Edge with hinge pin</item>
|
||||||
|
<item value="j">j Straight edge with hinge eye (other end)</item>
|
||||||
|
<item value="J">J Edge with hinge pin (other end)</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="K">K Edge with hinge pin (both ends)</item>
|
||||||
|
<item value="l">l Edge for slide on lid (back)</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="m">m Edge for slide on lid (left)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="n">n Edge for slide on lid (right)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="o">o Edge with chest hinge</item>
|
||||||
|
<item value="O">O Edge with chest hinge (other end)</item>
|
||||||
|
<item value="p">p Edge with chest hinge</item>
|
||||||
|
<item value="P">P Edge with chest hinge (other end)</item>
|
||||||
|
<item value="q">q Edge with pins for an chest hinge</item>
|
||||||
|
<item value="Q">Q Edge opposing a chest hinge</item>
|
||||||
|
<item value="R">R Rack (and pinion) Edge</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="u">u Edge with cabinet hinges</item>
|
||||||
|
<item value="U">U Edge with cabinet hinges top side</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="V">V Edge with cabinet hinges 90° lid</item>
|
||||||
|
</param>
|
||||||
|
<param name="right_edge" type="enum" gui-text="right_edge" gui-description="edge type for right edge">
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="C">C Abstract Edge Class</item>
|
||||||
|
<item value="d">d Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="D">D Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="g">g Corrugated edge useful as an gipping area</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="I">I Edge with hinge pin</item>
|
||||||
|
<item value="j">j Straight edge with hinge eye (other end)</item>
|
||||||
|
<item value="J">J Edge with hinge pin (other end)</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="K">K Edge with hinge pin (both ends)</item>
|
||||||
|
<item value="l">l Edge for slide on lid (back)</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="m">m Edge for slide on lid (left)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="n">n Edge for slide on lid (right)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="o">o Edge with chest hinge</item>
|
||||||
|
<item value="O">O Edge with chest hinge (other end)</item>
|
||||||
|
<item value="p">p Edge with chest hinge</item>
|
||||||
|
<item value="P">P Edge with chest hinge (other end)</item>
|
||||||
|
<item value="q">q Edge with pins for an chest hinge</item>
|
||||||
|
<item value="Q">Q Edge opposing a chest hinge</item>
|
||||||
|
<item value="R">R Rack (and pinion) Edge</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="u">u Edge with cabinet hinges</item>
|
||||||
|
<item value="U">U Edge with cabinet hinges top side</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="V">V Edge with cabinet hinges 90° lid</item>
|
||||||
|
</param>
|
||||||
|
<param name="top_edge" type="enum" gui-text="top_edge" gui-description="edge type for top edge">
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="C">C Abstract Edge Class</item>
|
||||||
|
<item value="d">d Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="D">D Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="g">g Corrugated edge useful as an gipping area</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="I">I Edge with hinge pin</item>
|
||||||
|
<item value="j">j Straight edge with hinge eye (other end)</item>
|
||||||
|
<item value="J">J Edge with hinge pin (other end)</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="K">K Edge with hinge pin (both ends)</item>
|
||||||
|
<item value="l">l Edge for slide on lid (back)</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="m">m Edge for slide on lid (left)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="n">n Edge for slide on lid (right)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="o">o Edge with chest hinge</item>
|
||||||
|
<item value="O">O Edge with chest hinge (other end)</item>
|
||||||
|
<item value="p">p Edge with chest hinge</item>
|
||||||
|
<item value="P">P Edge with chest hinge (other end)</item>
|
||||||
|
<item value="q">q Edge with pins for an chest hinge</item>
|
||||||
|
<item value="Q">Q Edge opposing a chest hinge</item>
|
||||||
|
<item value="R">R Rack (and pinion) Edge</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="u">u Edge with cabinet hinges</item>
|
||||||
|
<item value="U">U Edge with cabinet hinges top side</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="V">V Edge with cabinet hinges 90° lid</item>
|
||||||
|
</param>
|
||||||
|
<param name="left_edge" type="enum" gui-text="left_edge" gui-description="edge type for left edge">
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="C">C Abstract Edge Class</item>
|
||||||
|
<item value="d">d Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="D">D Edge (parallel slot wall Holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="g">g Corrugated edge useful as an gipping area</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="I">I Edge with hinge pin</item>
|
||||||
|
<item value="j">j Straight edge with hinge eye (other end)</item>
|
||||||
|
<item value="J">J Edge with hinge pin (other end)</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="K">K Edge with hinge pin (both ends)</item>
|
||||||
|
<item value="l">l Edge for slide on lid (back)</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="m">m Edge for slide on lid (left)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="n">n Edge for slide on lid (right)</item>
|
||||||
|
<item value="M">M Edge for slide on lid (box left)</item>
|
||||||
|
<item value="o">o Edge with chest hinge</item>
|
||||||
|
<item value="O">O Edge with chest hinge (other end)</item>
|
||||||
|
<item value="p">p Edge with chest hinge</item>
|
||||||
|
<item value="P">P Edge with chest hinge (other end)</item>
|
||||||
|
<item value="q">q Edge with pins for an chest hinge</item>
|
||||||
|
<item value="Q">Q Edge opposing a chest hinge</item>
|
||||||
|
<item value="R">R Rack (and pinion) Edge</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="u">u Edge with cabinet hinges</item>
|
||||||
|
<item value="U">U Edge with cabinet hinges top side</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="V">V Edge with cabinet hinges 90° lid</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Cabinet Hinges">
|
||||||
|
<param name="CabinetHinge_bore" type="float" precision="2" max="9999" _gui-text="bore" gui-description="diameter of the pin hole in mm">3.2</param>
|
||||||
|
<param name="CabinetHinge_eyes_per_hinge" type="int" max="9999" _gui-text="eyes_per_hinge" gui-description="pieces per hinge">5</param>
|
||||||
|
<param name="CabinetHinge_hinges" type="int" max="9999" _gui-text="hinges" gui-description="number of hinges per edge">2</param>
|
||||||
|
<param name="CabinetHinge_style" type="enum" _gui-text="style" gui-description="style of hinge used">
|
||||||
|
<item value="inside" selected="selected">inside</item>
|
||||||
|
<item value="outside">outside</item>
|
||||||
|
</param>
|
||||||
|
<param name="CabinetHinge_eye" type="float" precision="2" max="9999" _gui-text="eye" gui-description="radius of the eye (in multiples of thickness)">1.5</param>
|
||||||
|
<param name="CabinetHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="space between eyes (in multiples of thickness)">0.05</param>
|
||||||
|
<param name="CabinetHinge_spacing" type="float" precision="2" max="9999" _gui-text="spacing" gui-description="minimum space around the hinge">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Click-on Lids">
|
||||||
|
<param name="Click_angle" type="int" max="9999" _gui-text="angle" gui-description="">5</param>
|
||||||
|
<param name="Click_bottom_radius" type="float" precision="2" max="9999" _gui-text="bottom_radius" gui-description="">0.1</param>
|
||||||
|
<param name="Click_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="4" _gui-text="Dove Tail Joints">
|
||||||
|
<param name="DoveTail_angle" type="int" max="9999" _gui-text="angle" gui-description="how much should fingers widen (-80 to 80)">50</param>
|
||||||
|
<param name="DoveTail_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="how far the dove tails stick out of/into the edge">1.5</param>
|
||||||
|
<param name="DoveTail_radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius used on all four corners">0.2</param>
|
||||||
|
<param name="DoveTail_size" type="int" max="9999" _gui-text="size" gui-description="from one middle of a dove tail to another">3</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="5" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="6" _gui-text="rack (and pinion) edge">
|
||||||
|
<param name="Gear_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="pressure angle">20.0</param>
|
||||||
|
<param name="Gear_clearance" type="float" precision="2" max="9999" _gui-text="clearance" gui-description="clearance">0.0</param>
|
||||||
|
<param name="Gear_dimension" type="float" precision="2" max="9999" _gui-text="dimension" gui-description="modulus of the gear (in mm)">3.0</param>
|
||||||
|
<param name="Gear_profile_shift" type="float" precision="2" max="9999" _gui-text="profile_shift" gui-description="Profile shift">20.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="7" _gui-text="GrippingEdge">
|
||||||
|
<param name="Grip_outset" type="boolean" max="9999" _gui-text="outset" gui-description="extend outward the straight edge">True</param>
|
||||||
|
<param name="Grip_style" type="enum" _gui-text="style" gui-description='"wave" or "bumps"'>
|
||||||
|
<item value="wave" selected="selected">wave</item>
|
||||||
|
<item value="bumps">bumps</item>
|
||||||
|
</param>
|
||||||
|
<param name="Grip_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="depth of the grooves">0.3</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="8" _gui-text="Hinges and HingePins">
|
||||||
|
<param name="Hinge_grip_percentage" type="int" max="9999" _gui-text="grip_percentage" gui-description="">0</param>
|
||||||
|
<param name="Hinge_outset" type="boolean" max="9999" _gui-text="outset" gui-description="have lid overlap at the sides (similar to OutSetEdge)">False</param>
|
||||||
|
<param name="Hinge_pinwidth" type="float" precision="2" max="9999" _gui-text="pinwidth" gui-description="set to lower value to get disks surrounding the pins">0.5</param>
|
||||||
|
<param name="Hinge_style" type="enum" _gui-text="style" gui-description='"outset" or "flush"'>
|
||||||
|
<item value="outset" selected="selected">outset</item>
|
||||||
|
<item value="flush">flush</item>
|
||||||
|
</param>
|
||||||
|
<param name="Hinge_axle" type="int" max="9999" _gui-text="axle" gui-description="diameter of the pin hole">2</param>
|
||||||
|
<param name="Hinge_grip_length" type="int" max="9999" _gui-text="grip_length" gui-description="fixed length of the grips on he lids">0</param>
|
||||||
|
<param name="Hinge_hingestrength" type="int" max="9999" _gui-text="hingestrength" gui-description="thickness of the arc holding the pin in place">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="9" _gui-text="Chest Hinges">
|
||||||
|
<param name="ChestHinge_hinge_strength" type="float" precision="2" max="9999" _gui-text="hinge_strength" gui-description="thickness of the arc holding the pin in place">1.0</param>
|
||||||
|
<param name="ChestHinge_pin_height" type="float" precision="2" max="9999" _gui-text="pin_height" gui-description="radius of the disc rotating in the hinge">2.0</param>
|
||||||
|
<param name="ChestHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="">0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="10" _gui-text="Slide-on Lids">
|
||||||
|
<param name="Lid_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="Lid_second_pin" type="boolean" max="9999" _gui-text="second_pin" gui-description="">True</param>
|
||||||
|
<param name="Lid_spring" type="enum" _gui-text="spring" gui-description="">
|
||||||
|
<item value="both" selected="selected">both</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
<item value="left">left</item>
|
||||||
|
<item value="right">right</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="Lid_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="Lid_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">3.0</param>
|
||||||
|
<param name="Lid_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.05</param>
|
||||||
|
<param name="Lid_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="Lid_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="11" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
59
boxes.py.RegularBox.inx
Normal file
59
boxes.py.RegularBox.inx
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>RegularBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.RegularBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">regularbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="RegularBox">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="inner radius if the box (at the corners)">50.0</param>
|
||||||
|
<param name="n" type="int" max="9999" _gui-text="n" gui-description="number of sides">5</param>
|
||||||
|
<param name="top" type="enum" _gui-text="top" gui-description="style of the top and lid">
|
||||||
|
<item value="none" selected="selected">none</item>
|
||||||
|
<item value="hole">hole</item>
|
||||||
|
<item value="angled hole">angled hole</item>
|
||||||
|
<item value="angled lid">angled lid</item>
|
||||||
|
<item value="angled lid2">angled lid2</item>
|
||||||
|
<item value="round lid">round lid</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
122
boxes.py.RobotArm.inx
Normal file
122
boxes.py.RobotArm.inx
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>RobotArm</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.RobotArm</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">robotarm</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="RobotArm">
|
||||||
|
<param name="type1" type="enum" _gui-text="type1" gui-description="type of arm segment">
|
||||||
|
<item value="none" selected="selected">none</item>
|
||||||
|
<item value="RobotArmMM">RobotArmMM</item>
|
||||||
|
<item value="RobotArmMm">RobotArmMm</item>
|
||||||
|
<item value="RobotArmUU">RobotArmUU</item>
|
||||||
|
<item value="RobotArmUu">RobotArmUu</item>
|
||||||
|
<item value="RobotArmMu">RobotArmMu</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo1a" type="enum" _gui-text="servo1a" gui-description="type of servo to use">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo1b" type="enum" _gui-text="servo1b" gui-description="type of servo to use on second side (if different is supported)">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="length1" type="float" precision="2" max="9999" _gui-text="length1" gui-description="length of segment axle to axle">50.0</param>
|
||||||
|
<param name="type2" type="enum" _gui-text="type2" gui-description="type of arm segment">
|
||||||
|
<item value="none" selected="selected">none</item>
|
||||||
|
<item value="RobotArmMM">RobotArmMM</item>
|
||||||
|
<item value="RobotArmMm">RobotArmMm</item>
|
||||||
|
<item value="RobotArmUU">RobotArmUU</item>
|
||||||
|
<item value="RobotArmUu">RobotArmUu</item>
|
||||||
|
<item value="RobotArmMu">RobotArmMu</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo2a" type="enum" _gui-text="servo2a" gui-description="type of servo to use">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo2b" type="enum" _gui-text="servo2b" gui-description="type of servo to use on second side (if different is supported)">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="length2" type="float" precision="2" max="9999" _gui-text="length2" gui-description="length of segment axle to axle">50.0</param>
|
||||||
|
<param name="type3" type="enum" _gui-text="type3" gui-description="type of arm segment">
|
||||||
|
<item value="none" selected="selected">none</item>
|
||||||
|
<item value="RobotArmMM">RobotArmMM</item>
|
||||||
|
<item value="RobotArmMm">RobotArmMm</item>
|
||||||
|
<item value="RobotArmUU">RobotArmUU</item>
|
||||||
|
<item value="RobotArmUu">RobotArmUu</item>
|
||||||
|
<item value="RobotArmMu">RobotArmMu</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo3a" type="enum" _gui-text="servo3a" gui-description="type of servo to use">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo3b" type="enum" _gui-text="servo3b" gui-description="type of servo to use on second side (if different is supported)">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="length3" type="float" precision="2" max="9999" _gui-text="length3" gui-description="length of segment axle to axle">50.0</param>
|
||||||
|
<param name="type4" type="enum" _gui-text="type4" gui-description="type of arm segment">
|
||||||
|
<item value="none" selected="selected">none</item>
|
||||||
|
<item value="RobotArmMM">RobotArmMM</item>
|
||||||
|
<item value="RobotArmMm">RobotArmMm</item>
|
||||||
|
<item value="RobotArmUU">RobotArmUU</item>
|
||||||
|
<item value="RobotArmUu">RobotArmUu</item>
|
||||||
|
<item value="RobotArmMu">RobotArmMu</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo4a" type="enum" _gui-text="servo4a" gui-description="type of servo to use">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo4b" type="enum" _gui-text="servo4b" gui-description="type of servo to use on second side (if different is supported)">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="length4" type="float" precision="2" max="9999" _gui-text="length4" gui-description="length of segment axle to axle">50.0</param>
|
||||||
|
<param name="type5" type="enum" _gui-text="type5" gui-description="type of arm segment">
|
||||||
|
<item value="none" selected="selected">none</item>
|
||||||
|
<item value="RobotArmMM">RobotArmMM</item>
|
||||||
|
<item value="RobotArmMm">RobotArmMm</item>
|
||||||
|
<item value="RobotArmUU">RobotArmUU</item>
|
||||||
|
<item value="RobotArmUu">RobotArmUu</item>
|
||||||
|
<item value="RobotArmMu">RobotArmMu</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo5a" type="enum" _gui-text="servo5a" gui-description="type of servo to use">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="servo5b" type="enum" _gui-text="servo5b" gui-description="type of servo to use on second side (if different is supported)">
|
||||||
|
<item value="Servo9g" selected="selected">Servo9g</item>
|
||||||
|
</param>
|
||||||
|
<param name="length5" type="float" precision="2" max="9999" _gui-text="length5" gui-description="length of segment axle to axle">50.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
53
boxes.py.Rotary.inx
Normal file
53
boxes.py.Rotary.inx
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Rotary</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Rotary</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">rotary</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Rotary">
|
||||||
|
<param name="diameter" type="float" precision="2" max="9999" _gui-text="diameter" gui-description="outer diameter of the wheels (including O rings)">72.0</param>
|
||||||
|
<param name="rubberthickness" type="float" precision="2" max="9999" _gui-text="rubberthickness" gui-description="diameter of the strings of the O rings">5.0</param>
|
||||||
|
<param name="axle" type="float" precision="2" max="9999" _gui-text="axle" gui-description="diameter of the axles">6.0</param>
|
||||||
|
<param name="knifethickness" type="float" precision="2" max="9999" _gui-text="knifethickness" gui-description="thickness of the knifes in mm. Use 0 for use with honey comb table.">8.0</param>
|
||||||
|
<param name="beamwidth" type="float" precision="2" max="9999" _gui-text="beamwidth" gui-description="width of the (aluminium) profile connecting the parts">32.0</param>
|
||||||
|
<param name="beamheight" type="float" precision="2" max="9999" _gui-text="beamheight" gui-description="height of the (aluminium) profile connecting the parts">7.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Unstable"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
63
boxes.py.RoundedBox.inx
Normal file
63
boxes.py.RoundedBox.inx
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>RoundedBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.RoundedBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">roundedbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="RoundedBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="Radius of the corners in mm">15</param>
|
||||||
|
<param name="wallpieces" type="enum" _gui-text="wallpieces" gui-description="# pieces of outer wall">
|
||||||
|
<item value="1" selected="selected">1</item>
|
||||||
|
<item value="2">2</item>
|
||||||
|
<item value="3">3</item>
|
||||||
|
<item value="4">4</item>
|
||||||
|
</param>
|
||||||
|
<param name="top" type="enum" _gui-text="top" gui-description="style of the top and lid">
|
||||||
|
<item value="closed">closed</item>
|
||||||
|
<item value="hole">hole</item>
|
||||||
|
<item value="lid">lid</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
48
boxes.py.RoyalGame.inx
Normal file
48
boxes.py.RoyalGame.inx
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>RoyalGame</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.RoyalGame</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">royalgame</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="RoyalGame">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">200</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
68
boxes.py.SBCMicroRack.inx
Normal file
68
boxes.py.SBCMicroRack.inx
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SBCMicroRack</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SBCMicroRack</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">sbcmicrorack</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SBCMicroRack">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">56</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">85</param>
|
||||||
|
<param name="sbcs" type="int" max="9999" _gui-text="sbcs" gui-description="how many slots for sbcs">5</param>
|
||||||
|
<param name="clearance_x" type="int" max="9999" _gui-text="clearance_x" gui-description="clearance for the board in the box (x) in mm">3</param>
|
||||||
|
<param name="clearance_y" type="int" max="9999" _gui-text="clearance_y" gui-description="clearance for the board in the box (y) in mm">3</param>
|
||||||
|
<param name="clearance_z" type="int" max="9999" _gui-text="clearance_z" gui-description="SBC Clearance in mm">28</param>
|
||||||
|
<param name="hole_dist_edge" type="float" precision="2" max="9999" _gui-text="hole_dist_edge" gui-description="hole distance from edge in mm">3.5</param>
|
||||||
|
<param name="hole_grid_dimension_x" type="int" max="9999" _gui-text="hole_grid_dimension_x" gui-description="width of x hole area">58</param>
|
||||||
|
<param name="hole_grid_dimension_y" type="int" max="9999" _gui-text="hole_grid_dimension_y" gui-description="width of y hole area">49</param>
|
||||||
|
<param name="hole_diameter" type="float" precision="2" max="9999" _gui-text="hole_diameter" gui-description="hole diameters">2.75</param>
|
||||||
|
<param name="netusb_z" type="int" max="9999" _gui-text="netusb_z" gui-description="height of the net/usb hole mm">18</param>
|
||||||
|
<param name="netusb_x" type="int" max="9999" _gui-text="netusb_x" gui-description="width of the net/usb hole in mm">53</param>
|
||||||
|
<param name="stable" type="boolean" max="9999" _gui-text="stable" gui-description='draw some holes to put a 1/4" dowel through at the base and top'>False</param>
|
||||||
|
<param name="switch" type="boolean" max="9999" _gui-text="switch" gui-description="adds an additional vertical segment to hold the switch in place, works best w/ --stable">False</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
62
boxes.py.ShutterBox.inx
Normal file
62
boxes.py.ShutterBox.inx
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>ShutterBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.ShutterBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">shutterbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="ShutterBox">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">150</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of the corners">40.0</param>
|
||||||
|
<param name="style" type="enum" _gui-text="style" gui-description="Number of rounded top corners">
|
||||||
|
<item value="single" selected="selected">single</item>
|
||||||
|
<item value="double">double</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0.5</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">2.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.75</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
39
boxes.py.Silverware.inx
Normal file
39
boxes.py.Silverware.inx
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Silverware</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Silverware</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">silverware</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Silverware">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">250</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">154</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">120</param>
|
||||||
|
<param name="cornerradius" type="int" max="9999" _gui-text="cornerradius" gui-description="Radius of the corners">30</param>
|
||||||
|
<param name="handleheight" type="int" max="9999" _gui-text="handleheight" gui-description="Height of the handle">150</param>
|
||||||
|
<param name="handlewidth" type="int" max="9999" _gui-text="handlewidth" gui-description="Width of the handle">120</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Unstable"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
61
boxes.py.SlatwallCaliper.inx
Normal file
61
boxes.py.SlatwallCaliper.inx
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallCaliper</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallCaliper</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwallcaliper</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallCaliper">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100</param>
|
||||||
|
<param name="width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the long end">18.0</param>
|
||||||
|
<param name="heigth" type="float" precision="2" max="9999" _gui-text="heigth" gui-description="heigth of the body">6.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
69
boxes.py.SlatwallChiselHolder.inx
Normal file
69
boxes.py.SlatwallChiselHolder.inx
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallChiselHolder</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallChiselHolder</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwallchiselholder</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallChiselHolder">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">120</param>
|
||||||
|
<param name="tooldiameter" type="float" precision="2" max="9999" _gui-text="tooldiameter" gui-description="diameter of the tool including space to grab">30.0</param>
|
||||||
|
<param name="holediameter" type="float" precision="2" max="9999" _gui-text="holediameter" gui-description="diameter of the hole for the tool (handle should not fit through)">30.0</param>
|
||||||
|
<param name="slot_width" type="float" precision="2" max="9999" _gui-text="slot_width" gui-description="width of slots">5.0</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius at the slots">5.0</param>
|
||||||
|
<param name="number" type="int" max="9999" _gui-text="number" gui-description="number of tools/slots">6</param>
|
||||||
|
<param name="hooks" type="enum" _gui-text="hooks" gui-description="amount of hooks / braces">
|
||||||
|
<item value="all" selected="selected">all</item>
|
||||||
|
<item value="odds">odds</item>
|
||||||
|
<item value="everythird">everythird</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
63
boxes.py.SlatwallConsole.inx
Normal file
63
boxes.py.SlatwallConsole.inx
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallConsole</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallConsole</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwallconsole</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallConsole">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">100</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="top_depth" type="float" precision="2" max="9999" _gui-text="top_depth" gui-description="depth at the top">50</param>
|
||||||
|
<param name="bottom_depth" type="float" precision="2" max="9999" _gui-text="bottom_depth" gui-description="depth at the bottom">35</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
62
boxes.py.SlatwallDrillBox.inx
Normal file
62
boxes.py.SlatwallDrillBox.inx
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallDrillBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallDrillBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwalldrillbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallDrillBox">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">25*6</param>
|
||||||
|
<param name="sy" type="string" max="9999" _gui-text="sy" gui-description='sections back to front in mm. Possible formats: overallwidth/numberof sections e.g. "250/5"; sectionwidth*numberofsections e.g. "50*5"; section widths separated by ":" e.g. "30:25.5:70'>10:20:30</param>
|
||||||
|
<param name="sh" type="string" max="9999" _gui-text="sh" gui-description="sections bottom to top in mm. See --sy for format">25:40:60</param>
|
||||||
|
<param name="extra_height" type="float" precision="2" max="9999" _gui-text="extra_height" gui-description="height difference left to right">15.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
59
boxes.py.SlatwallEdges.inx
Normal file
59
boxes.py.SlatwallEdges.inx
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallEdges</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallEdges</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwalledges</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallEdges">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">120</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
62
boxes.py.SlatwallPlaneHolder.inx
Normal file
62
boxes.py.SlatwallPlaneHolder.inx
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallPlaneHolder</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallPlaneHolder</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwallplaneholder</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallPlaneHolder">
|
||||||
|
<param name="width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the plane">80</param>
|
||||||
|
<param name="length" type="float" precision="2" max="9999" _gui-text="length" gui-description="legth of the plane">250</param>
|
||||||
|
<param name="hold_length" type="float" precision="2" max="9999" _gui-text="hold_length" gui-description="legth of the part hiolding the plane over the front">30</param>
|
||||||
|
<param name="height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the front of plane">80</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.SlatwallPliersHolder.inx
Normal file
52
boxes.py.SlatwallPliersHolder.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallPliersHolder</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallPliersHolder</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwallpliersholder</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallPliersHolder">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">100*3</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">50</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">50</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="bracing angle - less for more bracing">45</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
70
boxes.py.SlatwallSlottedHolder.inx
Normal file
70
boxes.py.SlatwallSlottedHolder.inx
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallSlottedHolder</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallSlottedHolder</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwallslottedholder</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallSlottedHolder">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">120</param>
|
||||||
|
<param name="slot_depth" type="float" precision="2" max="9999" _gui-text="slot_depth" gui-description="depth of slots from the front">50.0</param>
|
||||||
|
<param name="additional_depth" type="float" precision="2" max="9999" _gui-text="additional_depth" gui-description="depth behind the lots">50.0</param>
|
||||||
|
<param name="slot_width" type="float" precision="2" max="9999" _gui-text="slot_width" gui-description="width of slots">5.0</param>
|
||||||
|
<param name="tool_width" type="float" precision="2" max="9999" _gui-text="tool_width" gui-description="overall width for the tools">35.0</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of the slots at the front">5.0</param>
|
||||||
|
<param name="number" type="int" max="9999" _gui-text="number" gui-description="number of tools/slots">6</param>
|
||||||
|
<param name="hooks" type="enum" _gui-text="hooks" gui-description="amount of hooks / braces">
|
||||||
|
<item value="all" selected="selected">all</item>
|
||||||
|
<item value="odds">odds</item>
|
||||||
|
<item value="everythird">everythird</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">1.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
78
boxes.py.SlatwallTypeTray.inx
Normal file
78
boxes.py.SlatwallTypeTray.inx
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallTypeTray</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallTypeTray</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwalltypetray</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallTypeTray">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">50*3</param>
|
||||||
|
<param name="sy" type="string" max="9999" _gui-text="sy" gui-description='sections back to front in mm. Possible formats: overallwidth/numberof sections e.g. "250/5"; sectionwidth*numberofsections e.g. "50*5"; section widths separated by ":" e.g. "30:25.5:70'>50*3</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="hi" type="float" precision="2" max="9999" _gui-text="hi" gui-description="inner height of inner walls in mm (unless outside selected)(leave to zero for same as outer walls)">0.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
<param name="back_height" type="float" precision="2" max="9999" _gui-text="back_height" gui-description="additional height of the back wall">0.0</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius for strengthening walls with the hooks">0.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="4" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
66
boxes.py.SlatwallWrenchHolder.inx
Normal file
66
boxes.py.SlatwallWrenchHolder.inx
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>SlatwallWrenchHolder</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.SlatwallWrenchHolder</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">slatwallwrenchholder</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="SlatwallWrenchHolder">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100</param>
|
||||||
|
<param name="depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="depth of the sides (in mm)">30.0</param>
|
||||||
|
<param name="number" type="int" max="9999" _gui-text="number" gui-description="number of wrenches (in mm)">11</param>
|
||||||
|
<param name="min_width" type="float" precision="2" max="9999" _gui-text="min_width" gui-description="width of smallest wrench (in mm)">8.0</param>
|
||||||
|
<param name="max_width" type="float" precision="2" max="9999" _gui-text="max_width" gui-description="width of largest wrench (in mm)">25.0</param>
|
||||||
|
<param name="min_strength" type="float" precision="2" max="9999" _gui-text="min_strength" gui-description="strength of smallest wrench (in mm)">3.0</param>
|
||||||
|
<param name="max_strength" type="float" precision="2" max="9999" _gui-text="max_strength" gui-description="strength of largest wrench (in mm)">5.0</param>
|
||||||
|
<param name="extra_distance" type="float" precision="2" max="9999" _gui-text="extra_distance" gui-description="additional distance between wrenches (in mm)">0.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="SlatWallEdges">
|
||||||
|
<param name="SlatWall_bottom_hook" type="enum" _gui-text="bottom_hook" gui-description='"spring", "stud" or "none"'>
|
||||||
|
<item value="hook" selected="selected">hook</item>
|
||||||
|
<item value="spring">spring</item>
|
||||||
|
<item value="stud">stud</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
</param>
|
||||||
|
<param name="SlatWall_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="SlatWall_hook_extra_height" type="float" precision="2" max="9999" _gui-text="hook_extra_height" gui-description="space surrounding connectors (in multiples of thickness)">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="SlatWall"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
36
boxes.py.Stachel.inx
Normal file
36
boxes.py.Stachel.inx
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Stachel</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.Stachel</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">stachel</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="Stachel">
|
||||||
|
<param name="flutediameter" type="float" precision="2" max="9999" _gui-text="flutediameter" gui-description="diameter of the flutes bottom in mm">115.0</param>
|
||||||
|
<param name="polediameter" type="float" precision="2" max="9999" _gui-text="polediameter" gui-description="diameter if the pin in mm">25.0</param>
|
||||||
|
<param name="wall" type="float" precision="2" max="9999" _gui-text="wall" gui-description="width of the surrounding wall in mm">7.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
70
boxes.py.StorageRack.inx
Normal file
70
boxes.py.StorageRack.inx
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>StorageRack</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.StorageRack</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">storagerack</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="StorageRack">
|
||||||
|
<param name="depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="depth of the rack">200</param>
|
||||||
|
<param name="rail" type="float" precision="2" max="9999" _gui-text="rail" gui-description="depth of the rack">30</param>
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="sh" type="string" max="9999" _gui-text="sh" gui-description="sections bottom to top in mm. See --sy for format">50*3</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
<param name="top_edge" type="enum" gui-text="top_edge" gui-description="edge type for top edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
140
boxes.py.StorageShelf.inx
Normal file
140
boxes.py.StorageShelf.inx
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>StorageShelf</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.StorageShelf</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">storageshelf</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="StorageShelf">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="sy" type="string" max="9999" _gui-text="sy" gui-description='sections back to front in mm. Possible formats: overallwidth/numberof sections e.g. "250/5"; sectionwidth*numberofsections e.g. "50*5"; section widths separated by ":" e.g. "30:25.5:70'>50*3</param>
|
||||||
|
<param name="sh" type="string" max="9999" _gui-text="sh" gui-description="sections bottom to top in mm. See --sy for format">50*3</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
<param name="top_edge" type="enum" gui-text="top_edge" gui-description="edge type for top edge">
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="t">t Triangle for handle</item>
|
||||||
|
</param>
|
||||||
|
<param name="retainer" type="float" precision="2" max="9999" _gui-text="retainer" gui-description="height of wall atthe front edges">0.0</param>
|
||||||
|
<param name="retainer_hole_edge" type="boolean" max="9999" _gui-text="retainer_hole_edge" gui-description="use finger hole edge for retainer walls">False</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0.5</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="4" _gui-text="Hinges and HingePins">
|
||||||
|
<param name="Hinge_grip_percentage" type="int" max="9999" _gui-text="grip_percentage" gui-description="">0</param>
|
||||||
|
<param name="Hinge_outset" type="boolean" max="9999" _gui-text="outset" gui-description="have lid overlap at the sides (similar to OutSetEdge)">False</param>
|
||||||
|
<param name="Hinge_pinwidth" type="float" precision="2" max="9999" _gui-text="pinwidth" gui-description="set to lower value to get disks surrounding the pins">0.5</param>
|
||||||
|
<param name="Hinge_style" type="enum" _gui-text="style" gui-description='"outset" or "flush"'>
|
||||||
|
<item value="outset" selected="selected">outset</item>
|
||||||
|
<item value="flush">flush</item>
|
||||||
|
</param>
|
||||||
|
<param name="Hinge_axle" type="int" max="9999" _gui-text="axle" gui-description="diameter of the pin hole">2</param>
|
||||||
|
<param name="Hinge_grip_length" type="int" max="9999" _gui-text="grip_length" gui-description="fixed length of the grips on he lids">0</param>
|
||||||
|
<param name="Hinge_hingestrength" type="int" max="9999" _gui-text="hingestrength" gui-description="thickness of the arc holding the pin in place">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="5" _gui-text="Cabinet Hinges">
|
||||||
|
<param name="CabinetHinge_bore" type="float" precision="2" max="9999" _gui-text="bore" gui-description="diameter of the pin hole in mm">3.2</param>
|
||||||
|
<param name="CabinetHinge_eyes_per_hinge" type="int" max="9999" _gui-text="eyes_per_hinge" gui-description="pieces per hinge">5</param>
|
||||||
|
<param name="CabinetHinge_hinges" type="int" max="9999" _gui-text="hinges" gui-description="number of hinges per edge">2</param>
|
||||||
|
<param name="CabinetHinge_style" type="enum" _gui-text="style" gui-description="style of hinge used">
|
||||||
|
<item value="inside" selected="selected">inside</item>
|
||||||
|
<item value="outside">outside</item>
|
||||||
|
</param>
|
||||||
|
<param name="CabinetHinge_eye" type="float" precision="2" max="9999" _gui-text="eye" gui-description="radius of the eye (in multiples of thickness)">1.5</param>
|
||||||
|
<param name="CabinetHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="space between eyes (in multiples of thickness)">0.05</param>
|
||||||
|
<param name="CabinetHinge_spacing" type="float" precision="2" max="9999" _gui-text="spacing" gui-description="minimum space around the hinge">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="6" _gui-text="Slide-on Lids">
|
||||||
|
<param name="Lid_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="Lid_second_pin" type="boolean" max="9999" _gui-text="second_pin" gui-description="">True</param>
|
||||||
|
<param name="Lid_spring" type="enum" _gui-text="spring" gui-description="">
|
||||||
|
<item value="both" selected="selected">both</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
<item value="left">left</item>
|
||||||
|
<item value="right">right</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="Lid_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="Lid_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">3.0</param>
|
||||||
|
<param name="Lid_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.05</param>
|
||||||
|
<param name="Lid_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="Lid_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="7" _gui-text="Click-on Lids">
|
||||||
|
<param name="Click_angle" type="int" max="9999" _gui-text="angle" gui-description="">5</param>
|
||||||
|
<param name="Click_bottom_radius" type="float" precision="2" max="9999" _gui-text="bottom_radius" gui-description="">0.1</param>
|
||||||
|
<param name="Click_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="8" _gui-text="RoundedTriangleEdge">
|
||||||
|
<param name="RoundedTriangleEdge_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height above the wall">150.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_r_hole" type="float" precision="2" max="9999" _gui-text="r_hole" gui-description="radius of hole">2.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of top corner">30.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_outset" type="int" max="9999" _gui-text="outset" gui-description="extend the triangle along the length of the edge">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.TrafficLight.inx
Normal file
52
boxes.py.TrafficLight.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>TrafficLight</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.TrafficLight</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">trafficlight</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="TrafficLight">
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="inner depth not including the shades">100</param>
|
||||||
|
<param name="shades" type="float" precision="2" max="9999" _gui-text="shades" gui-description="depth of the shaders">50</param>
|
||||||
|
<param name="n" type="int" max="9999" _gui-text="n" gui-description="number of lights">3</param>
|
||||||
|
<param name="upright" type="boolean" max="9999" _gui-text="upright" gui-description="stack lights upright (or side by side)">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Misc"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
37
boxes.py.TrayInsert.inx
Normal file
37
boxes.py.TrayInsert.inx
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>TrayInsert</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.TrayInsert</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">trayinsert</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="TrayInsert">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">50*3</param>
|
||||||
|
<param name="sy" type="string" max="9999" _gui-text="sy" gui-description='sections back to front in mm. Possible formats: overallwidth/numberof sections e.g. "250/5"; sectionwidth*numberofsections e.g. "50*5"; section widths separated by ":" e.g. "30:25.5:70'>50*3</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Trays and Drawer Inserts"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
52
boxes.py.TwoPiece.inx
Normal file
52
boxes.py.TwoPiece.inx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>TwoPiece</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.TwoPiece</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">twopiece</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="TwoPiece">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="play" type="float" precision="2" max="9999" _gui-text="play" gui-description="play between the two parts as multipleof the wall thickness">0.05</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
141
boxes.py.TypeTray.inx
Normal file
141
boxes.py.TypeTray.inx
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>TypeTray</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.TypeTray</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">typetray</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="TypeTray">
|
||||||
|
<param name="sx" type="string" max="9999" _gui-text="sx" gui-description="sections left to right in mm. See --sy for format">50*3</param>
|
||||||
|
<param name="sy" type="string" max="9999" _gui-text="sy" gui-description='sections back to front in mm. Possible formats: overallwidth/numberof sections e.g. "250/5"; sectionwidth*numberofsections e.g. "50*5"; section widths separated by ":" e.g. "30:25.5:70'>50*3</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="hi" type="float" precision="2" max="9999" _gui-text="hi" gui-description="inner height of inner walls in mm (unless outside selected)(leave to zero for same as outer walls)">0.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
<param name="top_edge" type="enum" gui-text="top_edge" gui-description="edge type for top edge">
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="t">t Triangle for handle</item>
|
||||||
|
</param>
|
||||||
|
<param name="gripheight" type="float" precision="2" max="9999" _gui-text="gripheight" gui-description="height of the grip hole in mm">30</param>
|
||||||
|
<param name="gripwidth" type="float" precision="2" max="9999" _gui-text="gripwidth" gui-description="width of th grip hole in mm (zero for no hole)">70</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">0.5</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="4" _gui-text="Hinges and HingePins">
|
||||||
|
<param name="Hinge_grip_percentage" type="int" max="9999" _gui-text="grip_percentage" gui-description="">0</param>
|
||||||
|
<param name="Hinge_outset" type="boolean" max="9999" _gui-text="outset" gui-description="have lid overlap at the sides (similar to OutSetEdge)">False</param>
|
||||||
|
<param name="Hinge_pinwidth" type="float" precision="2" max="9999" _gui-text="pinwidth" gui-description="set to lower value to get disks surrounding the pins">0.5</param>
|
||||||
|
<param name="Hinge_style" type="enum" _gui-text="style" gui-description='"outset" or "flush"'>
|
||||||
|
<item value="outset" selected="selected">outset</item>
|
||||||
|
<item value="flush">flush</item>
|
||||||
|
</param>
|
||||||
|
<param name="Hinge_axle" type="int" max="9999" _gui-text="axle" gui-description="diameter of the pin hole">2</param>
|
||||||
|
<param name="Hinge_grip_length" type="int" max="9999" _gui-text="grip_length" gui-description="fixed length of the grips on he lids">0</param>
|
||||||
|
<param name="Hinge_hingestrength" type="int" max="9999" _gui-text="hingestrength" gui-description="thickness of the arc holding the pin in place">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="5" _gui-text="Cabinet Hinges">
|
||||||
|
<param name="CabinetHinge_bore" type="float" precision="2" max="9999" _gui-text="bore" gui-description="diameter of the pin hole in mm">3.2</param>
|
||||||
|
<param name="CabinetHinge_eyes_per_hinge" type="int" max="9999" _gui-text="eyes_per_hinge" gui-description="pieces per hinge">5</param>
|
||||||
|
<param name="CabinetHinge_hinges" type="int" max="9999" _gui-text="hinges" gui-description="number of hinges per edge">2</param>
|
||||||
|
<param name="CabinetHinge_style" type="enum" _gui-text="style" gui-description="style of hinge used">
|
||||||
|
<item value="inside" selected="selected">inside</item>
|
||||||
|
<item value="outside">outside</item>
|
||||||
|
</param>
|
||||||
|
<param name="CabinetHinge_eye" type="float" precision="2" max="9999" _gui-text="eye" gui-description="radius of the eye (in multiples of thickness)">1.5</param>
|
||||||
|
<param name="CabinetHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="space between eyes (in multiples of thickness)">0.05</param>
|
||||||
|
<param name="CabinetHinge_spacing" type="float" precision="2" max="9999" _gui-text="spacing" gui-description="minimum space around the hinge">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="6" _gui-text="Slide-on Lids">
|
||||||
|
<param name="Lid_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="Lid_second_pin" type="boolean" max="9999" _gui-text="second_pin" gui-description="">True</param>
|
||||||
|
<param name="Lid_spring" type="enum" _gui-text="spring" gui-description="">
|
||||||
|
<item value="both" selected="selected">both</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
<item value="left">left</item>
|
||||||
|
<item value="right">right</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="Lid_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="Lid_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">3.0</param>
|
||||||
|
<param name="Lid_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.05</param>
|
||||||
|
<param name="Lid_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="Lid_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="7" _gui-text="Click-on Lids">
|
||||||
|
<param name="Click_angle" type="int" max="9999" _gui-text="angle" gui-description="">5</param>
|
||||||
|
<param name="Click_bottom_radius" type="float" precision="2" max="9999" _gui-text="bottom_radius" gui-description="">0.1</param>
|
||||||
|
<param name="Click_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="8" _gui-text="RoundedTriangleEdge">
|
||||||
|
<param name="RoundedTriangleEdge_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height above the wall">150.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_r_hole" type="float" precision="2" max="9999" _gui-text="r_hole" gui-description="radius of hole">2.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of top corner">30.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_outset" type="int" max="9999" _gui-text="outset" gui-description="extend the triangle along the length of the edge">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Trays and Drawer Inserts"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
144
boxes.py.UBox.inx
Normal file
144
boxes.py.UBox.inx
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>UBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.UBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">ubox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="UBox">
|
||||||
|
<param name="top_edge" type="enum" gui-text="top_edge" gui-description="edge type for top edge">
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="t">t Triangle for handle</item>
|
||||||
|
</param>
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of bottom corners">30.0</param>
|
||||||
|
<param name="lid" type="enum" _gui-text="lid" gui-description="additional lid">
|
||||||
|
<item value="default (none)" selected="selected">default (none)</item>
|
||||||
|
<item value="chest">chest</item>
|
||||||
|
<item value="flat">flat</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="4" _gui-text="Hinges and HingePins">
|
||||||
|
<param name="Hinge_grip_percentage" type="int" max="9999" _gui-text="grip_percentage" gui-description="">0</param>
|
||||||
|
<param name="Hinge_outset" type="boolean" max="9999" _gui-text="outset" gui-description="have lid overlap at the sides (similar to OutSetEdge)">False</param>
|
||||||
|
<param name="Hinge_pinwidth" type="float" precision="2" max="9999" _gui-text="pinwidth" gui-description="set to lower value to get disks surrounding the pins">0.5</param>
|
||||||
|
<param name="Hinge_style" type="enum" _gui-text="style" gui-description='"outset" or "flush"'>
|
||||||
|
<item value="outset" selected="selected">outset</item>
|
||||||
|
<item value="flush">flush</item>
|
||||||
|
</param>
|
||||||
|
<param name="Hinge_axle" type="int" max="9999" _gui-text="axle" gui-description="diameter of the pin hole">2</param>
|
||||||
|
<param name="Hinge_grip_length" type="int" max="9999" _gui-text="grip_length" gui-description="fixed length of the grips on he lids">0</param>
|
||||||
|
<param name="Hinge_hingestrength" type="int" max="9999" _gui-text="hingestrength" gui-description="thickness of the arc holding the pin in place">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="5" _gui-text="Cabinet Hinges">
|
||||||
|
<param name="CabinetHinge_bore" type="float" precision="2" max="9999" _gui-text="bore" gui-description="diameter of the pin hole in mm">3.2</param>
|
||||||
|
<param name="CabinetHinge_eyes_per_hinge" type="int" max="9999" _gui-text="eyes_per_hinge" gui-description="pieces per hinge">5</param>
|
||||||
|
<param name="CabinetHinge_hinges" type="int" max="9999" _gui-text="hinges" gui-description="number of hinges per edge">2</param>
|
||||||
|
<param name="CabinetHinge_style" type="enum" _gui-text="style" gui-description="style of hinge used">
|
||||||
|
<item value="inside" selected="selected">inside</item>
|
||||||
|
<item value="outside">outside</item>
|
||||||
|
</param>
|
||||||
|
<param name="CabinetHinge_eye" type="float" precision="2" max="9999" _gui-text="eye" gui-description="radius of the eye (in multiples of thickness)">1.5</param>
|
||||||
|
<param name="CabinetHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="space between eyes (in multiples of thickness)">0.05</param>
|
||||||
|
<param name="CabinetHinge_spacing" type="float" precision="2" max="9999" _gui-text="spacing" gui-description="minimum space around the hinge">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="6" _gui-text="Slide-on Lids">
|
||||||
|
<param name="Lid_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="Lid_second_pin" type="boolean" max="9999" _gui-text="second_pin" gui-description="">True</param>
|
||||||
|
<param name="Lid_spring" type="enum" _gui-text="spring" gui-description="">
|
||||||
|
<item value="both" selected="selected">both</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
<item value="left">left</item>
|
||||||
|
<item value="right">right</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="Lid_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="Lid_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">3.0</param>
|
||||||
|
<param name="Lid_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.05</param>
|
||||||
|
<param name="Lid_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="Lid_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="7" _gui-text="Click-on Lids">
|
||||||
|
<param name="Click_angle" type="int" max="9999" _gui-text="angle" gui-description="">5</param>
|
||||||
|
<param name="Click_bottom_radius" type="float" precision="2" max="9999" _gui-text="bottom_radius" gui-description="">0.1</param>
|
||||||
|
<param name="Click_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="8" _gui-text="RoundedTriangleEdge">
|
||||||
|
<param name="RoundedTriangleEdge_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height above the wall">150.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_r_hole" type="float" precision="2" max="9999" _gui-text="r_hole" gui-description="radius of hole">2.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of top corner">30.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_outset" type="float" precision="2" max="9999" _gui-text="outset" gui-description="extend the triangle along the length of the edge">0.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="9" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes with flex"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
61
boxes.py.UnevenHeightBox.inx
Normal file
61
boxes.py.UnevenHeightBox.inx
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>UnevenHeightBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.UnevenHeightBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">unevenheightbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="UnevenHeightBox">
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="outside" type="boolean" max="9999" _gui-text="outside" gui-description="treat sizes as outside measurements that include the walls">True</param>
|
||||||
|
<param name="height0" type="float" precision="2" max="9999" _gui-text="height0" gui-description="height of the front left corner in mm">50</param>
|
||||||
|
<param name="height1" type="float" precision="2" max="9999" _gui-text="height1" gui-description="height of the front right corner in mm">50</param>
|
||||||
|
<param name="height2" type="float" precision="2" max="9999" _gui-text="height2" gui-description="height of the right back corner in mm">100</param>
|
||||||
|
<param name="height3" type="float" precision="2" max="9999" _gui-text="height3" gui-description="height of the left back corner in mm">100</param>
|
||||||
|
<param name="lid" type="boolean" max="9999" _gui-text="lid" gui-description="add a lid (works best with high corners opposing each other)">False</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
149
boxes.py.UniversalBox.inx
Normal file
149
boxes.py.UniversalBox.inx
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>UniversalBox</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.UniversalBox</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">universalbox</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="UniversalBox">
|
||||||
|
<param name="top_edge" type="enum" gui-text="top_edge" gui-description="edge type for top edge">
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="c">c Abstract Edge Class</item>
|
||||||
|
<item value="E">E Straight Edge (outset by thickness)</item>
|
||||||
|
<item value="S">S Stackable (top)</item>
|
||||||
|
<item value="i">i Straight edge with hinge eye</item>
|
||||||
|
<item value="k">k Straight edge with hinge eye (both ends)</item>
|
||||||
|
<item value="v">v Edge with cabinet hinges for 90° lid</item>
|
||||||
|
<item value="f">f Finger Joint</item>
|
||||||
|
<item value="L">L Edge for slide on lid (box back)</item>
|
||||||
|
<item value="t">t Triangle for handle</item>
|
||||||
|
</param>
|
||||||
|
<param name="bottom_edge" type="enum" gui-text="bottom_edge" gui-description="edge type for bottom edge">
|
||||||
|
<item value="F">F Finger Joint (opposing side)</item>
|
||||||
|
<item value="h">h Edge (parallel Finger Joint Holes)</item>
|
||||||
|
<item value="s">s Stackable (bottom, finger joint holes)</item>
|
||||||
|
<item value="e">e Straight Edge</item>
|
||||||
|
</param>
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">100.0</param>
|
||||||
|
<param name="lid" type="enum" _gui-text="lid" gui-description="additional lid (for straight top_edge only)">
|
||||||
|
<item value="default (none)" selected="selected">default (none)</item>
|
||||||
|
<item value="chest">chest</item>
|
||||||
|
<item value="flat">flat</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="3" _gui-text="Stackable Edges">
|
||||||
|
<param name="Stackable_angle" type="int" max="9999" _gui-text="angle" gui-description="inside angle of the feet">60</param>
|
||||||
|
<param name="Stackable_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height of the feet">2.0</param>
|
||||||
|
<param name="Stackable_holedistance" type="float" precision="2" max="9999" _gui-text="holedistance" gui-description="distance from finger holes to bottom edge">1.0</param>
|
||||||
|
<param name="Stackable_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of the feet">4.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="4" _gui-text="Hinges and HingePins">
|
||||||
|
<param name="Hinge_grip_percentage" type="int" max="9999" _gui-text="grip_percentage" gui-description="">0</param>
|
||||||
|
<param name="Hinge_outset" type="boolean" max="9999" _gui-text="outset" gui-description="have lid overlap at the sides (similar to OutSetEdge)">False</param>
|
||||||
|
<param name="Hinge_pinwidth" type="float" precision="2" max="9999" _gui-text="pinwidth" gui-description="set to lower value to get disks surrounding the pins">0.5</param>
|
||||||
|
<param name="Hinge_style" type="enum" _gui-text="style" gui-description='"outset" or "flush"'>
|
||||||
|
<item value="outset" selected="selected">outset</item>
|
||||||
|
<item value="flush">flush</item>
|
||||||
|
</param>
|
||||||
|
<param name="Hinge_axle" type="int" max="9999" _gui-text="axle" gui-description="diameter of the pin hole">2</param>
|
||||||
|
<param name="Hinge_grip_length" type="int" max="9999" _gui-text="grip_length" gui-description="fixed length of the grips on he lids">0</param>
|
||||||
|
<param name="Hinge_hingestrength" type="int" max="9999" _gui-text="hingestrength" gui-description="thickness of the arc holding the pin in place">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="5" _gui-text="Cabinet Hinges">
|
||||||
|
<param name="CabinetHinge_bore" type="float" precision="2" max="9999" _gui-text="bore" gui-description="diameter of the pin hole in mm">3.2</param>
|
||||||
|
<param name="CabinetHinge_eyes_per_hinge" type="int" max="9999" _gui-text="eyes_per_hinge" gui-description="pieces per hinge">5</param>
|
||||||
|
<param name="CabinetHinge_hinges" type="int" max="9999" _gui-text="hinges" gui-description="number of hinges per edge">2</param>
|
||||||
|
<param name="CabinetHinge_style" type="enum" _gui-text="style" gui-description="style of hinge used">
|
||||||
|
<item value="inside" selected="selected">inside</item>
|
||||||
|
<item value="outside">outside</item>
|
||||||
|
</param>
|
||||||
|
<param name="CabinetHinge_eye" type="float" precision="2" max="9999" _gui-text="eye" gui-description="radius of the eye (in multiples of thickness)">1.5</param>
|
||||||
|
<param name="CabinetHinge_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="space between eyes (in multiples of thickness)">0.05</param>
|
||||||
|
<param name="CabinetHinge_spacing" type="float" precision="2" max="9999" _gui-text="spacing" gui-description="minimum space around the hinge">2.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="6" _gui-text="Slide-on Lids">
|
||||||
|
<param name="Lid_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="Lid_second_pin" type="boolean" max="9999" _gui-text="second_pin" gui-description="">True</param>
|
||||||
|
<param name="Lid_spring" type="enum" _gui-text="spring" gui-description="">
|
||||||
|
<item value="both" selected="selected">both</item>
|
||||||
|
<item value="none">none</item>
|
||||||
|
<item value="left">left</item>
|
||||||
|
<item value="right">right</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="Lid_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="Lid_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="Lid_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">3.0</param>
|
||||||
|
<param name="Lid_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.05</param>
|
||||||
|
<param name="Lid_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="Lid_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="7" _gui-text="Click-on Lids">
|
||||||
|
<param name="Click_angle" type="int" max="9999" _gui-text="angle" gui-description="">5</param>
|
||||||
|
<param name="Click_bottom_radius" type="float" precision="2" max="9999" _gui-text="bottom_radius" gui-description="">0.1</param>
|
||||||
|
<param name="Click_depth" type="float" precision="2" max="9999" _gui-text="depth" gui-description="">3.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="8" _gui-text="RoundedTriangleEdge">
|
||||||
|
<param name="RoundedTriangleEdge_height" type="float" precision="2" max="9999" _gui-text="height" gui-description="height above the wall">150.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_r_hole" type="float" precision="2" max="9999" _gui-text="r_hole" gui-description="radius of hole">2.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="radius of top corner">30.0</param>
|
||||||
|
<param name="RoundedTriangleEdge_outset" type="int" max="9999" _gui-text="outset" gui-description="extend the triangle along the length of the edge">1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="9" _gui-text="Flex">
|
||||||
|
<param name="Flex_stretch" type="float" precision="2" max="9999" _gui-text="stretch" gui-description="Hint of how much the flex part should be shortend">1.05</param>
|
||||||
|
<param name="Flex_connection" type="float" precision="2" max="9999" _gui-text="connection" gui-description="width of the gaps in the cuts">1.0</param>
|
||||||
|
<param name="Flex_distance" type="float" precision="2" max="9999" _gui-text="distance" gui-description="width of the pattern perpendicular to the cuts">0.5</param>
|
||||||
|
<param name="Flex_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="">5.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Boxes"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
39
boxes.py.WaivyKnob.inx
Normal file
39
boxes.py.WaivyKnob.inx
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>WaivyKnob</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.WaivyKnob</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">waivyknob</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="WaivyKnob">
|
||||||
|
<param name="diameter" type="float" precision="2" max="9999" _gui-text="diameter" gui-description="Diameter of the knob (mm)">50.0</param>
|
||||||
|
<param name="serrations" type="int" max="9999" _gui-text="serrations" gui-description="Number of serrations">20</param>
|
||||||
|
<param name="serrationangle" type="float" precision="2" max="9999" _gui-text="serrationangle" gui-description="higher values for deeper serrations (degrees)">45.0</param>
|
||||||
|
<param name="bolthole" type="float" precision="2" max="9999" _gui-text="bolthole" gui-description="Diameter of the bolt hole (mm)">6.0</param>
|
||||||
|
<param name="dhole" type="float" precision="2" max="9999" _gui-text="dhole" gui-description="D-Flat in fraction of the diameter">1.0</param>
|
||||||
|
<param name="hexhead" type="float" precision="2" max="9999" _gui-text="hexhead" gui-description="Width of the hex bolt head (mm)">10.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Parts and Samples"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
56
boxes.py.WineRack.inx
Normal file
56
boxes.py.WineRack.inx
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>WineRack</_name>
|
||||||
|
<dependency type="executable" location="extensions">boxes.exe</dependency>
|
||||||
|
<id>info.festi.boxes.py.WineRack</id>
|
||||||
|
|
||||||
|
<param name="generator" type="string" gui-hidden="true">winerack</param>
|
||||||
|
<param name="tab" type="notebook">
|
||||||
|
|
||||||
|
<page name="0" _gui-text="WineRack">
|
||||||
|
<param name="x" type="float" precision="2" max="9999" _gui-text="x" gui-description="inner width in mm (unless outside selected)">400</param>
|
||||||
|
<param name="y" type="float" precision="2" max="9999" _gui-text="y" gui-description="inner depth in mm (unless outside selected)">300</param>
|
||||||
|
<param name="h" type="float" precision="2" max="9999" _gui-text="h" gui-description="inner height in mm (unless outside selected)">210</param>
|
||||||
|
<param name="radius" type="float" precision="2" max="9999" _gui-text="radius" gui-description="Radius of comb">46.0</param>
|
||||||
|
<param name="walls" type="enum" _gui-text="walls" gui-description="which of the honey comb walls to add">
|
||||||
|
<item value="minimal">minimal</item>
|
||||||
|
<item value="no_verticals">no_verticals</item>
|
||||||
|
<item value="all" selected="selected">all</item>
|
||||||
|
</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="1" _gui-text="Default">
|
||||||
|
<param name="thickness" type="float" precision="2" max="9999" _gui-text="thickness" gui-description="thickness of the material">3.0</param>
|
||||||
|
<param name="tabs" type="float" precision="2" max="9999" _gui-text="tabs" gui-description="width of tabs holding the parts in place in mm (not supported everywhere)">0.0</param>
|
||||||
|
<param name="debug" type="boolean" max="9999" _gui-text="debug" gui-description="print surrounding boxes for some structures">False</param>
|
||||||
|
<param name="reference" type="float" precision="2" max="9999" _gui-text="reference" gui-description="print reference rectangle with given length (zero to disable)">100</param>
|
||||||
|
<param name="burn" type="float" precision="2" max="9999" _gui-text="burn" gui-description='burn correction in mm (bigger values for tighter fit). Use BurnTest in "Parts and Samples" to find the right value.'>0.1</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
<page name="2" _gui-text="Finger Joints">
|
||||||
|
<param name="FingerJoint_angle" type="float" precision="2" max="9999" _gui-text="angle" gui-description="">90.0</param>
|
||||||
|
<param name="FingerJoint_style" type="enum" _gui-text="style" gui-description="style of the fingers">
|
||||||
|
<item value="rectangular" selected="selected">rectangular</item>
|
||||||
|
<item value="springs">springs</item>
|
||||||
|
</param>
|
||||||
|
<param name="FingerJoint_surroundingspaces" type="float" precision="2" max="9999" _gui-text="surroundingspaces" gui-description="maximum space at the start and end in multiple of normal spaces">2.0</param>
|
||||||
|
<param name="FingerJoint_edge_width" type="float" precision="2" max="9999" _gui-text="edge_width" gui-description="space below holes of FingerHoleEdge">1.0</param>
|
||||||
|
<param name="FingerJoint_finger" type="float" precision="2" max="9999" _gui-text="finger" gui-description="width of the fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_play" type="float" precision="2" max="9999" _gui-text="play" gui-description="extra space to allow finger move in and out">0.0</param>
|
||||||
|
<param name="FingerJoint_space" type="float" precision="2" max="9999" _gui-text="space" gui-description="space between fingers">2.0</param>
|
||||||
|
<param name="FingerJoint_width" type="float" precision="2" max="9999" _gui-text="width" gui-description="width of finger holes">1.0</param>
|
||||||
|
</page>
|
||||||
|
|
||||||
|
</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="Boxes.py">
|
||||||
|
<submenu _name="Shelves"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions">boxes.exe</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
31
fablabchemnitz_CardLayoutGuides.inx
Normal file
31
fablabchemnitz_CardLayoutGuides.inx
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Cards Layout Guides</_name>
|
||||||
|
<id>fablabchemnitz.de.CardLayoutGuides</id>
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_CardLayoutGuides.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">inkex.py</dependency>
|
||||||
|
<param name="layout" type="enum" gui-text="Layout Type">
|
||||||
|
<item value="SIMPLE">Simple Grid</item>
|
||||||
|
<item value="FOLDING">Folding Grid</item>
|
||||||
|
</param>
|
||||||
|
<param name="card_width" type="float" precision="1" min="5" max="1000" gui-text="Card width (mm)">60</param>
|
||||||
|
<param name="card_height" type="float" precision="1" min="5" max="1000" gui-text="Card height (mm)">30</param>
|
||||||
|
<param name="orientation" type="enum" gui-text="Card Orientation">
|
||||||
|
<item value="HORIZONTAL">Horizontal</item>
|
||||||
|
<item value="VERTICAL">Vertical</item>
|
||||||
|
</param>
|
||||||
|
<param name="card_margin" type="float" precision="1" min="0" max="200" gui-text="Card margin(mm)">2</param>
|
||||||
|
<param name="bleed_margin" type="float" precision="1" min="0" max="200" gui-text="Bleed margin(mm)">2</param>
|
||||||
|
<param name="page_margin" type="float" precision="1" min="0" max="200" gui-text="Page margin(mm)">15</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="FabLab Chemnitz">
|
||||||
|
<submenu _name="Grids/Guides" />
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions" interpreter="python">fablabchemnitz_CardLayoutGuides.py</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
485
fablabchemnitz_CardLayoutGuides.py
Normal file
485
fablabchemnitz_CardLayoutGuides.py
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright 2016 Luke Phillips (lukerazor@hotmail.com)
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
#along with this program; if not, write to the Free Software
|
||||||
|
#Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Extension dirs
|
||||||
|
# linux:~/.config/inkscape/extensions
|
||||||
|
# windows: [Drive]:\Program Files\Inkscape\share\extensions
|
||||||
|
|
||||||
|
import inkex
|
||||||
|
import simplestyle
|
||||||
|
import copy
|
||||||
|
import math
|
||||||
|
|
||||||
|
FOLD_GAP = 5
|
||||||
|
CROP_GAP = 2
|
||||||
|
CROP_LENGTH = 3
|
||||||
|
|
||||||
|
CSNS = ""
|
||||||
|
|
||||||
|
inkex.NSS[u'cs'] = u'http://www.razorfoss.org/cardlayoutguides/'
|
||||||
|
|
||||||
|
def PrintDebug(string):
|
||||||
|
inkex.debug( _(str(string)) )
|
||||||
|
|
||||||
|
def RoundAndDeduplicatePoints(points):
|
||||||
|
return sorted(list(set(map(lambda x: round(x, 3), points))))
|
||||||
|
|
||||||
|
class Point():
|
||||||
|
def __init__(self, x, y):
|
||||||
|
self.x = x
|
||||||
|
self.y = y
|
||||||
|
|
||||||
|
def rotate(self, angle, origin):
|
||||||
|
"""
|
||||||
|
Rotate a point counterclockwise by a given angle around a given origin.
|
||||||
|
|
||||||
|
The angle should be given in degrees.
|
||||||
|
"""
|
||||||
|
rads = math.radians(angle)
|
||||||
|
newX = origin.x + math.cos(rads) * (self.x - origin.x) - math.sin(rads) * (self.y - origin.y)
|
||||||
|
newY = origin.y + math.sin(rads) * (self.x - origin.x) + math.cos(rads) * (self.y - origin.y)
|
||||||
|
|
||||||
|
return Point(newX, newY)
|
||||||
|
|
||||||
|
def add(self, point):
|
||||||
|
return Point(self.x + point.x, self.y + point.y)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parsePoint(pointString):
|
||||||
|
x, y = map(lambda v: float(v), pointString.split(","))
|
||||||
|
return Point(x, y)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse(pointString, orientationString=None):
|
||||||
|
p1 = Point.parsePoint(pointString)
|
||||||
|
p = Point(p1.x, p1.y)
|
||||||
|
|
||||||
|
if orientationString != None:
|
||||||
|
po = Point.parsePoint(orientationString)
|
||||||
|
p = p1.add(po.rotate(270, Point(0, 0)))
|
||||||
|
|
||||||
|
return p
|
||||||
|
|
||||||
|
class LineGeneratorBase(object):
|
||||||
|
def __init__(self, cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
self.UnitConverterFunc = unitConverterFunc
|
||||||
|
self.CardWidth = cardWidth
|
||||||
|
self.CardHeight = cardHeight
|
||||||
|
self.CardMargin = cardMargin
|
||||||
|
self.BleedMargin = bleedMargin
|
||||||
|
|
||||||
|
self.PageWidth = pageWidth
|
||||||
|
self.PageHeight = pageHeight
|
||||||
|
self.PageMargin = pageMargin
|
||||||
|
|
||||||
|
self.ContainerWidth = -1
|
||||||
|
self.ContainerHeight = -1
|
||||||
|
|
||||||
|
self.GuideOffsetsWithFold = [
|
||||||
|
0,
|
||||||
|
self.BleedMargin, self.CardMargin, self.CardHeight - 2*self.CardMargin, self.CardMargin, self.BleedMargin,
|
||||||
|
2*FOLD_GAP,
|
||||||
|
self.BleedMargin, self.CardMargin, self.CardHeight - 2*self.CardMargin, self.CardMargin, self.BleedMargin
|
||||||
|
]
|
||||||
|
|
||||||
|
self.GuideOffsetsNoFold = [
|
||||||
|
0,
|
||||||
|
self.BleedMargin, self.CardMargin,
|
||||||
|
self.CardWidth - 2*self.CardMargin,
|
||||||
|
self.CardMargin, self.BleedMargin
|
||||||
|
]
|
||||||
|
|
||||||
|
def CalcPageLeftMargin(self):
|
||||||
|
return (self.PageWidth - self.ContentWidth) / 2.0
|
||||||
|
|
||||||
|
def CalcPageBottomMargin(self):
|
||||||
|
return (self.PageHeight - self.ContentHeight) / 2.0
|
||||||
|
|
||||||
|
def DrawGuide(self, xmlParent, xpos, ypos):
|
||||||
|
posString = "{},{}".format(xpos, ypos)
|
||||||
|
attribs = {'position': posString, 'orientation': posString}
|
||||||
|
|
||||||
|
inkex.etree.SubElement(xmlParent, inkex.addNS('guide',"sodipodi"), attribs)
|
||||||
|
|
||||||
|
def ConvertPoint(self, p):
|
||||||
|
# convert point into svg approriate values, including catering for inkscapes "alternative" axis sytem ie 0, 0 is bottom left not top left
|
||||||
|
newX = self.UnitConverterFunc("{}mm".format(p.x))
|
||||||
|
newY = self.PageHeight - self.UnitConverterFunc("{}mm".format(p.y))
|
||||||
|
|
||||||
|
return Point(newX, newY)
|
||||||
|
|
||||||
|
def DrawLine(self, xmlParent, p1, p2):
|
||||||
|
cp1 = self.ConvertPoint(p1)
|
||||||
|
cp2 = self.ConvertPoint(p2)
|
||||||
|
|
||||||
|
pathStr = "M {},{} {}, {}".format(cp1.x, cp1.y, cp2.x, cp2.y)
|
||||||
|
style = {'stroke': '#000000', 'stroke-width': self.UnitConverterFunc('0.25mm'), 'fill': 'none'}
|
||||||
|
attribs = {'style': simplestyle.formatStyle(style), 'd': pathStr}
|
||||||
|
|
||||||
|
inkex.etree.SubElement(xmlParent, inkex.addNS('path','svg'), attribs )
|
||||||
|
|
||||||
|
def DrawVerticleGuides(self, xmlParent, positions, gap):
|
||||||
|
curPos = self.CalcPageLeftMargin()
|
||||||
|
lastPos = -1
|
||||||
|
while curPos + self.ContainerWidth <= self.PageWidth - self.PageMargin:
|
||||||
|
for offset in positions:
|
||||||
|
curPos += offset
|
||||||
|
if curPos != lastPos: # don't double draw
|
||||||
|
self.DrawGuide(xmlParent, curPos, 0)
|
||||||
|
|
||||||
|
lastPos = curPos
|
||||||
|
|
||||||
|
curPos += gap
|
||||||
|
|
||||||
|
def DrawHorizontalGuides(self, xmlParent, positions, gap):
|
||||||
|
curPos = self.CalcPageBottomMargin()
|
||||||
|
lastPos = -1
|
||||||
|
while curPos + self.ContainerHeight <= self.PageHeight - self.PageMargin:
|
||||||
|
for offset in positions:
|
||||||
|
curPos += offset
|
||||||
|
if curPos != lastPos: # don't double draw
|
||||||
|
self.DrawGuide(xmlParent, 0, curPos)
|
||||||
|
|
||||||
|
lastPos = curPos
|
||||||
|
|
||||||
|
curPos += gap
|
||||||
|
|
||||||
|
def GenerateFoldLines(self, xmlParent):
|
||||||
|
lines = self.GetFoldLinePositions()
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
self.DrawLine(xmlParent, line[0], line[1])
|
||||||
|
|
||||||
|
def GenerateCropMarks(self, xmlParent):
|
||||||
|
lines = self.GetCropMarkLines()
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
self.DrawLine(xmlParent, line[0], line[1])
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def CreateLineGenerator(layout, orientation, cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
if layout == "SIMPLE":
|
||||||
|
return SimpleGridLineGenerator(orientation, cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
if orientation == "HORIZONTAL":
|
||||||
|
return LineGeneratorForHorizontalCards(cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
return LineGeneratorForVerticalCards(cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
class SimpleGridLineGenerator(LineGeneratorBase):
|
||||||
|
def __init__(self, orientation, cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
if orientation == "HORIZONTAL":
|
||||||
|
super(SimpleGridLineGenerator, self).__init__(cardHeight, cardWidth, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
else:
|
||||||
|
super(SimpleGridLineGenerator, self).__init__(cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
self.ContainerWidth = self.CardWidth + 2 * bleedMargin
|
||||||
|
self.ContainerHeight = self.CardHeight + 2 * bleedMargin
|
||||||
|
|
||||||
|
# num across
|
||||||
|
# num down
|
||||||
|
self.NumContainersAcross = int((self.PageWidth - 2*self.PageMargin) // self.ContainerWidth) # round down division
|
||||||
|
self.NumContainersDown = int((self.PageHeight - 2*self.PageMargin) // self.ContainerHeight) # round down division
|
||||||
|
|
||||||
|
# content sizes
|
||||||
|
self.ContentWidth = self.NumContainersAcross * self.ContainerWidth
|
||||||
|
self.ContentHeight = self.NumContainersDown * self.ContainerHeight
|
||||||
|
|
||||||
|
def GenerateGuides(self, xmlParent):
|
||||||
|
horizontalOffsets = self.GuideOffsetsNoFold = [
|
||||||
|
0,
|
||||||
|
self.BleedMargin, self.CardMargin,
|
||||||
|
self.CardWidth - 2*self.CardMargin,
|
||||||
|
self.CardMargin, self.BleedMargin
|
||||||
|
]
|
||||||
|
|
||||||
|
verticalOffsets = self.GuideOffsetsNoFold = [
|
||||||
|
0,
|
||||||
|
self.BleedMargin, self.CardMargin,
|
||||||
|
self.CardHeight - 2*self.CardMargin,
|
||||||
|
self.CardMargin, self.BleedMargin
|
||||||
|
]
|
||||||
|
|
||||||
|
self.DrawVerticleGuides(xmlParent, horizontalOffsets, 0)
|
||||||
|
self.DrawHorizontalGuides(xmlParent, verticalOffsets, 0)
|
||||||
|
|
||||||
|
def GetFoldLinePositions(self):
|
||||||
|
return [] # no fold lines in simple grid
|
||||||
|
|
||||||
|
def GetCropMarkLines(self):
|
||||||
|
lines = []
|
||||||
|
|
||||||
|
leftMargin = self.CalcPageLeftMargin()
|
||||||
|
bottomMargin = self.CalcPageBottomMargin()
|
||||||
|
|
||||||
|
#determine all horizontal crop marks, duplicates possible
|
||||||
|
# figure out the ypos
|
||||||
|
horizontal_ypos = []
|
||||||
|
for idx in range(self.NumContainersDown):
|
||||||
|
bottomY = self.BleedMargin
|
||||||
|
topY = bottomY + self.CardHeight
|
||||||
|
containerOffset = bottomMargin + idx*self.ContainerHeight
|
||||||
|
|
||||||
|
horizontal_ypos.append(containerOffset + bottomY)
|
||||||
|
horizontal_ypos.append(containerOffset + topY)
|
||||||
|
|
||||||
|
horizontal_ypos = RoundAndDeduplicatePoints(horizontal_ypos) # remove duplicate positions
|
||||||
|
|
||||||
|
horizontal_xpos = [leftMargin - CROP_GAP, self.PageWidth - leftMargin + CROP_GAP + CROP_LENGTH]
|
||||||
|
for xpos in horizontal_xpos:
|
||||||
|
for ypos in horizontal_ypos:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos - CROP_LENGTH, ypos),
|
||||||
|
Point(xpos, ypos)
|
||||||
|
])
|
||||||
|
|
||||||
|
#determine all vertical crop marks, duplicates possible
|
||||||
|
# figure out the xpos
|
||||||
|
vertical_xpos = []
|
||||||
|
for idx in range(self.NumContainersAcross):
|
||||||
|
leftX = self.BleedMargin
|
||||||
|
rightX = leftX + self.CardWidth
|
||||||
|
containerOffset = leftMargin + idx*self.ContainerWidth
|
||||||
|
|
||||||
|
vertical_xpos.append(containerOffset + leftX)
|
||||||
|
vertical_xpos.append(containerOffset + rightX)
|
||||||
|
|
||||||
|
vertical_xpos = RoundAndDeduplicatePoints(vertical_xpos) # remove duplicate positions
|
||||||
|
|
||||||
|
vertical_ypos = [bottomMargin - CROP_GAP, self.PageHeight - bottomMargin + CROP_GAP + CROP_LENGTH]
|
||||||
|
for xpos in vertical_xpos:
|
||||||
|
for ypos in vertical_ypos:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos),
|
||||||
|
Point(xpos, ypos - CROP_LENGTH)
|
||||||
|
])
|
||||||
|
|
||||||
|
return lines
|
||||||
|
|
||||||
|
class LineGeneratorForVerticalCards(LineGeneratorBase):
|
||||||
|
def __init__(self, cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
super(LineGeneratorForVerticalCards, self).__init__(cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
self.ContainerWidth = cardWidth + 2*bleedMargin
|
||||||
|
self.ContainerHeight = 2*(cardHeight + 2*bleedMargin + FOLD_GAP)
|
||||||
|
|
||||||
|
# num across
|
||||||
|
self.NumContainersAcross = int((self.PageWidth - 2*self.PageMargin) // self.ContainerWidth) # round down division
|
||||||
|
|
||||||
|
# num down
|
||||||
|
contentHeight = lambda n: n * self.ContainerHeight + (n - 1)*(2*FOLD_GAP)
|
||||||
|
workingHeight = self.PageHeight - 2*self.PageMargin
|
||||||
|
|
||||||
|
self.NumContainersDown = int(workingHeight // self.ContainerHeight) # round down division for nominal value
|
||||||
|
if contentHeight(self.NumContainersDown) > workingHeight:
|
||||||
|
self.NumContainersDown -= 1
|
||||||
|
|
||||||
|
# content sizes
|
||||||
|
self.ContentWidth = self.NumContainersAcross * self.ContainerWidth
|
||||||
|
self.ContentHeight = contentHeight(self.NumContainersDown)
|
||||||
|
|
||||||
|
def GenerateGuides(self, xmlParent):
|
||||||
|
self.DrawVerticleGuides(xmlParent, self.GuideOffsetsNoFold, 0)
|
||||||
|
self.DrawHorizontalGuides(xmlParent, self.GuideOffsetsWithFold, 2*FOLD_GAP)
|
||||||
|
|
||||||
|
def GetFoldLinePositions(self):
|
||||||
|
lines = []
|
||||||
|
leftMargin = self.CalcPageLeftMargin()
|
||||||
|
|
||||||
|
for idx in range(self.NumContainersDown):
|
||||||
|
foldY = self.CalcPageBottomMargin() + idx*(self.ContainerHeight + 2*FOLD_GAP) + self.ContainerHeight/2
|
||||||
|
lines.append([Point(leftMargin, foldY), Point(self.PageWidth - leftMargin, foldY)])
|
||||||
|
|
||||||
|
return lines
|
||||||
|
|
||||||
|
def GetCropMarkLines(self):
|
||||||
|
lines = []
|
||||||
|
|
||||||
|
leftMargin = self.CalcPageLeftMargin()
|
||||||
|
bottomMargin = self.CalcPageBottomMargin()
|
||||||
|
vertical_ypos = []
|
||||||
|
# determine all of the hornzontal facing crop marks, no duplicates possible
|
||||||
|
for idx in range(self.NumContainersDown):
|
||||||
|
bottomY = self.BleedMargin
|
||||||
|
topY = bottomY + self.CardHeight
|
||||||
|
containerOffset = bottomMargin + idx*(self.ContainerHeight + 2*FOLD_GAP)
|
||||||
|
vertical_ypos += [
|
||||||
|
containerOffset - CROP_GAP,
|
||||||
|
containerOffset + 2*self.BleedMargin + 2*self.CardMargin + self.CardHeight + CROP_GAP + CROP_LENGTH
|
||||||
|
] # stash for later
|
||||||
|
|
||||||
|
for ypos in [containerOffset + bottomY, containerOffset + topY]:
|
||||||
|
for xpos in [leftMargin - CROP_GAP, self.PageWidth - leftMargin + CROP_GAP + CROP_LENGTH]:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos),
|
||||||
|
Point(xpos - CROP_LENGTH, ypos)
|
||||||
|
])
|
||||||
|
|
||||||
|
#determine all vertical crop marks, duplicates possible
|
||||||
|
# figure out the xpos
|
||||||
|
vertical_xpos = []
|
||||||
|
for idx in range(self.NumContainersAcross):
|
||||||
|
leftX = self.BleedMargin
|
||||||
|
rightX = leftX + self.CardWidth
|
||||||
|
containerOffset = leftMargin + idx*self.ContainerWidth
|
||||||
|
|
||||||
|
vertical_xpos.append(containerOffset + leftX)
|
||||||
|
vertical_xpos.append(containerOffset + rightX)
|
||||||
|
|
||||||
|
vertical_xpos = list(set(vertical_xpos)) # remove duplicate positions
|
||||||
|
|
||||||
|
for xpos in vertical_xpos:
|
||||||
|
for ypos in vertical_ypos:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos),
|
||||||
|
Point(xpos, ypos - CROP_LENGTH)
|
||||||
|
])
|
||||||
|
|
||||||
|
return lines
|
||||||
|
|
||||||
|
class LineGeneratorForHorizontalCards(LineGeneratorBase):
|
||||||
|
def __init__(self, cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
super(LineGeneratorForHorizontalCards, self).__init__(cardWidth, cardHeight, cardMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
self.ContainerWidth = 2*(cardHeight + 2 * bleedMargin + FOLD_GAP)
|
||||||
|
self.ContainerHeight = cardWidth + 2 * bleedMargin
|
||||||
|
|
||||||
|
# num across
|
||||||
|
contentWidth = lambda n: n * self.ContainerWidth + (n - 1)*(2*FOLD_GAP)
|
||||||
|
workingWidth = self.PageWidth - 2*self.PageMargin
|
||||||
|
|
||||||
|
self.NumContainersAcross = int(workingWidth // self.ContainerWidth) # round down division for nominal value
|
||||||
|
if contentWidth(self.NumContainersAcross) > workingWidth:
|
||||||
|
self.NumContainersAcross -= 1
|
||||||
|
|
||||||
|
# num down
|
||||||
|
self.NumContainersDown = int((self.PageHeight - 2*self.PageMargin) // self.ContainerHeight) # round down division
|
||||||
|
|
||||||
|
# content sizes
|
||||||
|
self.ContentWidth = contentWidth(self.NumContainersAcross)
|
||||||
|
self.ContentHeight = self.NumContainersDown * self.ContainerHeight
|
||||||
|
|
||||||
|
def GenerateGuides(self, xmlParent):
|
||||||
|
self.DrawVerticleGuides(xmlParent, self.GuideOffsetsWithFold, 2*FOLD_GAP)
|
||||||
|
self.DrawHorizontalGuides(xmlParent, self.GuideOffsetsNoFold, 0)
|
||||||
|
|
||||||
|
def GetFoldLinePositions(self):
|
||||||
|
lines = []
|
||||||
|
bottomMargin = self.CalcPageBottomMargin()
|
||||||
|
|
||||||
|
for idx in range(self.NumContainersAcross):
|
||||||
|
foldX = self.CalcPageLeftMargin() + idx*(self.ContainerWidth + 2*FOLD_GAP) + self.ContainerWidth/2
|
||||||
|
lines.append([Point(foldX, bottomMargin), Point(foldX, self.PageHeight - bottomMargin)])
|
||||||
|
|
||||||
|
return lines
|
||||||
|
|
||||||
|
def GetCropMarkLines(self):
|
||||||
|
lines = []
|
||||||
|
|
||||||
|
leftMargin = self.CalcPageLeftMargin()
|
||||||
|
bottomMargin = self.CalcPageBottomMargin()
|
||||||
|
horizontal_xpos = []
|
||||||
|
|
||||||
|
# determine all of the vertical facing crop marks, no duplicates possible
|
||||||
|
for idx in range(self.NumContainersAcross):
|
||||||
|
leftX = self.BleedMargin
|
||||||
|
rightX = leftX + self.CardHeight
|
||||||
|
containerOffset = leftMargin + idx*(self.ContainerWidth + 2*FOLD_GAP)
|
||||||
|
horizontal_xpos += [
|
||||||
|
containerOffset - CROP_GAP,
|
||||||
|
containerOffset + 2*self.BleedMargin + 2*self.CardMargin + self.CardHeight + CROP_GAP + CROP_LENGTH
|
||||||
|
] # stash for later
|
||||||
|
|
||||||
|
for xpos in [containerOffset + leftX, containerOffset + rightX]:
|
||||||
|
for ypos in [bottomMargin - CROP_GAP, self.PageHeight - bottomMargin + CROP_GAP + CROP_LENGTH]:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos),
|
||||||
|
Point(xpos, ypos - CROP_LENGTH)
|
||||||
|
])
|
||||||
|
|
||||||
|
#determine all horizontal crop marks, duplicates possible
|
||||||
|
# figure out the xpos
|
||||||
|
horizontal_ypos = []
|
||||||
|
for idx in range(self.NumContainersDown):
|
||||||
|
bottomY = self.BleedMargin
|
||||||
|
topY = bottomY + self.CardWidth
|
||||||
|
containerOffset = bottomMargin + idx*self.ContainerHeight
|
||||||
|
|
||||||
|
horizontal_ypos.append(containerOffset + bottomY)
|
||||||
|
horizontal_ypos.append(containerOffset + topY)
|
||||||
|
|
||||||
|
horizontal_ypos = RoundAndDeduplicatePoints(horizontal_ypos) # remove duplicate positions
|
||||||
|
|
||||||
|
for ypos in horizontal_ypos:
|
||||||
|
for xpos in horizontal_xpos:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos),
|
||||||
|
Point(xpos - CROP_LENGTH, ypos)
|
||||||
|
])
|
||||||
|
|
||||||
|
return lines
|
||||||
|
|
||||||
|
class FoldedCardLayoutGuidesEffect(inkex.Effect):
|
||||||
|
def __init__(self):
|
||||||
|
inkex.Effect.__init__(self)
|
||||||
|
|
||||||
|
self.OptionParser.add_option('-l', '--layout', action = 'store', type = 'string', dest = 'Layout')
|
||||||
|
self.OptionParser.add_option('-w', '--card_width', action = 'store', type = 'float', dest = 'CardWidth')
|
||||||
|
self.OptionParser.add_option('-d', '--card_height', action = 'store', type = 'float', dest = 'CardHeight')
|
||||||
|
self.OptionParser.add_option('-o', '--orientation', action = 'store', type = 'string', dest = 'Orientation')
|
||||||
|
self.OptionParser.add_option('-c', '--card_margin', action = 'store', type = 'float', dest = 'CardMargin')
|
||||||
|
self.OptionParser.add_option('-b', '--bleed_margin', action = 'store', type = 'float', dest = 'BleedMargin')
|
||||||
|
self.OptionParser.add_option('-p', '--page_margin', action = 'store', type = 'float', dest = 'PageMargin')
|
||||||
|
|
||||||
|
def effect(self):
|
||||||
|
# find dimensions of page
|
||||||
|
pageWidth = self.uutounit(self.unittouu(self.getDocumentWidth()), "mm")
|
||||||
|
pageHeight = self.uutounit(self.unittouu(self.getDocumentHeight()), "mm")
|
||||||
|
|
||||||
|
opt = self.options
|
||||||
|
|
||||||
|
guideParent = self.document.xpath('//sodipodi:namedview',namespaces=inkex.NSS)[0]
|
||||||
|
|
||||||
|
### GUIDES
|
||||||
|
# remove all the existing guides
|
||||||
|
[node.getparent().remove(node) for node in self.document.xpath('//sodipodi:guide',namespaces=inkex.NSS)]
|
||||||
|
|
||||||
|
# create the generator object
|
||||||
|
gen = LineGeneratorBase.CreateLineGenerator(opt.Layout, opt.Orientation, opt.CardWidth, opt.CardHeight, opt.CardMargin, opt.BleedMargin, pageWidth, pageHeight, opt.PageMargin, self.unittouu)
|
||||||
|
|
||||||
|
gen.GenerateGuides(guideParent)
|
||||||
|
|
||||||
|
### FOLD LINES
|
||||||
|
# remove any existing 'Crop marks' layer
|
||||||
|
[node.getparent().remove(node) for node in self.document.xpath("//svg:g[@inkscape:label='Crop Marks']",namespaces=inkex.NSS)]
|
||||||
|
|
||||||
|
svg = self.document.xpath('//svg:svg', namespaces=inkex.NSS)[0]
|
||||||
|
layer = inkex.etree.SubElement(svg, inkex.addNS('g',"svg"), {})
|
||||||
|
layer.set(inkex.addNS('label', 'inkscape'), "Crop Marks")
|
||||||
|
layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')
|
||||||
|
#layer.set(inkex.addNS('insensitive', 'sodipodi'), 'true')
|
||||||
|
|
||||||
|
gen.GenerateFoldLines(layer)
|
||||||
|
|
||||||
|
### CROP MARKS
|
||||||
|
gen.GenerateCropMarks(layer)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
effect = FoldedCardLayoutGuidesEffect()
|
||||||
|
|
||||||
|
effect.affect()
|
28
fablabchemnitz_CreateTuckbox.inx
Normal file
28
fablabchemnitz_CreateTuckbox.inx
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Tuckbox</_name>
|
||||||
|
<id>fablabchemnitz.de.CreateTuckbox</id>
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_CreateTuckbox.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">inkex.py</dependency>
|
||||||
|
<param name="type" type="enum" gui-text="Box type">
|
||||||
|
<item value="TUCKBOX">Tuckbox</item>
|
||||||
|
<item value="SLIPCASE">Slipcase/Deck band</item>
|
||||||
|
<item value="MATCHBOX">MatchBox</item>
|
||||||
|
</param>
|
||||||
|
<param name="num_flaps" type="int" precision="1" min="1" max="2" gui-text="Number of Flaps">1</param>
|
||||||
|
<param name="deck_width" type="float" precision="1" min="5" max="1000" gui-text="Box width (mm)">63.5</param>
|
||||||
|
<param name="deck_height" type="float" precision="1" min="5" max="1000" gui-text="Box height (mm)">88</param>
|
||||||
|
<param name="deck_depth" type="float" precision="1" min="5" max="200" gui-text="Box depth (mm)">20</param>
|
||||||
|
<param name="box_allowance" type="float" precision="1" min="0" max="5" gui-text="Box allowance (mm)">1.5</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="FabLab Chemnitz">
|
||||||
|
<submenu _name="Paper/Cardboard Boxes" />
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions" interpreter="python">fablabchemnitz_CreateTuckbox.py</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
499
fablabchemnitz_CreateTuckbox.py
Normal file
499
fablabchemnitz_CreateTuckbox.py
Normal file
@ -0,0 +1,499 @@
|
|||||||
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright 2016 Luke Phillips (lukerazor@hotmail.com)
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
#along with this program; if not, write to the Free Software
|
||||||
|
#Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Extension dirs
|
||||||
|
# linux:~/.config/inkscape/extensions
|
||||||
|
# windows: [Drive]:\Program Files\Inkscape\share\extensions
|
||||||
|
|
||||||
|
import inkex
|
||||||
|
import simplestyle
|
||||||
|
import copy
|
||||||
|
|
||||||
|
CSNS = ""
|
||||||
|
|
||||||
|
inkex.NSS[u'cs'] = u'http://www.razorfoss.org/tuckboxextension/'
|
||||||
|
|
||||||
|
class EffectDimensionProvider():
|
||||||
|
def __init__(self, effect, x = 0, y = 0):
|
||||||
|
self.Effect = effect
|
||||||
|
|
||||||
|
self.Layer = effect.current_layer
|
||||||
|
|
||||||
|
self.Width = effect.options.DeckWidth
|
||||||
|
self.Height = effect.options.DeckHeight
|
||||||
|
self.Depth = effect.options.DeckDepth
|
||||||
|
self.Allowance = effect.options.DeckAllowance
|
||||||
|
|
||||||
|
self.X = x
|
||||||
|
self.Y = y
|
||||||
|
|
||||||
|
def MMtoUU(self, mmval):
|
||||||
|
if hasattr(self.Effect, "unittouu"):
|
||||||
|
return str(self.Effect.unittouu("{0}mm".format(mmval)))
|
||||||
|
else:
|
||||||
|
MM_TO_PIXELS = 3.5433071
|
||||||
|
|
||||||
|
return str(MM_TO_PIXELS * mmval)
|
||||||
|
|
||||||
|
def MaximiseHeight(self):
|
||||||
|
if self.Height < self.Width: # always choose the smallest to be the "width"
|
||||||
|
temp = self.Width
|
||||||
|
self.Width = self.Height
|
||||||
|
self.Height = temp
|
||||||
|
|
||||||
|
class BoxBase():
|
||||||
|
def __init__(self, dimensionProvider):
|
||||||
|
#create a group
|
||||||
|
self.DimProvider = dimensionProvider
|
||||||
|
self.Group = inkex.etree.SubElement(dimensionProvider.Layer, inkex.addNS('g','svg'), {} )
|
||||||
|
|
||||||
|
self.Width = dimensionProvider.Width + dimensionProvider.Allowance
|
||||||
|
self.Height = dimensionProvider.Height + dimensionProvider.Allowance
|
||||||
|
self.Depth = dimensionProvider.Depth + dimensionProvider.Allowance
|
||||||
|
self.X = dimensionProvider.X
|
||||||
|
self.Y = dimensionProvider.Y
|
||||||
|
self.MinY = 0
|
||||||
|
self.MinX = 0
|
||||||
|
|
||||||
|
### init some common sizes ###
|
||||||
|
self.ThumbSize = 20
|
||||||
|
|
||||||
|
# tuck flap size
|
||||||
|
self.FlapOffset = 1.5
|
||||||
|
self.FlapHeight = self.Depth
|
||||||
|
if self.Depth < 7 or self.Depth > 25:
|
||||||
|
self.FlapHeight = 20
|
||||||
|
|
||||||
|
# main flap size
|
||||||
|
self.MainFlapHeight = (4 * self.Depth)/3
|
||||||
|
if self.MainFlapHeight < self.ThumbSize:
|
||||||
|
self.MainFlapHeight = 24
|
||||||
|
|
||||||
|
### colour ###
|
||||||
|
self.Fill = '#ffffff'
|
||||||
|
self.StrokeWidth = self.DimProvider.MMtoUU(0.5)
|
||||||
|
|
||||||
|
def _CreateRectangleInMillimetres(self, height, width, x, y):
|
||||||
|
style = {'stroke': '#000000', 'stroke-width': self.StrokeWidth, 'fill' : self.Fill}
|
||||||
|
attribs = {'style': simplestyle.formatStyle(style), 'height': self.DimProvider.MMtoUU(height), 'width': self.DimProvider.MMtoUU(width), 'x': self.DimProvider.MMtoUU(x), 'y': self.DimProvider.MMtoUU(y)}
|
||||||
|
inkex.etree.SubElement(self.Group, inkex.addNS('rect','svg'), attribs )
|
||||||
|
|
||||||
|
def _CreatePathinMillimetres(self, cmds):
|
||||||
|
pathStr = ""
|
||||||
|
for cmd in cmds:
|
||||||
|
pathStr += cmd[0] + " "
|
||||||
|
for coord in cmd[1:]:
|
||||||
|
pathStr += self.DimProvider.MMtoUU(coord) + " "
|
||||||
|
|
||||||
|
pathStr += "z"
|
||||||
|
#raise Exception(pathStr)
|
||||||
|
|
||||||
|
style = {'stroke': '#000000', 'stroke-width': self.StrokeWidth, 'fill' : self.Fill}
|
||||||
|
attribs = {'style': simplestyle.formatStyle(style), 'd': pathStr}
|
||||||
|
inkex.etree.SubElement(self.Group, inkex.addNS('path','svg'), attribs )
|
||||||
|
|
||||||
|
class SingleFlappedTuckBox(BoxBase):
|
||||||
|
def __init__(self, dimensionProvider):
|
||||||
|
BoxBase.__init__(self, dimensionProvider)
|
||||||
|
|
||||||
|
def Create(self):
|
||||||
|
self.FlapOffset = 1.5
|
||||||
|
self.FlapHeight = 20
|
||||||
|
|
||||||
|
# Figure out some row and column values,
|
||||||
|
# note rows and cols work left to right, top to bottom
|
||||||
|
col5 = self.X - self.Depth
|
||||||
|
col4 = col5 - self.Width
|
||||||
|
col3 = col4 - self.Depth
|
||||||
|
col2 = col3 - self.Width
|
||||||
|
col1 = col2 - self.Depth
|
||||||
|
self.MinX = col1
|
||||||
|
|
||||||
|
row4 = self.Y - self.Depth
|
||||||
|
row3 = row4 - self.Height
|
||||||
|
row2 = row3 - self.Depth
|
||||||
|
row1 = row2 - self.Depth
|
||||||
|
self.MinY = row1
|
||||||
|
|
||||||
|
### COLUMN 1 ###
|
||||||
|
#create left glue panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col1, row3)
|
||||||
|
|
||||||
|
### COLUMN 2 ###
|
||||||
|
#create box back print panel
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col2, row3],
|
||||||
|
["h", (self.Width - self.ThumbSize)/2],
|
||||||
|
["c", 0, (3*self.ThumbSize)/4, self.ThumbSize, (3*self.ThumbSize)/4, self.ThumbSize, 0],
|
||||||
|
["h", (self.Width - self.ThumbSize)/2],
|
||||||
|
["v", self.Height],
|
||||||
|
["h", -self.Width]
|
||||||
|
])
|
||||||
|
|
||||||
|
#create box bottom glue panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Width, col2, row4)
|
||||||
|
|
||||||
|
### COLUMN 3 ###
|
||||||
|
#create left flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col3, row3],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, -self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
#create left print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col3, row3)
|
||||||
|
|
||||||
|
#create bottom left glue panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Depth, col3, row4)
|
||||||
|
|
||||||
|
### COLUMN 4 ###
|
||||||
|
#create main flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col4, row2],
|
||||||
|
["c", 0, -self.MainFlapHeight, self.Width, -self.MainFlapHeight, self.Width, 0]
|
||||||
|
])
|
||||||
|
|
||||||
|
#create box top print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Width, col4, row2)
|
||||||
|
|
||||||
|
#create box front print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Width, col4, row3)
|
||||||
|
|
||||||
|
#create box bottom print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Width, col4, row4)
|
||||||
|
|
||||||
|
### COLUMN 5 ###
|
||||||
|
#create right flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col5, row3],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, -self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
#create right print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col5, row3)
|
||||||
|
|
||||||
|
#create bottom right glue panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Depth, col5, row4)
|
||||||
|
|
||||||
|
class DoubleFlappedTuckBox(BoxBase):
|
||||||
|
def __init__(self, dimensionProvider):
|
||||||
|
BoxBase.__init__(self, dimensionProvider)
|
||||||
|
|
||||||
|
def Create(self):
|
||||||
|
|
||||||
|
# Figure out some row and column values,
|
||||||
|
# note rows and cols work left to right, top to bottom
|
||||||
|
col5 = self.X - self.Depth
|
||||||
|
col4 = col5 - self.Width
|
||||||
|
col3 = col4 - self.Depth
|
||||||
|
col2 = col3 - self.Width
|
||||||
|
col1 = col2 - self.Depth
|
||||||
|
self.MinX = col1
|
||||||
|
|
||||||
|
row5 = self.Y - self.Depth
|
||||||
|
row4 = row5 - self.Depth
|
||||||
|
row3 = row4 - self.Height
|
||||||
|
row2 = row3 - self.Depth
|
||||||
|
row1 = row2 - self.Depth
|
||||||
|
self.MinY = row1
|
||||||
|
|
||||||
|
### COLUMN 1 ###
|
||||||
|
#create left glue panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col1, row3)
|
||||||
|
|
||||||
|
### COLUMN 2 ###
|
||||||
|
#create box back print panel
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col2, row3],
|
||||||
|
["h", (self.Width - self.ThumbSize)/2],
|
||||||
|
["c", 0, (3*self.ThumbSize)/4, self.ThumbSize, (3*self.ThumbSize)/4, self.ThumbSize, 0],
|
||||||
|
["h", (self.Width - self.ThumbSize)/2],
|
||||||
|
["v", self.Height],
|
||||||
|
["h", -(self.Width - self.ThumbSize)/2],
|
||||||
|
["c", 0, -(3*self.ThumbSize)/4, -self.ThumbSize, -(3*self.ThumbSize)/4, -self.ThumbSize, 0],
|
||||||
|
["h", -(self.Width - self.ThumbSize)/2]
|
||||||
|
])
|
||||||
|
|
||||||
|
### COLUMN 3 ###
|
||||||
|
#create top left flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col3, row3],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, -self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
#create left print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col3, row3)
|
||||||
|
|
||||||
|
#create bottom left flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col3, row4],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
### COLUMN 4 ###
|
||||||
|
#create top main flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col4, row2],
|
||||||
|
["c", 0, -self.MainFlapHeight, self.Width, -self.MainFlapHeight, self.Width, 0]
|
||||||
|
])
|
||||||
|
|
||||||
|
#create box top print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Width, col4, row2)
|
||||||
|
|
||||||
|
#create box front print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Width, col4, row3)
|
||||||
|
|
||||||
|
#create box bottom print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Width, col4, row4)
|
||||||
|
|
||||||
|
#create bottom main flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col4, row5],
|
||||||
|
["c", 0, self.MainFlapHeight, self.Width, self.MainFlapHeight, self.Width, 0]
|
||||||
|
])
|
||||||
|
|
||||||
|
### COLUMN 5 ###
|
||||||
|
#create top right flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col5, row3],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, -self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
#create right print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col5, row3)
|
||||||
|
|
||||||
|
#create bottom right flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col5, row4],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
class SlipcaseTuckBox(BoxBase):
|
||||||
|
def __init__(self, dimensionProvider):
|
||||||
|
BoxBase.__init__(self, dimensionProvider)
|
||||||
|
|
||||||
|
def Create(self):
|
||||||
|
self.FlapOffset = 1.5
|
||||||
|
|
||||||
|
# Figure out some row and column values,
|
||||||
|
# note rows and cols work left to right, top to bottom
|
||||||
|
col5 = self.X - self.Depth
|
||||||
|
col4 = col5 - self.Width
|
||||||
|
col3 = col4 - self.Depth
|
||||||
|
col2 = col3 - self.Width
|
||||||
|
col1 = col2 - self.Depth
|
||||||
|
|
||||||
|
row1 = self.Y - self.Height
|
||||||
|
|
||||||
|
### COLUMN 1 ###
|
||||||
|
#create left glue flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col2, row1],
|
||||||
|
["v", self.Height],
|
||||||
|
["l", -(self.Depth - self.FlapOffset), -self.FlapOffset],
|
||||||
|
["v", -(self.Height - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
### COLUMN 2 ###
|
||||||
|
#create box back print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Width, col2, row1)
|
||||||
|
|
||||||
|
### COLUMN 3 ###
|
||||||
|
#create left print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col3, row1)
|
||||||
|
|
||||||
|
### COLUMN 4 ###
|
||||||
|
#create box front print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Width, col4, row1)
|
||||||
|
|
||||||
|
### COLUMN 5 ###
|
||||||
|
#create right print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col5, row1)
|
||||||
|
|
||||||
|
class Matchbox(BoxBase):
|
||||||
|
def __init__(self, dimensionProvider, numFlaps):
|
||||||
|
BoxBase.__init__(self, dimensionProvider)
|
||||||
|
|
||||||
|
self.NumFlaps = numFlaps
|
||||||
|
|
||||||
|
def Create(self):
|
||||||
|
if self.NumFlaps == 2:
|
||||||
|
tuckbox = DoubleFlappedTuckBox(self.DimProvider)
|
||||||
|
else:
|
||||||
|
tuckbox = SingleFlappedTuckBox(self.DimProvider)
|
||||||
|
tuckbox.Create()
|
||||||
|
|
||||||
|
#################################3
|
||||||
|
# Create matching double flap tuck box
|
||||||
|
dimProvider = copy.copy(self.DimProvider)
|
||||||
|
dimProvider.Width -= 2
|
||||||
|
dimProvider.Height -= 2
|
||||||
|
dimProvider.Depth -= 2
|
||||||
|
dimProvider.Y = tuckbox.MinY - 20
|
||||||
|
drawer = MatcboxDrawer(dimProvider)
|
||||||
|
drawer.Create()
|
||||||
|
|
||||||
|
class MatcboxDrawer(BoxBase):
|
||||||
|
def __init__(self, dimensionProvider):
|
||||||
|
BoxBase.__init__(self, dimensionProvider)
|
||||||
|
|
||||||
|
def Create(self):
|
||||||
|
|
||||||
|
fudgeDepth = self.Depth - 2 # overlap panels should be a little smaller to avoid touching box base
|
||||||
|
# Figure out some row and column co-ord values,
|
||||||
|
# note rows and cols work left to right, top to bottom, values start at 0 and go negative
|
||||||
|
col5 = self.X - fudgeDepth
|
||||||
|
col4 = col5 - self.Depth
|
||||||
|
col3 = col4 - self.Width
|
||||||
|
col2 = col3 - self.Depth
|
||||||
|
col1 = col2 - fudgeDepth
|
||||||
|
|
||||||
|
row5 = self.Y - fudgeDepth
|
||||||
|
row4 = row5 - self.Depth
|
||||||
|
row3 = row4 - self.Height
|
||||||
|
row2 = row3 - self.Depth
|
||||||
|
row1 = row2 - fudgeDepth
|
||||||
|
|
||||||
|
### COLUMN 1 ###
|
||||||
|
#create left overlap panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, fudgeDepth, col1, row3)
|
||||||
|
|
||||||
|
### COLUMN 2 ###
|
||||||
|
#create top left flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col2, row3],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, -self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
#create box left side print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col2, row3)
|
||||||
|
|
||||||
|
#create bottom left flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col2, row4],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
### COLUMN 3 ###
|
||||||
|
|
||||||
|
#create top side overlap panel
|
||||||
|
self._CreateRectangleInMillimetres(fudgeDepth, self.Width, col3, row1)
|
||||||
|
|
||||||
|
#create top box side panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Width, col3, row2)
|
||||||
|
|
||||||
|
#create box bottom
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Width, col3, row3)
|
||||||
|
|
||||||
|
#create bottom box side panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Depth, self.Width, col3, row4)
|
||||||
|
|
||||||
|
#create bottom side overlap panel
|
||||||
|
self._CreateRectangleInMillimetres(fudgeDepth, self.Width, col3, row5)
|
||||||
|
|
||||||
|
### COLUMN 4 ###
|
||||||
|
#create top right flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col4, row3],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, -self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
#create box right side print panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, self.Depth, col4, row3)
|
||||||
|
|
||||||
|
#create bottom right flap
|
||||||
|
self._CreatePathinMillimetres(
|
||||||
|
[
|
||||||
|
["m", col4, row4],
|
||||||
|
["h", self.Depth],
|
||||||
|
["l", -self.FlapOffset, self.FlapHeight],
|
||||||
|
["h", -(self.Depth - (2*self.FlapOffset))],
|
||||||
|
])
|
||||||
|
|
||||||
|
### COLUMN 5 ###
|
||||||
|
#create right overlap panel
|
||||||
|
self._CreateRectangleInMillimetres(self.Height, fudgeDepth, col5, row3)
|
||||||
|
|
||||||
|
class TuckboxCreateEffect(inkex.Effect):
|
||||||
|
def __init__(self):
|
||||||
|
inkex.Effect.__init__(self)
|
||||||
|
self.OptionParser.add_option('-t', '--type', action = 'store', type = 'string', dest = 'BoxType')
|
||||||
|
self.OptionParser.add_option('-n', '--num_flaps', action = 'store', type = 'int', dest = 'NumFlaps')
|
||||||
|
self.OptionParser.add_option('-w', '--deck_width', action = 'store', type = 'float', dest = 'DeckWidth')
|
||||||
|
self.OptionParser.add_option('-r', '--deck_height', action = 'store', type = 'float', dest = 'DeckHeight')
|
||||||
|
self.OptionParser.add_option('-d', '--deck_depth', action = 'store', type = 'float', dest = 'DeckDepth')
|
||||||
|
self.OptionParser.add_option('-a', '--box_allowance', action = 'store', type = 'float', dest = 'DeckAllowance')
|
||||||
|
|
||||||
|
def GetPaths(self):
|
||||||
|
paths = []
|
||||||
|
|
||||||
|
def effect(self):
|
||||||
|
dimProvider = EffectDimensionProvider(self)
|
||||||
|
|
||||||
|
if self.options.BoxType == "TUCKBOX":
|
||||||
|
if self.options.NumFlaps == 2:
|
||||||
|
box = DoubleFlappedTuckBox(dimProvider)
|
||||||
|
else:
|
||||||
|
box = SingleFlappedTuckBox(dimProvider)
|
||||||
|
elif self.options.BoxType == "SLIPCASE":
|
||||||
|
box = SlipcaseTuckBox(dimProvider)
|
||||||
|
elif self.options.BoxType == "MATCHBOX":
|
||||||
|
dimProvider.MaximiseHeight()
|
||||||
|
box = Matchbox(dimProvider, self.options.NumFlaps)
|
||||||
|
else:
|
||||||
|
raise Exception("Box type '{0}' is undefined".format(self.options.BoxType))
|
||||||
|
|
||||||
|
box.Create()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
creator = TuckboxCreateEffect()
|
||||||
|
|
||||||
|
creator.affect()
|
22
fablabchemnitz_HexLayoutGuides.inx
Normal file
22
fablabchemnitz_HexLayoutGuides.inx
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Hex Tiles</_name>
|
||||||
|
<id>fablabchemnitz.de.HexLayoutGuides</id>
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_HexLayoutGuides.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">inkex.py</dependency>
|
||||||
|
<param name="hex_diameter" type="float" precision="1" min="5" max="1000" gui-text="Hex Diameter (mm)">19</param>
|
||||||
|
<param name="hex_margin" type="float" precision="1" min="0" max="200" gui-text="Hex margin(mm)">2</param>
|
||||||
|
<param name="bleed_margin" type="float" precision="1" min="0" max="200" gui-text="Bleed margin(mm)">2</param>
|
||||||
|
<param name="page_margin" type="float" precision="1" min="0" max="200" gui-text="Page margin(mm)">15</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="FabLab Chemnitz">
|
||||||
|
<submenu _name="Grids/Guides" />
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions" interpreter="python">fablabchemnitz_HexLayoutGuides.py</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
469
fablabchemnitz_HexLayoutGuides.py
Normal file
469
fablabchemnitz_HexLayoutGuides.py
Normal file
@ -0,0 +1,469 @@
|
|||||||
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright 2016 Luke Phillips (lukerazor@hotmail.com)
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
#along with this program; if not, write to the Free Software
|
||||||
|
#Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Extension dirs
|
||||||
|
# linux:~/.config/inkscape/extensions
|
||||||
|
# windows: [Drive]:\Program Files\Inkscape\share\extensions
|
||||||
|
|
||||||
|
import inkex
|
||||||
|
import simplestyle
|
||||||
|
import copy
|
||||||
|
import math
|
||||||
|
|
||||||
|
FOLD_GAP = 5
|
||||||
|
CROP_GAP = 2
|
||||||
|
CROP_LENGTH = 3
|
||||||
|
|
||||||
|
CSNS = ""
|
||||||
|
|
||||||
|
inkex.NSS[u'cs'] = u'http://www.razorfoss.org/tuckboxextension/'
|
||||||
|
|
||||||
|
def PrintDebug(string):
|
||||||
|
inkex.debug( _(str(string)) )
|
||||||
|
|
||||||
|
def RoundAndDeduplicatePoints(points):
|
||||||
|
return sorted(list(set(map(lambda x: round(x, 3), points))))
|
||||||
|
|
||||||
|
class Point():
|
||||||
|
def __init__(self, x, y):
|
||||||
|
self.x = x
|
||||||
|
self.y = y
|
||||||
|
|
||||||
|
def rotate(self, angle, origin):
|
||||||
|
"""
|
||||||
|
Rotate a point counterclockwise by a given angle around a given origin.
|
||||||
|
|
||||||
|
The angle should be given in degrees.
|
||||||
|
"""
|
||||||
|
rads = math.radians(angle)
|
||||||
|
newX = origin.x + math.cos(rads) * (self.x - origin.x) - math.sin(rads) * (self.y - origin.y)
|
||||||
|
newY = origin.y + math.sin(rads) * (self.x - origin.x) + math.cos(rads) * (self.y - origin.y)
|
||||||
|
|
||||||
|
return Point(newX, newY)
|
||||||
|
|
||||||
|
def add(self, point):
|
||||||
|
return Point(self.x + point.x, self.y + point.y)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parsePoint(pointString):
|
||||||
|
x, y = map(lambda v: float(v), pointString.split(","))
|
||||||
|
return Point(x, y)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse(pointString, orientationString=None):
|
||||||
|
p1 = Point.parsePoint(pointString)
|
||||||
|
p = Point(p1.x, p1.y)
|
||||||
|
|
||||||
|
if orientationString != None:
|
||||||
|
po = Point.parsePoint(orientationString)
|
||||||
|
p = p1.add(po.rotate(270, Point(0, 0)))
|
||||||
|
|
||||||
|
return p
|
||||||
|
|
||||||
|
class HexGeneratorBase(object):
|
||||||
|
def __init__(self, hexDiameter, hexMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
self.UnitConverterFunc = unitConverterFunc
|
||||||
|
self.HexDiameter = hexDiameter
|
||||||
|
self.HexMargin = hexMargin
|
||||||
|
self.BleedMargin = bleedMargin
|
||||||
|
|
||||||
|
self.PageWidth = pageWidth
|
||||||
|
self.PageHeight = pageHeight
|
||||||
|
self.PageMargin = pageMargin
|
||||||
|
|
||||||
|
self.ContainerWidth = -1
|
||||||
|
self.ContainerHeight = -1
|
||||||
|
|
||||||
|
def CalcPageLeftMargin(self):
|
||||||
|
return (self.PageWidth - self.ContentWidth) / 2.0
|
||||||
|
|
||||||
|
def CalcPageBottomMargin(self):
|
||||||
|
return (self.PageHeight - self.ContentHeight) / 2.0
|
||||||
|
|
||||||
|
def DrawGuide(self, xmlParent, xpos, ypos):
|
||||||
|
posString = "{},{}".format(xpos, ypos)
|
||||||
|
attribs = {'position': posString, 'orientation': posString}
|
||||||
|
|
||||||
|
inkex.etree.SubElement(xmlParent, inkex.addNS('guide',"sodipodi"), attribs)
|
||||||
|
|
||||||
|
def DrawAngledGuide(self, xmlParent, xpos, ypos, angle):
|
||||||
|
# Angles are taken from the horizontal axis, positive angles move clockwise
|
||||||
|
posString = "{},{}".format(xpos, ypos)
|
||||||
|
orientationString = "{}, {}".format(math.sin(math.radians(angle)), math.cos(math.radians(angle)))
|
||||||
|
attribs = {'position': posString, 'orientation': orientationString}
|
||||||
|
|
||||||
|
inkex.etree.SubElement(xmlParent, inkex.addNS('guide',"sodipodi"), attribs)
|
||||||
|
|
||||||
|
def ConvertPoint(self, p):
|
||||||
|
# convert point into svg approriate values, including catering for inkscapes "alternative" axis sytem ie 0, 0 is bottom left not top left
|
||||||
|
newX = self.UnitConverterFunc("{}mm".format(p.x))
|
||||||
|
newY = self.PageHeight - self.UnitConverterFunc("{}mm".format(p.y))
|
||||||
|
|
||||||
|
return Point(newX, newY)
|
||||||
|
|
||||||
|
def DrawLine(self, xmlParent, p1, p2):
|
||||||
|
cp1 = self.ConvertPoint(p1)
|
||||||
|
cp2 = self.ConvertPoint(p2)
|
||||||
|
|
||||||
|
pathStr = "M {},{} {}, {}".format(cp1.x, cp1.y, cp2.x, cp2.y)
|
||||||
|
style = {'stroke': '#000000', 'stroke-width': self.UnitConverterFunc('0.25mm'), 'fill': 'none'}
|
||||||
|
attribs = {'style': simplestyle.formatStyle(style), 'd': pathStr}
|
||||||
|
|
||||||
|
inkex.etree.SubElement(xmlParent, inkex.addNS('path','svg'), attribs )
|
||||||
|
|
||||||
|
def DrawVerticleGuides(self, xmlParent, positions, gap):
|
||||||
|
curPos = self.CalcPageLeftMargin()
|
||||||
|
lastPos = -1
|
||||||
|
while curPos + self.ContainerWidth <= self.PageWidth - self.PageMargin:
|
||||||
|
for offset in positions:
|
||||||
|
curPos += offset
|
||||||
|
if curPos != lastPos: # don't double draw
|
||||||
|
self.DrawGuide(xmlParent, curPos, 0)
|
||||||
|
|
||||||
|
lastPos = curPos
|
||||||
|
|
||||||
|
curPos += gap
|
||||||
|
|
||||||
|
def DrawHorizontalGuides(self, xmlParent, positions, gap):
|
||||||
|
curPos = self.CalcPageBottomMargin()
|
||||||
|
lastPos = -1
|
||||||
|
while curPos + self.ContainerHeight <= self.PageHeight - self.PageMargin:
|
||||||
|
for offset in positions:
|
||||||
|
curPos += offset
|
||||||
|
if curPos != lastPos: # don't double draw
|
||||||
|
self.DrawGuide(xmlParent, 0, curPos)
|
||||||
|
|
||||||
|
lastPos = curPos
|
||||||
|
|
||||||
|
curPos += gap
|
||||||
|
|
||||||
|
def DrawAngledGuides(self, xmlParent, offsetPositions, angle, gap):
|
||||||
|
|
||||||
|
numExtraTopContainers = 0
|
||||||
|
numExtraBottomContainers = 0
|
||||||
|
if angle > 0:
|
||||||
|
numExtraTopContainers = math.ceil(self.NumContainersAcross / 2.0) - 1
|
||||||
|
if angle < 0:
|
||||||
|
numExtraBottomContainers = math.ceil(self.NumContainersAcross / 2.0) - 1
|
||||||
|
|
||||||
|
# draw sets of guides per point avoiding duplicate lines
|
||||||
|
# NOTE: Effectivly we draw the bottom guides first and then move up (ie y is increasing)
|
||||||
|
curPos = self.CalcPageBottomMargin() - numExtraBottomContainers * self.ContainerHeight
|
||||||
|
lastPos = -1
|
||||||
|
|
||||||
|
while curPos + self.ContainerHeight <= self.PageHeight - self.PageMargin + numExtraTopContainers*self.ContainerHeight:
|
||||||
|
for offset in offsetPositions:
|
||||||
|
curPos += offset
|
||||||
|
if curPos != lastPos: # don't double draw
|
||||||
|
self.DrawAngledGuide(xmlParent, self.CalcPageLeftMargin() + self.ContainerWidth/2, curPos, angle)
|
||||||
|
|
||||||
|
lastPos = curPos
|
||||||
|
|
||||||
|
curPos += gap
|
||||||
|
|
||||||
|
def GenerateFoldLines(self, xmlParent):
|
||||||
|
lines = self.GetFoldLinePositions()
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
self.DrawLine(xmlParent, line[0], line[1])
|
||||||
|
|
||||||
|
def GenerateCropMarks(self, xmlParent):
|
||||||
|
lines = self.GetCropMarkLines()
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
self.DrawLine(xmlParent, line[0], line[1])
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def CalculateBorderVerticalOffset(borderWidth):
|
||||||
|
if borderWidth == 0:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
return borderWidth / math.sin(math.radians(60))
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def CreateHexGenerator(hexDiameter, hexMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
return SimpleHexGridLineGenerator(hexDiameter, hexMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
class SimpleHexGridLineGenerator(HexGeneratorBase):
|
||||||
|
def __init__(self, hexDiameter, hexMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc):
|
||||||
|
super(SimpleHexGridLineGenerator, self).__init__(hexDiameter, hexMargin, bleedMargin, pageWidth, pageHeight, pageMargin, unitConverterFunc)
|
||||||
|
|
||||||
|
self.HexWidth = math.sqrt(3) * (hexDiameter/2)
|
||||||
|
self.ContainerWidth = self.HexWidth + 2*bleedMargin
|
||||||
|
self.ContainerHeight = hexDiameter + 2*HexGeneratorBase.CalculateBorderVerticalOffset(bleedMargin)
|
||||||
|
|
||||||
|
# num across
|
||||||
|
# num down
|
||||||
|
self.NumContainersAcross = int((self.PageWidth - 2*self.PageMargin) // self.ContainerWidth) # round down division
|
||||||
|
self.NumContainersDown = int((self.PageHeight - 2*self.PageMargin) // self.ContainerHeight) # round down division
|
||||||
|
|
||||||
|
# content sizes
|
||||||
|
self.ContentWidth = self.NumContainersAcross * self.ContainerWidth
|
||||||
|
self.ContentHeight = self.NumContainersDown * self.ContainerHeight
|
||||||
|
|
||||||
|
def GenerateGuides(self, xmlParent):
|
||||||
|
verticalGuideOffsets = [
|
||||||
|
0,
|
||||||
|
self.BleedMargin,
|
||||||
|
self.HexMargin,
|
||||||
|
self.HexWidth - 2*self.HexMargin,
|
||||||
|
self.HexMargin,
|
||||||
|
self.BleedMargin
|
||||||
|
]
|
||||||
|
|
||||||
|
bleedVerticalOffset = HexGeneratorBase.CalculateBorderVerticalOffset(self.BleedMargin)
|
||||||
|
hexMarginVerticalOffset = HexGeneratorBase.CalculateBorderVerticalOffset(self.HexMargin)
|
||||||
|
horizontalGuideOffsets = [
|
||||||
|
0,
|
||||||
|
bleedVerticalOffset,
|
||||||
|
hexMarginVerticalOffset,
|
||||||
|
self.HexDiameter - 2*hexMarginVerticalOffset,
|
||||||
|
hexMarginVerticalOffset,
|
||||||
|
bleedVerticalOffset
|
||||||
|
]
|
||||||
|
|
||||||
|
self.DrawVerticleGuides(xmlParent, verticalGuideOffsets, 0)
|
||||||
|
self.DrawAngledGuides(xmlParent, horizontalGuideOffsets, -30, 0)
|
||||||
|
self.DrawAngledGuides(xmlParent, horizontalGuideOffsets, 30, 0)
|
||||||
|
|
||||||
|
def GetFoldLinePositions(self):
|
||||||
|
return [] # no fold lines in simple grid
|
||||||
|
|
||||||
|
def GetCropMarkLines(self):
|
||||||
|
lines = []
|
||||||
|
|
||||||
|
leftMargin = self.CalcPageLeftMargin()
|
||||||
|
bottomMargin = self.CalcPageBottomMargin()
|
||||||
|
bleedVerticalOffset = HexGeneratorBase.CalculateBorderVerticalOffset(self.BleedMargin)
|
||||||
|
|
||||||
|
def CalcOppositeDeltaGivenAdjacentDelta(xdelta, angle):
|
||||||
|
return math.tan(math.radians(angle)) * xdelta
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
#determine all vertical crop marks, duplicates possible
|
||||||
|
# figure out the xpos'
|
||||||
|
vertical_xpos = []
|
||||||
|
for idx in range(self.NumContainersAcross):
|
||||||
|
leftX = self.BleedMargin
|
||||||
|
rightX = leftX + self.HexWidth
|
||||||
|
containerOffset = leftMargin + idx * self.ContainerWidth
|
||||||
|
|
||||||
|
vertical_xpos.append(containerOffset + leftX)
|
||||||
|
vertical_xpos.append(containerOffset + rightX)
|
||||||
|
|
||||||
|
vertical_xpos = RoundAndDeduplicatePoints(vertical_xpos)
|
||||||
|
|
||||||
|
# add to list of lines
|
||||||
|
vertical_ypos = [bottomMargin - CROP_GAP, self.PageHeight - bottomMargin + CROP_GAP + CROP_LENGTH]
|
||||||
|
for xpos in vertical_xpos:
|
||||||
|
for ypos in vertical_ypos:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos),
|
||||||
|
Point(xpos, ypos - CROP_LENGTH)
|
||||||
|
])
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# figure out NW, SW, NE and SE crop marks for both sides of the page
|
||||||
|
vertical_ypos_nw = []
|
||||||
|
vertical_ypos_sw = []
|
||||||
|
vertical_ypos_ne = []
|
||||||
|
vertical_ypos_se = []
|
||||||
|
|
||||||
|
yoffset = CalcOppositeDeltaGivenAdjacentDelta(self.ContainerWidth/2 + CROP_GAP, 30)
|
||||||
|
|
||||||
|
lastColumnHasHalfStep = (self.NumContainersAcross % 2) == 0 # an even numbered containers across means that the last column is 1/2 a continer up and has 1 less container
|
||||||
|
staggeredContainerOffset = 0
|
||||||
|
if lastColumnHasHalfStep:
|
||||||
|
staggeredContainerOffset = self.ContainerHeight/2
|
||||||
|
|
||||||
|
for idx in range(self.NumContainersDown):
|
||||||
|
leftContainerOffset = idx * self.ContainerHeight + bottomMargin
|
||||||
|
rightContainerOffset = leftContainerOffset + staggeredContainerOffset
|
||||||
|
|
||||||
|
bottomY = bleedVerticalOffset
|
||||||
|
topY = self.ContainerHeight - bleedVerticalOffset
|
||||||
|
|
||||||
|
vertical_ypos_nw.append(leftContainerOffset + topY + yoffset)
|
||||||
|
vertical_ypos_nw.append(leftContainerOffset + bottomY + yoffset)
|
||||||
|
|
||||||
|
vertical_ypos_sw.append(leftContainerOffset + topY - yoffset)
|
||||||
|
vertical_ypos_sw.append(leftContainerOffset + bottomY - yoffset)
|
||||||
|
|
||||||
|
vertical_ypos_ne.append(rightContainerOffset + topY + yoffset)
|
||||||
|
vertical_ypos_ne.append(rightContainerOffset + bottomY + yoffset)
|
||||||
|
|
||||||
|
vertical_ypos_se.append(rightContainerOffset + topY - yoffset)
|
||||||
|
vertical_ypos_se.append(rightContainerOffset + bottomY - yoffset)
|
||||||
|
|
||||||
|
# sort out a staggered last col
|
||||||
|
if lastColumnHasHalfStep: # if it's a half step column we need to remove the last container and add acouple of extra lines
|
||||||
|
vertical_ypos_ne = vertical_ypos_ne[:-2]
|
||||||
|
vertical_ypos_se = vertical_ypos_se[:-2]
|
||||||
|
vertical_ypos_ne.append(max(vertical_ypos_ne) + 2*bleedVerticalOffset)
|
||||||
|
vertical_ypos_se.append(min(vertical_ypos_se) - 2*bleedVerticalOffset)
|
||||||
|
|
||||||
|
# remove duplicate positions
|
||||||
|
vertical_ypos_nw = RoundAndDeduplicatePoints(vertical_ypos_nw)
|
||||||
|
vertical_ypos_sw = RoundAndDeduplicatePoints(vertical_ypos_sw)
|
||||||
|
vertical_ypos_ne = RoundAndDeduplicatePoints(vertical_ypos_ne)
|
||||||
|
vertical_ypos_se = RoundAndDeduplicatePoints(vertical_ypos_se)
|
||||||
|
|
||||||
|
# add to list of lines
|
||||||
|
xpos_left = leftMargin - CROP_GAP
|
||||||
|
xpos_right = self.PageWidth - leftMargin + CROP_GAP
|
||||||
|
yoffset = CalcOppositeDeltaGivenAdjacentDelta(CROP_LENGTH, 30)
|
||||||
|
|
||||||
|
for ypos in vertical_ypos_nw:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos_left, ypos),
|
||||||
|
Point(xpos_left - CROP_LENGTH, ypos + yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
for ypos in vertical_ypos_sw:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos_left, ypos),
|
||||||
|
Point(xpos_left - CROP_LENGTH, ypos - yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
for ypos in vertical_ypos_ne:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos_right, ypos),
|
||||||
|
Point(xpos_right + CROP_LENGTH, ypos + yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
for ypos in vertical_ypos_se:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos_right, ypos),
|
||||||
|
Point(xpos_right + CROP_LENGTH, ypos - yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# figure out NW, SW, NE and SE crop marks for top and bottom of the page
|
||||||
|
xpos_nw = []
|
||||||
|
xpos_sw = []
|
||||||
|
xpos_ne = []
|
||||||
|
xpos_se = []
|
||||||
|
|
||||||
|
xoffset_near = CalcOppositeDeltaGivenAdjacentDelta(bleedVerticalOffset + CROP_GAP, 60)
|
||||||
|
xoffset_far = CalcOppositeDeltaGivenAdjacentDelta(self.ContainerHeight - bleedVerticalOffset + CROP_GAP, 60)
|
||||||
|
|
||||||
|
for idx in range(0, self.NumContainersAcross, 2): #we only need to do every other container because of the stepping
|
||||||
|
containerOffset = idx * self.ContainerWidth + leftMargin
|
||||||
|
topY = self.ContainerHeight - bleedVerticalOffset
|
||||||
|
bottomY = bleedVerticalOffset
|
||||||
|
xpos = self.ContainerWidth/2
|
||||||
|
|
||||||
|
xpos_nw.append(containerOffset + xpos - xoffset_near)
|
||||||
|
xpos_nw.append(containerOffset + xpos - xoffset_far)
|
||||||
|
|
||||||
|
xpos_sw.append(containerOffset + xpos - xoffset_near)
|
||||||
|
xpos_sw.append(containerOffset + xpos - xoffset_far)
|
||||||
|
|
||||||
|
xpos_ne.append(containerOffset + xpos + xoffset_near)
|
||||||
|
xpos_ne.append(containerOffset + xpos + xoffset_far)
|
||||||
|
|
||||||
|
xpos_se.append(containerOffset + xpos + xoffset_near)
|
||||||
|
xpos_se.append(containerOffset + xpos + xoffset_far)
|
||||||
|
|
||||||
|
|
||||||
|
# remove duplicate positions
|
||||||
|
xpos_nw = RoundAndDeduplicatePoints(xpos_nw)
|
||||||
|
xpos_sw = RoundAndDeduplicatePoints(xpos_sw)
|
||||||
|
xpos_ne = RoundAndDeduplicatePoints(xpos_ne)
|
||||||
|
xpos_se = RoundAndDeduplicatePoints(xpos_se)
|
||||||
|
|
||||||
|
# add to list of lines
|
||||||
|
ypos_bottom = bottomMargin - CROP_GAP
|
||||||
|
ypos_top = self.PageHeight - bottomMargin + CROP_GAP
|
||||||
|
yoffset = CalcOppositeDeltaGivenAdjacentDelta(CROP_LENGTH, 30)
|
||||||
|
|
||||||
|
for xpos in xpos_nw:
|
||||||
|
if xpos > 0 and xpos < self.PageWidth:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos_top),
|
||||||
|
Point(xpos - CROP_LENGTH, ypos_top + yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
for xpos in xpos_sw:
|
||||||
|
if xpos > 0 and xpos < self.PageWidth:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos_bottom),
|
||||||
|
Point(xpos - CROP_LENGTH, ypos_bottom - yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
for xpos in xpos_ne:
|
||||||
|
if xpos > 0 and xpos < self.PageWidth:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos_top),
|
||||||
|
Point(xpos + CROP_LENGTH, ypos_top + yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
for xpos in xpos_se:
|
||||||
|
if xpos > 0 and xpos < self.PageWidth:
|
||||||
|
lines.append([
|
||||||
|
Point(xpos, ypos_bottom),
|
||||||
|
Point(xpos + CROP_LENGTH, ypos_bottom - yoffset)
|
||||||
|
])
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
return lines
|
||||||
|
|
||||||
|
class HexLayoutGuidesEffect(inkex.Effect):
|
||||||
|
def __init__(self):
|
||||||
|
inkex.Effect.__init__(self)
|
||||||
|
|
||||||
|
self.OptionParser.add_option('-d', '--hex_diameter', action = 'store', type = 'float', dest = 'HexDiameter')
|
||||||
|
self.OptionParser.add_option('-c', '--hex_margin', action = 'store', type = 'float', dest = 'HexMargin')
|
||||||
|
self.OptionParser.add_option('-b', '--bleed_margin', action = 'store', type = 'float', dest = 'BleedMargin')
|
||||||
|
self.OptionParser.add_option('-p', '--page_margin', action = 'store', type = 'float', dest = 'PageMargin')
|
||||||
|
|
||||||
|
def effect(self):
|
||||||
|
# find dimensions of page
|
||||||
|
pageWidth = self.uutounit(self.unittouu(self.getDocumentWidth()), "mm")
|
||||||
|
pageHeight = self.uutounit(self.unittouu(self.getDocumentHeight()), "mm")
|
||||||
|
|
||||||
|
opt = self.options
|
||||||
|
|
||||||
|
guideParent = self.document.xpath('//sodipodi:namedview',namespaces=inkex.NSS)[0]
|
||||||
|
|
||||||
|
### GUIDES
|
||||||
|
# remove all the existing guides
|
||||||
|
[node.getparent().remove(node) for node in self.document.xpath('//sodipodi:guide',namespaces=inkex.NSS)]
|
||||||
|
|
||||||
|
# create the object generator
|
||||||
|
gen = HexGeneratorBase.CreateHexGenerator(opt.HexDiameter, opt.HexMargin, opt.BleedMargin, pageWidth, pageHeight, opt.PageMargin, self.unittouu)
|
||||||
|
|
||||||
|
gen.GenerateGuides(guideParent)
|
||||||
|
|
||||||
|
### CROP MARKS
|
||||||
|
# remove any existing 'Crop marks' layer
|
||||||
|
[node.getparent().remove(node) for node in self.document.xpath("//svg:g[@inkscape:label='Crop Marks']",namespaces=inkex.NSS)]
|
||||||
|
|
||||||
|
svg = self.document.xpath('//svg:svg', namespaces=inkex.NSS)[0]
|
||||||
|
layer = inkex.etree.SubElement(svg, inkex.addNS('g',"svg"), {})
|
||||||
|
layer.set(inkex.addNS('label', 'inkscape'), "Crop Marks")
|
||||||
|
layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')
|
||||||
|
#layer.set(inkex.addNS('insensitive', 'sodipodi'), 'true')
|
||||||
|
|
||||||
|
|
||||||
|
gen.GenerateCropMarks(layer)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
effect = HexLayoutGuidesEffect()
|
||||||
|
|
||||||
|
effect.affect()
|
32
fablabchemnitz_InsertPaperTemplate.inx
Normal file
32
fablabchemnitz_InsertPaperTemplate.inx
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Insert Paper Template</_name>
|
||||||
|
<id>fablabchemnitz.de.InsertPaperTemplate</id>
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_InsertPaperTemplate.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">inkex.py</dependency>
|
||||||
|
<param name="papertype" type="enum" gui-text="Box type">
|
||||||
|
<item value="A5">A5</item>
|
||||||
|
<item value="A4">A4</item>
|
||||||
|
<item value="A3">A3</item>
|
||||||
|
<item value="A2">A2</item>
|
||||||
|
<item value="A1">A1</item>
|
||||||
|
<item value="A0">A0</item>
|
||||||
|
<item value="POKER">Poker Card</item>
|
||||||
|
<item value="BRIDGE">Bridge Card</item>
|
||||||
|
<item value="MINI_US">Mini American Card</item>
|
||||||
|
<item value="MINI_EU">Mini European Card</item>
|
||||||
|
<item value="TAROT">Tarot Card</item>
|
||||||
|
</param>
|
||||||
|
<param name="show_type" type="boolean" gui-text="Include Label">true</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="FabLab Chemnitz">
|
||||||
|
<submenu _name="Grids/Guides" />
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions" interpreter="python">fablabchemnitz_InsertPaperTemplate.py</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
127
fablabchemnitz_InsertPaperTemplate.py
Normal file
127
fablabchemnitz_InsertPaperTemplate.py
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
|
|
||||||
|
# Copyright 2016 Luke Phillips (lukerazor@hotmail.com)
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
#along with this program; if not, write to the Free Software
|
||||||
|
#Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# Extension dirs
|
||||||
|
# linux:~/.config/inkscape/extensions
|
||||||
|
# windows: D:\Program Files\Inkscape\share\extensions
|
||||||
|
|
||||||
|
import inkex
|
||||||
|
import simplestyle
|
||||||
|
import simplepath
|
||||||
|
from inkex import *
|
||||||
|
import csv
|
||||||
|
import fnmatch
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
import lxml
|
||||||
|
from lxml import etree
|
||||||
|
from copy import deepcopy
|
||||||
|
import sys
|
||||||
|
import copy
|
||||||
|
|
||||||
|
CSNS = ""
|
||||||
|
|
||||||
|
NSS[u'cs'] = u'http://www.razorfoss.org/tuckboxextension/'
|
||||||
|
|
||||||
|
class PaperBase():
|
||||||
|
def __init__(self, width, height):
|
||||||
|
self.Width = width
|
||||||
|
self.Height = height
|
||||||
|
|
||||||
|
class A5(PaperBase):
|
||||||
|
def __init__(self):
|
||||||
|
PaperBase.__init__(self, 150, 100)
|
||||||
|
|
||||||
|
class InsertPaperTemplateEffect(inkex.Effect):
|
||||||
|
def __init__(self):
|
||||||
|
inkex.Effect.__init__(self)
|
||||||
|
self.OptionParser.add_option('-p', '--papertype', action = 'store', type = 'string', dest = 'PaperType')
|
||||||
|
self.OptionParser.add_option('-s', '--show_type', action = 'store', type = 'string', dest = 'ShowType')
|
||||||
|
|
||||||
|
### colour ###
|
||||||
|
self.StrokeWidthFloat = 0.5
|
||||||
|
self.StrokeWidth = self.MMtoUU(self.StrokeWidthFloat)
|
||||||
|
|
||||||
|
self.FontSize = "11px"
|
||||||
|
|
||||||
|
def effect(self):
|
||||||
|
self.Group = inkex.etree.SubElement(self.current_layer, inkex.addNS('g','svg'), {} )
|
||||||
|
|
||||||
|
paperTypes = {}
|
||||||
|
paperTypes["A5"] = (148, 210, "#ffeeaa") # yellow
|
||||||
|
paperTypes["A4"] = (210, 297, "#ffccaa") # orange
|
||||||
|
paperTypes["A3"] = (297, 420, "#afdde9") # blue
|
||||||
|
paperTypes["A2"] = (420, 594, "#ccaaff") # purple
|
||||||
|
paperTypes["A1"] = (594, 841, "#afe9c6") # green
|
||||||
|
paperTypes["A0"] = (841, 1189, "#ffd5d5") # red
|
||||||
|
|
||||||
|
paperTypes["POKER"] = (63.5, 88, "#ffffff") # white
|
||||||
|
paperTypes["BRIDGE"] = (56, 88, "#ffffff") # white
|
||||||
|
paperTypes["MINI_US"] = (41, 63, "#ffffff") # white
|
||||||
|
paperTypes["MINI_EU"] = (44, 68, "#ffffff") # white
|
||||||
|
paperTypes["TAROT"] = (70, 120, "#ffffff") # white
|
||||||
|
|
||||||
|
|
||||||
|
if self.options.PaperType in paperTypes:
|
||||||
|
self.CreateTemplate(self.options.PaperType, *(paperTypes[self.options.PaperType]))
|
||||||
|
else:
|
||||||
|
raise Exception("Paper type '{0}' is undefined".format(self.options.PaperType))
|
||||||
|
|
||||||
|
def CreateTemplate(self, label, width, height, colour):
|
||||||
|
# TODO Read mouse position
|
||||||
|
x = 0
|
||||||
|
y = 0
|
||||||
|
self._CreateRectangleInMillimetres(width-self.StrokeWidthFloat, height-self.StrokeWidthFloat, x, y, colour)
|
||||||
|
if self.options.ShowType == "true":
|
||||||
|
self._CreateText(label, x + width/2 , y + height/2)
|
||||||
|
|
||||||
|
def _CreateText(self, labelText, x, y):
|
||||||
|
style = {'stroke': '#000000',
|
||||||
|
'stroke-width': self.StrokeWidth,
|
||||||
|
'fill' : '#000000',
|
||||||
|
'font-size' : self.FontSize,
|
||||||
|
'text-align' : 'center',
|
||||||
|
'text-anchor' : 'middle'
|
||||||
|
}
|
||||||
|
|
||||||
|
attribs = {'style': simplestyle.formatStyle(style), 'x': self.MMtoUU(x), 'y': self.MMtoUU(y)}
|
||||||
|
|
||||||
|
text = inkex.etree.Element(inkex.addNS('text','svg'), attribs)
|
||||||
|
text.text = labelText
|
||||||
|
|
||||||
|
self.Group.append(text)
|
||||||
|
|
||||||
|
def _CreateRectangleInMillimetres(self, width, height, x, y, color):
|
||||||
|
style = {'stroke': '#000000', 'stroke-width': self.StrokeWidth, 'fill' : color}
|
||||||
|
attribs = {'style': simplestyle.formatStyle(style), 'height': self.MMtoUU(height), 'width': self.MMtoUU(width), 'x': self.MMtoUU(x), 'y': self.MMtoUU(y)}
|
||||||
|
inkex.etree.SubElement(self.Group, inkex.addNS('rect','svg'), attribs )
|
||||||
|
|
||||||
|
def MMtoUU(self, mmval):
|
||||||
|
if hasattr(self, "xxxunittouu"):
|
||||||
|
return str(self.unittouu("{0}mm".format(mmval)))
|
||||||
|
else:
|
||||||
|
MM_TO_PIXELS = 1
|
||||||
|
|
||||||
|
return str(MM_TO_PIXELS * mmval)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
creator = InsertPaperTemplateEffect()
|
||||||
|
|
||||||
|
creator.affect()
|
21
fablabchemnitz_add_kerf_width_offset.inx
Normal file
21
fablabchemnitz_add_kerf_width_offset.inx
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>Kerf Width Offset</_name>
|
||||||
|
<id>fablabchemnitz.de.add_kerf_width_offset</id>
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_add_kerf_width_offset.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_metaext.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">simplestyle.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">inkex.py</dependency>
|
||||||
|
<param name="what" type="float" min="-100" _gui-text="Keft in 1/10 mm.">0.</param>
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="FabLab Chemnitz">
|
||||||
|
<submenu _name="Modify existing Path(s)" />
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions" interpreter="python">fablabchemnitz_add_kerf_width_offset.py</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
87
fablabchemnitz_add_kerf_width_offset.py
Normal file
87
fablabchemnitz_add_kerf_width_offset.py
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# These two lines are only needed if you don't put the script directly into
|
||||||
|
# the installation directory
|
||||||
|
import sys
|
||||||
|
import simplestyle # will be needed here for styles support
|
||||||
|
sys.path.append('/usr/share/inkscape/extensions')
|
||||||
|
|
||||||
|
# We will use the inkex module with the predefined Effect base class.
|
||||||
|
import inkex
|
||||||
|
import fablabchemnitz_metaext
|
||||||
|
|
||||||
|
class AddKerf(inkex.Effect):
|
||||||
|
"""
|
||||||
|
An Inkscape extension which joins multiple lines in one object and adds
|
||||||
|
kerf to it.
|
||||||
|
"""
|
||||||
|
def __init__(self):
|
||||||
|
"""
|
||||||
|
Constructor.
|
||||||
|
"""
|
||||||
|
# Call the base class constructor.
|
||||||
|
inkex.Effect.__init__(self)
|
||||||
|
|
||||||
|
# Define string option "--what" with "-w" shortcut and default value "World".
|
||||||
|
# TODO: better name
|
||||||
|
self.OptionParser.add_option('-w', '--what', action = 'store',
|
||||||
|
type = 'float', dest = 'what', default = '0.0',
|
||||||
|
help = 'Kerf in 1/10 mm.')
|
||||||
|
|
||||||
|
def set_appropriate_width(self, kerf_in_mm):
|
||||||
|
found = False
|
||||||
|
for _, node in self.selected.iteritems():
|
||||||
|
if node.tag == inkex.addNS('g', 'svg'):
|
||||||
|
inkex.error("Can't add kerf to a group, please ungroup first.")
|
||||||
|
if node.tag == inkex.addNS('path', 'svg'):
|
||||||
|
style = {'stroke-width': kerf_in_mm, 'fill': 'none',
|
||||||
|
'stroke':'#000000'}
|
||||||
|
style = simplestyle.formatStyle(style)
|
||||||
|
node.set('style', style)
|
||||||
|
found = True
|
||||||
|
return found
|
||||||
|
|
||||||
|
def effect(self):
|
||||||
|
"""% mod
|
||||||
|
Effect behaviour.
|
||||||
|
"""
|
||||||
|
# Get script's "--what" option value.
|
||||||
|
what = self.options.what / 10.
|
||||||
|
negative_kerf = False
|
||||||
|
if what < 0.:
|
||||||
|
what = -what
|
||||||
|
negative_kerf = True
|
||||||
|
|
||||||
|
kerf_in_mm = self.unittouu(str(what) + " mm")
|
||||||
|
|
||||||
|
operation_list = ["StrokeToPath", "SelectionUnion",
|
||||||
|
"SelectionBreakApart", "SelectionUnion", "SelectionBreakApart"]
|
||||||
|
if negative_kerf:
|
||||||
|
operation_list[-2] = "SelectionIntersect"
|
||||||
|
|
||||||
|
join_ext = fablabchemnitz_metaext.MetaEffect(operation_list)
|
||||||
|
|
||||||
|
if not self.set_appropriate_width(kerf_in_mm):
|
||||||
|
objectify = fablabchemnitz_metaext.MetaEffect(["ObjectToPath"])
|
||||||
|
objectify.effect(self.document, self.selected, self.doc_ids)
|
||||||
|
if not self.set_appropriate_width(kerf_in_mm):
|
||||||
|
inkex.error("Didn't found any selected path, breaking")
|
||||||
|
return
|
||||||
|
|
||||||
|
join_ext.effect(self.document, self.selected, self.doc_ids)
|
||||||
|
|
||||||
|
for _, node in self.selected.iteritems():
|
||||||
|
#inkex.debug("node %s" % inkex.etree.tostring(node))
|
||||||
|
if node.tag == inkex.addNS('path', 'svg'):
|
||||||
|
new_width = self.unittouu("0.5mm")
|
||||||
|
colour = '#ff0000' if negative_kerf else '#000000'
|
||||||
|
style = {'stroke-width': new_width, 'fill': 'none',
|
||||||
|
'stroke': colour}
|
||||||
|
style = simplestyle.formatStyle(style)
|
||||||
|
node.set('style', style)
|
||||||
|
# inkex.debug("node %s" % inkex.etree.tostring(node))
|
||||||
|
|
||||||
|
|
||||||
|
# Create effect instance and apply it.
|
||||||
|
effect = AddKerf()
|
||||||
|
effect.affect()
|
15
fablabchemnitz_ai_eps_output.inx
Normal file
15
fablabchemnitz_ai_eps_output.inx
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<_name>AI compatible EPS output</_name>
|
||||||
|
<id>fablabchemnitz.de.ai_eps_output</id>
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_ai_eps_output.py</dependency>
|
||||||
|
<output>
|
||||||
|
<extension>.eps</extension>
|
||||||
|
<mimetype>application/eps</mimetype>
|
||||||
|
<_filetypename>Encapsulated PostScript - AI compatible (*.eps)</_filetypename>
|
||||||
|
<_filetypetooltip>Adobe Illustrator 7 compatible EPS</_filetypetooltip>
|
||||||
|
</output>
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions" interpreter="python">fablabchemnitz_ai_eps_output.py</command>
|
||||||
|
</script>
|
||||||
|
</inkscape-extension>
|
1110
fablabchemnitz_ai_eps_output.py
Normal file
1110
fablabchemnitz_ai_eps_output.py
Normal file
File diff suppressed because it is too large
Load Diff
195
fablabchemnitz_apollon.py
Normal file
195
fablabchemnitz_apollon.py
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
# Generate Apollonian Gaskets -- the math part.
|
||||||
|
|
||||||
|
# Copyright (c) 2014 Ludger Sandig
|
||||||
|
# This file is part of apollon.
|
||||||
|
|
||||||
|
# Apollon is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
# Apollon is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with Apollon. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
from cmath import *
|
||||||
|
import random
|
||||||
|
|
||||||
|
class Circle(object):
|
||||||
|
"""
|
||||||
|
A circle represented by center point as complex number and radius.
|
||||||
|
"""
|
||||||
|
def __init__ ( self, mx, my, r ):
|
||||||
|
"""
|
||||||
|
@param mx: x center coordinate
|
||||||
|
@type mx: int or float
|
||||||
|
@param my: y center coordinate
|
||||||
|
@type my: int or float
|
||||||
|
@param r: radius
|
||||||
|
@type r: int or float
|
||||||
|
"""
|
||||||
|
self.r = r
|
||||||
|
self.m = (mx +my*1j)
|
||||||
|
|
||||||
|
def __repr__ ( self ):
|
||||||
|
"""
|
||||||
|
Pretty printing
|
||||||
|
"""
|
||||||
|
return "Circle( self, %s, %s, %s )" % (self.m.real, self.m.imag, self.r)
|
||||||
|
|
||||||
|
def __str__ ( self ):
|
||||||
|
"""
|
||||||
|
Pretty printing
|
||||||
|
"""
|
||||||
|
return "Circle x:%.3f y:%.3f r:%.3f [cur:%.3f]" % (self.m.real, self.m.imag, self.r.real, self.curvature().real)
|
||||||
|
|
||||||
|
def curvature (self):
|
||||||
|
"""
|
||||||
|
Get circle's curvature.
|
||||||
|
@rtype: float
|
||||||
|
@return: Curvature of the circle.
|
||||||
|
"""
|
||||||
|
return 1/self.r
|
||||||
|
|
||||||
|
def outerTangentCircle( circle1, circle2, circle3 ):
|
||||||
|
"""
|
||||||
|
Takes three externally tangent circles and calculates the fourth one enclosing them.
|
||||||
|
@param circle1: first circle
|
||||||
|
@param circle2: second circle
|
||||||
|
@param circle3: third circle
|
||||||
|
@type circle1: L{Circle}
|
||||||
|
@type circle2: L{Circle}
|
||||||
|
@type circle3: L{Circle}
|
||||||
|
@return: The enclosing circle
|
||||||
|
@rtype: L{Circle}
|
||||||
|
"""
|
||||||
|
cur1 = circle1.curvature()
|
||||||
|
cur2 = circle2.curvature()
|
||||||
|
cur3 = circle3.curvature()
|
||||||
|
m1 = circle1.m
|
||||||
|
m2 = circle2.m
|
||||||
|
m3 = circle3.m
|
||||||
|
cur4 = -2 * sqrt( cur1*cur2 + cur2*cur3 + cur1 * cur3 ) + cur1 + cur2 + cur3
|
||||||
|
m4 = ( -2 * sqrt( cur1*m1*cur2*m2 + cur2*m2*cur3*m3 + cur1*m1*cur3*m3 ) + cur1*m1 + cur2*m2 + cur3*m3 ) / cur4
|
||||||
|
circle4 = Circle( m4.real, m4.imag, 1/cur4 )
|
||||||
|
|
||||||
|
return circle4
|
||||||
|
|
||||||
|
|
||||||
|
def tangentCirclesFromRadii( r2, r3, r4 ):
|
||||||
|
"""
|
||||||
|
Takes three radii and calculates the corresponding externally
|
||||||
|
tangent circles as well as a fourth one enclosing them. The enclosing
|
||||||
|
circle is the first one.
|
||||||
|
|
||||||
|
@param r2, r3, r4: Radii of the circles to calculate
|
||||||
|
@type r2: int or float
|
||||||
|
@type r3: int or float
|
||||||
|
@type r4: int or float
|
||||||
|
@return: The four circles, where the first one is the enclosing one.
|
||||||
|
@rtype: (L{Circle}, L{Circle}, L{Circle}, L{Circle})
|
||||||
|
"""
|
||||||
|
circle2 = Circle( 0, 0, r2 )
|
||||||
|
circle3 = Circle( r2 + r3, 0, r3 )
|
||||||
|
m4x = (r2*r2 + r2*r4 + r2*r3 - r3*r4) / (r2 + r3)
|
||||||
|
m4y = sqrt( (r2 + r4) * (r2 + r4) - m4x*m4x )
|
||||||
|
circle4 = Circle( m4x, m4y, r4 )
|
||||||
|
circle1 = outerTangentCircle( circle2, circle3, circle4 )
|
||||||
|
return ( circle1, circle2, circle3, circle4 )
|
||||||
|
|
||||||
|
def secondSolution( fixed, c1, c2, c3 ):
|
||||||
|
"""
|
||||||
|
If given four tangent circles, calculate the other one that is tangent
|
||||||
|
to the last three.
|
||||||
|
|
||||||
|
@param fixed: The fixed circle touches the other three, but not
|
||||||
|
the one to be calculated.
|
||||||
|
|
||||||
|
@param c1, c2, c3: Three circles to which the other tangent circle
|
||||||
|
is to be calculated.
|
||||||
|
|
||||||
|
@type fixed: L{Circle}
|
||||||
|
@type c1: L{Circle}
|
||||||
|
@type c2: L{Circle}
|
||||||
|
@type c3: L{Circle}
|
||||||
|
@return: The circle.
|
||||||
|
@rtype: L{Circle}
|
||||||
|
"""
|
||||||
|
|
||||||
|
curf = fixed.curvature()
|
||||||
|
cur1 = c1.curvature()
|
||||||
|
cur2 = c2.curvature()
|
||||||
|
cur3 = c3.curvature()
|
||||||
|
|
||||||
|
curn = 2 * (cur1 + cur2 + cur3) - curf
|
||||||
|
mn = (2 * (cur1*c1.m + cur2*c2.m + cur3*c3.m) - curf*fixed.m ) / curn
|
||||||
|
return Circle( mn.real, mn.imag, 1/curn )
|
||||||
|
|
||||||
|
class ApollonianGasket(object):
|
||||||
|
"""
|
||||||
|
Container for an Apollonian Gasket.
|
||||||
|
"""
|
||||||
|
def __init__(self, c1, c2, c3):
|
||||||
|
"""
|
||||||
|
Creates a basic apollonian Gasket with four circles.
|
||||||
|
|
||||||
|
@param c1, c2, c3: The curvatures of the three inner circles of the
|
||||||
|
starting set (i.e. depth 0 of the recursion). The fourth,
|
||||||
|
enclosing circle will be calculated from them.
|
||||||
|
@type c1: int or float
|
||||||
|
@type c2: int or float
|
||||||
|
@type c3: int or float
|
||||||
|
"""
|
||||||
|
self.start = tangentCirclesFromRadii( 1/c1, 1/c2, 1/c3 )
|
||||||
|
self.genCircles = list(self.start)
|
||||||
|
|
||||||
|
def recurse(self, circles, depth, maxDepth):
|
||||||
|
"""Recursively calculate the smaller circles of the AG up to the
|
||||||
|
given depth. Note that for depth n we get 2*3^{n+1} circles.
|
||||||
|
|
||||||
|
@param maxDepth: Maximal depth of the recursion.
|
||||||
|
@type maxDepth: int
|
||||||
|
|
||||||
|
@param circles: 4-Tuple of circles for which the second
|
||||||
|
solutions are calculated
|
||||||
|
@type circles: (L{Circle}, L{Circle}, L{Circle}, L{Circle})
|
||||||
|
|
||||||
|
@param depth: Current depth
|
||||||
|
@type depth: int
|
||||||
|
"""
|
||||||
|
if( depth == maxDepth ):
|
||||||
|
return
|
||||||
|
(c1, c2, c3, c4) = circles
|
||||||
|
if( depth == 0 ):
|
||||||
|
# First recursive step, this is the only time we need to
|
||||||
|
# calculate 4 new circles.
|
||||||
|
del self.genCircles[4:]
|
||||||
|
cspecial = secondSolution( c1, c2, c3, c4 )
|
||||||
|
self.genCircles.append( cspecial )
|
||||||
|
self.recurse( (cspecial, c2, c3, c4), 1, maxDepth )
|
||||||
|
|
||||||
|
cn2 = secondSolution( c2, c1, c3, c4 )
|
||||||
|
self.genCircles.append( cn2 )
|
||||||
|
cn3 = secondSolution( c3, c1, c2, c4 )
|
||||||
|
self.genCircles.append( cn3 )
|
||||||
|
cn4 = secondSolution( c4, c1, c2, c3 )
|
||||||
|
self.genCircles.append( cn4 )
|
||||||
|
|
||||||
|
self.recurse( (cn2, c1, c3, c4), depth+1, maxDepth )
|
||||||
|
self.recurse( (cn3, c1, c2, c4), depth+1, maxDepth )
|
||||||
|
self.recurse( (cn4, c1, c2, c3), depth+1, maxDepth )
|
||||||
|
|
||||||
|
def generate(self, depth):
|
||||||
|
"""
|
||||||
|
Wrapper for the recurse function. Generate the AG,
|
||||||
|
@param depth: Recursion depth of the Gasket
|
||||||
|
@type depth: int
|
||||||
|
"""
|
||||||
|
self.recurse(self.start, 0, depth)
|
||||||
|
|
60
fablabchemnitz_apollonian.inx
Normal file
60
fablabchemnitz_apollonian.inx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||||
|
<!-- _name must have same name as .py file but capitalise it. Shows on Menu this way-->
|
||||||
|
<_name>Apollonian Gasket</_name>
|
||||||
|
<!-- id should be unique. Associates entered values with this menu -->
|
||||||
|
<id>fablabchemnitz.de.apollonian</id>
|
||||||
|
<!-- mention a dependency here and will check for existence (optional)-->
|
||||||
|
<dependency type="executable" location="extensions">fablabchemnitz_apollonian.py</dependency>
|
||||||
|
<dependency type="executable" location="extensions">simplestyle.py</dependency>
|
||||||
|
|
||||||
|
<!-- start notebook -->
|
||||||
|
<param name='active-tab' type="notebook">
|
||||||
|
<!-- one per page(tab) - unique names. Can discover which page in program-->
|
||||||
|
<page name="title" _gui-text="Settings">
|
||||||
|
<param name="depth" type="int" min="2" max="7" _gui-text="Depth">3</param>
|
||||||
|
<_param name="curvatures" type="description" xml:space="preserve">------------------------------</_param>
|
||||||
|
<param name="c1" type="float" min="0.1" max="10.0" precision="2" _gui-text="c1">2.0</param>
|
||||||
|
<param name="c2" type="float" min="0.1" max="10.0" precision="2" _gui-text="c2">3.0</param>
|
||||||
|
<param name="c3" type="float" min="0.1" max="10.0" precision="2" _gui-text="c3">3.0</param>
|
||||||
|
<_param name="help" type="description" xml:space="preserve">------------------------------</_param>
|
||||||
|
<param name="shrink" type="boolean" _gui-text="shrink circles for cutting">true</param>
|
||||||
|
</page>
|
||||||
|
<!-- next tab -->
|
||||||
|
|
||||||
|
<page name="Usage1" _gui-text="Usage">
|
||||||
|
<!-- space:preserve read for neat layout -->
|
||||||
|
<_param name="use1" type="description" xml:space="preserve">
|
||||||
|
Make an apollonian gasket:
|
||||||
|
|
||||||
|
Depth = depth in search tree
|
||||||
|
|
||||||
|
c1,c2,c3 = curvatures of first 3 osculating circles
|
||||||
|
|
||||||
|
See https://en.wikipedia.org/wiki/Apollonian_gasket
|
||||||
|
for details of construction.
|
||||||
|
|
||||||
|
</_param>
|
||||||
|
</page>
|
||||||
|
<page name="Usage2" _gui-text="Help">
|
||||||
|
<_param name="use2" type="description" xml:space="preserve">
|
||||||
|
No help needed.
|
||||||
|
|
||||||
|
</_param>
|
||||||
|
</page>
|
||||||
|
</param>
|
||||||
|
<!-- classify which menu it appears under - can be new name -->
|
||||||
|
<effect>
|
||||||
|
<object-type>all</object-type>
|
||||||
|
<effects-menu>
|
||||||
|
<submenu _name="FabLab Chemnitz">
|
||||||
|
<submenu _name="Shape/Pattern from Generator"/>
|
||||||
|
</submenu>
|
||||||
|
</effects-menu>
|
||||||
|
</effect>
|
||||||
|
<!-- py file again -->
|
||||||
|
<script>
|
||||||
|
<command reldir="extensions" interpreter="python">fablabchemnitz_apollonian.py</command>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</inkscape-extension>
|
153
fablabchemnitz_apollonian.py
Normal file
153
fablabchemnitz_apollonian.py
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
#!$HOME/anaconda/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
'''
|
||||||
|
Ripped from template.py
|
||||||
|
- makes an apollonian gasket
|
||||||
|
'''
|
||||||
|
|
||||||
|
import inkex # Required
|
||||||
|
import simplestyle # will be needed here for styles support
|
||||||
|
import fablabchemnitz_apolloniangasket_func
|
||||||
|
|
||||||
|
__version__ = '0.0'
|
||||||
|
|
||||||
|
inkex.localize()
|
||||||
|
|
||||||
|
|
||||||
|
### Your helper functions go here
|
||||||
|
|
||||||
|
|
||||||
|
def cplxs2pts(zs):
|
||||||
|
tt = []
|
||||||
|
for z in zs:
|
||||||
|
tt.extend([z.real,z.imag])
|
||||||
|
return tt
|
||||||
|
|
||||||
|
|
||||||
|
def draw_SVG_circle(parent, r, cx, cy, name):
|
||||||
|
" structre an SVG circle entity under parent "
|
||||||
|
circ_attribs = { 'cx': str(cx), 'cy': str(cy),
|
||||||
|
'r': str(r),
|
||||||
|
inkex.addNS('label','inkscape'): name}
|
||||||
|
|
||||||
|
|
||||||
|
circle = inkex.etree.SubElement(parent, inkex.addNS('circle','svg'), circ_attribs )
|
||||||
|
|
||||||
|
|
||||||
|
class Myextension(inkex.Effect): # choose a better name
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
" define how the options are mapped from the inx file "
|
||||||
|
inkex.Effect.__init__(self) # initialize the super class
|
||||||
|
|
||||||
|
|
||||||
|
# list of parameters defined in the .inx file
|
||||||
|
self.OptionParser.add_option("-d", "--depth",
|
||||||
|
action="store", type="int",
|
||||||
|
dest="depth", default=3,
|
||||||
|
help="command line help")
|
||||||
|
|
||||||
|
self.OptionParser.add_option("", "--c1",
|
||||||
|
action="store", type="float",
|
||||||
|
dest="c1", default=2.0,
|
||||||
|
help="command line help")
|
||||||
|
|
||||||
|
self.OptionParser.add_option("", "--c2",
|
||||||
|
action="store", type="float",
|
||||||
|
dest="c2", default=3.0,
|
||||||
|
help="command line help")
|
||||||
|
|
||||||
|
self.OptionParser.add_option("", "--c3",
|
||||||
|
action="store", type="float",
|
||||||
|
dest="c3", default=3.0,
|
||||||
|
help="command line help")
|
||||||
|
|
||||||
|
|
||||||
|
self.OptionParser.add_option("-x", "--shrink",
|
||||||
|
action="store", type="inkbool",
|
||||||
|
dest="shrink", default=True,
|
||||||
|
help="command line help")
|
||||||
|
|
||||||
|
# here so we can have tabs - but we do not use it directly - else error
|
||||||
|
self.OptionParser.add_option("", "--active-tab",
|
||||||
|
action="store", type="string",
|
||||||
|
dest="active_tab", default='title', # use a legitmate default
|
||||||
|
help="Active tab.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def calc_unit_factor(self):
|
||||||
|
""" return the scale factor for all dimension conversions.
|
||||||
|
- The document units are always irrelevant as
|
||||||
|
everything in inkscape is expected to be in 90dpi pixel units
|
||||||
|
"""
|
||||||
|
# namedView = self.document.getroot().find(inkex.addNS('namedview', 'sodipodi'))
|
||||||
|
# doc_units = self.getUnittouu(str(1.0) + namedView.get(inkex.addNS('document-units', 'inkscape')))
|
||||||
|
unit_factor = self.getUnittouu(str(1.0) + self.options.units)
|
||||||
|
return unit_factor
|
||||||
|
|
||||||
|
|
||||||
|
### -------------------------------------------------------------------
|
||||||
|
### Main function and is called when the extension is run.
|
||||||
|
|
||||||
|
|
||||||
|
def effect(self):
|
||||||
|
|
||||||
|
#set up path styles
|
||||||
|
path_stroke = '#DD0000' # take color from tab3
|
||||||
|
path_fill = 'none' # no fill - just a line
|
||||||
|
path_stroke_width = 1. # can also be in form '0.6mm'
|
||||||
|
page_id = self.options.active_tab # sometimes wrong the very first time
|
||||||
|
|
||||||
|
style_curve = { 'stroke': path_stroke,
|
||||||
|
'fill': 'none',
|
||||||
|
'stroke-width': path_stroke_width }
|
||||||
|
|
||||||
|
|
||||||
|
# This finds center of current view in inkscape
|
||||||
|
t = 'translate(%s,%s)' % (self.view_center[0], self.view_center[1] )
|
||||||
|
|
||||||
|
# add a group to the document's current layer
|
||||||
|
#all the circles inherit style from this group
|
||||||
|
g_attribs = { inkex.addNS('label','inkscape'): 'zengon' + "_%d"%(self.options.depth),
|
||||||
|
inkex.addNS('transform-center-x','inkscape'): str(0),
|
||||||
|
inkex.addNS('transform-center-y','inkscape'): str(0),
|
||||||
|
'transform': t,
|
||||||
|
'style' : simplestyle.formatStyle(style_curve),
|
||||||
|
'info':'N: '}
|
||||||
|
topgroup = inkex.etree.SubElement(self.current_layer, 'g', g_attribs )
|
||||||
|
|
||||||
|
|
||||||
|
circles = fablabchemnitz_apolloniangasket_func.main(c1=self.options.c1,
|
||||||
|
c2=self.options.c2,
|
||||||
|
c3=self.options.c3,
|
||||||
|
depth=self.options.depth)
|
||||||
|
|
||||||
|
#shrink the circles so they don't touch
|
||||||
|
#useful for laser cutting
|
||||||
|
|
||||||
|
if self.options.shrink:
|
||||||
|
circles = circles[1:]
|
||||||
|
for cc in circles:
|
||||||
|
cc.r = abs(cc.r)
|
||||||
|
if cc.r >.5:
|
||||||
|
cc.r -= .1
|
||||||
|
else:
|
||||||
|
cc.r *= .9
|
||||||
|
|
||||||
|
scale_factor = 200
|
||||||
|
for c in circles:
|
||||||
|
cx, cy, r = c.m.real, c.m.imag, abs(c.r)
|
||||||
|
|
||||||
|
#rescale and add circle to document
|
||||||
|
cx, cy, r = scale_factor*cx , scale_factor*cy, scale_factor*r
|
||||||
|
draw_SVG_circle(topgroup,r,cx,cy,'apo')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
e = Myextension()
|
||||||
|
e.affect()
|
||||||
|
|
||||||
|
|
125
fablabchemnitz_apolloniangasket_func.py
Normal file
125
fablabchemnitz_apolloniangasket_func.py
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
#! /usr/bin/python3
|
||||||
|
|
||||||
|
# Command line program to create svg apollonian circles
|
||||||
|
|
||||||
|
# Copyright (c) 2014 Ludger Sandig
|
||||||
|
# This file is part of apollon.
|
||||||
|
|
||||||
|
# Apollon is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
# Apollon is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with Apollon. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#import sys
|
||||||
|
import math
|
||||||
|
|
||||||
|
from fablabchemnitz_apollon import ApollonianGasket
|
||||||
|
#from coloring import ColorMap, ColorScheme
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def ag_to_svg(circles, colors, tresh=0.00005):
|
||||||
|
"""
|
||||||
|
Convert a list of circles to svg, optionally color them.
|
||||||
|
@param circles: A list of L{Circle}s
|
||||||
|
@param colors: A L{ColorMap} object
|
||||||
|
@param tresh: Only circles with a radius greater than the product of tresh and maximal radius are saved
|
||||||
|
"""
|
||||||
|
svg = []
|
||||||
|
|
||||||
|
tresh = .000005
|
||||||
|
print '>>', tresh
|
||||||
|
|
||||||
|
# Find the biggest circle, which hopefully is the enclosing one
|
||||||
|
# and has a negative radius because of this. Note that this does
|
||||||
|
# not have to be the case if we picked an unlucky set of radii at
|
||||||
|
# the start. If that was the case, we're screwed now.
|
||||||
|
|
||||||
|
big = min(circles, key=lambda c: c.r.real)
|
||||||
|
|
||||||
|
# Move biggest circle to front so it gets drawn first
|
||||||
|
circles.remove(big)
|
||||||
|
circles.insert(0, big)
|
||||||
|
|
||||||
|
if big.r.real < 0:
|
||||||
|
# Bounding box from biggest circle, lower left corner and two
|
||||||
|
# times the radius as width
|
||||||
|
corner = big.m - ( abs(big.r) + abs(big.r) * 1j )
|
||||||
|
vbwidth = abs(big.r)*2
|
||||||
|
width = 500 # Hardcoded!
|
||||||
|
|
||||||
|
# Line width independent of circle size
|
||||||
|
lw = (vbwidth/width)
|
||||||
|
|
||||||
|
svg.append('<svg xmlns="http://www.w3.org/2000/svg" width="%f" height="%f" viewBox="%f %f %f %f">\n' % (width, width, corner.real, corner.imag, vbwidth, vbwidth))
|
||||||
|
|
||||||
|
# Keep stroke width relative
|
||||||
|
svg.append('<g stroke-width="%f">\n' % lw)
|
||||||
|
|
||||||
|
# Iterate through circle list, circles with radius<radmin
|
||||||
|
# will not be saved because they are too small for printing.
|
||||||
|
radmin = tresh * abs(big.r)
|
||||||
|
print radmin
|
||||||
|
|
||||||
|
for c in circles:
|
||||||
|
if abs(c.r) > radmin:
|
||||||
|
fill = colors.color_for(abs(c.r))
|
||||||
|
svg.append(( '<circle cx="%f" cy="%f" r="%f" fill="%s" stroke="black"/>\n' % (c.m.real, c.m.imag, abs(c.r), fill)))
|
||||||
|
|
||||||
|
svg.append('</g>\n')
|
||||||
|
svg.append('</svg>\n')
|
||||||
|
|
||||||
|
return ''.join(svg)
|
||||||
|
|
||||||
|
def impossible_combination(c1, c2, c3):
|
||||||
|
# If any curvatures x, y, z satisfy the equation
|
||||||
|
# x = 2*sqrt(y*z) + y + z
|
||||||
|
# then no fourth enclosing circle can be genereated, because it
|
||||||
|
# would be a line.
|
||||||
|
# We need to see for c1, c2, c3 if they could be "x".
|
||||||
|
|
||||||
|
impossible = False
|
||||||
|
|
||||||
|
sets = [(c1,c2,c3), (c2,c3,c1), (c3,c1,c2)]
|
||||||
|
|
||||||
|
for (x, y, z) in sets:
|
||||||
|
if x == 2*math.sqrt(y*z) + y + z:
|
||||||
|
impossible = True
|
||||||
|
|
||||||
|
return impossible
|
||||||
|
|
||||||
|
def main(c1=3.,c2=2.,c3=2.,depth=5):
|
||||||
|
|
||||||
|
|
||||||
|
# Sanity checks
|
||||||
|
for c in [c1, c2,c3]:
|
||||||
|
if c == 0:
|
||||||
|
print("Error: curvature or radius can't be 0")
|
||||||
|
exit(1)
|
||||||
|
if impossible_combination(c1, c2, c3):
|
||||||
|
print("Error: no apollonian gasket possible for these curvatures")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
ag = ApollonianGasket(c1, c2, c3)
|
||||||
|
|
||||||
|
ag.generate(depth)
|
||||||
|
|
||||||
|
# Get smallest and biggest radius
|
||||||
|
smallest = abs(min(ag.genCircles, key=lambda c: abs(c.r.real)).r.real)
|
||||||
|
biggest = abs(max(ag.genCircles, key=lambda c: abs(c.r.real)).r.real)
|
||||||
|
|
||||||
|
return ag.genCircles
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user