Commit Graph

423 Commits

Author SHA1 Message Date
Roberto Fernandez Bautista 8268c4ad17 CADSTAR Schematic: Ensure library ID is valid
Previously the library created was invalid - opening it resulted
in a parsing error due to invalid characters in the name.
2021-09-01 20:25:39 +01:00
Roberto Fernandez Bautista be9ff7a7d5 CADSTAR Schematic: Load text sizes for pin names/numbers and net labels 2021-09-01 20:25:39 +01:00
Roberto Fernandez Bautista 0aa37d1173 Fix issues with new overbar syntax
- Update sch text help (~~ no longer gets converted to single ~)
- Update Eagle importer to correctly handle new overbar syntax
- Update CADSTAR importer to correctly handle new overbar syntax
2021-09-01 20:25:39 +01:00
Roberto Fernandez Bautista 0cd8a4d846 CADSTAR Schematic: Load line thickness in symbols 2021-08-29 19:55:47 +01:00
Jeff Young 69fac89e86 Fix some issues with incorrectly scaled defaults given in mils. 2021-08-25 20:04:06 +01:00
jean-pierre charras 4ac2aa675a lib symbols: make fp filter tolerant to spaces in names.
For historical reasons they are stored in a string using spaces as separators.
So each fp filter is now escaped to remove spaces (replaced by {space})
Fixes #9009
https://gitlab.com/kicad/code/kicad/issues/9009
2021-08-23 18:01:31 +02:00
Jeff Young 8879b887df Fix missing overbar notation conversions in legacy library parsing.
Fixes https://gitlab.com/kicad/code/kicad/issues/8981
2021-08-18 22:48:29 +01:00
Wayne Stambaugh 46b959c3e3 Move plotter headers into include folder. 2021-08-18 16:38:31 -04:00
Jeff Young 41619ebbe2 Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
Jeff Young 1818846cff Minor improvements to some error messages. 2021-08-14 12:11:47 +01:00
Stefan bed51a5fc1 altium schematic importer, replace record 211 with compile masks 2021-08-14 11:05:56 +00:00
Jeff Young 6ab45d0a6d Fix double-escaping in Eagle importer.
This has actually been there since dot, but the old escaping method
just deleted chars it didn't like so you could run it as many times
as you wanted.

Fixes https://gitlab.com/kicad/code/kicad/issues/8694
2021-07-31 20:07:25 +01:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young f221220fe2 Rename layer ids file.
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
jean-pierre charras 8ff76de18e DIALOG_EDIT_ONE_FIELD: fix a non resizable widgets and fix a compil warning.
Fixes #8877
https://gitlab.com/kicad/code/kicad/issues/8877
2021-07-27 14:12:46 +02:00
david-beinder 8467fe5405 Altium schematic import: text positioning and arc fixes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8844 (power port text positioning, only use 0, 90deg for text)
Adjust text justification due to rotation on import
Set field position through SCH_FIELD::SetPosition
Honor hidden net names at power ports
Calculate start/end points for imported arcs in symbols
2021-07-26 19:49:56 +00:00
Wayne Stambaugh 8fd83cbb95 Pass wxPoint objects by reference instead of on the stack. 2021-07-26 15:35:33 -04:00
Jeff Young 010247bb7f Add overbar conversion to the legacy SCH reader.
Fixes https://gitlab.com/kicad/code/kicad/issues/8855
2021-07-25 13:11:30 +01:00
Jeff Young 531f5480a7 Reduce line-breaks and increase SNR. 2021-07-24 14:25:59 +01:00
Wayne Stambaugh cb72da294a More NULL expunging. 2021-07-16 16:13:41 -04:00
luz paz 0446d35f0d Fix source comment/doc typos (follow-up)
Found via `codespell -q 3 -S *.po,./thirdparty -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,dout,einstance,modul,ot,overide,serie,te,,tesselate,tesselator,tht`
2021-07-13 10:48:17 +00:00
jean-pierre charras ad7e563e24 Do not translate something similar to a proper noun 2021-07-12 09:02:04 +02:00
Jeff Young a4263ebce5 Clean up Altium special string handling
1) Fix a couple of bugs in case processing
2) Make case processing more explicit to prevent more (1)
3) Move label processing to AltiumSpecialStringsToKiCadVariables
4) Strip double-quotes from special strings (and add test cases)
5) Change PROJECTNAME to just filename, not full path
6) PROJECTREV and REVISION are two different things
7) Add support for Altium's Application_BuildNumber
8) Fix some issues in trimming spaces around special strings
2021-07-08 15:34:38 +01:00
Jeff Young 3f165c70e1 Import more Alitum parameters.
ADDED CURRENT_DATE titleblock token (to go with existing ISSUE_DATE)
ADDED PROJECTNAME schematic token (to go with FILENAME and SHEETNAME)

