my question probably falls into expected behaviour category, but i'd like to understand how to do it right.

im working on a design for microfluidic channels that needs to be an exact width of "channel" and "walls" (fill/stroke).

my limitation, i need the fill/channel to always stay the same width, no matter if i bend or whatever. ultimately i would like to draw a line, add stroke to that stroke/line(?) then be able to union it with other channels

TLDR; how do i create a shape like this, with exact inner channels?

maybe my wants are not in line 1. with the SVG spec 2. Facilitate outset/inset by half stroke width - /inkscape/+bug/170898)


1 Answer 1


There are multiple ways to achieve this, but the easiest way to create that shape is by building it with circles and lines first; then merge and stroke them:

Lines and circles

  1. Draw circles and lines

  2. Convert strokes to path (Path > Stroke to Path)

Union body

  1. Select all elements and union them (Path > Union)


  1. Give the path a stroke and set a white background

Stroke order

  1. Change the stroke order to: Stroke,Fill,Markers to keep the channel width intact. (Fill and Stroke > Stroke style > Order) (As suggested by Socowi)

This approach also works for more complex shapes:

Complex channel shape

Another cool way of creating the channels is by creating the walls, and then use that as shape for a new path:

Channel path

  1. First create two rectangles (the walls)
  2. Union the rectangles (Path > Union)
  3. Copy the shape (Ctrl+c)
  4. Select the Bezier curve and Straight line tool
  5. In the tool menu on top, select Shape: From Clipboard
  6. Draw a path
  7. Now you have a channel path that is still editable
  8. Optional: convert this object to a path (Path > Object to path)

I hope this enables you to create the microfluidic channel design with Inkscape!

  • 1
    Note: Inkscape 0.92 is able to change the order in which fill and stroke are drawn. After uniting lines and circles, fill the shape white and draw the stroke behind the fill to ensure that the inner width of objects does not change.
    – Socowi
    Feb 3, 2017 at 22:40
  • ![](i.imgur.com/0asblRq.gifv) first method is no go, it changes the wall width. 2nd thing looks intresting, ill check that kater and update. thanks!
    – yoshco
    Feb 3, 2017 at 23:39
  • I updated the answer based on the good suggestion of Socowi. The first method now keeps the channel width intact.
    – FWrnr
    Feb 3, 2017 at 23:52
  • a modified version works for me. but i'm having issues with a star shape. i.imgur.com/uG4jLL5.gifv ill post later.
    – yoshco
    Feb 4, 2017 at 6:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.