Hello Hackaday peeps. A photographed manual on programming jig assembly will be up over the weekend. Most documentation is here: https://github.com/UrielGuy/KiCad_sharp/wiki
A C# library wrapping some of KiCad's functionallity, allowing for some features not in the software and programmatic circuit creation. It was created for a specific project and since has proven useful for many of them. For simple boards I rather work with this as it allows for easier changes.
Why use this library?
This library is REALLY usefull in a few cases:
- Automating repeptative tasks - such as locating LEDs or buttons in a pattern.
- If you need to create a board with a parametric design.
- Creating PCBs with rounded features. While arcs are much better with KiCad 5, round traces are still not supported natively. This library allows for rounded traces quite easily
- If you want to easily export information about the circuit to other programs (so far I only developed support for OpenScad)
- The automatic programming jig generation is a great feature that can save hours of work and tons of money..
why NOT use this library?
- If you have a very complicated board with lots of component then coding them will be tedious
- If you need more than two layers (because I've only implemented two layers)
- Clone the repository locally
- Open the solution and compile the KiCad_sharp project
- Create you own project, and add a reference to the compiled (or project library)
- Create a new KiCad.PCB() object. At this stage I'd recommend checking the samples in the solution. They show alot of different uses of the library.
- Manipulate the PCB as much as you want.
- Use System.IO.File.WriteAllText("file_path.kicad_pcb", pcb.ToString()) to write out the PCB.
- Open the file in PCBNEW
- Make sure you're happy with the board generated.
- Press 'B' to fill the zones.
- run the DRC checks, just to make sure. Also pree "check unconnected"
- You're done. Plot out your board and have it made at your favorite PCB fab.
- Text tags are not rotated with components
- API for arcs is not uniform between drawing layers and Copper layers
- Bounds are not properly calculated for arcs.
I recommend the checking the wiki for explenation and common use cases for elements of the Library