Imagetracer.js for Inkscape
i

Mario VoigtImagetracer.js for Inkscape

Mario Voigt

This extension is an InkScape wrapper for https://github.com/jankovicsandras/imagetracerjs. It utilized a standalone node.js executable to run the JavaScript code. It will be fed with embedded or linked images within InkScape. The big difference between this tracer and all other tracers in recent InkScape is the fact that it is capable of splitting an image into it's "isles". The regular tracers separate by colors but not by objects. That makes it hard to work with sometimes. Imagetracer.js will vectorize your beautiful image into a more beautiful SVG trace with separated infills (break apart into single surfaces like a puzzle), that means you get a lot of single areas. works for Linux and Windows


Comment here...
Styles To Layers
i

Mario VoigtStyles To Layers

Mario Voigt

This extension will re-layer your selected items or the whole document according to their color (stroke or fill). Each style will be put onto it's own layer. This way you can devide elements by their colors with ease. It does some basic-only handling of gradient styles. See also https://inkscape.org/~MarioVoigt/%E2%98%85remove-empty-groups for useful cleaning extension. Notes: - includes "Apply Transformations" extension


Comment here...
Contour Scanner And Trimmer
i

Mario VoigtContour Scanner And Trimmer

Mario Voigt

This tool helps you to find nasty contours which might bug you and prevent your work from being ready for production. It will find open contours, closed contours and self-intersecting contours. Self-intersecting contours can be closed or open contours so you can select this option additionally! Bentley-Ottmann algorithm is used to check for those intersections. The algorithm works with the accuracy of the selected paths (epsilons). Self-intersections usually happen if you just have large overlaps where the contour crosses itself like an 'eight' character for example. Using the highlighting it's easy to find contours with unproper path handles. While in a CAD system an area of of a surface can only be calculated if the contour is closed and clean, finding self intersections in InkScape is not required to do so. SVG format allows to calculate areas on open contours and self-twisted curves. This "artwork behaviour" makes it harder for handling machinery-like drawings for laser cutting, vinyl cutting or whatever. That's why we need to have extra sanity checks but we also have the great freedom of Inkscape. Finding self-intersecting contours does only work for curves with straight line segments (polylines) because it just calculates with a set of given XY points. It does not respect bezier curve segments. Bezier curves have no regular points but special handles, which define the slope of the curve per handle side (left and right). To properly handle a bezier curve we need to split the bezier curve in a lot of small linear segments (acting like infinitessimal solution). We can use the tool "Flatten Bezier to do this (will make your curve looking edgy or ugly possible). If you want to leave the shape of the line clean (bezier type, no edgy approximation) we can use Split Bezier (Subdivide) or Add Nodes instead. But remember that your calculated self-intersection points will only be an approximation then. The higher the subdivide count is the higher the precision of the calculated self-intersecting points coordinates will be.


Comment here...
Primitive for Inkscape
i

Mario VoigtPrimitive for Inkscape

Mario Voigt

Primitive - Reproducing images with geometric primitives written in Go. This InkScape extension just wraps https://github.com/fogleman/primitive into InkScape to quickly get cool traced vector graphics works for Linux and Windows


Comment here...
Inventory Sticker
i

Mario VoigtInventory Sticker

Mario Voigt

This extension generates inventory stickers for thermo printers (we use Brother QL-720NW) from our Teedy instance. Teedy is an open source software document management system (DMS). This extension is tested in Linux (Ubuntu 20 LTS) and Windows 10. Source code can be found in https://gitea.fablabchemnitz.de/MarioVoigt/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz More details: https://fablabchemnitz.de/display/IFM/Inventory+Sticker


Comment here...
WebP Import
i

Mario VoigtWebP Import

Mario Voigt

Import *.webp image files using ImageMagick conversion. Routine is webp → png → svg → write into Inkscape canvas. You might need to install ImageMagick. The command "magick" or "convert" needs to be in path variable. See https://stadtfabrikanten.org/display/IFM/WebP+Import


Comment here...
Slic3r STL Input
i

Mario VoigtSlic3r STL Input

Mario Voigt

