Major feature request regarding drawing

Hi all,

I am new to KiCAD. However I am not new to PCB design. I started on Eagle and moved to Altium and have now moved to KiCAD. I am very happy with KiCAD so far.

Something that has bothered me for years with ALL PCB design software that I have used is how they are all absolutely awful to draw in. If anybody has every used a solid modelling cad application such as Solidworks, Onshape, Inventor or Fusion, you will know that drawing 2D sketches in those applications is extremely fast and efficient. You only have to enter literally the minimum of information in order to define your sketch.

I have long dreamed of having a 2D sketch solver built into a pcb tool. Imagine drawing a board outline perfectly in a few seconds. later on, if you decide later to make it a bit wider, with a couple of clicks you can adjust the relevant dimension and have everything update.

Even better, imagine drawing a footprint and not having to mess around with grids and a calculator to try and get the pads input how they need to be. You could draw them in a few seconds.

I know there are some open source 2D sketch solvers around. Is this something that the developers would consider looking into at some point? I swear it would be a massive productivity boost and remove a significant source of frustration from users.

I would like to hear opinions from others on this topic.


Yes, this is an interesting topic

@twl is working on it


Thanks I missed this.
I see some comments asking if this is just a fancy sort of snapping. It is NOT. It is a constraint solver which is a very different thing.

A big plus on the board outline.

Could you go into a bit more detail with the footprint comment:

You may consider a MCAD ECAD collaboration workflow

here a link to a document describing what is used in the industry for implementing this process:

This can be achieved with FreeCAD and KiCADStepUp workbench

look at how footprints are defined in any datasheet. they don’t have a table of pad coordinates, they give dimensions between items. in the current workflow we’re forced to mentally translate those to x/y displacements, with proper dimensional sketching they could be entered directly.


What could be entered directly: pads, footprint?

footprint pads could be a special case with a center and edges and radii.

So you are writing about creating footprints directly on the PCB?

No, but using the information from the component’s datasheet directly in KiCad, instead of using mental resources and time to translate the original information to x,y coordinates. Almost everything in datasheets is a distance from something else, either from a middle point to an edge, or from middle to middle, or from edge to edge. There are no coordinates. This all work is wasted time and energy: a human being must do what the computer would be good at.



I fear that some users have Stockholm syndrome. They don’t realise how much time they are wasting. This wouldn’t be a minor efficiency tweak. It could make many tasks 10x faster to complete.


its less stockholm and more horses for courses. Constraining in a parametric fashion is fantastic, but you need a parametric engine. PCB tools solve problem x while mechanical tools solve problem y.

For kicad (or others) to implement an MCAD constraint engine would redirect effort from the core, which is a co-ordinate system required to generate PCB artwork. To implement one isn’t trivial and for Kicad to implement it requires someone todo it (FOSS is like herding cats afterall)
This is why tools like FreeCAD step-up is soo powerful so much so I couldn’t imagine drawing a valid PCB outline without going via FreeCAD (not used it for footprint capture yet).

1 Like

There are FOSS constraint solvers, so it would be a matter of integration rather than clean sheet development.

The fact you are defending round tripping to a whole different application for a trivial yet everyday task as board outlines is what I mean by Stockholm syndrome.

I disagree that PCB design and mechanical design are two different areas. Sure schematic entry doesn’t share anything much with MCAD but as soon as you switch to PCB design you are absolutely in the exact same world as mechanical. You have dimensions, clearances, layouts etc. thinking they are different means you have your nose pressed against the trees and you are missing the massive efficiency gains that the mechanical people figured out decades ago.

i’m not defending and a quick search here will show I really want this.
However, I am a stirn realist… to implement this requires resource and resource in FOSS is like herding cats as in people do what they want in a general direction.
There are other critical missing features required in kicad that personally I would really like implemented before something like this, even though this would make life easier. Right now there is a method todo this which works very well and thus a constraint-based development is not impossible

in many PCB sw the ECAD MCAD Co Design is the way to go…
i.e Altium and SolidWorks

or Eagle and Fusion360 workflow

That is certainly a valid workflow for board outlines where you are closely coupled with mechanical. However I feel like board outlines are only the tip of the iceberg. What if you want to set the position of 5 switches on your PCB? - they should be all horizontally aligned, each 16.2mm apart and 12mm from the board outlines. With a constraint solver you can lay this out in a few seconds, and later on when you decide that 12mm is not enough and need to go to 12.5mm, it could be as simple as two clicks to adjust.

Not saying it is useless…
many tasks could be easily done in pcb…
but you are working in 2D, what if your 2D alignement will conflict in a z dimension?
That is why a real 3D kernel and viewer is needed.
In MCAD you can design the pcb (edges, holes etc) but also move the 3D footprint models to align the parts in a real 3D environment.
And there you can align i.e. relevant edges of a connector to the enclosure or to other mechanical parts.

Same with Mentor <-> NX (both Siemens products) and in each case could a parametric constraint tool be incorporated into the eCAD? sure it could but that exists in the mCAD tool. Could the mCAD tool incorporate tracking sure, but that exists in the eCAD tool.

I get why its not done (yet), especially as the core domain capability still isn’t complete

As a software developer: you have no idea about the work involved. I actually considered porting FreeCADs constraint solver into a KiCad plugin. It’s already there, just hook it up, right? In reality it’s months of work: UX/UI design, constraint objects rewrite, gluing logic to the library, testing. If this were a commercial project it would cost well into 6 figures to pay someone to develop.

I still may do this if the planets line up some day, unless KiCad beats me to it.

1 Like

Don’t worry, I know this is a huge undertaking. I also develop software in my day job. I would expect it to take a couple of years solid work to be honest. However I also think the payoff would be worth it. No other eCAD software has this capability and it would be a huge attraction for users of other software.