122 Commits

Author SHA1 Message Date
Jon Evans
19cfc18cf8 Quote base64 data in PCB 2023-11-29 16:17:41 +00:00
Marek Roszko
d1ecf3790c Add generator version 2023-11-29 16:17:41 +00:00
Jon Evans
f1f8981395 Automatic whitespace and indentation prettification for sexpr formats 2023-11-29 16:17:41 +00:00
Jon Evans
55ba667bcb Retire tstamp keyword in favor of uuid 2023-11-29 16:17:41 +00:00
Jon Evans
55bca5e7ac Normalize formatting of booleans in the PCB file format 2023-11-29 16:17:41 +00:00
Seth Hillbrand
75c6b0ab28 Added IPC2581 support
IPC2581 is a modern production file exchange system.  It provides
single-file data output for an entire board including BOM and netlist
information.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1954
2023-11-26 15:30:58 -08:00
Jeff Young
791aa64950 Functionally it's a "reference image".
The implementation happens to be a "bitmap".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15932
2023-10-24 15:44:21 +01:00
Alex Shvartzkop
6cfb05b4a3 Save/load generative objects in PCB file. 2023-10-08 02:41:17 +00:00
Jeff Young
fa11e9138d ADDED support for pin and fp filtering in FOOTPRINT_CHOOSER.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7176
2023-09-29 17:03:50 +01:00
Jeff Young
e492efe3c5 Finish up custom-shaped pad spoke templates.
Also fixes a bug in number box for rotated pads.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13962
2023-09-13 23:34:25 +01:00
Jeff Young
d6b75c64e1 ADDED: custom-shaped pad spoke templates. 2023-09-13 23:34:25 +01:00
Alex Shvartzkop
7eb4b0710d Fix reading/writing thermal spoke angles for custom pads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15518

7.0 commit: 86ec36d183e1e5dc56750b2accede1f7643c7805
2023-09-10 19:02:16 +03:00
Seth Hillbrand
f9b745f3d2 Allow multiple format image saving
- Keep original image data.  When loading JPEG, this avoid recompression
  that changes file data and decreases image quality
