graph LR
KiCAD_GUI_Plugin_Interface["KiCAD GUI & Plugin Interface"]
Configuration_Preset_Management["Configuration & Preset Management"]
Panelization_Core_Engine["Panelization Core Engine"]
KiCAD_Data_Abstraction_Utilities["KiCAD Data Abstraction & Utilities"]
Manufacturing_Data_Export_Stencil_Generation["Manufacturing Data Export & Stencil Generation"]
KiCAD_GUI_Plugin_Interface -- "initiates panelization with user input and board data" --> Panelization_Core_Engine
KiCAD_GUI_Plugin_Interface -- "passes user-defined settings" --> Configuration_Preset_Management
Configuration_Preset_Management -- "provides validated panelization presets" --> Panelization_Core_Engine
Panelization_Core_Engine -- "requests KiCAD data parsing and manipulation" --> KiCAD_Data_Abstraction_Utilities
Panelization_Core_Engine -- "returns panelized board data" --> KiCAD_GUI_Plugin_Interface
Panelization_Core_Engine -- "forwards panelized board for output generation" --> Manufacturing_Data_Export_Stencil_Generation
KiCAD_Data_Abstraction_Utilities -- "provides parsed KiCAD data and manipulation services" --> Panelization_Core_Engine
KiCAD_Data_Abstraction_Utilities -- "provides KiCAD data for export formatting" --> Manufacturing_Data_Export_Stencil_Generation
Manufacturing_Data_Export_Stencil_Generation -- "utilizes KiCAD data utilities for output formatting" --> KiCAD_Data_Abstraction_Utilities
click Panelization_Core_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/KiKit/Panelization_Core_Engine.md" "Details"
The KiKit project implements a modular, workflow-oriented architecture designed to automate PCB panelization and manufacturing data generation within the KiCAD ecosystem. At its core, the KiCAD GUI & Plugin Interface initiates operations, passing user inputs and board data to the Configuration & Preset Management and the Panelization Core Engine. The Panelization Core Engine then processes the board data, leveraging the KiCAD Data Abstraction & Utilities for all KiCAD-specific data interactions and manipulations. Upon successful panelization, the results are returned to the GUI and forwarded to the Manufacturing Data Export & Stencil Generation component, which, again, utilizes the KiCAD Data Abstraction & Utilities to produce various manufacturing-ready files. This clear separation of concerns facilitates extensibility, allowing for easy integration of new panelization features, output formats, or KiCAD versions, while providing a robust and efficient automation pipeline for PCB design and manufacturing.
Manages user interaction within the KiCAD environment, providing the graphical interface for panelization and other utility functions. It acts as the entry point for most user-driven operations.
Related Classes/Methods:
kikit.actionPlugins.panelizekikit.actionPlugins.hideReferenceskikit.panelize_uikikit.panelize_ui_sections
Handles the loading, saving, validation, and application of panelization presets and project-specific configurations, ensuring consistent and reproducible results.
Related Classes/Methods:
Panelization Core Engine [Expand]
The central processing unit for all panelization logic. It takes individual board designs and applies various panelization features to create a single manufacturing panel.
Related Classes/Methods:
Provides a robust abstraction layer for interacting with KiCAD's internal data structures (e.g., board files, schematics, annotations, design rules), offering functionalities to read, parse, manipulate, and write KiCAD-specific data.
Related Classes/Methods:
kikit.eeschemakikit.eeschema_v6kikit.annotationskikit.commonkikit.sexprkikit.drckikit.kicadUtil
Responsible for generating various output files required for PCB manufacturing and assembly, including Gerber files, DXF, Bill of Materials (BOM), Pick-and-Place (POS) data, and specialized stencil designs.
Related Classes/Methods: