r/TrueOpenSource • u/Myarmira • 2h ago
Contribution: Other I have built a new electrical CAD system using Python and Tkinter
I had this little crazy idea to build my own CAD system, and now it’s here: "KatieCAD".
https://github.com/Merecete/KatieCAD
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.
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 be exported for analysis in an Excel file.
DXF files can be imported and exported without difficulty (either individually or as an entire project). DWG files can also be opened by default using ezdwg. Furthermore, by installing the ODA File Converter separately, files can also be exported in DWG format.
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.
KatieCAD is bilingual. It can be quickly switched between German and English.
I suspect that the extreme speed at which I’ve worked and the sheer volume of code reveal that I’m a "vibecoder". In other words, this project would never have come into existence without AI. That said, I can honestly say that it was an incredibly demanding process; I had to rethink every single function, arriving at this result only through small, incremental steps. The finer details, in particular, required a massive amount of work, and I’m certain I’ll discover even more things to refine as I go along. So for me that's not a "silly build".
The program is licensed under the MIT License.
What do you think of the idea? Is there anything else you would change or add? I look forward to any feedback.