kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #11572
Re: bitset:set( -1 )
Hi Dick,
Sorry for all the troubles associated with the GAL, but surely soon it
will get stable. The reason is, as you suspected - an unexpected layer
in the file. I propose the patch from the attachment, I think it is
better to treat unknown layers as COMMENTS. Still I am wondering - how
does KiCad handle items with negative layer numbers by default?
Unfortunately, there is one more bug that offsets module drawings (it is
visible with the board you had sent), I will take care of that tommorrow.
Regards,
Orson
On 11/02/2013 01:48 AM, Dick Hollenbeck wrote:
Orson,
I found a bug which fires the new assert I added in line 372 of include/view/view_item.h
The aLayer element at index zero is -1, and fires a bitset:set() std:exception. I also
added a catch somewhere to keep the program from crashing on other similar issues.
The bug is fired by loading an eagle board from EAGLE_PLUGIN::Load(). Load() succeeds.
But in SetBoard() we go into the VIEW setup stuff and get into trouble.
Maybe there is a layer in this eagle board you are not expecting? Once I ignored the
exception the board displays OK in wxDC mode. Previous to that it was a bear to find,
since nobody was in position to catch a std::exception.
Attached is the eagle board. Any help is appreciated. I don't think you need eagle
binaries to do the load, just select pcbnew's EAGLE_PLUGIN as you load a new board into KiCad.
Dick
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help : https://help.launchpad.net/ListHelp
=== modified file 'pcbnew/eagle_plugin.cpp'
--- pcbnew/eagle_plugin.cpp 2013-11-02 00:24:38 +0000
+++ pcbnew/eagle_plugin.cpp 2013-11-03 20:01:55 +0000
@@ -2681,8 +2681,8 @@
case 95: kiLayer = ECO1_N; break;
case 96: kiLayer = ECO2_N; break;
default:
-// D( printf( "unsupported eagle layer: %d\n", aEagleLayer );)
- kiLayer = -1; break; // some layers do not map to KiCad
+ // DBG( printf( "unsupported eagle layer: %d\n", aEagleLayer );)
+ kiLayer = COMMENT_N; break; // some layers do not map to KiCad
}
}
Follow ups
References