Converts other parameters to project text variables.
2021-07-08 00:19:31 +01:00
Jeff Young c1db5dc0b1 Make the variable replacement table a little easier to read.
Yes, this probably violates all our formatting conventions EXCEPT
the one that says code should be easy to read/visually parse.
2021-07-07 22:06:35 +01:00
Jeff Young 9351a88091 Variable references are case insensitive in Altium. 2021-07-07 22:04:00 +01:00
Jeff Young 5a57f6ba98 Clear NEW flags after import.
Fixes https://gitlab.com/kicad/code/kicad/issues/8750
2021-07-07 20:05:50 +01:00
Jeff Young db91908c18 Add sheetpath instances when importing sheets from Altium. 2021-07-07 20:05:50 +01:00
Jeff Young a81c6b21b6 Formatting. 2021-07-07 20:05:50 +01:00
Thomas Pointhuber 5e9a8e3488 altium: Improve handling of footprint references
Don't assume the implementation list index is always correct by order.
2021-07-07 21:03:21 +02:00
Jeff Young a17862d646 Import Altium harness labels as text.
One day we'll do better, but at least this way the user knows there's
something they need to migrate manually.

Fixes https://gitlab.com/kicad/code/kicad/issues/8748
2021-07-07 17:54:22 +01:00
Jeff Young 5ab56e5320 More Altium importer error reporting cleanup.
1) Use REPORTER instead of wxLog
2) Use consistent, non-techy strings
3) Use consistent severity levels

Fixes https://gitlab.com/kicad/code/kicad/issues/8747
2021-07-07 12:43:33 +01:00
Jeff Young 3b288b1b1b Pull textframe processing out from under note and allow both.
Note that there's still a bunch of stuff we don't support regarding
textframes such as wordwrap and background colours, but this at least
keeps the text from getting lost.

Fixes https://gitlab.com/kicad/code/kicad/issues/8741
2021-07-06 20:27:28 +01:00
Jeff Young 190b0ecdeb Formatting. 2021-07-06 20:27:28 +01:00
Jeff Young 0be91c5b7d Import Altium footprint references into symbols.
Fixes https://gitlab.com/kicad/code/kicad/issues/7751
2021-07-06 14:40:29 +01:00
Jeff Young 3288971a7c Allow titleblock vars to be resolved outside the titleblock.
Also implements some variable resolving for Altium imports.
2021-07-06 13:30:17 +01:00
Jeff Young b0c07a28b3 Add importing of Altium notes.
Import is incomplete because KiCad doesn't support text boxes yet
(so we can't do borders, word-wrap, background fills, etc.).

Fixes https://gitlab.com/kicad/code/kicad/issues/8734
2021-07-05 23:59:43 +01:00
Jeff Young 26df39e71a Naming conventions. 2021-07-05 11:05:46 +01:00
Jeff Young aa5902bd99 Process Altium pin name and number hidden flags.
Fixes https://gitlab.com/kicad/code/kicad/issues/7853
2021-07-04 00:18:42 +01:00
Marek Roszko eff75b630f Get rid of anonymous struct typedefs
We are using C++14 where there is no reason for this and is banned in C++20 under P1766R1. MSVC generates a warning under C++14 as a reminder.
2021-07-01 18:28:41 -04:00
Jeff Young f8a34d98b3 Support for overbar syntax in Altium importer.
Fixes https://gitlab.com/kicad/code/kicad/issues/7979
2021-07-01 21:03:53 +01:00
Jeff Young 6810912f09 Refuse to load schematics from the future.
Also fixes a bug where an empty window would get left when loading
a file from the KiCad manager window errored out.

Also fixes a bug where we were getting the wrong exception because
we were rethrowing the type-casted one (rather than just calling
throw).

Fixes https://gitlab.com/kicad/code/kicad/issues/8604
2021-06-30 18:32:07 +01:00
Jeff Young 5cac8afe1d Remove long-dead revision support for LIB_IDs. 2021-06-30 13:12:57 +01:00
Jeff Young b1b4caee6a Escape "naughty" characters in symbol names.
It's tempting to say that we don't need to exclude filename chars
from symbols, but we might regret that decision down the road.  Better
to just escape them.

Fixes https://gitlab.com/kicad/code/kicad/issues/8694
2021-06-30 13:12:57 +01:00
Jeff Young a1dfc36233 More error message regularization. 2021-06-29 01:08:26 +01:00
Jeff Young 062c4fda62 More error message regularization (and translatability improvements). 2021-06-28 00:45:24 +01:00
Jeff Young 4aa8318dc2 More error message regularization. 2021-06-27 14:24:02 +01:00
Jeff Young 0dfb5fcaf9 Error message cleanup.
wxString::Format is redundant in a wxLogXXX call.
Error messages should generally be translatable.
Error messages should use generally consistent sentence forms.
2021-06-26 22:53:24 +01:00
Jeff Young 5c21f93803 Consistency in progress and error messages. 2021-06-26 13:23:43 +01:00
Jeff Young 8502fd6877 Divide-by-zero safety. 2021-06-24 12:18:22 +01:00
Jeff Young 5fa5a73c6d File open/import progress dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/6864

Fixes https://gitlab.com/kicad/code/kicad/issues/2166
2021-06-23 23:55:54 +01:00
Jeff Young 6d223931fb Convert overbar syntax in bus aliases.
Fixes https://gitlab.com/kicad/code/kicad/issues/8647
2021-06-21 20:13:21 +01:00
Mikolaj Wielgus 19f76ae77c Convert pin names to new overbar format
Fixes bug 6 of https://gitlab.com/kicad/code/kicad/issues/8591, thereby
closing the issue:

Fixes https://gitlab.com/kicad/code/kicad/issues/8591
2021-06-20 09:00:16 +00:00
Jeff Young d811ae0aa3 Improved ASCII art. 2021-06-18 12:01:16 +01:00
jean-pierre charras c35cceca62 fix compil warnings ( "multi-line comment" ) and missing override 2021-06-18 09:38:19 +02:00
Jeff Young bdeeace2ab More Eagle importer fixes.
1) Don't process wires more than once when looking for bus entries.
2) Don't allow processing a wire to mess up iteration over the RTree.
2021-06-17 18:16:38 +01:00
Jeff Young b10f156dd0 Don't convert overbar syntax in most fields.
You probably do want it in VALUE, but not REFERENCE, and certainly
not FOOTPRINT or DATASHEET.  User fields are more likely to be
part numbers, etc. (and don't want conversion).

Fixes https://gitlab.com/kicad/code/kicad/issues/8617
2021-06-17 00:05:17 +01:00
Jeff Young c23c5b7f18 Allow import of Eagle schematics without libraries. 2021-06-16 22:02:50 +01:00
Jeff Young 4b28bac89a Fixes for Eagle importer.
1) Make sure we set an absolute path on the sheet.
2) Don't mix RTree iterators; wires get skipped between buses.
3) Implement a real ERC error so we don't assert.