STL Sliced Import (by Slic3r). Supports OBJ/OFF/PLY/STL as input file formats. How it works: - projects an STL file on the X-Y plane by cutting the objects into "slices" - each "slice" is a group of polygons, with a label indicating its z position - the polygons are converted to paths for better editing in inkscape - use Object → Rows & Columns →  distribute the slices in a grid Warning: Requires Slicer 1.3.1-dev (the really latest build possible) docs: https://stadtfabrikanten.org/display/IFM/Slic3r+STL+Input based on stl input extension of Jürgen Weigert. Thanks for your hard work.


Comment here...
Paperfold
i

Mario VoigtPaperfold

Mario Voigt

Paperfold is another flattener for triangle mesh files, heavily based on https://github.com/felixfeliz/paperfoldmodels by Felix Scholz aka felixfeliz. Possible input files are STL, Wavefront OBJ, PLY and OFF. To run this you need to install OpenMesh with python pip. The algorithm of paperfoldmodels consists of three steps: - Find a minimum spanning tree of the dual graph of the mesh. - Unfold the dual graph. - Remove self-intersections by adding additional cuts along edges. Reference: The code is mostly based on the algorithm presented in a by Straub and Prautzsch (https://geom.ivd.kit.edu/downloads/proj-paper-models_cut_out_sheets.pdf).


Comment here...
DXF/DWG Importer
i

Mario VoigtDXF/DWG Importer

Mario Voigt

Import any DWG or DXF file using ODA File Converter, sk1 UniConverter, kabeja, ezdxf and more tools. Made for Linux and Windows Please carefully read the comments in GUI and docs -> https://fablabchemnitz.de/pages/viewpage.action?pageId=78807535


Comment here...
Remove Empty Groups
i

Mario VoigtRemove Empty Groups

Mario Voigt

This extension is totally minimal. It will just clean the whole document from groups without content (dangling groups). That usually happens if you have a group but remove it's paths for example. The group will possibly stay in the XML tree. This also applies for layers because layers are just special types of groups.


Comment here...
Papercraft Unfold
i

Mario VoigtPapercraft Unfold

Mario Voigt

This tool converts a STL/OFF/PLY/OBJ into binary STL Format. The STL then gets unfolded (flattened) to make a papercraft model. It utilizes https://github.com/osresearch/papercraft and https://github.com/admesh/admesh Documentation: https://fablabchemnitz.de/display/IFM/Papercraft+Unfold


Comment here...
Dxf2papercraft
i

Mario VoigtDxf2papercraft

Mario Voigt

Unfold and import DXF into InkScape using dxf2papercraft. This is some kind of wrapper extension utilizing kabeja to convert the dxf output from dxf2papercraft into SVG. To make it work you need to install at least java. Works on Windows and Linux. dxf2papercraft itself is a tool to make flattened 2D output from a 3D DXF file. Note that kabeja and dxf2papercraft are really old tools. There might be a lot better solutions out there but this is a good starting point and it basically works :) You might have a look at https://inkscape.org/~MarioVoigt/%E2%98%85dxfdwg-importer and https://inkscape.org/~MarioVoigt/%E2%98%85inkscape-papercraft-unfold-stl too.


Comment here...
Move Path Node
i

Mario VoigtMove Path Node

Mario Voigt

Extension to change starting node of a path and visualize it by dots and numbers Notes: Use "Path → Reverse" to change path direction Use extension "Chain Paths" to make closed paths out of segments. Docs: https://stadtfabrikanten.org/display/IFM/Move+Path+Node


Comment here...
vpypetools - vpype for Inkscape
i

Mario Voigtvpypetools - vpype for Inkscape

Mario Voigt

