22 Commits

Author SHA1 Message Date
Seth Hillbrand b16cead02a Accept all Altium PCB extensions on import
When importing an Altium project, the handler only recognized
PcbDoc files. Projects that reference Circuit Studio, Circuit
Maker, or SolidWorks PCB files (CSPcbDoc, CMPcbDoc, SWPcbDoc)
had their board silently skipped. Map each extension to its
correct PCB_IO plugin type so the right parser is used.
2026-03-12 08:15:26 -07:00
Seth Hillbrand e12751da40 Eeschema: Add gEDA/Lepton EDA importer
Add a schematic importer for gEDA and Lepton EDA .sch files.
The importer parses the full gEDA file format including
components, nets, buses, attributes, text, graphical
primitives, and paths with bezier curves.

A builtin symbol library ships 39 standard gEDA symbols so
import works without a gEDA installation. Symbol resolution
follows an 11-step search chain matching native gEDA/Lepton
conventions across environment variables, system paths, XDG
directories, RC files, config files, and project directories.
Last-found-wins priority matches native gEDA behavior.

RC file parsing handles gafrc and gschemrc component-library
directives. Lepton-EDA INI configs (lepton.conf, geda.conf)
are also parsed.

Project import reads gEDA .prj files and discovers schematics
and PCBs automatically.

File format knowledge and embedded symbol definitions derived
from gEDA/gaf (C) 1998-2010 Ales Hvezda, 1998-2016 gEDA
Contributors, and Lepton EDA (C) 2017-2024 Lepton EDA
Contributors. Both licensed under GNU GPL v2 or later.
2026-02-11 11:20:41 -08:00
Seth Hillbrand 0e7a052af0 PADS: add ASCII format importer for PCB and schematic files
Add complete import support for PADS ASCII (.asc) files, covering both
PCB layouts and schematics. The importer handles board outlines, copper
pours, routing with via inference, footprint decals, net assignment,
design rules, and component placement for PCB files. For schematics, it
supports symbol building from CAEDECAL definitions, multi-gate and
multi-variant parts, power symbols, wire routing, net labeling, arc
graphics, title blocks, and hierarchical sheet connectivity.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19944
2026-02-10 21:21:22 -08:00
Seth Hillbrand 7db7083cd0 Use project-relative paths in sym-lib-table for imported libraries
When importing Altium projects, the MAIL_ADD_LOCAL_LIB handler stored
absolute paths in the sym-lib-table for native Altium library files
(.SchLib). This caused broken library references when the project was
moved to a different location.

Now library files outside the project directory are copied into it
during import, and the sym-lib-table URI uses ${KIPRJMOD}/ prefix
for project-relative paths. This matches the behavior of the Eagle,
CADSTAR, and EasyEDA Pro importers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/22941
2026-02-10 11:40:49 -08:00
Jon Evans baa29c1a58 Port footprint library table to new system 2025-11-04 06:54:53 -05:00
Jon Evans 84d8b7889d Remove legacy symbol lib table code 2025-10-15 22:18:55 -04:00
Seth Hillbrand 2e2849a5c9 One follow-on to fix additional windows paths
We need to set the format earlier and handle internal filenames

Fixes https://gitlab.com/kicad/code/kicad/issues/20161

(cherry picked from commit 89b92fe3f5)
2025-10-05 13:54:14 -07:00
Seth Hillbrand 4ae76d56c6 Update Altium subfolder import
Altium projects save relative sub folder paths in the windows path
format.  To import these correctly, we need to turn off the escape
character handling in wx's config file processing otherwise
SUBFOLDER\PROJECT.SchDoc ends up looking like SUBFOLDERROJECT.SchDoc

Fixes https://gitlab.com/kicad/code/kicad/issues/20161
2025-10-05 13:28:55 -07:00
Jeff Young cf5c00bcf2 Make more use of shared dialogs. 2025-08-10 21:32:10 +01:00
Jeff Young 3ec557cf4a Nullptr safety (KICAD-S1B). 2025-07-11 21:26:19 +01:00
Seth Hillbrand e81956f292 Import Altium Projects
Handle Altium project file format

Parse individual schematic files and layout files
Create top-level schematic file
Link imported UUIDs between schematic symbol and footprints based on
refdes
Create KiCad project
Map Altium layout layers between KiCad

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2117
2025-02-27 14:36:24 -08:00
Seth Hillbrand 0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Jeff Young 14a55facf2 Clearer naming and commenting.
Also some const& hygiene and some formatting.
2024-06-25 11:07:14 +01:00
Mark Roszko 8e31759191 Fix hopefully the last build breakage 2024-03-21 03:28:44 +00:00
Jon Evans f00f47df13 wxWidgets 3.3 compatibility: explicit wxString conversion 2024-03-20 22:02:41 -04:00
Alex Shvartzkop 5bbe01b570 EasyEDA Pro: support .elibz format (device libraries) 2023-12-25 07:00:24 +03:00
Ian McInerney d8b47d18d3 Initial rename of file plugin infrastructure components to IO 2023-12-24 01:22:21 +00:00
Alex Shvartzkop 847ab093c8 ADDED: Project chooser dialog for EasyEDA Pro import. 2023-10-30 09:35:27 +03:00
Jeff Young d5d07e64c9 Use IsShownOnScreen(), not IsShown(), if you really want to know if its visible. 2023-10-14 23:51:37 +01:00
Marek Roszko 11de95778b Unwrap the FROM_UTF8 macro in favor of direct function
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Alex Shvartzkop 76e0d5981d Import system refactor for PCB plugins. 2023-08-15 05:26:12 +03:00
lulu731 0180bcf90a ADDED: Implement Drag and Drop
dropping files to Kicad manager :
  *.kicad_pro, *.pro -> open project;
  gerber and job files -> open in Gerbview editor;
  Eagle and Cadstar files -> open project.
dropping file to schematic editor -> append schematic;
dropping library file to Symbol editor -> add library;
dropping board file to PCB editor -> append board;
dropping library or footprint file to Footprint editor -> add library or import footprint;
dropping ZIP file or gerber files to Gerbview editor -> open files;
dropping sheet file to Drawing Sheet editor -> open sheet.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11638
2022-09-14 22:28:09 +00:00