← Back to team overview

kicad-developers team mailing list archive

Re: BOM support

 

> I am trying to reach the right comprise between clarity and lack of
> verbosity, and to avoid situations where we have to change ' ' with
> '_' by keeping things wrapped with proper XML syntax.


The attached file is a revision that actually passes through xmllint.  
I am calling it "version A" format.
We can switch to version="1" after it stabilizes, using letters until then.


Changes:

1) Promoted <value>, <footprint> <datasheet> outside <fields> so they
are easier to reference with xpath and faster to find.

2) Wrap the fields in a <field> element so the names can have spaces in
them.

3) Separated the libsource element's value up into two attributes, lib
and part.

4) changed <image> to <libpart>

5) added <sheetpath> to <component>.

6) added attributes lib and part to <libpart>.

7) changed <nodes>'s part to ref.


As I say, this passes xmllint now so Brian you can see if your python
code can start to load it, and of course you can add additional records
with a text editor.

And for others, feedback is still welcomed.

I am not totally comfortable with the name <component> as it is a bit
too long for my taste.


Dick


<!-- This is the proposed generic netlist format for Kicad's EESCHEMA
     version A.
-->


<netlist version="A">

<!--one for every component instantiation: -->

<component ref="R23">
  <value>123k</value>

  <sheetpath>cfcard.sch</sheetpath>

  <!-- present only if non blank -->
  <footprint>SM0201</footprint> <!-- desired, not actual -->

  <!-- present only if non blank -->
  <datasheet>dontsheetonmydesk.pdf</datasheet>

  <fields>
     <!-- user defined fields start here. this user is trying to help
          himself in the BOM creation process and has extra fields:
      -->
     <field name="Manufacturer">TI</field>
     <field name="Vendor">Digikey ABCD123</field>
  </fields>

  <tstamp>45DC86E7</tstamp>

  <libsource lib="logical_libname" part="partname"/>

  <!-- pins are intentionally not described here since
       we really don't want to repeat something verbose
       that would need to be duplicated per instance.
  -->

</component>


<!-- Then there could be something like specctra's image,
     one for each unique libarary part:
-->

<libpart lib="logical_libname" part="partname">

    <!-- here could be a full work up on the pins of
         the part, and as much
         graphical detail as needed.
    -->

    <pins>  <!--generically speaking -->

        help welcomed

    </pins>

</libpart>

<!--Then one block of nets-->

<nets>

  <net name="/cfcard.sch/WAIT#">
    <node ref="R23" pin="1"/>
    <node ref="U18" pin="12"/>
  </net>

  <net>
  </net>

</nets>

</netlist>


Follow ups

References