kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #05087
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