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

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

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

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

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

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