Browse Learn topics

Learn/Design/Layout & drawing

Join open contours

Shift+JUpdated v2.4.4

At a glance

  • Chains open contours end to end and closes the ring when the ends meet
  • A ring drawn as separate arcs and lines becomes one closed contour
  • Right-click a piece and Join & Close finds the rest of the ring for you
  • Auto-Close no longer offered on a piece that touches its neighbors — it used to slam a chord across it
  • Endpoints within 0.0005 in count as touching, the same tolerance the importer snaps with

A shape that looks like a closed ring is often not one. Artwork authored elsewhere — and Design's own Trim and Offset output — regularly leaves a single ring as two or four separate open contours meeting end to end. On screen it reads as a finished ring; in the model it is several loose pieces, and anything that needs a closed contour (fills, offsets, booleans, cut-file export) treats it as open.

Join fixes that. Select the pieces and press Shift+J, or pick Join from the toolbar or the right-click menu. Design chains the pieces together end to end into a single contour, and if the two ends of that chain meet, the result is closed.

Join versus Auto-Close

These do different things, and picking the wrong one used to wreck geometry.

  • Auto-Close closes a shape against itself. That is correct when the shape is the whole contour — a hand-drawn outline you never quite finished.
  • Join closes a ring made of several shapes.

Running Auto-Close on one piece of a multi-piece ring used to slam a straight chord across that piece's own endpoints, leaving a visibly broken ring and thin slivers. Design now decides for you: right-click a contour whose endpoints touch another open contour and you get Join & Close; plain Auto-Close is offered only when the contour genuinely stands alone.

Join & Close searches the whole drawing, not just what you selected. The rest of the ring is made of separate shapes, so you only have to right-click one piece of it.

What counts as touching

Two endpoints join when they are within 0.0005 in of each other. That is deliberately the same tolerance the vector importer uses when it snaps chains together, so Join produces the same result the import would have if the file had arrived as loose entities. There is no tolerance box to set — Join is one action.

Pieces further apart than that are left alone. If a ring has a real gap in it, close the gap first (drag the endpoint, or draw a segment across it) and then join.

What happens to your shapes

  • The first piece survives and takes on the joined contour. The other pieces are consumed.
  • A consumed shape only disappears if it had nothing else on it. If a piece you joined belonged to a shape that also carried other closed contours, that shape stays and keeps them.
  • A joined result is no longer an ellipse or an offset in any meaningful sense, so it becomes plain geometry — the same thing that happens after a Bridge or a boolean.
  • A chain that loops back on itself but encloses no area — the same run drawn twice — is left open on purpose. An invisible zero-area shape is worse than a visible open one.

When you'll reach for it

  • Imported signage and decorative artwork, where rings arrive as arc-plus-line fragments.
  • Cleaning up after Trim or Offset before a boolean or a cut file, since both need closed contours.
  • Any file where hovering a ring highlights only part of it — that is the tell that it is in pieces.