Fixes https://gitlab.com/kicad/code/kicad/issues/7042
2021-06-16 21:44:18 +01:00
Jeff Young 21b869bd1f Fix a few cases missed in the last merge.
Fixes https://gitlab.com/kicad/code/kicad/issues/7042
2021-06-16 00:01:28 +01:00
Jeff Young 3a84ee27fd First take at repairing Eagle import of bus entries.
Simplify logic by adding quadrant-based BUS_ENTRY ctor.
Fix issue with bus entry size having been in mils rather than IU.
Fix issues with logic.

Fixes https://gitlab.com/kicad/code/kicad/issues/7042
2021-06-15 23:23:47 +01:00
Wayne Stambaugh ff099453c8 Rename class_library.[h|cpp] to symbol_library.[h|cpp]. 2021-06-15 09:24:55 -04:00
Wayne Stambaugh ee3eac325d Expunge the use of the word part from Eeschema code. 2021-06-15 08:32:11 -04:00
Wayne Stambaugh fb46cd8bc5 Expunge the use of the word component from Eeschema code.
The only exception to this is the SPICE simulator's use of component
when referring to physical component (R, L, C, etc.) values.
2021-06-14 14:00:21 -04:00
Wayne Stambaugh 71c183d7bb Rename LIB_PART to LIB_SYMBOL. 2021-06-14 07:11:17 -04:00
Mikolaj Wielgus ade38f48bc Add conversion from old `~...~` to new `~{...}` notation 2021-06-11 18:40:57 +00:00
Wayne Stambaugh fbc135e69f Rename SCH_COMPONENT to SCH_SYMBOL. 2021-06-10 10:34:49 -04:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Marek Roszko d946d6e68f Cleanup some pgm_base.h includes 2021-06-08 21:56:00 -04:00
Wayne Stambaugh 9ebabb222c Pass objects by reference instead of on the stack. 2021-06-08 10:09:38 -04:00
Johannes Maibaum 022dd6072c Add utility method to resolve symlinks
The same logic block to resolve possible symlinks exists in 5 different
places now. This change moves this duplicated code to a static member
function of WX_FILENAME instead.
2021-06-07 20:59:59 +00:00
Marek Roszko fc3cea2cca Remove wx/xml/xml.h from sch_eagle_plugin.h 2021-06-06 09:34:57 -04:00
Johannes Maibaum 06e967354f Fix symlink read-/write-through code
Use `realpath(3)` instead of `readlink(3)`, which offers support for
relative and absolute symlinks alike, since all symbolic links will be
resolved to the absolute path of the linked-to file.

