Plugin: Design Rule Manager

DRMgr is a PCBNEW plugin that can save board design rules into a file and load that file into other boards to replicate the design rule settings.

At present, only the board settings are saved. I’m currently working on adding the Gerber plotting parameters.

If anybody has pointers to repos of recently completed, verifiably-working PCBs, then I could extract design rules from those and store them in a repo along with a tag listing the PCB fabricator (OSHPark, PCBWay, etc.). Naturally, I would give precedence to boards provided directly from the manufacturers themselves as they have a vested interest in making sure the design rules are correct.


It took me a while to figure out how to install this. Turns out pyyaml isn’t installed on the Windows KiCad Python environment out of the box. For the installation instructions you should mention that pyyaml also needs to be installed (and give some installation instructions, particularly for us Windows users).

Instead of installing the script in the KiCad installation folder as you suggest in the I installed it in %APPDATA%\kicad\scripting\plugins and it works. (Actually, I cloned your repository elsewhere in my filesystem and made a symbolic link to the python file in %APPDATA% and that also works.)

One concern I have is because I had to install two 3rd party packages to the KiCad Python environment, I worry that this script will suddenly break the next time I install an update to KiCad. (Hopefully soon with the next bug-fix version. Hopefully I’ll remember to reinstall both kinjector and pyyaml…)

If you install kicad in same folder without uninstalling previous one you shouldn’t have a problem. Otherwise (only on windows and osx) you will have to repeat dependency installation process.

This is one of the reasons why I think plugin writers should avoid adding external dependencies to their projects when possible.

In this case there is no real need to use yaml over json and kinjector can be bundled with plugin.

I like the plugin idea though, it’s a great example of how scripting allows to accomplish something that was a requested feature of main app (I can’t be bothered to find a bug but I’m pretty sure this was mentioned at KiCon too).


Thanks for the report. I added PyYAML as a dependency of KinJector, so it will get installed automatically when KinJector is installed.

I updated DRMgr/KinJector so it saves/restores both the board settings (design rules) and the plotting options (for making the Gerber files).

Unfortunately, I can’t save/restore the options for generating a drill file: doesn’t have the requisite set/get functions (at least, I can’t find them). This leaves DRMgr as 2/3 of a solution for storing the complete manufacturing options for a particular PCB fabricator.

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