- Allow schematic and page layout editors to store non-PNG data as well
- Move page layout editor to store base64 instead of hex-coded data
2023-09-06 12:12:32 -07:00
Seth Hillbrand
0e382669d0 ADDED: Support for saving JPEG files in kicad_pcb
When users add an image to the board, this change keeps the original
file format when saving instead of converting the files into PNG-format,
which had the effect of making some board files much larger and slower

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14892
2023-09-06 12:12:32 -07:00
Jeff Young
2d762acc7d Remove accidentally-checked-in debugging code. 2023-09-02 10:11:38 +01:00
Marek Roszko
ffbe0f36da Tweak the textbox file indentation
(layer was previously misaligned as it wasn't intended to be used on a new line
2023-08-30 22:47:10 -04:00
Marek Roszko
2dcb7caacf Add an explicit border property to textboxes
This means it can remember the last border stroke between enabling/disabling the border
2023-08-30 22:33:55 -04:00
Alex Shvartzkop
af62e4276b Wrap FILE_LINE_READER in try-catch blocks in PCB plugins for CanRead*. 2023-08-29 19:13:55 +03:00
jean-pierre charras
70c05109a0 PCB_PARSER::parsePCB_TEXTBOX(): fix bug when a TCB_TEXTBOX was rotated:
the textbox was rotated, but thai is incorrect: the polygon coordinates
are good, and must be not rotated: only the text angle must be set.
2023-08-20 18:34:57 +02:00
Alex Shvartzkop
76e0d5981d Import system refactor for PCB plugins. 2023-08-15 05:26:12 +03:00
Alex Shvartzkop
a0d96cea9f Rename Save -> SaveBoard, Load -> LoadBoard in PLUGIN. 2023-08-15 05:26:12 +03:00
Jon Evans
a77e630901 ADDED: Connectivity for graphic shapes on copper layers
Graphic shapes (excluding text) can now have nets when on
copper layers. Shapes behave like tracks in that they will
pick up nets from connected pads, and follow track opacity
settings.
2023-08-10 21:47:43 -04:00
jean-pierre charras
a16ab0aae1 Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name
issue with a Windows header on msys2.
Change very similar to the commit 9a47b344 about class PAD_SHAPE.
No actual code change
2023-07-25 09:11:55 +02:00
Ian McInerney
d923b871d7 Remove group reference when exporting individual footprints 2023-06-29 00:17:12 +01:00
jean-pierre charras
af71308184 pcb_parser and pcb_plugin: fix incorrect handling of rotation of PCB_TEXTs
in footprints when the text angle is 0 but the fp orientation is not 0.
It was due to the fact angle 0 is not written in file and use the default
value of the created PCB_TEXT in footprint, that is not always 0
Now the angle is always written in file.
Fixes #15054
https://gitlab.com/kicad/code/kicad/-/issues/15054
2023-06-27 08:53:04 +02:00
jean-pierre charras
d8034b9c15 Revert "PCB Fields: save untranslated names"
This reverts commit b47fcac6669155aca655e4b64c5c12521e1167fe.
The root issue was a bug in SCH_FIELD::GetCanonicalName(), now fixed.
2023-06-23 17:48:19 +02:00
Mike Williams
b47fcac666 PCB Fields: save untranslated names 2023-06-23 09:18:55 -04:00
Wayne Stambaugh
a5411218a2 Fix minor board file white space formatting issue. 2023-06-21 13:42:24 -04:00
Mike Williams
85f889bc19 Fields: Description now mandatory
Propagate from symbols to footprints, footprints keep a library
description, too. (GetLibDescription())
2023-06-20 18:34:52 +00:00
Mike Williams
636db607c1 Footprints: upgrade Sheetpath and Sheetfile to tagged items in file
Rather than loose kv properties.
2023-06-20 18:34:52 +00:00
Mike Williams
00f6f5011c PCB Fields: add saving / reading support to PCB files
Use common text effects parsing with PCB_TEXT
2023-06-20 18:34:52 +00:00
Mike Williams
6d93950dcc PCB: abolish TEXT_TYPE::TEXT_is_*
PCB_TEXT is now always what was formerly TEXT_is_DIVERS and PCB_FIELDs
now what mandatory field type they are already.
2023-06-20 18:34:52 +00:00
Mike Williams
37837dc392 PCB: introduce PCB_FIELD_T 2023-06-20 18:34:52 +00:00
Mike Williams
a859b25d2c PCB: convert footprints to use PCB_FIELDs for fields from schematics 2023-06-20 18:34:52 +00:00
Mike Williams
028f500cd9 Footprints: rename properties to fields for consistency with symbols 2023-06-20 18:34:52 +00:00
jean-pierre charras
9a47b34499 Replace PAD_SHAPE::RECT by PAD_SHAPE::RECTANGLE to avoid a collision NAME with a windows header on MSYS2, creating many compil warnings. No actual code change. 2023-06-02 12:18:24 +02:00
Jeff Young
768fbf5af2 Give up on trying to calculate text bounding boxes.
It results in too many hacks strewn through the code.  Just draw the
text and measure it.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14803
2023-05-26 18:44:33 +01:00
Jeff Young
05fef51d81 Push rendering portion of text cache generation down into CALLBACK_GAL. 2023-05-25 11:25:32 +01:00
Seth Hillbrand
48ecd742eb Maintain file permissions when renaming
Temporary and autosave files do not neccessarily have the correct
permissions set to replace existing project files.  This updates the
permissions to match the existing values where possible

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13574
2023-05-24 17:09:38 -07:00
jean-pierre charras
76d66571e4 Pcbnew: fix crash when trying to save a board with a text with overbar and
using a non Kicad font
PCB_PLUGIN::formatRenderCache() was considering all shapes in cache are polygons,
but this is not true: some items can be stroke shapes.
Fixes #14804
https://gitlab.com/kicad/code/kicad/-/issues/14804
2023-05-24 18:21:50 +02:00
Alex
9d452a6097 Fix opening boards with deprecated features. 2023-05-20 07:39:01 +03:00
Jeff Young
8b1fd62d35 Make pad & via teardrops 1st-class citizens (props of the pad/via)
Change teardrop generation to rely more heavily on BOARD_CONNECTIVITY
for improved performance.

Add updating of teardrops on BOARD_COMMIT::Push().

Also converts m_CopperItemRTreeCache to std::shared_ptr.
We don't copy it around anyway, and having to create a new set
of std::unique_ptr's for each operation is likely to be more
expensive than std::shared_ptr's overhead.
2023-05-19 18:02:03 +01:00
Jeff Young
b41d446f58 Fix a bunch more issues with sheetpaths and allowExtraText.
A sheetpath is required to correctly resolve text variables.
Depending on currentSheet is rife with bugs.

There are many places where we do *not* want to be prepending
field names to the field values, such as netlisting,
building PDF hypertext menus, etc.

Also, Find/Replace needs to work on unresolved text, as
that's what we're going to display (and if replace nuked
your variable references you wouldn't be happy).
2023-05-05 17:23:52 +01:00
Jeff Young
c31fb435e6 Add missing setting to Dimension Properties dialog.
Also fixes a bug where during file save we were calling
GetPosition() on the PCB_TEXT but getting the DIMENSION's
version.

Fixes https://gitlab.com/kicad/code/kicad/issues/8447
2023-04-30 22:45:19 +01:00
Mike Williams
32eb1ef77e Sch->PCB: propagate DNP from symbols to footprints attributes
Also add a 3D viewer toggle.
2023-04-10 13:11:21 -04:00
Jeff Young
28028c941e Retire Local/Draw coords distinction from PAD (the last object to have it). 2023-04-02 18:02:41 +01:00
Jeff Young
bbd6c80507 Collapse FP_* down into their PCB_* equivalents. 2023-03-31 22:57:46 +01:00
Marek Roszko
8a8589b9db Fix cli crash due to dialogs buried in the pcb parser...
Fixes sentry KICAD-Q2
2023-03-24 19:52:48 -04:00
Jon Evans
10d1ba59d8 Fix compile warning 2023-03-05 18:11:41 -05:00
Jeff Young
23accffc6d Add Property Inspector support for dimension objects.
Includes changing the class hierarchy so that dimension objects inherit
from PCB_TEXT rather than containing a PCB_TEXT member variable.
2023-03-04 23:16:46 +00:00