Fixes #8082
2021-06-05 14:22:50 +00:00
Marek Roszko 4df3cb912d Remove another leaky wx/log.h header 2021-06-03 08:11:15 -04:00
Marek Roszko af2707929d Don't leak a wx header via eda_item.h
Turns out this provided the translation header globally :D
2021-06-02 19:18:48 -04:00
Marek Roszko eeb405c196 Cleanup some more excess math/util includes 2021-06-02 00:50:46 -04:00
Marek Roszko cf2bb5692a Remove the wxLog calls from math/util.h for now
This was leaking windows headers and partial wx headers to 1084 compilation units......
This also means math/util.h is leaking to 1084 compilation units which seems a bit high too.
2021-06-01 18:44:22 -04:00
Marek Roszko 3ac5aa5369 enum class SHEET_SIDE 2021-05-30 21:23:46 -04:00
Marek Roszko 382dca4e6f Fix uninitialized member warnings
Based on PVS Studio report
2021-05-30 20:01:01 -04:00
Seth Hillbrand be5b281501 Cleanup RAD2DEG and unused vars 2021-05-28 12:37:57 -07:00
Roberto Fernandez Bautista 9a9c9d38e8 CADSTAR Schematic: Cleanup pins in symbols
In CADSTAR pins are single points. We can replicate the original look
of the schematic in most cases by searching the symbol for straight
segments that are coincident with the pin and use those to calculate
a suitable pin length and angle.
2021-05-28 20:13:11 +01:00
Roberto Fernandez Bautista 29d1b84939 CADSTAR Schematic: Fix positioning of symbol attributes
Symbol attributes were being placed at the wrong location
due to incorrect relative angle calculation
2021-05-28 20:13:10 +01:00
Roberto Fernandez Bautista 8d788b7a09 CADSTAR Schematic: Fix assert regarding sheet absolute path 2021-05-28 20:13:10 +01:00
Roberto Fernandez Bautista b985c4d2e9 CADSTAR Schematic: Handle scaled symbols
Create a new LIB_PART for scaled symbols. These will be then embedded
into the schematic file. However when "update from library" is done,
it will revert to the unscaled symbol.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8494
2021-05-28 20:13:10 +01:00
Seth Hillbrand 752ae4d519 Rename modification flag routines
Differentiates better between the EDA_ITEM IsModified(), referring to
items themselves changing and the EDA_SCREEN IsContentModified(),
referring to whether we have made any unsaved changes.
2021-05-28 12:07:04 -07:00
Roberto Fernandez Bautista be436ec977 Remove whitespace from page numbers on load and use # if page is empty
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8350
2021-05-21 22:52:47 +01:00
Wayne Stambaugh ebd53cd45c Eeschema: fix text justification terminology.
Use justification instead of orientation relative to the anchor point when
describing text direction and alignment.  This seems to be the preferred
method by most users so hopefully this will eliminate some confusion.

Fix a bug in the s-expression schematic parser that failed to take into
account how graphical text alignment is defined for graphic text objects
compared to label text objects.

Fixes https://gitlab.com/kicad/code/kicad/issues/6489
2021-05-14 13:44:17 -04:00
Jeff Young 2e3860de6f Naming conventions. 2021-05-05 22:58:40 +01:00
Marek Roszko c7345096f8 Use wxFFileInputStream explicitly when loading xml documents
wxFFile (FILE, buffered) is better than wxFile (syscalls)
2021-05-03 19:39:56 -04:00
Roberto Fernandez Bautista cf2dc06add Fix latent bugs in SCHEMATIC and SCH_SEXPR_PLUGIN
Noticed after writing the qa test: when loading a file immediately
after having loaded a previous one, it was resulting in a nullptr
exception.
2021-05-03 19:38:31 +01:00
Roberto Fernandez Bautista 5822cd85c4 Fix eeschema copy/paste: save and load sheet and symbol instances
Save sheet and symbol instance information to the clipboard on copy

Load sheet and symbol instance information from the clipboard on paste
and renumber page numbers after loading.

Correctly handle pasting in a multiple hierarchy by ensuring symbol and
sheet instances are updated for all instances of the destination sheet.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8207
2021-05-03 19:38:31 +01:00
Roberto Fernandez Bautista 91fd28c4be Refactor saving sheet and symbol instances in SCH_SEXPR_PLUGIN::Format
Avoid code duplication by moving all common code to a new function
SCH_SEXPR_PLUGIN::saveInstances

Also fixes a bug that was resulting in footprint and value information
not being saved for subsheets that were root sheets in a different
project.
2021-05-03 16:54:42 +01:00
Ian McInerney ecd9bf696e Be consistent about using nullptr instead of 0
0 can be too easily overloaded into an int, so ensure we use nullptr
when we mean pointers.
2021-04-22 22:20:34 +01:00
Ian McInerney ae91042544 Implement thread safety for symbol loading routines
These functions can be called from any thread of the library
loader, so we need to ensure we have some thread safety with them.
2021-04-18 18:39:46 +01:00
jean-pierre charras 31e9895a1a Fix a minor compil warning 2021-04-15 19:49:41 +02:00
Roberto Fernandez Bautista 45409ec314 CADSTAR Schematic: Fix orientation of symbol fields 2021-04-12 20:25:04 +01:00
Roberto Fernandez Bautista 9148542219 CADSTAR Schematic: Fix Text Positioning within Symbols 2021-04-12 20:25:03 +01:00
Thomas Pointhuber f13eb13b9a altium: import images from SchDoc 2021-04-10 21:52:37 +02:00
Wayne Stambaugh 2b86b34124 Eeschema: split out SCH_SHEET_PIN declarations into separate header. 2021-04-06 17:15:49 -04:00
Wayne Stambaugh df186a2049 Eeschema: fix root sheet UUID changing in project file.
This change is a bit more invasive than the description above would
suggest. UUIDs have been added to all schematics.  For now, it's only
useful to the root schematic so that the UUID in the project file does
not change every time the project file is save.  In the future, it may
be useful to store and check the schematic UUIDs against the one's saved
in the project file.

