MightyScape Extension Collection


FabLab Chemnitz - Modify existing Path(s)


FabLab Chemnitz - Modify existing Path(s)

Convert Vertical/Horizontal To Line

This extension converts an SVG path's d attribute the following way: find each V (vertical line) and each H (horizontal line) and replace it by a generic line (L type). A lot of extensions do not work with V and H, but with L commands. So this is just a helper extension for other extensions. It behaves similar to To Absolute (Lächeln)

Example conversion

from:

M 60.403,71.0937 V 89.268022 135.773

to:

M 60.403 71.0937 L 60.403 89.268 L 60.403 135.773

FabLab Chemnitz - Paths - Join/Order


FabLab Chemnitz - Paths - Join/Order

Longest Continuous Path

Source of documentation: https://github.com/Daekkyn/inkscapeOptimizePath

An Inkscape extension that tries to make the longest continuous paths. It converts the paths to a graph, converts the graph to an Eulerian graph and finds an Eulerian cycle. It was written for the Axidraw pen plotter to reduce writing time of graph-like drawings like Voronoi diagrams and meshes.

 grafik.png

Usage

  1. Make sure to ungroup everything → Extensions → Reorder → Deep Ungroup
  2. Make sure that the paths use only absolute coordinates (see trick below) or use → Extensions → Modify Path →  To Absolute
  3. Make sure to not have transforms on the paths. You can use the Apply Transform extension to remove them
  4. Select all the paths you want to optimize (currently only works with polylines). Conversion to polylines can be done with Approximate Curves by Straight Lines (Flatten Beziers) or Convert To Polylines (as second choice). Bezier curves, which were not converted, are getting lost running this extension
  5. Open the extension
  6. Set the merge tolerance (0.1 should work in most cases)
  7. Choose the Overwrite rule:
    1. "Allow" means that the result will be a single path which might (probably) will have some overlapping edges.
    2. "Allow none" means that the results will be multiple disconnected paths but there will be no overlapping edges.
    3. "Allow some" is an in-between, overlapping edges are allowed, but only in short numbers. This is probably the best choice in most cases.
  8. Apply

Trick to remove relative coordinates

  1. Change the preferences for 'SVG Output > Path Data' to always use absolute coordinates. This will only affect newly created paths, or existing objects for which a rewrite of the path data is triggered.

  2. For existing paths, use 'Edit > Select All in All Layers', and nudge the selection with the arrow keys (e.g. one step up and one back down again). This will trigger a rewrite of the path data in 'd' which will follow the changed preferences for optimized path data.

Another Example

  1. Draw some paths and put the ends together by drag and drop with snap

    grafik.png


  2. Get the result

The red contour is an optimized contour. It works similar like Close Paths, Chain Paths or Join Paths / Create Tabs And Dimples except that it will not handle bezier curves but only polylines. So it acts like a combination of those plugins in junction with Approximate Curves by Straight Lines (Flatten Beziers) or Convert To Polylines.

grafik.png

This extension can also create really cool artwork

grafik.png

FabLab Chemnitz - Paths - Join/Order

Reverse Order Of Subpaths

Reverse order of subpaths (combined paths) without changing the direction of each subpath.

When drawing paths and combining these the order of the subpaths is from the last to the first drawn. This extension reverse the order of the subpaths and thus the order in which the paths were drawn can be restored.

Use together with the extension to Number Subpaths to visualize the effect of reversing the subpaths.

See https://inkscape.org/~EllenWasbo/%E2%98%85reverse-order-of-subpaths and https://gitlab.com/EllenWasbo/inkscape-extension-reverse-order-of-subpaths

FabLab Chemnitz - Paths - Join/Order

Move Path Node

Extension to change starting / end node of a path and visualize it by dots and numbers. You can also use this extension as a trimmer for open paths. It is additionally highly useful when using the function to map text to path. By moving the node, the mapped path is moving too. It helps for fine-tuning a lot.

grafik.png grafik.png

