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...
Multiple Boolean Operations with Inx Pathops
i

Maren HachmannMultiple Boolean Operations with Inx Pathops

Maren Hachmann

Boolean operations for multiple objects at once - difference, union, intersection, exclusion, division or cut. The extension is a rewrite of the Multi-Bool extension, and offers many adjustable settings and improvements. It takes a selection of one or more groups, or of several elements (paths, shapes, text), or a mix of both, and applies a chosen path operation with the top-most valid object in paint order and each other valid object which is part of the selection (directly or as member of a processed group) that is lower in Z-order. For more info, please refer to the README file at https://gitlab.com/moini_ink/inx-pathops/-/blob/master/README.md . Inkscape extension written by su-v and updated for Inkscape 1.0 – 1.4 by Maren Hachmann, licensed GPLv2 or higher.


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...
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...
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...
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...
Inkscape Tiling Extension
i

Chris WantInkscape Tiling Extension

Chris Want

An extension to make tiling patterns, with or without color patterns. It can be found under the menu Extensions-->Render-->Tiling. This extension uses the Tessagon library (a minified version of the library is included): https://github.com/cwant/tessagon If you would like to try out new features still in development, you can checkout the development branch of tessagon (above) or download a zip file: https://github.com/cwant/tessagon/archive/refs/heads/development.zip Running the script integrations/inkscape/package_extension.py will package up the extension (both as a directory and as a zip file in the output directory that the package_extension script is in).


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...
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...
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...
TexText
i

jcwinklerTexText

jcwinkler

TexText allows to add and re-edit LaTeX/ XeLaTeX/ LuaLaTeX/ typst generated SVG elements to your drawing. A fully functional LaTeX distribution and or typst installation must be installed on your system! Most recent version is TexText 1.10.1 from 2023-11-19. It is compatible with Inkscape 1.3.x. For Inkscape 1.2.x, 1.1.x, and 1.0. goto https://github.com/textext/textext/releases/tag/1.8.2 Extensive installation instructions and extension documentation can be found at https://textext.github.io/textext For manual installation from this site: Download TexText-1.10.1-Inkscape.zip and place its content (i.e. the folder textext with all its files inside) into the Inkscape extension directory. Or load the zip-file via Inkscape's extension manager (experimental). Sourcecode and bug reports: https://github.com/textext/textext This extension is a direct continuation of the discontinued TexText 0.4.4 developed by Pauli Virtanen (https://pav.iki.fi/software/textext/)


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...
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...
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...
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...
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...
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...
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...
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...
Export to LaserGRBL for laser cutting
i

Nikki.SmithExport to LaserGRBL for laser cutting

Nikki.Smith

This free extension for Inkscape speeds up preparation of laser cutting jobs by exporting Gcode to LaserGRBL (included with most laser cutters). Pick your model of laser and material / thickness from pulldown lists, then export a complex job directly into LaserGRBL with one click. Use different coloured lines for each part of a job. eg, red lines to engrave in a single pass at 3000 mm/min @ 80% power, but blue lines cut in 3 passes at 300 mm/min @ 90% power. The emphasis is on it being very easy to use, with the bare minimum of settings. v1.10 14/Oct/2024


Comment here...
Export Layers
i

Dmitry TExport Layers

Dmitry T

Inkscape extension to export SVG layers as standalone PDF, PNG, SVG or JPEG images. The exported images can progressively reveal content of an Inkscape document.


Comment here...
Inkscape Export Hand Poses
i

lambevinInkscape Export Hand Poses

lambevin

Inkscape v1.2.0+ plugin to export the hand poses corresponding to your SVG layers. This plugin was developed using Nikolai Shkurkin's plugin export-layers-combo (https://github.com/nshkurkin/inkscape-export-layer-combos) as a base.


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...
Polymer
i

antSum28Polymer

antSum28

A program which adds a series of circles along a path. This is intended to look like a polymer.


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...
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...
Cut encoding for Shaper Origin
i

hosliCut encoding for Shaper Origin

hosli

The extension sets the line colors and fill colors based on Shaper Origin defaults. the manual cutting depth can also be set. In addition, the extension allows a check for closed paths. Die erweiterung setzt die Linienfarben und Füllfarben anhand der vorgabe von Shaper Origin. es kann auch die manuelle schnitt tiefe eingestellt werden. zusätzlich erlaubt die erweiterung einen check auf geschlossene Pfade.


Comment here...
Sibelius ViewBox
i

musikaiSibelius ViewBox

musikai

This is an extension for Inkscape 1.2 for correcting SVG-files that were exported by Sibelius via the graphic selection tool. These SVG are always the full page with 4 white rectangles that cover the unwanted area. The page size and viewbox isn't set correctly to show only the selected area. The extension will correct this and has the options to - remove the white cover boxes - remove all elements that are outside the page (most of it). #### Download: Click on the image above #### Video: https://www.youtube.com/watch?v=Jg7QqarVrA4 #### Installation: On Windows extract the zip file into something like this path: C:\Users\yourname\AppData\Roaming\inkscape\extensions\ To find and open the correct folder you can also open Inkscape->Edit->Preferences->System->User Extensions->Open After installation and restart Inkscape you can run the extension in "Extensions"->Document->Sibelius Viewbox. #### (Optional) Usage as .bat-file to process multiple SVGs: As it is a python script it also can be used to batch process multiple files via command line. Put this line into a text-file, edit the paths (yourname) and save as SibeliusViewbox.bat: for %%a in (%*) do python.exe "C:\Users\yourname\AppData\Roaming\inkscape\extensions\SibeliusViewbox\SibeliusViewboxExtension.py" --remove_whiteboxes=True --remove_elements=True %%a > %%a_viewbox.svg An example .bat-file is included. Once created you can drag and drop multiple SVGs onto the SibeliusViewbox.bat-file and the script will generate the corrected SVGs. Note: If Inkscape is not installed in "C:\Program Files\" you must edit the Python script. #### (Optional) Add .bat-file to Send-to-Menu: You can add the .bat-file to the Windows Send-to-menu. Open Windows-Explorer and insert this into the address-bar: shell:sendto This opens the Send-to-folder. Copy the .bat-file into it. Now you can select all your SVGs, right click -> Send-to -> SibeliusViewbox.bat


Comment here...
Dynamic GUI example extensions with GTK
i

Nikki.SmithDynamic GUI example extensions with GTK

Nikki.Smith

For extension developers. Most extensions to Inkscape use an .inx file that describes a static user interface, then a Python script is run one time when the user clicks "Apply". To create a dynamic UI (that changes as the user clicks buttons, selects from dropdown menus, etc) you can build it in GTK using a Python script that runs immediately. Requires Inkscape v1.1 or newer. These short examples demonstrate a handful of functions in GTK+ 3. Now includes an example extension that uses a .glade XML file to create the UI with Gtk.Builder(). Also many small changes that result in much higher pylint code scores.


Comment here...
Localization / translation example extension
i

Nikki.SmithLocalization / translation example extension

Nikki.Smith

For extension developers. This minimal extension pulls together some helpful documentation about adding localization to an extension, including where the translation files go and what gettext commands to use on both Windows and Linux. Now includes localized text in the Python script. Also many small changes that result in a much higher pylint code score.


Comment here...