Major feature request regarding drawing

As you can see in the gitlab issue, I’m all for some kind of solution to the datasheet → footprint problem. However, full constraint solver isn’t necessarily so important. If we think about the actual problem there (two different paradigms: dimensions vs. coordinates), what we need is a way to easily use dimensions from the datasheet (or a technical drawing). We need to choose the zero point, then we need a way to place new items and move items so that we can use the dimensions. A constraint solver “binds” things to each other in many ways, but it would probably be much easier to make a system which just uses dimensions for placing and moving one item or group of items, without constraints and “binding”.


The integration of MCAD tools in Kicad arises in this forum at least once a year.
In my opinion the problem is solved with kicad-stepup.
I cannot see the advantage of integrating Freecad into Kicad, which is in fact this feature request.
The result would be a larger source code, prone to duplicate bugs. And without taking in account the effort and time in merging both engines under the same GUI.

FreeCAD is a lot of things. Most of it’s functionality is for 3d things which is not relevant for kicad.
We are talking about adding just sketcher to kicad which I think definitely would be useful.

1 Like

FreeCAD is a lot of things :smiley:

I remember hearing about that plugin for Blender, but not being a Blender user I just mentally filed it away as “interesting information”. I didn’t realize that it used FreeCAD as a starting point (the solver engine?).

Are you sure?
As I understand it is mainly intended for footprint definition and board outline.
I typically have to define one new footprint per PCB. Work spend on it is zero, zero, nothing compared with whole PCB design. Even if you can speed up this 10 times (which I don’t believe in) it will have a negligible effect on the overall work.

And about:

It is easy to say, but hard to imagine real situation.
In most cases you have PCB designed to fit to case so you just can’t ‘decide to make it a bit wider’.
And even you work without case - what that means ‘have everything update’. You will only have board outline update what is a little % of PCB design.


I agree that it’s not the most time consuming part of pcb design but it’s something so menial and manual that it feels weird to keep doing this math in your head to calculate the offsets when you can just create a copy of dimensions from datasheet drawings and let the software figure it out. Or copy the dimensions from the pcb outline that your mcad guy gave you in a pdf.

I think this contributes to laziness of beginners to create their own footprints.

I wasn’t talking just about board outlines. It could be any drawing layer on the board like fills etc.
And as qu1ck says, footprints would be much faster and more accurate to make with a sketch solver.

I am not against sketches at all. I only want to pay attention to the low usability of them in PCB design in my opinion. ‘In my opinion’ can be a key here as others can work differently.
I’m sure that I will never use them in footprint design.
It is because I never just copy a picture from datasheet. I always search for as many datasheets from several manufacturers of compatible elements as I can find. Then I draw on paper the pads from all of them (one on the another) and based on it (and imagination, and checking the element dimensions, sometimes) I decide how my footprint will look to allow me to write in BOM all those elements as alternative. That does not mean that my pads are just rectangles enough big to have all those datasheet pads inside. The decision sometimes is not so simple. During that I make so many calculations that having a center of pad I simply get ‘by the way’. Defined that way footprint I then use forever.

Edit. Note: My previous sentence about defining one footprint being zero, zero, nothing was about designing it just by one datasheet as probably most users do.

Once more - it is only my own opinion about fills.
I find myself having 3 kind of fills.
One - the whole PCB so you can draw any shape bigger than PCB - no precision dimensions needed.
Second - as small as possible GND to make return path for all tracks - the fill borders are placed along outermost tracks - fill dimensions are not authority defined.
Third - Not GND fill as big as reasonably possible to dissipate heat from element. Placing its borders I also base on what other elements are on PCB so not by numbers but by real situation.

But I design only 2 layer boards and don’t know - may be for more layers I will find using fills defined by dimensions…

I really like this idea.
Right now, I have to toggle between FreeCAD and Kicad.

