[Feature Request]Symbol Scaling

My current problem is that every symbol in the std KiCAD library is made for 1.27mm and I would like to scale it to 1.8mm. My reasons are not to make it more readable in a print out but to make the text size of the symbols the same as my smallest size in the titelhead of my Template. My first thought was of just making the size of the text bigger but then I realized that it would be better if the whole symbol would be scaled. One way that could be implemented is by adding a Scale parameter in the options for the Schematic Editor witch scales all the placed Symbols to this Size.
In my opinion this would be a feature that cold be us full in multiple scenarios.
My current solution will be a script that “prescales” all the symbols.
To make the symbol library compatible it would be possible to just say that the size of 1.27 = 100% and the setting in the schematic editor would just say what 100% means in here(if the std value is 1.27 most wouldn’t even notice it)

Perhaps create a smaller, scaled down template instead and then print with “scale to fit paper size”.

For example, for a paper size that prints with a 0.1" grid on ANSI A/Letter and a 2.5mm grid on ISO A4, you can use a custom size of 11" × 8.4" (= 11" × 210mm*0.1"/2.50mm instead of regular 11" × 8.5" for Letter). Then scale it (you can type this directly into the custom paper size fields):

Height:  11"*1.27/1.8
Width:   8.4"*1.27/1.8

All the other elements of the template page would need to be scaled down in the Drawing Sheet Editor as well. Maybe adapt your template generator instead?

This sounds like a horrible idea:

Such things don’t work properly in KiCad.
At the moment KiCad is quite heavily dependent on the coordinates of the endpoints of wires to connect with the attachment points of pins, and scaling schematic symbols would mess this up. Scaling the all schematic symbols would even create a bigger mess then setting the grid to some non-standard small value, and that is already a big headache. (Although it’s a bit less worse in KiCad V6 then it was in V5).

I don’t fully understand your intention. You write:

If that is your goal, then why not just simply use the same text size in your template as what is used in all the schematic symbols in all the libraries?

Scaling all symbols also makes your own work incompatible with all other schematics made by everyone else. It just adds to the burden of maintaining your own schematics.

As an alternative, maybe you can do something with: Schematic Editor / Edit / Edit Text and Graphics Properties. This dialog has a lot of options for changing all sorts of specific text properties.


I agree with @paulvdh

That said, Two simple ways to do it are:

  1. Edit the Schematic file (and PCB file, if desired) and do a ‘Find and Replace All’. To avoid changing dimensions and other text with 1.27 as part of a string, lead and end the number with a Space (I didn’t do that in the example, wasn’t necessary for this demo)

  2. Make a simple Script/code to do it (verrry simple and can make it a plugin)

Example shows some Text and Symbols on schematic, edited. For convenience, you can Right-Click the ‘Closed’ Schematic file in Kicad main panel and pop-up will open the default Editor assigned in your pref’s.

You may need Quit/Re-open Kicad (may depend on your system and version)

Because there isn’t much Visual different between 1.27 and 1.8 (for old eyes) this Example uses 2.5 instead of 1.8… you get the idea…

ADDED: Note that the 1.27 text in the first line was also changed because it becomes part of the file. I could have added a text-character to avoid it’s being changed…

Original (at 1.27)

Find and Replace in Editor

After the Change

Resulting Schematic It gets crowded with too-large of a Font

Right-Click to Open
Screen Shot 2022-08-21 at 9.55.15 AM

I made a small test Schematic where I have drawn the normal size than with only the text enlarged to 1.8mm and allow mauly enlarged a resistor. But with only the Text enlargement it is already possible
to see why I want to scale the whole symbol.
test.pdf (28.9 KB)

I wanted to implement a script to scale the symbol library in to the program that I written to create my template bu then I found some problems that I wanted to fix before that. But with this small test I found out that there is no problem with scaling the symbols as long as you scale relay all. That means you need to scale every size, coordinate or length of a pin.

Of course, one issue you get when you scale something is your pins are no longer on a standard grid, so connecting wires to them is not going to be as simple / neat. Or am I missing something here?

as long as you also change the pin length and the grid size there is no problem.

Except that the “pen size” will be too small (the lines and letters will look “too thin”).

Yes that is the main problem with this approach, but I rather have some thinner lines than mismatched text. Even thought it is kind of weird that you are able to change the thinness of a wire but not of a pin(in 6 at least), I alsow didn’t see a option where I could change the wirethigness globaly.

Maybe setting "pin_symbol_size": 0 in *.kicad_pro changes to compatibility mode.

I made a small dialog in my Template generator(https://github.com/tobiasfalk/KiCAD-FreeCAD-TechDraw-Template-Generator) witch can scale all libs in a folder.

test.pdf (99.5 KB)

1 Like

the only thing that is not scalable is the stroke with of the pin.
The scaling factor is 1.8/1.27

The class witch scales is written in plain c++ so ther should not be a problem if there is somone who wants to implement it as a KiCAD plugin.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.