# Curved traces in layout editor

**URL:** <https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51>\
**Category:** Improvement Ideas\
**Created:** [December 16, 2018, 6:23pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51 "2018-12-16T18:23:38Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![reboots](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/reboots/32/28_2.png) [@reboots](https://librepcb.discourse.group/u/reboots)\
**Post date:** [December 16, 2018, 6:23pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/1 "2018-12-16T18:23:38Z")

</div>

I’d love to see an implementation of curved PCB traces, similar in capability to that of Autodesk Eagle:

1. Support for arc traces in the layout editor.
2. The ability to mouse select and drop the end of a 45 degree arc to define its radius.
3. The ability to apply rounded corners to angled traces.

I believe Eagle implements arc paths in exported gerber code by generating many small straight-line segments. RS-274X supports circular interpolation coordinates for plotting arcs, but I don’t know the extent to which this is supported by the PCB fabrication industry.

While the significance of rounded traces for electrical performance is a matter of some long-standing debate, I offer the following justifications:

1. Artistic expression.
2. Stress management in flexible PCBs.
3. Convenience for certain types of layout, e.g. LED rings and other non-rectilinear designs.
4. Certain unusual RF applications.

The KiCAD community has discussed this feature, but it appears to be a low priority.

> **[Status on curved/smooth corners in traces?](https://forum.kicad.info/t/status-on-curved-smooth-corners-in-traces/12287)**
>
> Hello, I’m a new KiCAD user (started with version 5). I wondered about this feature (getting curved/smooth corners in traces, instead of sharp 45, 90, or 135 degree corner). I’ve seen discussions on this topic, and it seems like it is not...

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [December 16, 2018, 8:12pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/2 "2018-12-16T20:12:18Z")

</div>

Hi,

Generally I agree to allow curved traces. But only arcs, not splines or so, because arcs can easily be exported to Gerber (I see no need to approximate them with straight lines).

Currently I also don’t see any fundamental issues with curved traces, I expect the implementation to be straight forward, although quite time-consuming.

The only thing which might be a critical thing is the push&shove router from KiCad, which we plan to integrate into LibrePCB ([Add interactive push and shove router from CERN/kicad/horizon](https://librepcb.discourse.group/t/add-interactive-push-and-shove-router-from-cern-kicad-horizon/13)). I’m not sure if it works with curved traces. If not, it would be very bad to have curved traces, but no longer be able to use the push&shove router.

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [December 16, 2018, 10:23pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/3 "2018-12-16T22:23:41Z")

</div>

> [@ubruhin](#):
>
> I’m not sure if it works with curved traces.

Oh no, that’s probably a blocker indeed 😢 I would love to see curved traces, but it will probably add some complexity to routing and also things like planes. (Although in some cases like planes we might get away with approximating arcs as line segments as a poor-man’s solution.)

I’d also prioritize a router over curved traces.

---

<div class="post-metadata">

**Author:** ![wayneworkman](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/wayneworkman/32/621_2.png) [@wayneworkman](https://librepcb.discourse.group/u/wayneworkman)\
**Post date:** [September 23, 2024, 4:04am UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/4 "2024-09-23T04:04:15Z")

</div>

Hello, I was looking around in LibrePCB to see how to do curved traces. I only searched because in the datasheet of the IC I’m currently working with, it says that curved traces are best because they cause the least amount of reflection.

Here’s a screenshot of my latest (third) board design where I do my best to round out the 90\* angles with a bunch of little straight lines.

I think a simple solution of approximating a curve with several small straight lines would be a perfectly fine solution. Though on the other hand, people can just do this already themselves as I have shown below. LibrePCB developer cycles could probably be spent on higher value things.

 ![Screenshot from 2024-09-22 22-58-56](https://global.discourse-cdn.com/free1/uploads/librepcb1/original/1X/43e84ee7d3de795199a45d0106d2c05fc64aa1e4.png)

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [September 23, 2024, 9:37am UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/5 "2024-09-23T09:37:12Z")

</div>

> [@wayneworkman](#):
>
> Hello, I was looking around in LibrePCB to see how to do curved traces. I only searched because in the datasheet of the IC I’m currently working with, it says that curved traces are best because they cause the least amount of reflection.

To be honest, I’m not a HF specialist, but your design doesn’t look like there are any really high frequencies so rounded traces are not needed. Rounded traces might be better than 90° or 45° in theory, but in practice it doesn’t matter for probably 99.99% of all PCB designs. So I’d not waste time trying to make traces round - just use 45° segments and everything will be fine 😉

---

<div class="post-metadata">

**Author:** ![crabfoam](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/crabfoam/32/600_2.png) [@crabfoam](https://librepcb.discourse.group/u/crabfoam)\
**Post date:** [October 7, 2024, 4:45pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/6 "2024-10-07T16:45:17Z")

</div>

I use curved traces in my designs but the biggest hang up is no rounded edges for board outlines. My current design doesn’t need it but my next design will require it to fit in the enclosure.

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [October 7, 2024, 6:30pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/7 "2024-10-07T18:30:49Z")

</div>

> [@crabfoam](#):
>
> I use curved traces in my designs but the biggest hang up is no rounded edges for board outlines.

Rounded edges are supported, just open the polygon properties dialog and enter angles for the line segments. See [Create Board | LibrePCB Documentation](https://librepcb.org/docs/quickstart/create-project/board/#draw-outlines).

---

<div class="post-metadata">

**Author:** ![crabfoam](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/crabfoam/32/600_2.png) [@crabfoam](https://librepcb.discourse.group/u/crabfoam)\
**Post date:** [October 7, 2024, 7:25pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/8 "2024-10-07T19:25:30Z")

</div>

Hmm that method does work but it seems you have to guess which edge is which and if you didnt put an edge there you have to redraw the entire polygon. This is turning an edge into a curve instead of a corner turning into an radius.

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [October 7, 2024, 7:32pm UTC](https://librepcb.discourse.group/t/curved-traces-in-layout-editor/51/9 "2024-10-07T19:32:55Z")

</div>

> [@crabfoam](#):
>
> and if you didnt put an edge there you have to redraw the entire polygon

You can add/remove vertices by context menu, no need to redraw. But yes, I agree it is not a nice workflow yet to add corner radius. It is a known limitation and is on the ToDo list to improve.
