Yet another Python teardrop script. Adds and deletes teardrops to a PCB. V0.3.3


Sorry for the long silence. The Kicad team corrected the wxwidget compatibility problem, so I updated the teardrops plugin to support the Kicad 5.1.0 version (see my github repo:
Please notice that the plugin only supports 5.1.0. Support for previous versions has not been tested.
Hoping that the API won’t change within the next two days again…


Is the plugin compatible with python 3 or python 2 only?


Only for python 3 for the moment. If I am not too leasy, I will adapt the scripts to python 2.
For now, I am starting to weary of the multiple API changes.


No need to apoligise.
My current KiCad version does not have scripting enabled, but when it becomes available I’d much rather see Python3 than Python2.
Python 2 patches will stop at the end of this year and after a 10 year delay a lot of the bigger projects with Python are finally moving to Python 3 support only.
(This has been mentioned in at least 2 different threads here on KiCad in the last week).

At the moment KiCad seems to have a problem with dropping support for Python 2 because of some WX Python library that is (still) not yet available for Python 3 on Windoze.

If you ask me, then don’t bother. If you want to spend time and effort in it then I’d rather see better quality scripts for Python3 than support for the obsolete Python 2.


It’s not working


… on windows :wink:

The windows version of KiCad is still using Python 2 for some reason (for non-geeks). And unfortunately this plug-in is written in Python 3.


Wrong comment.
It should be:
“And unfotunately KiCad still has to use Python 2 because some libraries have not been ported to Python 3 yet”.


A minor bug on Ubuntu 18.04 with 5.1.0
Teardrops 0.4.2

When I open the plugin, the dialog box starts too small and the bottom part of the numbers in the three control boxes are all missing.
Resizing the dialog larger makes the numbers complete.
I have a 2560x1440 display, so this map be a high DPI issue.


Sorry for the late answer.
I will check that during the next week. Do you have a screenshot of the problem ?


Incorrect spinbox sizes bug is now corrected.
New version (2.4.3) is available on the github repo:


Still have this problem


Is this script working on Windows? I thought we still had the Python 2.7 wxPython issue


As mentioned earlier, this script only works with Python3… which excludes windows versions.
The previous bug fix was just a cosmetic fix on Linux versions.
I will try to find some time in order to get compatibility with both python versions, but I cannot ensure it is even possible.

Kicad 5.1.2 can't find any plugin

I tried on windows10 with kicad5.1.2. it seems to work with td.SetTeardrops(), but i don’t know how to add teardrops on SMT pads and vias. and I cannot see the panel for adjusting the teardrop parameters.


You’re right, most of the problems are coming from the graphical interface.
I’ve written the teardrop functional part to be compatible with Python2 and Python3.

Thus, using td.SetTeardrops() without any via or pad selected will add teardrops everywhere. Selecting some via or pads before calling td.SetTeardrops() will then apply teardrop on selection only.

Please note, as stated in the README, that this plugins suffers from a refresh problem. You will have to call td.SetTeardrops() then save your pcb. Then quit pcbnew and start it again to see your teardrops.
If someone is able to help on that point, I am very interested in fixing this.


Interesting, do you really need to do a full exit, or does a save/(new?)/reload suffice ?


I appreciate your effort very much.


The save/reload in not enough. But with kicad4 it was possible to overcome this problem by switching to legacy backend.

Since legacy backend is not available anymore, exiting remains the only possibility I have. If you have any idea, I am open to suggestions.


Did you try calling pcbnew.Refresh()?


Yes I did. Without any result (same as the view/redraw).

The strange part is that teardrop zones are created (while not visible) and are selectable in the disambiguation menu when you click a via/pad with teardrop.