72

In Inkscape, rounding the corners of a rectangle is easy - you select the object, press F4 (rectangle tool), and drag the circular nodes.

How do you do that for more complex shapes?

polygon, and its rounded equivalent

"Dynamic offset" is nearly the right thing, but it doesn't round the insides of a concave polygon.

17 Answers 17

15

This seems to be a weak point with Inkscape, to not have a simple way to do this. The best way to deal with this I've found so far is:

  1. Make several rounded-corner rectangles, using the desired final corner radius
  2. Butt them up against each other to make the overall final shape, not minding the spots where corners don't meet due to roundness,
  3. Path-union them into one path
  4. Fix the extraneous notches by deleting their nodes.

Luckily someone has described this technique online, with illlustrations (scroll down a bit) http://www.inkscapeforum.com/viewtopic.php?f=5&t=880

I hope there's a path-editing tool that can just convert a path the way you (and fifty thousand other Inkscape users) want, somewhere out there. If not, this would make a great weekend coding project.

64
  1. Select the rectangle or square
  2. Select the nodes option
  3. On the right hand corner, you will see a round node instead of a square node. Drag down the node until you get the rounded corner you want.

The nodes option:

2. The Nodes Option

Round widget you need to drag to get rounded corners:

enter image description here

What happens when you drag the round widget:

enter image description here

As others have noted this only works on rectangles (but that is a common use case that will land people on this page).

  • 1
    What is this 'nodes option'? Screenshots would be lovely. – RAnders00 Sep 16 '15 at 19:23
  • 15
    That's great for rectangles or squares, but how does this help for more complex shapes like the one in the question? – Tom Pohl Nov 28 '15 at 18:04
  • 4
    "In Inkscape, rounding the corners of a rectangle is easy" noted the introduction to the question, before asking a question about rounding non-rectangular shapes. – OJW Sep 12 '17 at 16:08
  • It should be noted that this will e.g. not export to a DXF correctly. You can use the menu "Path" > "Object to Path (Shift-Ctrl-C)" to create a real rounded path. – Rocco Jan 22 '18 at 22:25
  • I don't want to upvote this because it doesn't answer the question. On the other hand, the title of the question implies any shape and this is helpful so I upvoted it. – Dave F Nov 23 '18 at 15:35
19

Another makeshift solution with issues, but which also works for non-rectangular shapes:

  1. Apply Dynamic Offset to your object.
  2. Convert Object to Path.
  3. Add Nodes (under Extensions → Modify Path). This is optional but will most probably improve your results drastically. The more the merrier.
  4. Apply a dynamical inset (i.e., negative Dynamical Offset) to your object.
  5. If desired, convert Object to Path once more and Simplify.
18

This can be achieved using the Fillet/Chamfer path effect (currently only available in the developer version 0.91+devel, which can be found here).

Here's how you use it:

  1. Select the path that you want to modify and then open the path effects tab under Path > Path Effects....

    Unmodified path

  2. Add a new effect in the path effects window and select Fillet/Chamfer.

    enter image description here

  3. Choose a radius that you want to apply to the corners of the path, and press the Fillet button.

    The filleted path

  4. If you only want to round some of the corners, tick the Change only selected nodes box and select the nodes that you want to change in path edit mode before clicking the Fillet button.

  • 2
    This effect seems to be added in Inkscape 0.92 which is not released at the time I wrote this comment. – Levi Morrison Apr 12 '16 at 19:05
  • 1
    Fillet/Chamfer is missing in version 0.92pre1 – Christian Strang Oct 12 '16 at 13:32
  • 1
    @ChristianStrang looks like it's still missing in 0.92 release too :( – Cylindric Jan 17 '17 at 23:29
  • still missing as of Inkscape 0.92.0 r15299 , cant locate the correct win devel build for this – yoshco Feb 19 '17 at 0:16
  • 2
    However, as of april 2017, it isn't available yet, even in development version (0.92.1preX). The feature was moved to milestone 0.93, as you can see on the bug tracker. Therefore, this can't be achieved by now without building from the experimental branch. – ferran Apr 18 '17 at 15:18
15

Here's another method that I've just discovered when I wanted to add rounded corners to an existing irregular polygon for the purposes of creating a laser cut perspex design that is more resilient to cracking.

  1. Choose the Edit Paths By Node (F2) tool and select the corner node that you want to make rounded.

  2. Hold down Ctrl-Alt and click slightly along the horizontal line away from the corner to add a new node.

  3. Do the same again to create a new node slightly along the vertical line to add another new node.
  4. At this stage I return to the two new nodes and ensure that they both have a constant offset from the corner. e.g. 2mm away.
  5. Select the corner node and press Del to delete it. Your corner should now look like this:

rough corner

  1. Drag the two bezier points at the bottom left so that they form a satisfactory curve. I hold down Ctrl and align them on top of each other to look like this:

Aligned

  • Nice solution! One addition to Step 3: I would suggest to use Extensions -> Modify Path -> Add Notes ... to add the nodes in order to have the Nodes at the same distance to the edge at each edge. – daniel.neumann Feb 29 '16 at 8:10
  • 1
    This is not so easy however, if your objects' sides are not aligned with the rectangular grid, but are diagonal or slanted in any way. – Zelphir Sep 4 '17 at 16:51
4