Fixes https://gitlab.com/kicad/code/kicad/issues/7763
2021-04-06 14:28:01 -04:00
Roberto Fernandez Bautista d041578150 CADSTAR Schematic: Fix import of text alignment
Ensure that the text alignment applied to text objects corresponds to
valid text alignments that can be set within eeschema

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8090
2021-04-05 20:15:08 +01:00
Carsten Schoenert cb17c9f3dd Typo fix: Correct various misspelled words
agressive -> aggressive
decription -> description
miscellanous-> miscellaneous
rectange -> rectangle
Unkown -> Unknown
2021-04-03 13:39:50 +00:00
Jeff Young ebfbe14185 Persist fields_autoplaced information.
Fixes https://gitlab.com/kicad/code/kicad/issues/8086
2021-04-02 17:08:58 +01:00
jean-pierre charras 655a696589 fix compil issue 2021-04-01 11:36:30 +02:00
jean-pierre charras 6499b5f296 Eeschema: protect lib symbols against duplicate field names.
If a field name is already in use, try to rename the new field name
(adding the suffix "_1" or "_2" or ... )
This is especially critical when a non mandatory field has the same name as
a mandatory field (was crashing before)
Fixes #8081
https://gitlab.com/kicad/code/kicad/issues/8081
2021-04-01 11:27:14 +02:00
Jeff Young 2ad69fc56b Move importers from wxLog to REPORTER.
Fixes https://gitlab.com/kicad/code/kicad/issues/6389
2021-03-31 22:54:30 +01:00
Roberto Fernandez Bautista c5e4220b5b CADSTAR Schematic: Fix duplicate pins
Fixes a bug that was causing duplicate pins to be loaded
(one on top of the other) for all symbols.
2021-03-30 13:03:56 +00:00
Roberto Fernandez Bautista 1629b038e1 CADSTAR Schematic: Fix loading of symbol instances differing from part
The previous assumption was that a part definition would always hold
the information about the symbol. However some designs have symbol
instances that refer to a different symbol definition than that
specified in the part.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7808
2021-03-30 13:03:56 +00:00
Roberto Fernandez Bautista e6c7ddc271 CADSTAR Schematic: Fix loading of symbol attributes
Fixes an issue that resulted in incorrect field values being loaded
2021-03-30 13:03:56 +00:00
Roberto Fernandez Bautista 51db9cfcef CADSTAR Schematic: Text Loading improvements 2021-03-30 13:03:56 +00:00
Jeff Young a0a5e93782 Remove m_props from symbol library plugins. It's not thread-safe.
Fixes https://gitlab.com/kicad/code/kicad/issues/8035
2021-03-26 21:57:32 +00:00
Jeff Young 3d6c05b210 Apply symbol field id fixup logic to lib parts.
Fixes https://gitlab.com/kicad/code/kicad/issues/7903
2021-03-26 21:57:32 +00:00
Roberto Fernandez Bautista e0d2724f68 CADSTAR Schematic: Increase "tiny" bus labels to 0.4mm text size
Also fix incorrect label orientation
2021-03-25 19:10:49 +00:00
Roberto Fernandez Bautista 6494e0bf25 CADSTAR Schematic: Fix orientation of net labels and sheet pins 2021-03-25 17:50:33 +00:00
Roberto Fernandez Bautista 5a74fb9bb1 CADSTAR Schematic: Ensure connectivity with tiny labels at Bus Entries
Always add a label at bus terminals to ensure connectivity. The original
design might already have a bus terminal with a given location.
If the original design does not have a label, just make it very small
to keep connectivity but make the design look visually similar to
the original.
2021-03-25 17:50:33 +00:00
Wayne Stambaugh cfaca0e4bb Revert "Eeschema: remove all legacy schematic and symbol library save code."
This reverts commit 9c19c2306e.

