kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #40711
Re: Eagle plugin
-
To:
Seth Hillbrand <seth@xxxxxxxxxxxxx>
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Thu, 16 May 2019 17:13:55 -0400
-
Autocrypt:
addr=stambaughw@xxxxxxxxx; prefer-encrypt=mutual; keydata= mQGiBEM0hxQRBAC2fNh3YOVLu1d5GZ0SbrTNldGiGnCJPLqzEnqFX9v6jmf33TMt6EmSLkl6 Wtfkoj0nVwKxcYmJkA8DX0QAokBkwNIzhSsBzQvthBLIk/5LnPVVKrEXOcL4mUyH1doKlkaE slgJozNa6Av+oavcvD02o1zJOloBbaHlNlyRt7fKswCgtIFlVjWggVH/15KfWk+Qo5JVPbME AIUBAQyL2OAx0n60AWec2WHnO9buHuG0ibtICgUMkE+2MRmYyKwYRdyVwGoIUemFuOyHp0AJ InX4T+vy2E7vkwODqjtMLfIoRkokW74Fi4nrvjlhOAw/vdq/twLbAmR9MOfPTpR4y7kQy1O2 /n+RkkRvh26vTzfbQmrH7cBJhk6aA/9Uwvu3E4zNJgHVZeS0HyWtmR1eOPPRbnkPgJTToX5O KMKzTJI/FX6kT7cFoCamitHrW3BJP4Dx+cMMsa47EGxqVTdbVJ4LjogsXTXxb+0Fn1u4zBdx x3Cer6O7+hqWy7zvpzeC6nSREjqDKa5CgHtv/GLm5uFPOmsjAsnHj2tlBrQmV2F5bmUgU3Rh bWJhdWdoIDxzdGFtYmF1Z2h3QGdtYWlsLmNvbT6IeAQTEQIAOBYhBOffs6CbblRzBkv33BtR cWlZ+CReBQJbFBS2AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEBtRcWlZ+CReMI8A nRbrLkzp7+c2f0vX7sfg4ICX8LAKAJ9uClo4uJajmZa5zZrL2nKdZlUwIrkCDQRDNIcxEAgA gCru+3/aOC6RCjpvYC72wY+d5SmHphC6yeiV2/mOumyt5MLo/Ps2GznZr11JspqFk5K/Zpvp MMLqqjDZ39+50a2iKRQFJ6NlK+hJWMmj6eJygQrCwYo3Gjc6CqfrqUv+8VSnf/i5sIZmtOVA 4ZjML18MuBvMSsNdVLFJd5HNnYb1iOECpvqdPVh/21LLCEw7MUUGGnHBhCrmk2aJe5hFmcSN g4ldBcXrgMQBwf7aMVoobXBMFDb/IENByXn0llB7Gr2IFMRmNS9/p8s/II1Yl2bTqyX4FSz8 cfn7C9KEz7faZ7wzAcpwHFC/zs3JoAjJ0IEKdNUpIwAlKMzT3CzctwADBQf/cxpG28MKyrqk nNmq/8LQLy+x6FSYXBLjxQz9BiBNYeesDZQ6J5UbL1mjpJzMa5tLZypPYo4bbGyR22hrbyDF K7m6AcVaMIJKl98g4ukMutFfAJyRDaREH5Zl/X1P4u1Z/yaAIy9mKaNbaK1/5djNJ5wCTFen TUgAp9xdc30kGkFDdLJFp5uxDY4P0vaZiZdjUCvDM3Zjv5IzpNOfxVqTUBQNUP/BnnKhkk0p DTD6s3X8S+D0rOtEBQ8K0cwERI/E8EFa8nj0TNw4e2MYGR8wg+SxqJ7z5f0zPY0bO6G9DDFB wYCqzzPWGqdAh9vA5971TAbPERtdFybhkurozp2SfYhJBBgRAgAJBQJDNIcxAhsMAAoJEBtR cWlZ+CResHUAniULLCWiT26ieRTl7N2vS6vBo/DuAJ4m7Ss/gyiW6ybTn1ctDXAUgm2QVQ==
-
Cc:
KiCad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<466bec9b41f1ccd1a0d0c1ddc462de2b@hillbrand.org>
-
Openpgp:
preference=signencrypt
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
On 5/16/19 4:52 PM, Seth Hillbrand wrote:
> Am 2019-05-16 16:44, schrieb Wayne Stambaugh:
>> On 5/16/19 4:31 PM, Seth Hillbrand wrote:
>>> Am 2019-05-16 16:24, schrieb Wayne Stambaugh:
>>>> I'm fixing a bug[1] in the Eagle plugin in Pcbnew when loading stand
>>>> alone Eagle footprint libraries. The fix is easy enough but I'm not
>>>> sure why the original code was written this way. When the Eagle plugin
>>>> in loads a board, it uses the board layer line widths instead of the
>>>> line width defined in the EWIRE object read from the file. Since I'm
>>>> not an expert on the Eagle board file, do footprints in an Eagle board
>>>> file use the layer line width defined in some board layer definition or
>>>> does each EWIRE definition define its own line width? Thanks in
>>>> advance
>>>> for the help.
>>>
>>>
>>> Where do you see this behavior? In packageWire(), the width is loaded
>>> from the wire definition itself, not a different node.
>>>
>>> -S
>>
>> Not if it's < 0. This is where the issue was (line 1405 in
>> pcbnew/eagle_plugin.cpp). The call aModule->GetBoard() was null when
>> loading a library which caused the segfault. I just added a null guard
>> which falls back to the <=0 width which interestingly doesn't seem to
>> cause any issues because the footprints looked fine to me once I fixed
>> the bugs. I can certainly set the <0 line with to some KiCad internal
>> default.
>>
>> Wayne
>
> Oh. Right. <= 0 is invalid for us and couldn't be selected. We loaded
> the design settings to get the user preferences. We could just use the
> layer defaults if GetBoard() is null as we used to do:
>
> switch( layer )
> {
> case Edge_Cuts:
> width = DEFAULT_EDGE_WIDTH;
> break;
> case F_SilkS:
> case B_SilkS:
> width = DEFAULT_SILK_LINE_WIDTH;
> break;
> case F_CrtYd:
> case B_CrtYd:
> width = DEFAULT_COURTYARD_WIDTH;
> break;
> default:
> width = DEFAULT_LINE_WIDTH;
> }
>
> -S
That's what I was thinking so I will set the width to the layer defaults
when no board is present and the read wire width is < 0.
Wayne
References