I have used another method. Once i got used to it, and learned how to use the snapping options, I find that I could work pretty fast. This works best with paths composed by orthogonal lines that are parallel to the axis.

  1. Subtract a circle having the radius you want from a square to create a 'cutter' shape. Put the centre of the circle on one of the square corners and size the square as the circle diametre. This ensures that the centre of your cutter will be aligned with the arc edges:
    enter image description here
  2. Duplicate your cutter to be able to reuse it and align it put it on the corner that you want to round. Activate snapping of centres of objects and cusp nodes to align the cutter exactly where you want. enter image description here
  3. If necessary, rotate the cutter along its centre to align the arc with the edges of the underlying path
  4. Select the original path and the cutter and do a boolean difference, if your corner is convex, a boolean union if it is concave. Your corner is now rounded!
  5. Duplicate the cutter and repeat for all the corners you wish.
  6. If your initial shape was open, the boolean operation will have closed it. You may have to reopen it att he end of the process.
  • Probably the best solution for now (0.92.2)! – Ray Koopa Oct 9 '17 at 19:10
3

Inspired by bonaccia answer (thank You for it) I discovered that to get control over rounded corners You can use some additional rectangle or square and a snipping feature. Check out the following GIF I made.

How to get control over rounded corners

2

Another solution to this problem is to use the path division tool. The advantage here is that the radii can be explicitly set as a number

  1. Create the rectangle
  2. Create a circle with the desired radius
  3. Align the circle into the corner of the rectangle
  4. Select the rectangle and the circle, and use Path-> Division
  5. Delete the unwanted corner piece
  6. Do a Path-> Union between the new circle and the original rectangle
2

I was able to solve this using the Edit paths by nodes tool. I'll show how I handled a single end, but the operation should work for any shape with a flat edge. Starting out with a shape like this:

enter image description here

Select the Edit paths by nodes tool and select your shape. If the end of your shape is flat it should have two nodes, one for each corner. Select those nodes and click the Insert new nodes into selected segments button: enter image description here This will add a third node in between the two nodes on the end, and will look something like this:

enter image description here

Now that we have a node in the middle we can make our rounded corners. Just select the node and pull it away so it creates a point, like this:

enter image description here

Be sure to use Ctrl+drag to drag in a straight line. Now that we have a point we need to allow the node to be smoothed out, and this is where the Make selected nodes symmetric button comes in: enter image description here. This adds some handles to the node to allow us to change the shape of the node. It will look like this:

enter image description here

Now just adjust the handles (holding Ctrl to keep everything straight) to get the desired roundedness:

With nodes selected

2

If your version of Inkscape doesn't have the Fillet/Chamfer path effect, you may find the extension I wrote helpful:

Inkscape Rounded Corners

Rounded corners extension example usage

  • I had to read all the above answers in order to reach this answer, but it was worth it. Indeed, this is closest to Fillet/Chamfer LPE. There is also a "Fillet and Chamfer" extension on the official Inkscape page, but it does not work for me. – user1414213562 Feb 5 at 17:48
1

I've had success with just using Bezier curves. E.g. I would draw the OP's L shape like

|
|
|
 \
  \
   \_________

(very rough ASCII art!) i.e. with a diagonal line where the rounded corner should be, and then adjust the Bezier control points for the two line join points.

0

For a purely cosmetic effect (that is, you don't end up with a rounded path) you could try applying the Filters > Blurs > Cross-smooth effect. Then open the Filter Editor and set the Standard Deviation Effect Parameter to about 1.0.

0

Another method is to create a stroke and set the Join and Cap to be rounded. Copy the path and paste in place and remove the stroke from the copy. Then select the original and select path > stroke to path then union the 2 shapes back together.

-1

Since there is no clean solution, let's mention another one, using GIMP!

1- Make a copy of only this object in another Inkscape instance (in case you have other objects)

2- Export to bitmap (a png file)

3- Open the png with GIMP, select the shape by "Select by Color Tool"

3- Select -> Feather -> by R pixels (the radius)

4- Color the selection and save/export to png again

5- Open the modified png file with Inkscape and use "Trace Bitmap" tool to get a rounded path (since the shape should be single-colored, it's easy and probably clean)

  • There are several solutions listed above. Are they unclean? Taking a vector object to GIMP for editing is a dirty hack. – Martin Zaske Dec 8 '17 at 10:05
  • 1
    @MartinZaske Most of the answers above (that are highly rated) are either limited to basic shapes like rectangles, or they are too much manual and not practical for shapes with too many corners. In complicated shapes I think this approach would be much easier and better than most of the above answers. Also there was no clean answer when I posted this. – saeedgnu Dec 14 '18 at 5:17
-1

It works pretty well but it change a bit your shape.

That's similar to Wrzlprmft's solution.

Result

GIF step by step

Sorry I don't have 10 reputation to post images

You can also create an inkscape extension that:

Sorry for my terrible english

-2

You can use the XML Editor in Inkscape to make rectangles rounded corner. Open the XML Editor, select the <svg:rect element. Add the rx and ry attributes, in the lower right of the XML Editor there are two fields and a Set button. Put rx in the top field, and 10 or any other number, then press Set.

  • In theory a nice idea. Practically, the objects that are mentioned in the question are no rectangles anymore. One can set the ry and rx attributes but they are not interpreted. – daniel.neumann Feb 29 '16 at 8:17
-4

It's very simple actually.

  1. Make a shape that has rectangular corners.

  2. Click on the rectangle tool

  3. Click on one of the circular handles at a corner of the shape, not one of the square handles.

  4. Press Shift and drag the circular handle, it will automatically make rounded corners.

enter image description here
Drag a circular handle to make rounded corners.

  • 3
    Unless this changed recently, this should only work for plain rectangles, which is not what the question is about. Even your screenshot shows that you are only selecting the rectangle that constitutes the left part of the shape. Finally, your screenshot does not exhibit the requested inward rounding of concave corners. – Wrzlprmft Jun 19 '16 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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