I would like to add a small suggestion: if adding a parametric solver is hard or not on the cards, how about having a spreadsheet that can hold variables.

One use case: I want to place an array of switches. I would like to just edit a spreadsheet and have the switches placed according to the co-ordinates in the spreadsheet. This is possible via scripting now, but it would be nice to just have it on PCBNEW.

Welcome! Your statements regarding drawing tools within a PCB tool are sooo true. Keep wishing as KiCAD is the same. Everything does work great but as a CAD tool, it is clunky. I draw everything like footprints, graphics, and even the board outline outside KiCAD, export to dxf and then import. It require more steps but to me is worth it. I don’t know why this is always the case with PCB editors, or at least with the free or affordable ones.

For placing footprints there is a Place Footprints action plugin available via KiCad’s PCM

What you describe would be helpful, no doubt. I have the same wish. My workaround so far: I make complicated PCB outlines or footprint geometries in an external mechanical CAD app (Rhinoceros), export it as DXF and import this to KiCad. For footprints I also make the Fab layer and silkscreen lines in the external CAD. As crosscheck I export the ready PCB from KiCad as STEP and import it to Rhino to check the interfaces, for example between mounting holes and a housing part where the PCB is mounted.

This is just silly:

… especially for footprints. Most footprints are just some kind of array with pads, dressed up with some lines such as silk screen and courtyard. Drawing those directly in KiCad is both simpler and faster then trying to use some kind of conversion. (Except maybe when getting them from the internet from sides like snapeda and pcblibraries)

Simple PCB outlines are also almost as quick to draw in KiCad itself as in any other program and not worth the extra step of converting from a DXF file.

But I do agree that KiCad’s drawing capabilities are very limited, and you have to to be familiar with KiCad’s current limits to be able to know when it’s better to use some external CAD program.

It is silly but when you have 35 years of experience using AutoCAD and other actual CAD packages it really isn’t. It would not be hard for the developers to add the basic CAD features but probably not a priority when the average new user doesn’t know the difference.

I don’t think either of these assertions is true

my 2-Cents opinion…

Making a 2D-Drawing App (either a Stand-Alone or Kicad-Plugin compatible is fairly easy (I’ve done it for SVG and there are Python drawing codes freely available). But…

When the dust settled (for an old guy) I prefer Simple, No-Fuss and Minimal. Thus, I use FreeCAD’s Sketcher (nothing beyond that workbench is needed unless wanting a Nice Printed Drawing, then I use FreeCAD’s TechDraw workbench to plot the drawing).

Here’s a Link to my Video on doing it… Quick and Easy.

FYI: Kicad’s “Import>Graphic…” will import DXF, SVG…others (the same Panel, Kicad’s gotten better!). Thus, your favorite Drawing app may be all you need.


There are actually three assertions:

  1. would not be hard to add
  2. probably not a priority
  3. users doesn’t know the difference
1 Like

The way I see it is that KiCAD is supposed to be CAD for designing PCBs. To be so bad at drafting, that users have to go to an external application, draw things there then import in, is a ludicrous state of affairs really.

Imagine if solidworks was so bad at sketching that you had to jump out to another app each time you wanted to sketch something slightly complex.

The only reason people put up with this state of affairs is that literally every PCB CAD is the same way. From the free, to applications costing tens of thousands of dollars, they are all useless at drawing.

Wouldn’t it be amazing if KiCAD was the first to recognise how much time is being wasted, and how much the user experience could be enhanced by taking the fact that drawing is a key CAD task seriously.


I think the takeaway is, do what you are good at and let others do what they are good at. Duplication is wasted effort. It is also bloat to the core program.

When I first used Windows 3.1 I immediately saw the ‘power’ inherent in being able to more easily share between programs. In their bid to dominate Microsoft started to try and incorporate (steal) everything including the proverbial kitchen sink into Windows. They didn’t do it as well but started putting a lot of folks out of business. Over reaching is not a good thing sometimes.