Commit Graph

145 Commits

Author SHA1 Message Date
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
Russell Oliver b9edfe4fe4 WIP: Refactor symbol importation to account for multiple gates and device connect pin maps. 2017-10-20 08:38:38 +02:00
Russell Oliver 55d6f4e0fc WIP: Eagle symbol importation 2017-10-20 08:38:38 +02:00
Russell Oliver 4e69acbb49 Eeschema: Add CheckHeader function to SCH_PLUGIN and cycle through plugins when loading files. 2017-10-20 08:38:38 +02:00
Maciej Suminski e03bc32e49 Eagle plugin: Code formatting 2017-10-20 08:38:38 +02:00
Maciej Suminski f049b01a59 Eagle plugin: Added 'static' and 'const T&' as applicable 2017-10-20 08:38:38 +02:00
Maciej Suminski c72b2155a6 Eagle plugin: changed #define to constexpr 2017-10-20 08:38:38 +02:00
Maciej Suminski 7d2320b5ad Eagle plugin: check before dereferencing optional attributes 2017-10-20 08:38:38 +02:00
Russell Oliver 75d9185e4a Eeschema: Eagle Plugin: Add loadSymboltext, and position default symbol texts. 2017-10-20 08:38:38 +02:00
Russell Oliver 04c7fbebdc Eeschema: Eagle Plugin: Handle pin rotation. 2017-10-20 08:38:38 +02:00
Russell Oliver 739754cfd6 Eeschema: Eagle plugin: Save symbols to schematic library cache file. Remove unneeded variable. Fix add extension to filename 2017-10-20 08:38:38 +02:00
Russell Oliver ea8f7ed02d Eeschema: Eagle plugin> work on schematic and symbol elements 2017-10-20 08:38:37 +02:00
Russell Oliver e92c8c1d6c Eeschema: Handle multiple sheets in Eagle plugin. 2017-10-20 08:38:37 +02:00
Maciej Suminski c727423979 Work in progress
- !! Eeschema uses Eagle plugin for loading schematics (i.e. it does not
use KiCad format anymore)
- Fixed build errors
- Fixed a few crashes
- Code formatting
2017-10-20 08:38:37 +02:00
Maciej Suminski f5b2a2ea57 Code formatting and cleanup 2017-10-20 08:38:37 +02:00
Alejandro García Montoro 404457f455 Eeschema Eagle plugin 2017-10-20 08:38:37 +02:00
Alejandro García Montoro df708f8ada Starts the loading layout 2017-10-20 08:38:37 +02:00
Alejandro García Montoro 75b0549f6f Testing the structure 2017-10-20 08:38:37 +02:00
Alejandro García Montoro 2403f2b558 Adds necessary structure to implement and test Eagle schematich plugin 2017-10-20 08:38:37 +02:00