kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #40053
Re: [PATCH] [RFC] Exporter for Mentor Hyperlynx
-
To:
Tomasz Wlostowski <tomasz.wlostowski@xxxxxxx>, kicad-developers@xxxxxxxxxxxxxxxxxxx
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Fri, 5 Apr 2019 12:45:33 -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==
-
In-reply-to:
<660c9a48-63ea-7ca9-21a4-114bef5677ac@gmail.com>
-
Openpgp:
preference=signencrypt
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1
Tom,
On 4/5/19 12:41 PM, Wayne Stambaugh wrote:
> On 4/5/19 12:24 PM, Tomasz Wlostowski wrote:
>> On 05/04/2019 18:04, Wayne Stambaugh wrote:
>>> Tom,
>>>
>>> On 4/4/19 8:16 PM, Tomasz Wlostowski wrote:
>>>> Hi,
>>>>
>>>> We needed to do some signal/power integrity simulations on one of our
>>>> Kicad designs and in order to do that, we needed to convert a Kicad PCB
>>>> to Hyperlynx format. Luckily, the format is simple, all text and well
>>>> documented in [1], so here comes a patch that adds a Hyperlynx exporter.
>>>>
>>>> Notes:
>>>> - since Kicad doesn't have a concept of board stackup (permittivities,
>>>> loss tangent, dielectric types, etc.), the exporter writes a dummy
>>>> stackup. Edit it to match the PCB spec in Hyperlynx.
>>>> - no support for offset pad holes, slotted pad holes,
>>>> trapezoid/polygonal pads (it seems HL format doesn't support such
>>>> features or I need to figure out how to emulate them).
>>>> - no support for thermal pads (yet)
>>>> - no error reporting.
>>>>
>>>> Looking forward to your feedback & wish you happy testing,
>>>> Tom
>>>>
>>>> [1] http://www.ibis.org/birds/bird33.txt
>>>
>>> Your patch built and tested without issue. I just have a few minor
>>> comments:
>>>
>>> Please remove all commented out debugging output code and one instance
>>> of wxLogDebug unless you are planning to some additional debugging in
>>> the future. In which case, use wxLogTrace.
>>>
>>> Per section 4.2 in the coding policy[1], in source files there should be
>>> 2 blank lines between functions except when they are in the class
>>> definition in which case there should be 1 blank line. I also saw a
>>> couple of if{} statements with missing blank lines above.
>>>
>>> It is no longer necessary to wrap strings with the wxT() macro when
>>> using the wxString assignment operator.
>>>
>>> The OUPUTFORMATTER::Print function can throw an IO_ERROR exception. If
>>> you don't handle this, KiCad will most likely crash when it occurs. It
>>> would be a good idea to add a try/catch block in
>>> HYPERLYNX_EXPORTER::Run() and return false when a exception is caught.
>>>
>>> The copyright dates in the qa files are 2018.
>>
>> Thanks Wayne,
>>
>> It looks my settings for VSCode formatter don't catch all Kicad Coding
>> Style rules. Need to fix that ;-). I'll push a version with fixes
>> (including error handling via exceptions).
>>
>> Tom
>>
>> PS. We need to think about factoring out the exporters (including their
>> private settings dialogs) to some sort of plugins...
>>
>
> A plugin architecture for board exporters is a great idea. This would
> be an ideal candidate for a true external plugin architecture similar to
> the 3D model plugin. Maybe there is code that can be factored out into
> a base external plugin object that can be reused for other plugins.
>
> Wayne
>
One other thing I noticed is it looks like the VSCode formatter is
wrapping at 100. The coding policy states 99 so you might want to
change your formatter settings. There were a few places in your patch
where I noticed that the code wrapped by exactly one character.
References