FabLab Chemnitz - Paths - Join/Order

Duplicate + Reverse + Join

An extension to effectively convert a single line svg font to a stick font by duplicating, reversing and joining each selected path and subpath. Read more on http://cutlings.wasbo.net/single-line-font-to-stick-font

FabLab Chemnitz - Paths - Join/Order

Circle Tangents (Replaced by Snap Objects Feature)

1. Draw some circles
grafik.png

2. Apply the extension

grafik.png

You can have two different outputs:

grafik.png grafik.png

If you want to get sort of tangents at the path's point handles instead you can also try to run the extension Draw Handles

FabLab Chemnitz - Paths - Join/Order

Chain Paths

Source of documentation: https://github.com/fablabnbg/inkscape-chain-paths

An inkscape extension to combine paths. Like really combining path snippets into longer paths. The stock inkscape path operation "combine" does not do that. It only creates a single path object consisting of multiple distinct segments. Many commercial CAD packages create object contours consisting of separate path snippets using adjacent end points. Such objects cannot be used in path operations like "add", "intersect", "difference", as they are technically a set of objects, rather than a single stroke. This extension forms a longer path from multiple shorter path segments. It is irrelevant if the path segments are separate path objects in Inkscape, or if the path segments belong to the same path object. If two path segments have an end point in common, or if their end points are close together, they are linked together to form a longer path. It is optional weather the linking end points meld into a single common point, or if an optional straight line ('chain link') fills the gap, if any. The maximum distance for end points is a user setting. Usually a fraction of a millimeter works fine.

Usage

Select multiple pathlike objects. If the status line shows you different object types, then use "Path → Object to Path". This is needed as we operate only on paths only. You can choose the maximum endpoint distance for path ends to be linked, and the combination method: snap the points together, or create a linking path segment.

Note, that paths never fork. This means, that if there are three or more path ends at the same location, only two are chained together. The others are left unchanged.

Additional notes

Step 1 - Having a loose set of lines

grafik.png

Step 2 - Apply extension

grafik.png

Step 3 - Get closed (chained) contours

grafik.png

Similar extensions: Line Merging (Combine Paths), Close Paths, Join Paths / Create Tabs And Dimples

FabLab Chemnitz

FabLab Chemnitz

Layer Clip

Usage

See an example with screenshots

  1. Clip containing layer
    • Select a single object and then run this extension to set that object as the clip path for the layer that contains it.
    • This will mark the layer with "(c*)" to indicate that the layer contains an object that is being used to clip its containing layer,
      and with "(C)" to indicate that the layer has a clip path applied to it. (These markers are simply added to the layer name to make it easier to tell when clip paths are in use.)
  2. Clip layer above
    • Like "Clip containing layer", but sets the object as the clip path for the layer above the one that contains it
    • The layer containing the object will be marked with "(c+)" (instead of "(c*)" for "Clip containing layer").
  3. Clip layer below
    • Like "Clip containing layer", but on the layer below the layer containing the selected object.
    • Marks the object's layer with "(c-)".
  4. Clip parent layer
    • Like "Clip containing layer", but on the parent layer of the layer containing the selected object.
    • Marks the object's layer with "(c**)".
  5. Remove layer clip
    • Select an object in a clipped layer and then run this extension to remove the clip path from a layer.
    • The "(C)" marker will also be removed, if one is present.
    • The marker on the layer that held the actual clip path will not be removed, but you can remove it yourself by manually editing the layer name.
  6. Reset clippath transforms
    • If you move an object that is being used as a clip path for a layer, the layer will still be clipped based on the old position. Run this extension to fix the problem.
FabLab Chemnitz

About/Upgrade MightyScape

FabLab Chemnitz

Table Support

Possible actions to perform

grafik.png grafik.png

FabLab Chemnitz

Open Extension Directory

Just what it says to be! ... Opens the MightyScape main folder (Lächeln)

FabLab Chemnitz

Reload

