izpis_h1_title_alt

Sinhronizacija med programom za načrtovanje tiskanih vezij KiCad in programom za načrtovanje mehanskih elementov FreeCAD
ID Gornjec, Jan (Author), ID Nemec, Mitja (Mentor) More about this mentor... This link opens in a new window

.pdfPDF - Presentation file, Download (17,17 MB)
MD5: 49E215D86B4293B5634CE40F7579A8A0

Abstract
Magistrsko delo obravnava razvoj dveh Python vtičnikov, ki služita za povezavo programov FreeCAD in KiCAD. Problem, ki ga takšna povezava rešuje, je sinhronizacija programov za računalniško podprto načrtovanje vezij (ECAD) in mehanskih elementov (MCAD). Pri načrtovanju elektronskih naprav so uporabljeni tako ECAD kot MCAD programi. Preklapljanje med ECAD in MCAD programi in izvoz ter uvoz tiskanih vezij je lahko zelo zamudno. Za potrebe ECAD-MCAD sinhronizacije že obstajajo določene rešitve. Ena takih je Altium CoDesigner, ki predstavlja vtičnik za MCAD program. Vtičnik omogoča prenos vezja v MCAD program s strežnika preko orodja Git. Podpira spremembe geometrije znotraj MCAD programa, spremenjeno vezje pa je naloženo nazaj na strežnik. V ECAD programu Altium so nato spremembe prenešene s strežnika, s čimer je dosežena sinhronizacija med obema programoma. Sistem vtičnikov, razvitih v sklopu magistrskega dela, ne uporablja strežnika, temveč gre za neposredno povezavo programov preko mrežnega vtiča. Na strani KiCAD-a je pridobljena podatkovna struktura, ki opisuje tiskano vezje z geometrijo vezja in obrisi. Podatkovna struktura je poslana na stran FreeCAD-a, kjer je vezje izrisano kot 3D telo, obrisi pa so predstavljeni z uvoženimi 3D modeli. Sistem vtičnikov podpira spremembo geometrije vezja in položaj ter orientacijo obrisov v obeh programih. Za reševanje konfliktov na enakem delu vezja, sta najprej pridobljeni obe podatkovni strukturi, ki opisujeta spremembe v obeh programih. Pri reševanju konfliktov imajo prioriteto pri obrisih spremembe v KiCAD-u, pri geometriji pa spremembe v FreeCAD-u. Na podlagi sprememb v podatkovni strukturi, ki opisuje združene spremembe z rešenimi konflikti, je spremenjeno vezje v obeh programih, s čimer je dosežena sinhronizacija. V primeru neuspešne sinhronizacije je povezava prekinjena. S tem je prisiljen izris novega vezja v FreeCAD-u ob ponovni povezavi. Če vezje že obstaja v FreeCAD dokumentu, je staro vezje izbrisano, na njegovem mestu pa se izriše novo vezje. V FreeCAD dokumentu je možno odpreti več instanc vtičnika. Na vsako instanco se lahko poveže natanko ena instanca KiCAD vtičnika. S tem je omogočeno delo na več vezjih znotraj enega FreeCAD dokumenta, kar omogoča lažje načrtovanje kompleksnejšega sestava električne naprave.

Language:Slovenian
Keywords:ECAD-MCAD, kolaboracija, KiCAD, FreeCAD, vtičnik, Python
Work type:Master's thesis/paper
Organization:FE - Faculty of Electrical Engineering
Year:2024
PID:20.500.12556/RUL-161566 This link opens in a new window
Publication date in RUL:12.09.2024
Views:116
Downloads:43
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:English
Title:Synchronization between program for PCB design KiCad and program for mechanical design FreeCad
Abstract:
The master's thesis addresses the development of two Python plugins that serve to connect the FreeCAD and KiCAD programs. Such a connection solves the problem of synchronizing programs for electronic computer-aided design (ECAD) and mechanical computer-aided design (MCAD). Both ECAD and MCAD are used when designing electronic devices. Switching between ECAD and MCAD programs and exporting and importing printed circuit boards (PCB) can be very time-consuming. Certain solutions for ECAD-MCAD synchronization already exist. One such solution is Altium CoDesigner, which is a plugin for an MCAD program. The plugin allows the transfer of the PCB to the MCAD program from the server via the Git tool. The geometry of the PCB can be changed in the MCAD program and the modified PCB is uploaded back to the server. In the ECAD program Altium, changes are then transferred from the server, achieving synchronization between the two programs. The plugins developed as part of the master's thesis do not use a server but rather a direct connection of programs via a network socket. On the KiCAD side, a data structure is obtained which describes the PCB with the board geometry and footprints. The data structure is sent to the FreeCAD plugin, where the circuit is sketched and extruded as a 3D body, and the footprints are represented with imported 3D models. The plugins supports changes in the board geometry and the position and orientation of footprints in both programs. First, data structures describing new changes in both programs are obtained. These data structures are merged to a single structure. When resolving conflicts, changes in KiCAD take priority for footprints, while changes in FreeCAD take priority for board geometry. The PCBs in both programs are updated based on the merged changes, achieving synchronization. In the case of an unsuccessful synchronization, the connection between plugins is terminated. This forces a new PCB to be sketched and extruded in FreeCAD upon reconnection. If the PCB already exists in the FreeCAD document, the existing PCB is removed, and the new PCB is moved to its place. Multiple instances of the plugin can be opened in a single FreeCAD document. Each instance can be connected to exactly one instance of the KiCAD plugin. This allows working on multiple PCBs at the same time, facilitating easier design of a more complex assembly of the electrical device.

Keywords:ECAD-MCAD, collaboration, KiCAD, FreeCAD, plugin, Python

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back