Unfortunately writing legacy symbols libraries can never be removed because
of the symbol rescue feature. :(

Fixes https://gitlab.com/kicad/code/kicad/issues/7986
2021-03-22 08:19:47 -04:00
Roberto Fernandez Bautista a0889705e7 EAGLE and Altium SCH importers: UpdateSymbolLinks after import
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7687
2021-03-21 20:13:20 +00:00
Thomas Pointhuber d9229697d8 altium: special string override map should be case-insensitive
This only fixes overrides where we explicitly map an override. Wrongly written variables pointing to fields are not corrected by this.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256
2021-03-20 20:42:25 +01:00
Wayne Stambaugh 9c19c2306e Eeschema: remove all legacy schematic and symbol library save code.
Legacy schematic and symbol library saving is officially deprecated.
2021-03-20 13:29:44 -04:00
Jon Evans c04e19f9ac Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
Thomas Pointhuber 4482b3baba altium: Handle special strings and convert them into KiCad variables. Use Comment for VALUE.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/7736
2021-03-14 16:40:36 +01:00
Jeff Young 2a9186d9e9 Don't re-use FieldIDs when assigning ids on save.
Fixes https://gitlab.com/kicad/code/kicad/issues/7849
2021-03-09 15:09:31 +00:00
Dominik Wernberger e2aa7be4b3 Added a lot of consts and refactored a few lines 2021-03-08 12:49:48 -08:00
Wayne Stambaugh 7a00e01b3e Eeschema: fix false positive library symbol changed ERC errors.
This fix required sorting all of the LIB_PART draw items to ensure
accurate comparison between the symbols stored in the schematic and the
original library symbols.  This has a noticeable impact on symbol library
load performance.  It may also cause significant changes the next time
the library is saved due to changes in the draw item sorting.  Hashing
may be a better solution here but this addressed the immediate problem.

A skeleton method SCH_SCREEN::SwapSymbolLinks() was added because there
is most likely an issue with orphaned symbols in the schematic library
symbol cache during undo/redo operations.  More testing is required to
verify this.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7263
2021-03-04 17:59:24 -05:00
WhiteChairFromIkea ff23f4324a Do not hardcode altium file extension length 2021-03-04 12:20:40 +00:00
Ian McInerney 908de37e7c Don't hardcode the file extensions where possible 2021-03-03 01:13:59 +00:00
WhiteChairFromIkea 2c289b3f35 Check for ".SchDoc" before replacing to ".kicad_sch" for subsheet 2021-03-02 22:30:08 +00:00
WhiteChairFromIkea f83b9236ac Formatting 2021-03-02 22:30:08 +00:00
WhiteChairFromIkea b98602583c Remove "SchDoc" and use "kicad_sch" instead for subsheet names 2021-03-02 22:30:08 +00:00
WhiteChairFromIkea 042ea9761c Revert "Import footprint to symbols. Subsheet is name is prepended to footprint name,..."
This reverts commit 8aa4faa4ce24adc6310223952e8b5773ce245778
2021-03-02 22:30:08 +00:00
WhiteChairFromIkea 292aff48fd Import footprint to symbols. Subsheet is name is prepended to footprint name, which is probably NOT OK when syncing with PCB. 2021-03-02 22:30:08 +00:00
Jeff Young 8a33542bcd SCH_COMPONENT::GetField() expects a vector index, not a field id.
Check this at compile time.  Callers wanting to use an index now must
use SCH_COMPONENT::GetFields()[i] instead.

Fixes https://gitlab.com/kicad/code/kicad/issues/7757
2021-02-28 15:10:37 +00:00
Roberto Fernandez Bautista 76ef98339d CADSTAR PCB Archive Importer: Re-write loading of power symbols
Ensure all each power symbol is unique for each net name even
if it uses the same graphical symbol.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7722
2021-02-26 19:32:44 +00:00
Wayne Stambaugh 1786ae8773 Eeschema: use symbol nomenclature for object file naming. 2021-02-24 08:48:02 -05:00
Jeff Young a3b9e8ddb4 Round 2 of Worksheet -> Drawing Sheet. 2021-02-23 11:57:44 +00:00
Roberto Fernandez Bautista ccbc0f73cc CADSTAR Schematic Archive Importer: Fix Coordinate Rounding error
Rewrite of the calculation to convert CADSTAR to KiCad coordinates,
rounding half way cases away from zero.
Use integer division instead of double, to ensure precision.
2021-02-22 13:24:00 +00:00
Roberto Fernandez Bautista 842a930ced CADSTAR Schematic Archive Importer: Autoplace fields when adding sheet
Makes the sheets look a little bit better when there is no block name
in the original CADSTAR design.
2021-02-22 13:24:00 +00:00
Roberto Fernandez Bautista 7b5cf955af CADSTAR Schematic Archive Importer: Visible fields to calculate BBOX
- Ensures page size is calculated correctly
2021-02-22 13:24:00 +00:00
Roberto Fernandez Bautista 5acdf1ddb1 CADSTAR Schematic Archive Importer: Align to original grid
Previous assumption of 100mil grid in CADSTAR schematic designs has
been proven to be incorrect. Let's use the "working grid" in the
original design instead.
2021-02-22 13:24:00 +00:00
Roberto Fernandez Bautista c98106ebcf CADSTAR Schematic Archive Importer: Parse TESTPOINT
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7574
2021-02-22 13:24:00 +00:00
Roberto Fernandez Bautista 09ebfcd650 CADSTAR Importer: Fix Code Style
- Rename member variable names to use the 'm_' prefix
- Rename a few object types that clashed with KiCad object names, such
  as BOARD and SCHEMATIC, to avoid the use of '::' to access the KiCad
  objects.
- Remove some unused code.
2021-02-22 13:24:00 +00:00
Jeff Young 2a7e60960a Use standard mirror icons & terminology.
Also use standard group icons.

Also put both (and rotate commands) in toolbar.

Fixes https://gitlab.com/kicad/code/kicad/issues/7504
2021-02-16 21:11:36 +00:00
Wayne Stambaugh 114dceec2e Eeschema: Eagle schematic plugin parser improvements.
* Complete drawing of sheet border/title block symbol.
2021-02-16 09:33:15 -05:00
Wayne Stambaugh 089b7afacf Eeschema: Eagle schematic plugin parser improvements.
* Fix multi line text alignment.
* Parse schematic frame objects and convert them to lines.
* Make implicit global labels normal size so they can easily be seen.
* Move sheet fields to a more sensible position.
* Parse schematic symbol instances before wires so that the implicit power
  connections can properly be tested.  This will be used at a later time.
* Scale label text size down to allow for differences in label offset and
  graphical items.
2021-02-15 16:44:58 -05:00
Seth Hillbrand 8745691da3 Toggle LOCALE_IO before re-caching
cacheLib() can cause a re-load event, which requires the C-locale.
LOCALE_IO needs to be set before this event to prevent mistaken ','/'.'
mixups

Fixes https://gitlab.com/kicad/code/kicad/issues/6434
2021-02-15 09:10:21 -08:00
Seth Hillbrand cea9e1b62c Remove Eagle workaround for stacked NC pins
We no longer put stacked NC pins in the same net, so we do not require
this hack.
2021-02-11 16:47:21 -08:00
Roberto Fernandez Bautista 7c06bdbd2e CADSTAR Schematic Archive Importer: Fix parsing of TERMINAL_SHAPE
TRIANGLE shape and a few others do not have a "right length",
only a "length".
Fixes the error "Missing Parameter ‘2’ in ‘TRIANGLE’".
2021-02-10 18:49:21 +00:00
Roberto Fernandez Bautista 80d8974f87 CADSTAR Archive Importer: Fix loading of non-cadstar font text sizes
Non-cadstar fonts use a width of 0.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 49bf957c48 CADSTAR Schematic Archive Importer: Fix positioning of global labels
Previous calculation did not take into account rotation of the labels
when calculating the final position.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 0841f3ae25 CADSTAR Schematic Archive Importer: Fix wires (Implied connections)
There is an implied connection between elements in a net even though
there might not be a graphical connection in the file.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 8add7a880d CADSTAR Schematic Archive Importer: Fix positioning and margins
Fix calculation of sheet bounding box and sheet margins with the aim
of matching CADSTAR pdf output as closely as possible.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista cb90a4b7e6 CADSTAR Schematic Archive Importer: Handle Pin Swaps
Each schematic symbol instance can have pin numbers that diverge from
the pin number definitions in the library
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 4ea487936b CADSTAR Schematic Archive Importer: Simplify symbol library name 2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 4dc264175a CADSTAR Schematic Archive Importer: Symbol name is case insensitive
Fixes an issue on some designs that would not be able to find the
symbol definition referenced by the part due to different
capitalisation of the symbol name in the part definition and
the symbol definition.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 914ae001b5 CADSTAR Schematic Archive Importer: Load pin types
Default to passive if undefined
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista f530b12c31 CADSTAR Schematic Archive Importer: Handle undefined pin number in part
Use terminal pin number (i.e. from the symbol definition) when the pin
number is undefined in the part.
This fixes a bug that resulted in symbols with "0" as the pin numbers.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista cc27c31ab0 CADSTAR Schematic Archive Importer: Import common fields visibilities
Import field visibilities for Ref, Value and Part Name
Also fix incorrect loading of designator from previous commit
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 297ff282f1 CADSTAR Importer: Update copyright years and remove white spaces 2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista bb6fee531e CADSTAR Schematic Archive Importer: Correctly load symbol instances
Previous implementation was not loading all fields defined in the
library.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista b0051c07cb CADSTAR Schematic Archive Importer: Load all fields in symbols
- Load Fields in the library items as well as schematic instances
- Remove invalid characters (e.g. '\n', '\t', '\r') in fields
- Load footprint field (assume that the footprint library name
  is the same as the filename of the schematic)
2021-02-10 18:49:20 +00:00
Wayne Stambaugh c11ded24cd Add instrumentation to track down local issues in symbol library file code. 2021-02-01 12:57:16 -05:00
Jeff Young dfc6070178 Unify schematic file version checking with PCBNew.
This also makes sure that the user gets a warning before saving over
an older s-expr format.  While that won't always be wanted, it's now
in the infobar (like in PCBNew), so it's not too onerous.§

Fixes https://gitlab.com/kicad/code/kicad/issues/7347
2021-01-31 17:28:14 +00:00
Thomas Pointhuber 619e128536 altium: Fix #6194 by no longer mirroring schematic text. Furthermore improve value parsing. 2021-01-30 15:44:32 +01:00
Jeff Young 540dd11b58 Use the file version when reading lib symbols from schematic file. 2021-01-28 21:31:33 +00:00
Jeff Young ff7742c6b8 File naming and include cleanup. 2021-01-28 11:35:18 +00:00
Jeff Young 0967f8fc78 Fix typo. 2021-01-26 23:17:30 +00:00
Jeff Young 06f85471a4 Fix copy/paste error. 2021-01-26 19:01:31 +00:00
david-beinder 4bcd56b1f6 Always include unit number when copying to clipboard
Fixes https://gitlab.com/kicad/code/kicad/issues/5898 (A)
2021-01-26 18:12:49 +00:00
Wayne Stambaugh 4619d5e112 Fix more broken Doxygen comment specifiers. 2021-01-26 12:17:52 -05:00
Jeff Young 3702f2e0a9 Add uuid r/w for sch pins, text, wires, etc.
Fixes https://gitlab.com/kicad/code/kicad/issues/7269
2021-01-26 10:56:19 +00:00
Jeff Young 0ba0160da9 Add a PT_NIC pin electrical type and a netlist token for SCH_NO_CONNECT.
ADDED a new pin electrical type "free" for internally unconnected pins.

CHANGED the "unconnected" pin electrical type is now represented by
"no_connect" in files and netlists.  (The legacy syntax is also accepted
in files.)
2021-01-23 00:10:01 +00:00
Roberto Fernandez Bautista 42cbcf7ef4 Don't allow empty page numbers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6698
2021-01-22 14:02:34 +00:00
Roberto Fernandez Bautista b168b74919 CADSTAR Archive Importer: Fix position of multiline text with NO_ALIGNMENT in CADSTAR 2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista a33ccf48b9 CADSTAR Schematic Archive Importer: Load signal name even if no net label (global labels and power symbols)
Fixes error that prevented global net names from being loaded properly
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista f6ec173ba7 CADSTAR Schematic Archive Importer: Do not load blocks without a linked sheet
Fixes std::out_of_range error
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista 728792aa3c CADSTAR Schematic Archive Importer: Fix SIGLOC in JPT (Load labels in junctions)
Fixes but that refused to open file with a SIGLOC node in JPT
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista a5118df44c CADSTAR Schematic Archive Importer: Load Schematic Text Variables to KiCad project 2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista 9ed4780fec CADSTAR Archive Importer: Change architecture to Parse CADSTAR fields and store them in a static map
Architecture of the parser changed to have a shared PARSER_CONTEXT between all the individual parsers.
Parses CADSTAR fields such as <@DESIGN_TITLE@> or <@SHEET_NUMBER@> and replaces with an equivalent KiCad Text Variable.
2020-12-30 18:53:42 +00:00
Jeff Young bf632ad771 Pick up root sheet KIID from sheet instances.
Fixes https://gitlab.com/kicad/code/kicad/issues/6725
2020-12-18 12:49:20 +00:00
Jeff Young bb232e6ac6 Unify LIB_IDs now that both are stored in sexpr files.
Fixes https://gitlab.com/kicad/code/kicad/issues/6764
2020-12-18 00:30:26 +00:00
Jeff Young 10e68daa37 Fix some bugs in Change Symbol and Update Symbols.
In particular, there was a typo that kept library values from being
updated, and there was missing logic to fetch the various field names
from the library parts (and the change-to part).

Also implements some performance gains by desisting from copying
LIB_FIELDs around every time we want to look at them.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/6749
2020-12-15 16:12:17 +00:00
Jeff Young 797a588015 Aliases should inherit their descs, keywords, and fp filters.
Assuming they're not set locally, of course.

Also updates to new class structure order.

Fixes https://gitlab.com/kicad/code/kicad/issues/6051
2020-12-14 13:48:26 +00:00
Wayne Stambaugh e61f768fbc Eeschema: add defensive code to symbol library cache I/O. 2020-12-09 11:46:10 -05:00
Jeff Young d8fa37d5c2 Remove old root-schematic hacks. They don't work anymore anyway.
Fixes https://gitlab.com/kicad/code/kicad/issues/6583
2020-12-02 14:27:43 +00:00
Ian McInerney aa09418a14 Fixup memory lifespan of GAL options for the settings preview canvas
The canvas keeps a reference to the settings object, so we
can't pass one from the stack because it runs into lifetime
issues.

Also cleanup some loop-iterator problems.

Fixes https://gitlab.com/kicad/code/kicad/issues/6338
2020-12-01 01:12:07 +00:00
jean-pierre charras 56bb91b042 French translation update 2020-11-29 13:40:48 +01:00
jean-pierre charras 09a1137f11 Fix a minor compil warning 2020-11-29 13:06:44 +01:00
Roberto Fernandez Bautista 6a28d6af27 CADSTAR Schematic Archive Importer: Fix loading of Schematic Sheet Pins and Orientation of Labels
- Find the intersection between the wire and the sheet and place the sheet pin there
- Fix orientation of hierarchical labels and global labels by applying opposite orientation to the connecting wire
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista ba77bf662c CADSTAR Schematic Importer: Fix loading of buses
Place bus labels and correctly group nets for the bus in a BUS_ALIAS
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista 0691e942f4 CADSTAR Archive Importer: Fix duplicate KIID for loaded elements
Don't use clone to copy an EDA_ITEM. Use Duplicate().
Even if you give the clone a new KIID, all its children will still be clones.
Create Duplicate() in LIB_PART
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista d2fbe12cfd CADSTAR Schematic Archive Importer: Parse SCALE token in Symbol and warn user this is not supported
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6463
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista a058e26ddc CADSTAR Schematic Archive Importer: Fix Loading of page numbers
Need to keep track of the hierarchy path in order to assign the page number
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista cba45ea257 CADSTAR Schematic Archive Importer: Fix orientation of components
- Fix the logic for the orientation of mirrored components
- Fix loading of angles/orientations from earlier versions of CADSTAR
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista 49a2926a34 CADSTAR Schematic Archive Importer: Fix loading of graphical arc segments
Load the arc segments as piece-wise straight segments
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista 71f9847601 CADSTAR Archive Importer: Only load the Master variant 2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista f2ba9f7ac3 CADSTAR PCB Archive Importer: Correctly load the pad numbers as per the original design
To load the pad numbers correctly we need to also check the PART DEFINITION for each component
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista 73ad503db3 CADSTAR Schematic Archive Importer: Parse missing TERMATTR node 2020-11-28 17:18:17 +00:00
Seth Hillbrand 3ff22fc882 Order symbols by unit/convert
This keeps the output symbol names in human-readable order

Fixes https://gitlab.com/kicad/code/kicad/issues/6376
2020-11-19 15:19:55 -08:00
jean-pierre charras 801f385521 Eeschema: fix a UTF8 issue created by my commit 993a684 2020-11-19 14:37:51 +01:00
Marek Roszko 16e3e59495 Split out arrayDim and MIRROR templates from macros.h
These were not macros
2020-11-17 20:21:04 -05:00