Several bugfixes in vpypetools
This commit is contained in:
parent
700753865c
commit
6f9ab6fb13
@ -30,7 +30,7 @@ Extension for InkScape 1.X
|
|||||||
Author: Mario Voigt / FabLab Chemnitz
|
Author: Mario Voigt / FabLab Chemnitz
|
||||||
Mail: mario.voigt@stadtfabrikanten.org
|
Mail: mario.voigt@stadtfabrikanten.org
|
||||||
Date: 02.04.2021
|
Date: 02.04.2021
|
||||||
Last patch: 04.04.2021
|
Last patch: 06.04.2021
|
||||||
License: GNU GPL v3
|
License: GNU GPL v3
|
||||||
|
|
||||||
This piece of spaghetti-code, called "vpypetools", is a wrapper to pass (pipe) line elements from InkScape selection (or complete canvas) to vpype.
|
This piece of spaghetti-code, called "vpypetools", is a wrapper to pass (pipe) line elements from InkScape selection (or complete canvas) to vpype.
|
||||||
@ -50,10 +50,7 @@ CLI / API docs:
|
|||||||
|
|
||||||
Todo's
|
Todo's
|
||||||
- allow to change pen width / opacity in vpype viewer: https://github.com/abey79/vpype/issues/243
|
- allow to change pen width / opacity in vpype viewer: https://github.com/abey79/vpype/issues/243
|
||||||
- command chain is really slow on Windows (takes ~5 times longer than Linux)
|
- command chain is really slow on Windows (takes ~5 times longer than Linux). Find ways to speed up
|
||||||
- allow to select other units than mm for tolerance, trimming, ... At the moment vpype uses millimeters regardless of the document units/display units in namedview
|
|
||||||
- handle styles of layers
|
|
||||||
- allow to select single layers instead of whole canvas (4th mode)
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
class vpypetools (inkex.EffectExtension):
|
class vpypetools (inkex.EffectExtension):
|
||||||
@ -122,7 +119,7 @@ class vpypetools (inkex.EffectExtension):
|
|||||||
# General Settings
|
# General Settings
|
||||||
self.arg_parser.add_argument("--input_handling", default="paths", help="Input handling")
|
self.arg_parser.add_argument("--input_handling", default="paths", help="Input handling")
|
||||||
self.arg_parser.add_argument("--flattenbezier", type=inkex.Boolean, default=False, help="Flatten bezier curves to polylines")
|
self.arg_parser.add_argument("--flattenbezier", type=inkex.Boolean, default=False, help="Flatten bezier curves to polylines")
|
||||||
self.arg_parser.add_argument("--flatness", type=float, default=0.1, help="Minimum flatness = 0.1. The smaller the value the more fine segments you will get.")
|
self.arg_parser.add_argument("--flatness", type=float, default=0.1, help="Minimum flatness = 0.1. The smaller the value the more fine segments you will get (quantization).")
|
||||||
self.arg_parser.add_argument("--apply_transformations", type=inkex.Boolean, default=False, help="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting")
|
self.arg_parser.add_argument("--apply_transformations", type=inkex.Boolean, default=False, help="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting")
|
||||||
self.arg_parser.add_argument("--output_show", type=inkex.Boolean, default=False, help="This will open a new matplotlib window showing modified SVG data")
|
self.arg_parser.add_argument("--output_show", type=inkex.Boolean, default=False, help="This will open a new matplotlib window showing modified SVG data")
|
||||||
self.arg_parser.add_argument("--output_stats", type=inkex.Boolean, default=False, help="Show output statistics before/after conversion")
|
self.arg_parser.add_argument("--output_stats", type=inkex.Boolean, default=False, help="Show output statistics before/after conversion")
|
||||||
@ -181,38 +178,45 @@ class vpypetools (inkex.EffectExtension):
|
|||||||
|
|
||||||
doc = None #create a vpype document
|
doc = None #create a vpype document
|
||||||
|
|
||||||
# if 'paths' we process paths only. Objects like rectangles or strokes like polygon have to be converted before accessing them
|
'''
|
||||||
# if 'layers' we can process all elements.
|
if 'paths' we process paths only. Objects like rectangles or strokes like polygon have to be converted before accessing them
|
||||||
|
if 'layers' we can process all layers in the complete document
|
||||||
|
'''
|
||||||
if self.options.input_handling == "paths":
|
if self.options.input_handling == "paths":
|
||||||
# getting the bounding box of the current selection. We use to calculate the offset XY from top-left corner of the canvas. This helps us placing back the elements
|
# getting the bounding box of the current selection. We use to calculate the offset XY from top-left corner of the canvas. This helps us placing back the elements
|
||||||
input_bbox = None
|
input_bbox = None
|
||||||
|
if self.options.apply_transformations is True and applyTransformAvailable is True:
|
||||||
|
'''
|
||||||
|
we need to apply transfoms to the complete document even if there are only some single paths selected.
|
||||||
|
If we apply it to selected nodes only the parent groups still might contain transforms.
|
||||||
|
This messes with the coordinates and creates hardly controllable behaviour
|
||||||
|
'''
|
||||||
|
applytransform.ApplyTransform().recursiveFuseTransform(self.document.getroot())
|
||||||
if len(self.svg.selected) == 0:
|
if len(self.svg.selected) == 0:
|
||||||
if self.options.apply_transformations is True and applyTransformAvailable is True:
|
|
||||||
applytransform.ApplyTransform().recursiveFuseTransform(self.document.getroot())
|
|
||||||
convertPath(self.document.getroot())
|
convertPath(self.document.getroot())
|
||||||
for element in nodesToWork:
|
for element in nodesToWork:
|
||||||
input_bbox += element.bounding_box()
|
input_bbox += element.bounding_box()
|
||||||
else:
|
else:
|
||||||
for id, item in self.svg.selected.items():
|
for id, item in self.svg.selected.items():
|
||||||
if self.options.apply_transformations is True and applyTransformAvailable is True:
|
|
||||||
applytransform.ApplyTransform().recursiveFuseTransform(item)
|
|
||||||
convertPath(item)
|
convertPath(item)
|
||||||
input_bbox = inkex.elements._selected.ElementList.bounding_box(self.svg.selected) # get BoundingBox for selection
|
#input_bbox = inkex.elements._selected.ElementList.bounding_box(self.svg.selected) # get BoundingBox for selection
|
||||||
|
input_bbox = self.svg.selection.bounding_box() # get BoundingBox for selection
|
||||||
if len(lc) == 0:
|
if len(lc) == 0:
|
||||||
inkex.errormsg('Selection appears to be empty or does not contain any valid svg:path nodes. Try to cast your objects to paths using CTRL + SHIFT + C or strokes to paths using CTRL + ALT+ C')
|
inkex.errormsg('Selection appears to be empty or does not contain any valid svg:path nodes. Try to cast your objects to paths using CTRL + SHIFT + C or strokes to paths using CTRL + ALT+ C')
|
||||||
return
|
return
|
||||||
# find the first object in selection which has a style attribute (skips groups and other things which have no style)
|
# find the first object in selection which has a style attribute (skips groups and other things which have no style)
|
||||||
firstElementStyle = None
|
firstElementStyle = None
|
||||||
for node in nodesToWork:
|
for node in nodesToWork:
|
||||||
if node.get('style') != None:
|
if node.attrib.has_key('style'):
|
||||||
firstElementStyle = node.get('style')
|
firstElementStyle = node.get('style')
|
||||||
doc = vpype.Document(page_size=(input_bbox.width + input_bbox.left, input_bbox.height + input_bbox.top)) #create new vpype document
|
doc = vpype.Document(page_size=(input_bbox.width + input_bbox.left, input_bbox.height + input_bbox.top)) #create new vpype document
|
||||||
doc.add(lc, layer_id=None) # we add the lineCollection (converted selection) to the vpype document
|
doc.add(lc, layer_id=None) # we add the lineCollection (converted selection) to the vpype document
|
||||||
|
|
||||||
elif self.options.input_handling == "layers":
|
elif self.options.input_handling == "layers":
|
||||||
doc = vpype.read_multilayer_svg(self.options.input_file, quantization = 0.1, crop = False, simplify = False, parallel = False, \
|
doc = vpype.read_multilayer_svg(self.options.input_file, quantization = self.options.flatness, crop = False, simplify = False, parallel = False, \
|
||||||
default_width = self.document.getroot().get('width'), default_height = self.document.getroot().get('height'))
|
default_width = self.document.getroot().get('width'), default_height = self.document.getroot().get('height'))
|
||||||
for node in self.document.getroot().getchildren():
|
|
||||||
|
for node in self.document.getroot().xpath("//svg:g", namespaces=inkex.NSS): #all groups/layers
|
||||||
nodesToWork.append(node)
|
nodesToWork.append(node)
|
||||||
|
|
||||||
tooling_length_before = doc.length()
|
tooling_length_before = doc.length()
|
||||||
@ -294,8 +298,7 @@ class vpypetools (inkex.EffectExtension):
|
|||||||
self.options.freemode_cmd3_enabled is False and \
|
self.options.freemode_cmd3_enabled is False and \
|
||||||
self.options.freemode_cmd4_enabled is False and \
|
self.options.freemode_cmd4_enabled is False and \
|
||||||
self.options.freemode_cmd5_enabled is False:
|
self.options.freemode_cmd5_enabled is False:
|
||||||
inkex.utils.debug("Please enabled at least one set of commands")
|
inkex.utils.debug("Warning: empty vpype pipeline. With this you are just getting read-write layerset/lineset.")
|
||||||
return
|
|
||||||
else:
|
else:
|
||||||
if self.options.freemode_show_cmd is True:
|
if self.options.freemode_show_cmd is True:
|
||||||
inkex.utils.debug("Your command pipe will be the following:")
|
inkex.utils.debug("Your command pipe will be the following:")
|
||||||
@ -338,6 +341,7 @@ class vpypetools (inkex.EffectExtension):
|
|||||||
# vpype_viewer.show(doc, view_mode=ViewMode.PREVIEW, show_pen_up=self.options.output_trajectories, show_points=False, pen_width=0.1, pen_opacity=1.0, argv=None)
|
# vpype_viewer.show(doc, view_mode=ViewMode.PREVIEW, show_pen_up=self.options.output_trajectories, show_points=False, pen_width=0.1, pen_opacity=1.0, argv=None)
|
||||||
vpype_viewer.show(doc, view_mode=ViewMode.PREVIEW, show_pen_up=self.options.output_trajectories, show_points=False, argv=None) # https://vpype.readthedocs.io/en/stable/api/vpype_viewer.ViewMode.html
|
vpype_viewer.show(doc, view_mode=ViewMode.PREVIEW, show_pen_up=self.options.output_trajectories, show_points=False, argv=None) # https://vpype.readthedocs.io/en/stable/api/vpype_viewer.ViewMode.html
|
||||||
warnings.filterwarnings("default") # reset warning filter
|
warnings.filterwarnings("default") # reset warning filter
|
||||||
|
exit(0) #we leave the code loop because we only want to preview. We don't want to import the geometry
|
||||||
|
|
||||||
# save the vpype document to new svg file and close it afterwards
|
# save the vpype document to new svg file and close it afterwards
|
||||||
output_file = self.options.input_file + ".vpype.svg"
|
output_file = self.options.input_file + ".vpype.svg"
|
||||||
@ -345,8 +349,6 @@ class vpypetools (inkex.EffectExtension):
|
|||||||
# vpype.write_svg(output_fileIO, doc, page_size=None, center=False, source_string='', layer_label_format='%d', show_pen_up=self.options.output_trajectories, color_mode='layer', no_basic_shapes = True)
|
# vpype.write_svg(output_fileIO, doc, page_size=None, center=False, source_string='', layer_label_format='%d', show_pen_up=self.options.output_trajectories, color_mode='layer', no_basic_shapes = True)
|
||||||
vpype.write_svg(output_fileIO, doc, page_size=None, center=False, source_string='', layer_label_format='%d', show_pen_up=self.options.output_trajectories, color_mode='layer')
|
vpype.write_svg(output_fileIO, doc, page_size=None, center=False, source_string='', layer_label_format='%d', show_pen_up=self.options.output_trajectories, color_mode='layer')
|
||||||
#vpype.write_svg(output_fileIO, doc, page_size=(self.svg.unittouu(self.document.getroot().get('width')), self.svg.unittouu(self.document.getroot().get('height'))), center=False, source_string='', layer_label_format='%d', show_pen_up=self.options.output_trajectories, color_mode='layer')
|
#vpype.write_svg(output_fileIO, doc, page_size=(self.svg.unittouu(self.document.getroot().get('width')), self.svg.unittouu(self.document.getroot().get('height'))), center=False, source_string='', layer_label_format='%d', show_pen_up=self.options.output_trajectories, color_mode='layer')
|
||||||
|
|
||||||
|
|
||||||
output_fileIO.close()
|
output_fileIO.close()
|
||||||
|
|
||||||
# convert vpype polylines/lines/polygons to regular paths again. We need to use "--with-gui" to respond to "WARNING: ignoring verb FileSave - GUI required for this verb."
|
# convert vpype polylines/lines/polygons to regular paths again. We need to use "--with-gui" to respond to "WARNING: ignoring verb FileSave - GUI required for this verb."
|
||||||
@ -356,9 +358,7 @@ class vpypetools (inkex.EffectExtension):
|
|||||||
self.debug(_("Inkscape returned the following output when trying to run the vpype object to path back-conversion:"))
|
self.debug(_("Inkscape returned the following output when trying to run the vpype object to path back-conversion:"))
|
||||||
self.debug(cli_output)
|
self.debug(cli_output)
|
||||||
|
|
||||||
# new parse the SVG file and insert it as new group into the current document tree
|
# parse the SVG file
|
||||||
# the label id is the number of layer_id=None (will start with 1)
|
|
||||||
#import_doc = etree.parse(output_file)
|
|
||||||
try:
|
try:
|
||||||
stream = open(output_file, 'r')
|
stream = open(output_file, 'r')
|
||||||
except FileNotFoundError as e:
|
except FileNotFoundError as e:
|
||||||
@ -373,30 +373,38 @@ class vpypetools (inkex.EffectExtension):
|
|||||||
if self.options.output_trajectories is True:
|
if self.options.output_trajectories is True:
|
||||||
if len(trajectoriesLayer) > 0:
|
if len(trajectoriesLayer) > 0:
|
||||||
trajectoriesLayer[0].set('style', 'stroke:#0000ff;stroke-width:'+ str(self.options.trajectories_stroke_width) + 'px;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill:none')
|
trajectoriesLayer[0].set('style', 'stroke:#0000ff;stroke-width:'+ str(self.options.trajectories_stroke_width) + 'px;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill:none')
|
||||||
|
trajectoriesLayer[0].attrib.pop('stroke') # remove unneccesary stroke attribute
|
||||||
|
trajectoriesLayer[0].attrib.pop('fill') # remove unneccesary fill attribute
|
||||||
else:
|
else:
|
||||||
if len(trajectoriesLayer) > 0:
|
if len(trajectoriesLayer) > 0:
|
||||||
trajectoriesLayer[0].getparent().remove(trajectoriesLayer[0])
|
trajectoriesLayer[0].getparent().remove(trajectoriesLayer[0])
|
||||||
|
|
||||||
# lineLayers = import_doc.getroot().xpath("//svg:g[@inkscape:label='1']", namespaces=inkex.NSS)
|
|
||||||
lineLayers = import_doc.getroot().xpath("//svg:g[not(@id='pen_up_trajectories')]", namespaces=inkex.NSS) #all layer except the pen_up trajectories layer
|
lineLayers = import_doc.getroot().xpath("//svg:g[not(@id='pen_up_trajectories')]", namespaces=inkex.NSS) #all layer except the pen_up trajectories layer
|
||||||
if self.options.input_handling == "paths" and self.options.use_style_of_first_element is True and firstElementStyle is not None:
|
if self.options.use_style_of_first_element is True and self.options.input_handling == "paths" and firstElementStyle is not None:
|
||||||
for lineLayer in lineLayers:
|
for lineLayer in lineLayers:
|
||||||
lineLayer.set('style', firstElementStyle)
|
lineLayer.set('style', firstElementStyle)
|
||||||
|
lineLayer.attrib.pop('stroke') # remove unneccesary stroke attribute
|
||||||
|
lineLayer.attrib.pop('fill') # remove unneccesary fill attribute
|
||||||
|
|
||||||
else:
|
else:
|
||||||
for lineLayer in lineLayers:
|
for lineLayer in lineLayers:
|
||||||
lineLayer.set('style', 'stroke:#000000;stroke-width:'+ str(self.options.lines_stroke_width) + 'px;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill:none')
|
if lineLayer.attrib.has_key('stroke'):
|
||||||
|
color = lineLayer.get('stroke')
|
||||||
|
lineLayer.set('style', 'stroke:' + color + ';stroke-width:'+ str(self.options.lines_stroke_width) + 'px;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill:none')
|
||||||
|
lineLayer.attrib.pop('stroke') # remove unneccesary stroke attribute
|
||||||
|
lineLayer.attrib.pop('fill') # remove unneccesary fill attribute
|
||||||
|
|
||||||
import_viewBox = import_doc.getroot().get('viewBox').split(" ")
|
import_viewBox = import_doc.getroot().get('viewBox').split(" ")
|
||||||
self_viewBox = self.document.getroot().get('viewBox').split(" ")
|
self_viewBox = self.document.getroot().get('viewBox').split(" ")
|
||||||
scaleX = self.svg.unittouu(self_viewBox[2]) / self.svg.unittouu(import_viewBox[2])
|
scaleX = self.svg.unittouu(self_viewBox[2]) / self.svg.unittouu(import_viewBox[2])
|
||||||
scaleY = self.svg.unittouu(self_viewBox[3]) / self.svg.unittouu(import_viewBox[3])
|
scaleY = self.svg.unittouu(self_viewBox[3]) / self.svg.unittouu(import_viewBox[3])
|
||||||
|
|
||||||
# for element in import_doc.getroot().iter("*"): # through all
|
|
||||||
for element in import_doc.getroot().iter("{http://www.w3.org/2000/svg}g"):
|
for element in import_doc.getroot().iter("{http://www.w3.org/2000/svg}g"):
|
||||||
element.set('transform', 'scale(' + str(scaleX) + ',' + str(scaleY) + ')') #imported groups need to be transformed. Or they have wrong size. Reason: different viewBox sizes/units in namedview definitions
|
|
||||||
self.document.getroot().append(element)
|
self.document.getroot().append(element)
|
||||||
if self.options.apply_transformations is True and applyTransformAvailable is True: #we apply the transforms directly after adding them
|
if self.options.input_handling == "layers":
|
||||||
applytransform.ApplyTransform().recursiveFuseTransform(element)
|
element.set('transform', 'scale(' + str(scaleX) + ',' + str(scaleY) + ')') #imported groups need to be transformed. Or they have wrong size. Reason: different viewBox sizes/units in namedview definitions
|
||||||
|
if self.options.apply_transformations is True and applyTransformAvailable is True: #we apply the transforms directly after adding them
|
||||||
|
applytransform.ApplyTransform().recursiveFuseTransform(element)
|
||||||
|
|
||||||
# Delete the temporary file again because we do not need it anymore
|
# Delete the temporary file again because we do not need it anymore
|
||||||
if os.path.exists(output_file):
|
if os.path.exists(output_file):
|
||||||
|
@ -14,17 +14,21 @@
|
|||||||
<param name="filter_max_length" type="float" min="0.000" max="99999.000" precision="3" gui-text="maximum length (mm)" gui-description="Keep lines whose length isn't greater than value">0.000</param>
|
<param name="filter_max_length" type="float" min="0.000" max="99999.000" precision="3" gui-text="maximum length (mm)" gui-description="Keep lines whose length isn't greater than value">0.000</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -20,23 +20,50 @@
|
|||||||
<param name="freemode_show_cmd" type="bool" gui-text="Show command" gui-description="Print the full command chain. Helpful for debugging.">false</param>
|
<param name="freemode_show_cmd" type="bool" gui-text="Show command" gui-description="Print the full command chain. Helpful for debugging.">false</param>
|
||||||
</page>
|
</page>
|
||||||
<page name="general_settings" gui-text="General Settings">
|
<page name="general_settings" gui-text="General Settings">
|
||||||
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input handling">
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
<option value="layers">Layers</option>
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
<option value="paths">Elements with type 'path'</option>
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
</param>
|
</param>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories))">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
</page>
|
</page>
|
||||||
<page name="about" gui-text="About">
|
<page name="about" gui-text="About">
|
||||||
|
<label appearance="header">vpypetools documentation</label>
|
||||||
|
<label appearance="url">https://y.stadtfabrikanten.org/vpypetools</label>
|
||||||
|
<label appearance="header">CLI reference (command list)</label>
|
||||||
|
<label appearance="url">https://vpype.readthedocs.io/en/stable/reference.html</label>
|
||||||
|
<separator/>
|
||||||
|
<label appearance="header">General:</label>
|
||||||
|
<label xml:space="preserve"> lmove, lcopy, ldelete, show, stat</label>
|
||||||
|
<label appearance="header">Input/Output (*):</label>
|
||||||
|
<label xml:space="preserve">* works but not recommended to use inside InkScape</label>
|
||||||
|
<label xml:space="preserve"> read, write</label>
|
||||||
|
<label appearance="header">Layout and transforms:</label>
|
||||||
|
<label xml:space="preserve"> layout, scale, translate, skew, rotate, scaleto, snap, crop, trim, pagesize</label>
|
||||||
|
<label appearance="header">Plotting optimization:</label>
|
||||||
|
<label xml:space="preserve"> linemerge, linesort, linesimplify, reloop, multipass</label>
|
||||||
|
<label appearance="header">Filters:</label>
|
||||||
|
<label xml:space="preserve"> filter, squiggles, splitall, reverse</label>
|
||||||
|
<label appearance="header">Generation:</label>
|
||||||
|
<label xml:space="preserve"> begin, end, line, rect, circle, ellipse, arc, text, grid, frame, random</label>
|
||||||
|
<label appearance="header">External:</label>
|
||||||
|
<label xml:space="preserve"> vpype-text, hatched, occult, script, ...</label>
|
||||||
|
<spacer/>
|
||||||
|
<label appearance="header">Supported basis units:</label>
|
||||||
|
<label xml:space="preserve"> cm, mm, in, pt, pc, px | not supported: %, m, em, ex, ft</label>
|
||||||
|
<label appearance="header">Supported angle units:</label>
|
||||||
|
<label xml:space="preserve"> deg, grad, rad, turn</label>
|
||||||
|
<separator/>
|
||||||
|
<label appearance="header">vpypetools for vpype 1.6 (2021-03-10) - by Mario Voigt / Stadtfabrikanten e.V. (2021)</label>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
<label>License: GNU GPL v3</label>
|
<label>License: GNU GPL v3</label>
|
||||||
</page>
|
</page>
|
||||||
|
@ -9,17 +9,21 @@
|
|||||||
<param name="linemerge_no_flip" type="bool" gui-text="no flip" gui-description="Disable reversing stroke direction for merging">false</param>
|
<param name="linemerge_no_flip" type="bool" gui-text="no flip" gui-description="Disable reversing stroke direction for merging">false</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -8,17 +8,21 @@
|
|||||||
<param name="linesimplify_tolerance" type="float" min="0.000" max="99999.000" precision="3" gui-text="tolerance (mm)" gui-description="The resulting geometries' points will be at a maximum distance from the original controlled by the (default 0.05 mm)">0.050</param>
|
<param name="linesimplify_tolerance" type="float" min="0.000" max="99999.000" precision="3" gui-text="tolerance (mm)" gui-description="The resulting geometries' points will be at a maximum distance from the original controlled by the (default 0.05 mm)">0.050</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -8,17 +8,21 @@
|
|||||||
<param name="linesort_no_flip" type="bool" gui-text="Disable flipping" gui-description="Disable reversing stroke direction for optimization '--no-flip'">false</param>
|
<param name="linesort_no_flip" type="bool" gui-text="Disable flipping" gui-description="Disable reversing stroke direction for optimization '--no-flip'">false</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -8,17 +8,21 @@
|
|||||||
<param name="multipass_count" type="int" min="2" max="9999" gui-text="count" gui-description="How many passes for each line (default 2)">2</param>
|
<param name="multipass_count" type="int" min="2" max="9999" gui-text="count" gui-description="How many passes for each line (default 2)">2</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -8,17 +8,21 @@
|
|||||||
<param name="plugin_occult_tolerance" type="float" min="0.000" max="99999.000" precision="3" gui-text="tolerance (mm)" gui-description="Max distance between start and end point to consider a path closed (default 0.01 mm)">0.01</param>
|
<param name="plugin_occult_tolerance" type="float" min="0.000" max="99999.000" precision="3" gui-text="tolerance (mm)" gui-description="Max distance between start and end point to consider a path closed (default 0.01 mm)">0.01</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -8,17 +8,21 @@
|
|||||||
<param name="reloop_tolerance" type="float" min="0.000" max="99999.000" precision="3" gui-text="tolerance (mm)" gui-description="Controls how close the path beginning and end must be to consider it closed (default 0.500 mm)">0.500</param>
|
<param name="reloop_tolerance" type="float" min="0.000" max="99999.000" precision="3" gui-text="tolerance (mm)" gui-description="Controls how close the path beginning and end must be to consider it closed (default 0.500 mm)">0.500</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -7,17 +7,21 @@
|
|||||||
<param name="splitall" type="bool" gui-hidden="true">true</param>
|
<param name="splitall" type="bool" gui-hidden="true">true</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines. Automatically enabled if 'Multilayer/document'">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
@ -9,17 +9,21 @@
|
|||||||
<param name="trim_y_margin" type="float" min="0.000" max="99999.000" precision="3" gui-text="trim margin - y direction (mm)">0.000</param>
|
<param name="trim_y_margin" type="float" min="0.000" max="99999.000" precision="3" gui-text="trim margin - y direction (mm)">0.000</param>
|
||||||
<spacer/>
|
<spacer/>
|
||||||
<label appearance="header">General Settings</label>
|
<label appearance="header">General Settings</label>
|
||||||
<param name="flattenbezier" type="bool" gui-text="Flatten bezier curves to polylines" gui-description="Converts bezier curves to polylines.">true</param>
|
<param name="input_handling" type="optiongroup" appearance="radio" gui-text="Input/Layer handling">
|
||||||
|
<option value="layers">Multilayer/document (all layers/complete document)</option>
|
||||||
|
<option value="paths">Singlelayer/paths (a single layer/paths in selection or all paths in document)</option>
|
||||||
|
</param>
|
||||||
|
<param name="flattenbezier" type="bool" gui-text="Quantization (flatten bezier curves to polylines)" gui-description="Converts bezier curves to polylines.">true</param>
|
||||||
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
<param name="flatness" type="float" min="0.001" max="99999.000" precision="3" gui-text="flatness" gui-description="Minimum flatness = 0.001. The smaller the value the more fine segments you will get.">0.100</param>
|
||||||
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
<param name="apply_transformations" type="bool" gui-text="Use 'Apply Transformations' extension" gui-description="Run 'Apply Transformations' extension before running vpype. Helps avoiding geometry shifting">false</param>
|
||||||
<param name="output_show" type="bool" gui-text="Show debug output" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
<param name="output_show" type="bool" gui-text="Preview only (debug output)" gui-description="This will open a new matplotlib window showing modified SVG data">false</param>
|
||||||
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
<param name="output_stats" type="bool" gui-text="Show conversion statistics" gui-description="Show output statistics before/after conversion">false</param>
|
||||||
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
<param name="output_trajectories" type="bool" gui-text="Import travel trajectories" gui-description="Add paths for the travel trajectories">false</param>
|
||||||
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
<param name="keep_selection" type="bool" gui-text="Keep selected paths" gui-description="If false, selected paths (original objects) will be removed">false</param>
|
||||||
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
<param name="strokes_to_paths" type="bool" gui-text="Auto-convert low-level strokes to paths" gui-description="Recommended option. Performs 'Path' > 'Stroke to Path' (CTRL + ALT + C) to convert vpype converted lines back to regular path objects">true</param>
|
||||||
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines">true</param>
|
<param name="use_style_of_first_element" type="bool" gui-text="Use style of first element in layer" gui-description="If enabled the first element in selection is scanned and we apply it's style to all imported vpype lines (but not for trajectories). Does not work for 'Multilayer/document'">true</param>
|
||||||
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
<param name="lines_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of tooling lines (px)" gui-description="Gets overwritten if 'Use style of first selected element' is enabled">1.000</param>
|
||||||
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="stroke width of trajectory lines (px)">1.000</param>
|
<param name="trajectories_stroke_width" type="float" min="0.001" max="99999.000" precision="3" gui-text="Stroke width of trajectory lines (px)">1.000</param>
|
||||||
<label appearance="header">About</label>
|
<label appearance="header">About</label>
|
||||||
<separator/>
|
<separator/>
|
||||||
<label appearance="url">https://fablabchemnitz.de</label>
|
<label appearance="url">https://fablabchemnitz.de</label>
|
||||||
|
Reference in New Issue
Block a user