Support layer mapping dialog for Altium PCB importer

Description

Currently all Altium Layers for which not a Kicad Layer is defined are all put on layer Eco_1 User. This creates problems as this combines information's from multiple layers to one single layer.

For example in this PCB Project which I can not share we put component designators on one of the last mechanical layers available in Altium for Top assembly and to the second last mechanical layer for Bottom assembly.

We put the component designators to a dedicated layer, as we do not want them to be printed on the silkscreen, we only print specific chosen text on the silkscreen.

Once imported in Kicad they are on the same layer and also mixed with many other layers where we put mechanical things:

image

It would be nice if the user could decide where not supported layers are mapped.

In the example below there would be more then enough mechanical layers to assign to each not mapped altium layer a mechanical layer.

Steps to reproduce

  1. Import for example this altium PCB https://github.com/ska-sa/roach2_hardware/blob/master/design_files/roach2.PcbDoc
  2. you see a lot of merged mechanical drawing from top and bottom layer combined on Eco1 layer:

image

on the bottom side of the bga chip there are capacitors, they are now on the same layer as the chip itself.

On the other hand all Mechanical layers are empty and not used!

This might also reduce the amount of duplicated error messages => #15580 (closed)

KiCad Version

Application: KiCad PCB Editor x64 on x64

Version: 8.0.2-62-gca16ff05df, release build

Libraries:
	wxWidgets 3.2.4
	FreeType 2.12.1
	HarfBuzz 8.3.0
	FontConfig 2.14.2
	libcurl/8.5.0-DEV Schannel zlib/1.3

Platform: Windows 10 (build 19045), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
	Date: May  5 2024 05:22:16
	wxWidgets: 3.2.4 (wchar_t,wx containers)
	Boost: 1.83.0
	OCC: 7.8.1
	Curl: 8.5.0-DEV
	ngspice: 42
	Compiler: Visual C++ 1939 without C++ ABI

Build settings:
Edited by Stefan