vpype is a command processor working with SVG files. It can do a lot of productive steps to optimize files for different purposes like pen plotting, laser cutting or the generation of creative artwork. vpype is really powerful and helps to extend Inkscape feature capability. vpype contains a lot of functionality which is included natively within Inkscape. The extension "vpype for Inkscape" does not deal with all features but with a set of important commands like linemerge, linesort, linesimplify, occult, etc. We can use it to shorten tool path lengths, remove hiddenlines and so on. vpype converts all elements into simple SVG elements like svg:line, svg:polyline and svg:polygon. They can be displayed properly in Inkscape, but they have no knot handles to edit (see https://alpha.inkscape.org/vectors/www.inkscapeforum.com/viewtopicb51d.html?f=16&t=32562). We need to convert those elements to svg:path using key combination CTRL + SHIFT + C ("object to path"; do not use "stroke to path" because it will duplicate your outline with inset and outset contours). Our extension allows to do this conversion automatically. Documentation: https://stadtfabrikanten.org/display/IFM/vpypetools


Comment here...
Ungrouper And Element Migrator/Filter
i

Mario VoigtUngrouper And Element Migrator/Filter

Mario Voigt

This extension parses the selection and will put all elements into one single group. If you have a cluster with lots of groups and elements you will clean up this way (one top level group, all elements below it). If you select a single element or a set of elements you just wrap it like using CTRL + G (like making a usual group). You can also use this extension to filter out unwanted SVG elements at all. This tool is also able to drop elements with certain SVG tags to perform some kind of cleanup in the selection. You can drop elements like circle,ellipse,image,line,path,polyline,rect,text,tspan and some more. Notes: - includes "Remove Empty Groups" extension - includes "Apply Transformations" extension


Comment here...
Offset Paths
i

Mario VoigtOffset Paths

Mario Voigt

Create offset for open or closed paths. Python library "pyclipper" needs to be installed. Use "Flatten Bezier" extension in advance of this plugin. Docs: https://stadtfabrikanten.org/display/IFM/Offset+Paths


Comment here...
Unwind Paths
i

Mario VoigtUnwind Paths

Mario Voigt

An extension to wrap off paths to receive horizontal lines or extruded bands. Can be used for paper crafting, analysis and other works. You can also just use it to colorize path segments. Docs: https://stadtfabrikanten.org/display/IFM/Unwind+Paths Note: Unwind Paths is similar to https://inkscape.org/~Shoshanaz/%E2%98%85horizontal-lines-effect-hlines, but it is more andvanced as it supports bezier curves and allows to create extruded bands, style config, etc.


Comment here...
Convert To Polylines
i

Mario VoigtConvert To Polylines

Mario Voigt

This extension takes the points of a path and make a straight polyline out of it. Nothing less, nothing more. You can do the same with default InkScape UI but it might be quicker to use in some use cases. This extension handles duplicate points on a path by removing them.


Comment here...
Create Links (Breakaway Connectors)
i

Mario VoigtCreate Links (Breakaway Connectors)

Mario Voigt

To create tabs in Inkscape, we cannot properly use the integrated eraser tool. It will clip only in a cosmetic fashion but we do not get the real paths we need. Creating links (also known as microtabs, tabs, bridges, breakaway connectors, links, perforations) is sometimes required for laser cutting or vinyl cutting. This extension allows to pinch paths to create according segments - no cosmetic one's, but real segments. It will split up open or closed contours with user defined rules. To get best output please try to close open paths before using. Docs: https://stadtfabrikanten.org/pages/viewpage.action?pageId=104923235


Comment here...
Split And Break Bezier At T
i

Mario VoigtSplit And Break Bezier At T

Mario Voigt

Splits a path at value t=0..1 (t=0.5 means 50%) Applies independently for each sub path in selection. Docs: https://stadtfabrikanten.org/display/IFM/Split+And+Break+Bezier+At+t


Comment here...
Animate Order
i

Mario VoigtAnimate Order

Mario Voigt

Create animated SVG preview file and show it in browser. Helps to quickly evaluate line order for cutting processes. Details: https://stadtfabrikanten.org/display/IFM/Animate+Order Please also check out Maren's extension: https://inkscape.org/~Moini/%E2%98%85line-animator-draw-by-invisible-hand


Comment here...
Cleanup Styles
i

Mario VoigtCleanup Styles

Mario Voigt

This plugin is a bit similar to Blueprint Maker but has a more special use case and a lot of options! It is useful for adjusting the stroke width and opacity of large groups. Usually for good laser cutting the line width has to match a maximum width to be recognized as a hairline. Additionally often opacity issues cause that lines are missed by laser cutter. Docs: https://stadtfabrikanten.org/display/IFM/Cleanup+Styles


Comment here...