← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] [RFC] Exporter for Mentor Hyperlynx



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

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.


Follow ups