RenumKiCad PCB Update

RenumKiCadPCB does a geographical re-annotation of a PCB then modifies the schematic and netlist.

I have moved RenumKiCad PCB to Github https://github.com/BrianAtDocumentedDesigns/RenumKicadPCB and released version 0.352.

This version fixes a bug regarding module layers and corrects what is essentially a KiCad issue in the behavior of an undocumented schematic file feature. I have tested it to the extent I can but, of course, real test is when users use it.

I am currently re-writing RenumKiCadPCB from scratch in c++ to teach myself c++ and to prepare for integration with KiCad. The devs have expressed an interest in having geographical reannotation in V6 but that can’t proceed until certain features are specified for V6. Strictly speaking these are not required for the functionality, but the lead developers want things done a certain way and they know so much more than I do about the subject I have to assume they have very good reasons.

Regardless, once RenumKiCad PCB has been fully ported to c++ (V0.4) I will attempt to add a proper GUI based on wxWidgets, which is what KiCad uses. This will be V0.5.

After V0.5, the structure of the program should be such that incorporation into KiCad should be straightforward.

I expect to add a few feature to allow changing the angle of DES, Value, and User text fields. In addition it will be possible to align module text fields with each other or center on the module. I have noticed that because of various choices regarding module origin, rotation, and so forth, the text fields end up being more or less randomly placed and it is a pain to select each one, rotate it, drag it, and so on. At least like this there would be a consistent starting point.

Re-writing the code has allowed me to gain a deeper understanding of the various file formats and so on. It is a bit embarrassing to realize how things could have been done better.

In any event, that is my plan. Any feedback, suggestions, etc., would be appreciated.

1 Like
  • why not use a more expressive and more human-readable language like python?
  • don’t put ZIP files directly on github, put the source files directly and github will create the ZIPs when you tag a release.
  • some form of visual example of what the plugin does would be good - on the front page.

@DocumentedDesigns
I just started using KiCad (on Linux Mint) a few days ago and I like it very much. I am far away from understanding the details of development, but reading about the contribution You made makes me feel good with my decision for using KiCad. And I will encourage and support my students and colleagues, if they want to use KiCad also.
@Anders_Wallin
By the way, for me C++ is a very “human-readable” language. Simply because I learned programming in a bottom-up manner, starting with assembler (6502, Z80, 8086), moving to C and today using C/C++ for micro-controllers and C#/WPF and Java/Android for graphics.
This is not a criticism against Python or other scripting/interpreting languages, only a hint, that choosing a language is not the most important step for programming. The question is, how You can maintain Your software, how stable with time is the program syntax itself and how dependent You are from special resources when creating runnable versions for different hardware and operating systems.
And last but not least, the efficiency (speed) of the result matters, if You want to have big programs running on small machines.

1 Like

Andy

I wrote the tool for me and decided to share it. At the time I knew c so that’s what I wrote it in. Now I am learning c++. To me c and c++ make sense and are very readable. In any event, KiCad is written in c++ with wxWidgets. If there is a chance of having the function incorporated into the code writing it in the native language seems like the straightest path.

I am also new to github and I certainly appreciate those points - I’ll try and put together a slide show or something. Thanks for the tips on zip files!

ProfRob

Thanks! I learned programming the same way you did - almost exactly! To me c is a “high level assembler” (if you know PDP-11, the design of c makes perfect sense). I am late to the “object oriented” party and a big hill for me to climb is to let the compiler and standard libraries take care of things.

As I indicated to Andy, I wrote the code for myself and I figure if there is hope of this function being added to KiCad, writing it in the native language makes sense.

To me, geographical re-annotate is a surprising missing feature of KiCad: it takes a lot of work to do by hand and is really hard to not screw up. In contrast I can re-annotate a large project in a couple of seconds and do it perfectly.

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