fixes and ehancements in tab generator
This commit is contained in:
parent
b9e6eeba2c
commit
d9922309c2
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
|
||||
<name>Tabgen</name>
|
||||
<id>fablabchemnitz.de.tabgen</id>
|
||||
<name>Tab Generator</name>
|
||||
<id>fablabchemnitz.de.tab_generator</id>
|
||||
<param name="usermenu" type="notebook">
|
||||
<page name="settings" gui-text="Settings">
|
||||
<param name="tabangle" type="float" min="0.0" max="90.0" gui-text="Angle of tab edges (degrees):">45.0</param>
|
||||
@ -23,6 +23,9 @@
|
||||
<option value="ft">ft</option>
|
||||
<option value="yd">yd</option>
|
||||
</param>
|
||||
<param name="strokewidth" min="0.0" max="10000.0" precision="3" gui-text="Stroke width (px)" type="float">1.0</param>
|
||||
<param name="color_solid" type="color" appearance="colorbutton" gui-text="Solid line color">3419879935</param>
|
||||
<param name="color_dash" type="color" appearance="colorbutton" gui-text="Dash line color">1592519679</param>
|
||||
<param name="print_debug" type="bool" gui-text="Print debug info">true</param>
|
||||
<param name="keep_original" type="bool" gui-text="Keep original elements">false</param>
|
||||
</page>
|
||||
@ -33,10 +36,12 @@
|
||||
<effect needs-live-preview="true">
|
||||
<object-type>all</object-type>
|
||||
<effects-menu>
|
||||
<submenu name="Papercraft" />
|
||||
<submenu name="FabLab Chemnitz">
|
||||
<submenu name="Paper/Cardboard Boxes"/>
|
||||
</submenu>
|
||||
</effects-menu>
|
||||
</effect>
|
||||
<script>
|
||||
<command location="inx" interpreter="python">tabgen.py</command>
|
||||
<command location="inx" interpreter="python">tab_generator.py</command>
|
||||
</script>
|
||||
</inkscape-extension>
|
@ -22,7 +22,7 @@ tabs and score lines for each straight edge.
|
||||
"""
|
||||
|
||||
import inkex
|
||||
from inkex import Path
|
||||
from inkex import Path, Color
|
||||
from lxml import etree
|
||||
import math
|
||||
import copy
|
||||
@ -77,6 +77,9 @@ class Tabgen(inkex.EffectExtension):
|
||||
pars.add_argument("--dashlength", type=float, default=0.25, help="Length of dashline in dimentional units (zero for solid line)")
|
||||
pars.add_argument("--tabsets", default="both", help="Tab placement on polygons with cutouts")
|
||||
pars.add_argument("--unit", default="in", help="Dimensional units of selected paths")
|
||||
pars.add_argument("--strokewidth", type=float, default=1.0, help="Stroke width (px)")
|
||||
pars.add_argument("--color_solid", type=Color, default='3419879935', help="Solid line color")
|
||||
pars.add_argument("--color_dash", type=Color, default='1592519679', help="Solid line dash")
|
||||
pars.add_argument("--print_debug", type=inkex.Boolean, default=True, help="Print debug info")
|
||||
pars.add_argument("--keep_original", type=inkex.Boolean, default=False, help="Keep original elements")
|
||||
|
||||
@ -489,6 +492,7 @@ class Tabgen(inkex.EffectExtension):
|
||||
|
||||
|
||||
def effect(self):
|
||||
|
||||
scale = self.svg.unittouu('1'+self.options.unit)
|
||||
layer = self.svg.get_current_layer()
|
||||
tab_angle = float(self.options.tabangle)
|
||||
@ -499,6 +503,11 @@ class Tabgen(inkex.EffectExtension):
|
||||
savid = ''
|
||||
elems = []
|
||||
pc = 0
|
||||
|
||||
solidLineStyle = {'stroke': str(self.options.color_solid), 'fill': 'none', 'stroke-width': self.options.strokewidth}
|
||||
dashLineStyle = {'stroke': str(self.options.color_dash), 'fill': 'none', 'stroke-width': self.options.strokewidth}
|
||||
|
||||
|
||||
for selem in self.svg.selection.filter(inkex.PathElement):
|
||||
elems.append(selem)
|
||||
if len(elems) == 0:
|
||||
@ -557,6 +566,7 @@ class Tabgen(inkex.EffectExtension):
|
||||
else:
|
||||
raise inkex.AbortExtension("Unrecognized path command {0}".format(ptoken.letter))
|
||||
npath.path.append(inkex.paths.Line(ptx2,pty2))
|
||||
npath.style = solidLineStyle
|
||||
if ptoken.letter == 'Z':
|
||||
npaths.append(npath)
|
||||
else:
|
Reference in New Issue
Block a user