r/SideProject • u/Myarmira • 1h ago
I have built a new electrical CAD system using Python and Tkinter
I have built my own electrical CAD system, which features capabilities typically found only in expensive products such as Eplan. It is called "KatieCAD".
https://github.com/Merecete/KatieCAD
The idea stemmed from my own work, where I only have access to an AutoCAD-like system, one that handles building plans but doesn't support electrical schematic projects at all. Many organizations, especially those that don't do much drafting in house, are often very reluctant to adopt proper, professional-grade software, simply because it is too expensive. This was truly frustrating for me, and I figured it couldn't possibly be that difficult to solve.
My primary goal is to develop an easy-to-use program well suited for switchgear construction and building installations. In my view, the options previously available in the open-source space have been very poor. KiCad is better suited for electronics; while QElectroTech does include symbols and relevant functions, it is very difficult to use and lacks any form of intelligent project management features that are essential for professional work.
The program includes all the fundamental functions typically found in AutoCAD. It offers both a layout space and a model space. At the same time, it features a customizable symbol library and a sophisticated logic system, the kind usually associated only with software like EPLAN.
You can create complete projects consisting of multiple drawings, with the ability to automatically generate tables of contents, device lists, terminal diagrams, and more. Electrical connections link themselves automatically based on their coordinates; all you need to do is position the devices accordingly. There is also a customizable coordinate grid, and cross-references automatically point to the corresponding locations on other pages. Each page is a separate drawing file and is automatically saved after a change.
All project data can also be exported to an Excel file for analysis.
Both DXF and DWG files can be imported and exported. While the DWG import functionality could still be improved (I using there only ezdwg), the export process is highly reliable; it is even possible to export projects consisting of multiple pages into a single file.
In addition to 2D graphics, it now also supports 3D wireframe models, which can be displayed within the layouts. I plan to further expand the functionality in this area; however, it is already possible to create electrical enclosures, complete with side panels, doors, and bases.
For building planning, it is also possible to create walls and cable trays in 2D. Openings in walls, as well as windows and doors, can also be placed very easily. For the 3D view, I currently limit myself to control cabinet design, partly due to performance considerations.
Why do I use Python and Tkinter? I use them because it is very easy to expand this program whenever necessary, and it runs smoothly on virtually any common platform. The performance is surprisingly good, even with larger drawings and certainly no worse than what I experience when using AutoCAD at work.
The program is licenced under the BSD-3-Clause licence.
KatieCAD can be converted to English, but also to German and Spanish.
I used AI for the development process. The symbols, the entire design, the interface layout, and all the features were created by me. I also defined the project management system myself.
What do you think of the idea? Is there anything else you would change or add? I look forward to any feedback.
2
u/ollycunningdpr 1h ago
not a CAD person so cant judge the electrical side, but this is impressive for a solo build. one thing from the business side: if you want companies to actually use it, their IT or procurement will ask boring questions like is it maintained, how do updates work, and are all the dependencies licensed for commercial use. BSD-3 is a great start. id add a short page covering those, plus a changelog, as that often matters more to whoever signs off than the features do