Maciej Suminski
eb9099238a
Eagle SCH import: Improved net label placement algorithm
...
Eagle support net labels that are naming wires not directly connected to
the labels. In KiCad it is not possible, therefore such detached net
labels need to be moved, so they touch the corresponding wire.
The initial algorithm did not take into account that a moved net label
might be placed on a wire crossing, effectively shorting two nets. This
commit improves the placement algorithm by avoiding the wire crossing
points when placing a label.
Fixes: lp:1748502
* https://bugs.launchpad.net/kicad/+bug/1748502
2018-03-29 12:16:11 +02:00
Maciej Suminski
88915f7940
SCH_EAGLE_PLUGIN::addBusEntries(): prevent operating on deleted objects
2018-03-29 12:11:36 +02:00
Maciej Suminski
99e79c077a
Eagle SCH import: Code formatting
2018-03-29 12:11:35 +02:00
Maciej Suminski
434b385a95
Eagle SCH importer: prepend # to references of symbols without assigned footprints
...
With hash character starting the reference value, schematic components
are considered as virtual and therefore netlist updater do not warn about
an unsigned footprint anymore. This approach is useful to handle logos,
frames or other virtual Eagle components.
Fixes: lp:1756281
* https://bugs.launchpad.net/kicad/+bug/1756281
2018-03-22 18:20:02 +01:00
Maciej Suminski
e9537953cd
Eagle SCH importer: reduced code duplication for importing labels
2018-03-22 18:20:02 +01:00
Maciej Suminski
260f680c6c
Eagle import: fix memory leak on schematic sheets import
2018-03-04 16:47:26 +01:00
Russell Oliver
3d9c25494c
Revert "Eagle importer: use only global net labels"
...
This reverts commit b1f456fade
.
2018-03-04 16:42:55 +01:00
Carsten Schoenert
ff305781fb
fix misspelled 'neeeded' -> 'needed'
2018-02-25 17:10:10 -05:00
Maciej Suminski
24fcdb00cc
Eagle importer: convert special characters in net names
...
Convert '!' to '~' to reflect overbar toggling and change '~' to '~~'.
Now it matches the net names in schematics import plugin.
2018-02-17 00:03:28 +01:00
Maciej Suminski
b1f456fade
Eagle importer: use only global net labels
...
Local net labels are preceded with sheetpath (even for single sheet
schematics it is '/') causing net name conflicts between schematics and
layout. It can be easily avoided by using exclusively global net
labels, at the cost having uglier schematics.
2018-02-17 00:03:28 +01:00
Maciej Suminski
ac9fc949bd
Code formatting for 013f7b4d
2018-02-13 14:56:11 +01:00
Russell Oliver
34b52c91b7
Add empty eeschema page layout for Eagle schematic import.
...
Fixes: lp:1729722
* https://bugs.launchpad.net/kicad/+bug/1729722
2018-02-13 14:56:11 +01:00
Russell Oliver
e340e8a838
Eagle Schematic Import: Label Placement fix.
...
Extra labels to preserve eagle named nets feature are now placed at the
end of a wire segment instead of the middle of a wire. Prevents a label
being placed on crossing wires that are not connected by a junction
resulting in an incorrent netlist.
2018-02-12 15:35:28 +01:00
jean-pierre charras
8022f1cc01
fix code after renamin files
2018-01-30 11:49:51 +01:00
jean-pierre charras
795a36c9fe
Fix code after renaming files, and a bit of code cleanup (remove useless includes and multiple includes of the same files)
2018-01-30 09:57:25 +01:00
jean-pierre charras
4c5bd01887
Rename a few files
2018-01-28 22:02:31 +01:00
Maciej Suminski
378846c2e3
Eagle Schematics Importer: support for UTF-8
...
Fixes: lp:1736083
* https://bugs.launchpad.net/kicad/+bug/1736083
2017-12-17 19:54:21 +01:00
Maciej Suminski
7665a839cd
Eagle Schematic Import: try harder to generate a meaningful library name
...
The previous implementation relied only on the project name. When it is
set, the imported library was named '-eagle-import'. Now it tries
the project name and then the file name, using 'noname-eagle-import'
as fallback.
The library name is stored in the plugin to avoid changing the library
name after the project name has been set.
2017-12-17 18:45:40 +01:00
Simon Richter
a9ccf1161b
Fix quotes in UI messages
...
This replaces all single and angle bracket quotes in UI messages with
double quotes, for consistency.
Sorry to all translators.
2017-12-15 07:33:07 -05:00
Wayne Stambaugh
b82bd8e0c5
Fix symbol names with illegal library ID characters.
...
Change the legacy schematic plugin to preserve illegal LIB_ID characters
when load schematics prior to version 4.
Check for illegal LIB_ID symbol names during project rescue. Rename and
rescue any symbols with illegal LIB_ID names.
Add static methods to LIB_ID object for testing for and fixing names
with illegal characters so there is uniform code for doing so.
Update the Eagle plugin symbol loader to fix symbol names using the new
LIB_ID fix illegal names method.
Fixes lp:1732236
https://bugs.launchpad.net/kicad/+bug/1732236
2017-11-23 10:52:55 -05:00
Wayne Stambaugh
56d73f837d
Fix build error caused by rebasing against commit 5eb56dd8
.
2017-11-09 18:50:21 -05:00
Wayne Stambaugh
8fd89c881d
Final symbol library table changes before merge.
...
Remove all symbol libraries from the project file after remapping to
prevent symbols that should be loaded from the cache being loaded from
a library further up the search order. Save the project file to clear
all of the libraries so they never get reloaded again.
Remove the symbol library management dialog and menu entries.
Rename the symbol library table dialog menu entry.
Remove all symbol libraries from default project file to prevent clashes
with the cache library.
Fix illegal symbol naming in Eagle plugin.
2017-11-09 18:50:21 -05:00
Wayne Stambaugh
8d995f48de
Update Eagle plugin to use symbol library table.
2017-11-09 18:50:21 -05:00
Wayne Stambaugh
d5290bdfe0
Fix malformed symbol libraries when importing Eagle schematics.
...
KiCad library symbol text objects cannot contain carriage returns and/or
line feeds which isn't the case with Eagle symbol libraries. Otherwise,
the library file will be corrupt when it is saved. Fixing this in the
legacy plugin would break the current file format so just replace them
with underscores. Ideally these text objects should be broken into
multiple text objects but the current plugin design doesn't support
this.
2017-11-04 21:36:47 -04:00
Maciej Suminski
5eb56dd8b0
Coverity fixes
...
CIDs:
102571
168696
168701
168704
168706
168708
168710
168713
168716
168717
2017-11-01 10:24:26 +01:00
jean-pierre charras
772dc2f24a
Fix compil warnings
2017-10-20 13:48:36 +02:00
Maciej Suminski
59394fedbf
Eeschema Eagle Import: fixed global net label rotation
2017-10-20 09:34:33 +02:00
Maciej Suminski
0ed7483868
Eeschema Eagle Import: support UTF-8 for fields
2017-10-20 09:34:33 +02:00
Maciej Suminski
b77ba486ec
Eeschema Eagle Import: fixed name and reference fields placement
2017-10-20 09:34:33 +02:00
Maciej Suminski
62156b9b69
Eeschema Eagle Import: refactored common code for setting text attributes
2017-10-20 09:34:33 +02:00
Maciej Suminski
ee8012a5cc
Eagle import plugin: Code clean-up and formatting
2017-10-20 09:34:33 +02:00
Maciej Suminski
25b8111341
Modified Eagle import plugins to use nanometers as the internal unit
2017-10-20 09:34:33 +02:00
Maciej Suminski
7f697de432
Handle empty texts correctly
2017-10-20 09:34:33 +02:00
Maciej Suminski
87465002c3
Eeschema Eagle Import: changed fixNetName() to escapeName()
2017-10-20 09:34:33 +02:00
Russell Oliver
82b1e3c790
Eagle Import: Handle muli-pad pins. Adds overlapping pins in the symbol definition to ensure that electrical connections are made to each pad on the footprint.
2017-10-20 09:34:33 +02:00
Maciej Suminski
ce145373e4
Change the Eagle schematic import plugin license to GPLv3+
2017-10-20 09:34:33 +02:00
Maciej Suminski
e75d76d1a8
Enable LOCALE_IO in Eagle schematic import plugin
2017-10-20 09:34:32 +02:00
Maciej Suminski
ce11e9a264
Eeschema Eagle Import: Changed convertTextSize() to ETEXT::ConvertSize()
2017-10-20 09:34:32 +02:00
Russell Oliver
2a0a999350
Eeschema Eagle Import: Code clean-up and formatting
2017-10-20 09:34:32 +02:00
Maciej Suminski
630a883f80
Update Eagle schematic import plugin after long pin/pad name patch
2017-10-20 09:34:32 +02:00
Russell Oliver
3b0855d204
Eagle Project Import: Code cleanup and documentation.
...
- Also makes the project and file import functions filetype dependent.
- The change from IO_MGR::KICAD to IO_MGR::KICAD_SEXP removes a conflict from a compile definition for KICAD when compiling kicad/import_project.cpp
2017-10-20 08:58:40 +02:00
Russell Oliver
c3b0fca922
Eeschema Eagle Import: Fix graphics on multi-unit symbols -- sets correct gate for arcs and polylines from eagle symbol wires.
2017-10-20 08:58:40 +02:00
Russell Oliver
869743d573
Kicad Eagle Project Import Improvements. -- schematic and board files are both visible in file selection dialog. -- Allows for the selection of either the board or schematic file. -- silently fails on not detecting the corrosponding board or schematic file. -- all new kicad files are generated in new project directory -- Silently read netlist without generating annotation warnings which synchronises timestamps and paths based on given eagle references, otherwise renumbering schematic references will break links accross schematic and pcbnew.
2017-10-20 08:58:40 +02:00
Russell Oliver
a8fa64f158
Eeschema Eagle Import: Shift convertTextSize to common eagle parser.
2017-10-20 08:38:42 +02:00
Russell Oliver
433aa653fe
Kicad: Add Project import function. -- add menu entry -- add ImportFile kiway function -- expose functions for creating/reading netlist -- add example eagle boad file as well
2017-10-20 08:38:42 +02:00
Russell Oliver
d260609e69
Eeschema Eagle Import: Fix package assigment by combining eagle libraries of the same name.
2017-10-20 08:38:42 +02:00
Russell Oliver
e63e916279
Eeschema Eagle Import: Parse eagle symbol name prefix and fix reference values.
2017-10-20 08:38:42 +02:00
Russell Oliver
cdb5a01091
Eeschema Eagle Import: Set visibility of fields based on attribute display value.
2017-10-20 08:38:42 +02:00
Russell Oliver
d9396ac43b
Eeschema Eagle Import: Hide reference and values based component smashed status and attribute.
2017-10-20 08:38:42 +02:00
Russell Oliver
cec76c4de2
Eeschema Eagle: Created convertTextSize function.
2017-10-20 08:38:42 +02:00
Russell Oliver
857f9f3216
Eeschema Eagle Import: arc fix
2017-10-20 08:38:42 +02:00
Russell Oliver
afaa2499dc
Eeschema Eagle Import: Set Pinshape. - modifies lin_pin.cpp function InternalPinDecoSize to default back to number text size if pin name text is set to zero.
2017-10-20 08:38:42 +02:00
Maciej Suminski
08907d4fe8
Eeschema Eagle Import: generate unique timestamps for multiunit parts
2017-10-20 08:38:42 +02:00
Maciej Suminski
a8e800f571
Eeschema Eagle Import: Moved net name correction to a function
2017-10-20 08:38:42 +02:00
Russell Oliver
b11c876e48
Eeschema Eagle Import: Move any labels while inserting bus entry symbols.
2017-10-20 08:38:42 +02:00
Russell Oliver
fa6d777ee0
Eeschema Eagle Import: More rigorous file header check
2017-10-20 08:38:39 +02:00
Russell Oliver
41f1f2cc48
Eeschema Eagle Import: WIP Handle bus entry symbols for any direction.
2017-10-20 08:38:39 +02:00
Russell Oliver
3f738b661e
Eeschema Eagle Import: Set subsheet name based on original Eagle schematic file name.
2017-10-20 08:38:39 +02:00
Russell Oliver
4a4954dd82
Eeschema Eagle Import: Renable label generation for unlabeled nets.
2017-10-20 08:38:39 +02:00
Russell Oliver
aeb43b055c
Eeschema Eagle Import: Fix power symbol import. - Set pins to power in to match current power supply symbols. - Change IsPowerConnection() to match POWER_IN pins from power symbols as well.
2017-10-20 08:38:39 +02:00
Maciej Suminski
d4201ef51f
Eeschema Eagle Import: memory leak fixes
2017-10-20 08:38:39 +02:00
Maciej Suminski
37445042ed
Eeschema Eagle Import: corrected arc radius size
2017-10-20 08:38:39 +02:00
Russell Oliver
2a96f26b7e
Eeschema Eagle Import: Arc importation fix
2017-10-20 08:38:39 +02:00
Russell Oliver
956ef0fa61
Eeschema Eagle Import: WIP trying to fix indirect memory leaks
2017-10-20 08:38:39 +02:00
Russell Oliver
1fdb13daa6
Eeschema Eagle Import: Parse all pin directions
2017-10-20 08:38:39 +02:00
Maciej Suminski
8b8a9ea705
Eeschema Eagle Import: enumerate units starting with 1
2017-10-20 08:38:39 +02:00
Russell Oliver
9f4c7af6fb
Eeschema Eagle Import: Set symbol as a power symbol for single supply pin eagle symbols.
2017-10-20 08:38:39 +02:00
Maciej Suminski
ff86c8eeb1
Eeschema Eagle Import: check rotation property before accessing it
2017-10-20 08:38:39 +02:00
Russell Oliver
64f4eaddff
Eeschema Eagle Import: Improve arc parsing to replicate eagle filled arcs.
2017-10-20 08:38:39 +02:00
Russell Oliver
e379329ee6
Eeschema Eagle Import: Better conversion between ! and ~ in text and pin names
2017-10-20 08:38:39 +02:00
Russell Oliver
a6f7cdc949
Eeschema Eagle Import: Update text alignment parsing
2017-10-20 08:38:39 +02:00
Russell Oliver
8f66e73749
Eeschema Eagle Import: Fill rectangles in symbols
2017-10-20 08:38:39 +02:00
Russell Oliver
bc23c55cec
Eeschema Eagle Import: Update layer handling
2017-10-20 08:38:39 +02:00
Maciej Suminski
2adc3d48b4
Eeschema Eagle Import: Assign timestamps for modules
2017-10-20 08:38:39 +02:00
Russell Oliver
7af2a21891
Eeschema Eagle Import: Parse polyline symbol elements.
2017-10-20 08:38:39 +02:00
Russell Oliver
7f8ac1cf02
Eeschema Eagle Import: Parse plain wires as lines on the notes layer.
2017-10-20 08:38:39 +02:00
Russell Oliver
d41fe9d567
Eeschema Eagle Import: Disable label creation for unlabeled nets, may have to be renabled for edge cases where a multi segment net is unlabled in Eagle but which would not be connected in Kicad.
2017-10-20 08:38:38 +02:00
Russell Oliver
9932d18b77
Eeschema Eagle Import: Set value and reference component field visibilities based on presence of text in symbol definition.
2017-10-20 08:38:38 +02:00
Russell Oliver
05e9ec94f1
Eeschema Eagle Import: Set pin and pad name visibilities using text size.
2017-10-20 08:38:38 +02:00
Russell Oliver
bb754b33d0
Eeschema Eagle Import: Parse instance attributes for value and refererence positions and alignment.
2017-10-20 08:38:38 +02:00
Russell Oliver
ef880f57a2
Eeschema Eagle Import: Field checks and library insertion fix.
2017-10-20 08:38:38 +02:00
Russell Oliver
c0c75d4732
Eeschema Eagle Import: Convert overbar prefix on pins.
2017-10-20 08:38:38 +02:00
Russell Oliver
afa5ef0ca6
Eeschema Eagle Import: Load labels as global or local depending on if the net is shared accross multiple eagle sheets. Test created kicad labels to check if they are on a wire, otherwise movethem to the nearest wire start, midpoint or end.
2017-10-20 08:38:38 +02:00
Russell Oliver
dcdc66b79e
Eeschema Eagle Import: Add wire to bus entry symbols.
2017-10-20 08:38:38 +02:00
Russell Oliver
3919b79777
Eeschema Eagle Import: Use bounding box for sheet position and size.
2017-10-20 08:38:38 +02:00
Russell Oliver
13abec84ef
Eeschema Eagle Import: Symbol field positioning fixes.
2017-10-20 08:38:38 +02:00
Russell Oliver
23dc8fdf32
Eeschema Eagle Import: During recentering of items the sheet, round translation to 100 mils to keep items on the grid.
2017-10-20 08:38:38 +02:00
Russell Oliver
2db2319156
Eeschema Eagle Import: Fix label rotation.
2017-10-20 08:38:38 +02:00
Russell Oliver
03739a4d37
Eeschema Eagle Import: Import pins even if Eagle even if pin to pad mapping (connects) to found. Fixes missing pins in supply symbols.
2017-10-20 08:38:38 +02:00
Russell Oliver
246e1fcd9c
Eeschema Eagle Import: Save imported library to disk.
2017-10-20 08:38:38 +02:00
Russell Oliver
e7377c0a26
Eeschema Eagle Import: dynamically size sheet based on positions of wires and junctions within the sheet.
2017-10-20 08:38:38 +02:00
Russell Oliver
512b574132
Eeschema Eagle Import: Import Busses.
2017-10-20 08:38:38 +02:00
Russell Oliver
b8f98eaffe
Eeschema Eagle Plugin: Code Cleanup
2017-10-20 08:38:38 +02:00
Russell Oliver
3741793f77
Eeschema Eagle Plugin: Set Component Orientation
2017-10-20 08:38:38 +02:00
Russell Oliver
2523c6b5d7
Eeeschema Eagle Plugin: Set footprint field using Eagle device package value.
2017-10-20 08:38:38 +02:00
Russell Oliver
812cae5409
Eeschema: Eagle Import: Add schematic text. Parse eagle vector text ratio to determine if text is bold.
2017-10-20 08:38:38 +02:00
Maciej Suminski
0d76b2947f
Store imported Eagle symbols in a library
2017-10-20 08:38:38 +02:00
Maciej Suminski
3298387f7b
Assert for non-standard rotation during Eagle schematics import
2017-10-20 08:38:38 +02:00
Maciej Suminski
deaa1d1477
Fixed crashes when importing an Eagle schematic
...
If release() is called on a unique_ptr, one needs to be sure
that is not dereferenced anymore.
2017-10-20 08:38:38 +02:00
Russell Oliver
c274a21548
WIP: Symbols are imported and displayed, and save to cache file on schematic save.
2017-10-20 08:38:38 +02:00