lachlana / eagle-to-kicad Goto Github PK
View Code? Open in Web Editor NEWEagle SCH/LIB to KiCad SCH/LIB ULP conversion script
License: GNU General Public License v2.0
Eagle SCH/LIB to KiCad SCH/LIB ULP conversion script
License: GNU General Public License v2.0
KiCad fill's work very in odd ways compared to eagle, so you will need to adjust copper zone priority levels to fill spacing and track size to get it to work correctly.
Other wise zone's will be joined, even thou there are diffident net's !!!
go figure..
There are a number of bug's on KiCad PCB import, which I hope to some patch's accepted.
will give status report in a few weeks.. As RC2 is not far away. Of Kicad
I'm trying to convert an Eagle file (Ray's Hobby Opensprinkler Beagle v1.1) from Eagle to KiCAD.
During the conversion, at the "Assign Component Footprint" stage, I receive multiple versions of this same error. I'm unsure whether it is the script or something else, however I feel the script should maybe handle the issue. I would certainly feel more confident about the output if these errors didn't happen.
Using Eagle 7.7.0 and KiCAD 4.0.5+dsfg1-4 wx Widgets 3.0.2 Unicode Boost 1.62.0 on Debian Stretch amd64 x86_64 64 bit
ASSERT INFO:
/usr/include/wx-3.0/wx/datetime.h(876): assert "IsValid() && dt.IsValid()" failed in operator!=(): invalid wxDateTime
BACKTRACE:
[1] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[2] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[3] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[4] wxEvtHandler::TryHereOnly(wxEvent&)
[5] wxEvtHandler::ProcessEventLocally(wxEvent&)
[6] wxEvtHandler::ProcessEvent(wxEvent&)
[7] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[8] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[9] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[10] wxEvtHandler::TryHereOnly(wxEvent&)
[11] wxEvtHandler::DoTryChain(wxEvent&)
[12] wxEvtHandler::ProcessEvent(wxEvent&)
[13] wxWindowBase::TryAfter(wxEvent&)
[14] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[15] wxMenuBase::SendEvent(int, int)
[16] g_closure_invoke
[17] g_signal_emit_valist
[18] g_signal_emit
[19] gtk_widget_activate
[20] gtk_menu_shell_activate_item
[21] g_closure_invoke
[22] g_signal_emit_valist
[23] g_signal_emit
[24] gtk_propagate_event
[25] gtk_main_do_event
[26] g_main_context_dispatch
[27] g_main_loop_run
[28] gtk_main
[29] wxGUIEventLoop::DoRun()
[30] wxEventLoopBase::Run()
[31] wxAppConsoleBase::MainLoop()
[32] wxEntry(int&, wchar_t**)
[33] __libc_start_main
[34] _start
In the Eagle-ulp eagle6xx-sch-to-kicad-sch.ulp, line 2116 there is printf("#P.device.name:....
instead of printf("$P.device.name:... or just comment it out by //
That causes Kicad to not open the generated schematic.
Klaus-Michael
Hi Lachlan,
Thank you for your great work!
I am in the process of moving away from EagleCAD due to the new subscription-only business model, and I use your latest scripts to convert my existing projects from EagleCAD 7.5 ti Kicad 4.0.5 on Linux.
I face 2 issues (do I have to open separate tickets in Github?):
I kind of figured out what is going on for issue 1), my EagleCad parts are using variants (e.g. CAP_0402 or RES_0402), and this is the name that is assigned to them by the conversion tools, whereas the converted part library name does not have the variant as suffix (e.g. CAP_ and RES_). By removing the extra variant in the schematic part name, I get the right part displayed correctly. So, it looks like to me the variants are not handled correctly by the conversion tools, are they?
As for issue 2), I don't know how to fix them, since the missing power supplies are not in the converted library. I thought it was because they were prefixed with a "+" sign (like +3.3V), but this is not the case, as I am also missing a "PE" power supply. Do you have a hint how I could correct this?
Best regards,
Michel
When trying to run the renumber-sheet.ulp
I only get the following error:
/Users/silverdr/sources/eagle-to-kicad/renumber-sheet.ulp(97):
Unknown identifier 'EAGLE_HOME'
I guess I may need to set it somewhere but it would be nice to take a case where this is not set also into account.
With my pcbnew 4.0.0-rc2-1 on Mac OSX :
I have this error message :
Error loading board.
IO_ERROR: Unknown file type
from /Users/jenkins/remoteroot/workspace/KiCadBuildMac4/kicad/pcbnew/legacy_plugin.cpp : checkVersion() : line 570
@lachlanA , I am not sure how active you are with this project. If you have a some time, you may want to update the KiCad link in the README.md notes by removing the old domain "-pcb
". The KiCad Development Team released a warning about this recently. Check the links below for details.
I attempted to run the ULP scripts on a Mac and created all the Kicad files. I moved the Kicad files over to a Linux box to continue there with Kicad. Naturally, moving all the Kicad files changed their absolute path filenames on the Linux machine compared to where they were originally saved on the Mac.
The first indication of the problem was when running CvPCB. I immediately got an error about not being able to locate the .mod file.
Looking through the Kicad files, it is not clear where this absolute path has been stored. I assume that files created by the ULP scripts ought to use relative path filenames to avoid this problem when relocating the files. I think this will be especially common problem since Eagle is more likely to be run on Windows and Kicad more likely on Linux.
When KiCad pcbnew reads the net list it some time's split's the net's by adding / to the net, and not other part's of same the net, Example, GND will be split, with say the fill's still having GND net list name
and pad's having /GND, not sure why yet. Or what I'm doing wrong to make this happen.
Lachlan
Would you be willing to accept a PR that cleans up some of the language in this repo's README.md?
Specifically, Step 7 is as tedious as understanding a train wreck. The correct operation is closer to something like:
File > Open
Eagle ver. 6x XML PCB files (*.brd)
.brd
file used for the rest of the ULP conversion processIf no errors occur:
File > Save As...
kicad/
directory the ULP scripts put it's output files (Note: If you changed the ULP output directory, look in there instead).kicad_pcb
file that's already thereSave
Continue to Step 8
I am getting the following error:
eagle-to-kicad/eagle-lbr2kicad-1.0.ulp(2116)
Reference to uninitialized object variable.
I am using Eagle CAD 7.4, I know it is officially not supported but maybe it is an easy fix.
The library is pretty big but I am not at liberty to share it publicly. Alas my eagle script skills are not sufficient to tackle this problem by myself, can I send you the library?
Well I am currently converting all my libraries, and this open source library shows the same problem.
SquantorIC.lbr.zip
I had an issue with a rectangle in tDocu layer (51) that I used to represent an LQFP pin: the original rectangle was 1 mm x 0.22mm and laid out 2x16 of them to make the left and right LQFP sides, but I rotated them 270° to make the top and bottom sides.
Unfortunately, the rotated rectangles are not rotated by the conversion.
Line 3228:
dlgCheckBox("", enableNetListLableFix ); dlgLabel("<nobr><b>Enable Netlist Label Fix</b></nobr>"); dlgSpacing(20); dlgStretch(0);
is the only real occurance of the variable enableNetListLableFix
.
It is declared in Line 377: int enableNetListLableFix = 1;
but that's all.
No evaluation of its value. Just mentioning.
I stumbled across this, as I like to fix the labes by myself.
@lachlanA : Also mentioning that I really enjoy using the scripts. Great collection - works just fine (with the mentioned downsides of asthetic resulting of this hacks).Even with a fresh install of 6.3.0 i'm getting the following error;
Unkown identifier 'EAGLE_HOME'
pointing to the following lines in the ULP;
string outputPath = EAGLE_HOME + '/';
string myULP_HOME = EAGLE_HOME + '/';
when trying to run renumber-sheet.ulp. I've tested against the RGBled example with the same result. and tried adding EAGLE_HOME to the environmental variables. Any ideas?
machine; win7 64bit
I tried going through your example video and encounter the following problems.
At 10:08 when I open the kicad project I note that the following files are not listed as part of the project:
RGB LED 1.4.lib
RGB LED 1.4.net
RGB LED 1.4-cache.lib
At 11:52 when I run CvPcb to associate the components and footprints I get the following error message:
"No PCB footprint libraries are listed in the current project file."
At 12:26 when I open pcbnew I get the following error message:
"Error loading board.
PARSE_ERROR: Expecting 'number' in input/source "/home/user/RGB LED 1.4.kicad_pcb", line 67, offset 23
from /build/buildd/kicad-0.20131208+bzr4024/common/dsnlexer.cpp : Expecting() : line 285"
Hi Lachlan,
Most of my boards are using via stitching for GND planes. This causes a lot of ugly GND VPDEV0 devices to be added to the schematics.
It looks like it is possible to have via stitching in the layout only, please check this video and forum post:
https://contextualelectronics.com/learning/via-stitching-in-kicad/
https://forum.kicad.info/t/protip-nicer-via-stitching/1103/21
Would it be possible to apply this method during the conversion instead of creating these ugly parts?
Put your coments/bugs and reqests for enhancements here
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.