An extension which allows to reload the drawing in case of any change without opening the file in a new window. Helpful if the file is opened and changes in background by another instance of Inkscape or any routine which processes and overwrites it in the meatime.

FabLab Chemnitz

PathOps

A tool suite to run boolean operations multiple times, like Combine, Cut Path, Division, Exclusion, Intersection, Difference, Union. This extension 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. Objects which are considered "valid" for path operations are paths, shapes and text. Other graphic elements like clones or bitmap images are silently ignored.

More info about the usage can be found at https://gitlab.com/moini_ink/inx-pathops

grafik.png

FabLab Chemnitz

Simple Inkscape (Interface)

Source: https://inkscape.org/~Mr.Raven/%E2%98%85simpleinkscapev01+2

Original description:

This extension changes the Inkscape interface into a simpler one.

It hides quite some elements from the menus and toolbars so that a more basic version of the interface remains. This can be useful for educational purposes. It is very easy to use and you can always go back to the default Inkscape user interface.

After installing the extension, you restart Inkscape, open the menu 'Extensions', submenu 'Interface' and then 'Simple Inkscape'. It explains itself.

This extension was made in collaboration with @Kirstie, one of the users of the Inkscape forum and writer of a very good Dutch book about Inkscape. She made the changes to the ui, I made the extension that installs or removes them.

There are two forum topics about this extension.

https://inkscape.org/forums/extensions/simple-inkscape-what-items-do-we-want/

https://inkscape.org/forums/extensions/simple-inkscape-extension-children-education-learning-simplified-user-interface/

It works in Windows and Linux for Inkscape 1.0 and above.

Lower versions of Inkscape will not work.

Mac is currently not supported since I have no Mac to test it on. It will simply give an error message on Mac. If anyone who has a Mac wants to help me test it, I believe I can make it work for Mac as well. Please contact me if you want to help me with it.

If you have questions - please feel free to ask.

I would also be interested to know if the extension is used and what it is used for so that I can keep that in mind for future versions. So if use it - leave a post if you like.

grafik.png

FabLab Chemnitz

Ray Tracing

Sources:

grafik.png grafik.png

grafik.png

Integrated into default Import/Export Menu

Integrated into default Import/Export Menu

Encapsulated PostScript - AI compatible (*.eps)

Source of documentation: https://github.com/tzunghaor/inkscape-eps-export

AI compatible EPS export for Inkscape 0.92 (might work with older versions too). This script converts an Inkscape SVG to Adobe Illustrator 7 compatible EPS. The generated EPS file uses custom Illustrator PS operators, and includes PostScript processes that stands in place of said operators when the file is not opened with Adobe Illustrator. The script exports layers, groups, paths, clones, clipping paths, fill, stroke, gradient fill into a format that Illustrator understands.

Warning This script is not extensively tested. Since its dual nature, it is possible that the result looks different in Illustrator than in other programs.

Known limitations

Features

(It’s not a bug, it’s a feature!)

The generated *.eps files do not work in Roland CutStudio. For this case please use Open in Roland CutStudio Plugin

Integrated into default Import/Export Menu

FreeCAD Sketch Export

grafik.png

Integrated into default Import/Export Menu

Photoshop PSD (*.psd)

grafik.png

Requires gimp to be installed. The command gimp needs to be in %PATH% ($PATH)

Integrated into default Import/Export Menu

WebP Import

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.

sudo dnf install ImageMagick #install on Fedora

grafik.png

Integrated into default Import/Export Menu

Roland CutStudio *.eps Export

See Open in Roland CutStudio. This extension does the same export but it will not call CutStudio. Instead it will save an importable *.eps file to the selected target directory by export menu.

FabLab Chemnitz Boxes.py

Boxes.py is an Open Source box generator written in Python. It features both finished parametrized generators as well as a Python API for writing your own.

Sources of documentation

Souce files for boxes.py

grafik.png grafik.pnggrafik.png

The images are from https://www.festi.info/boxes.py

FabLab Chemnitz Shape Generators

FabLab Chemnitz Boxes/Papercraft