KiBot/docs/source/configuration/outputs/kibom.rst

152 lines
11 KiB
ReStructuredText

.. Automatically generated by KiBot, please don't edit this file
.. index::
pair: KiBoM (KiCad Bill of Materials); kibom
KiBoM (KiCad Bill of Materials)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Used to generate the BoM in HTML or CSV format using the KiBoM plug-in.
For more information: https://github.com/INTI-CMNB/KiBoM
Note that this output is provided as a compatibility tool. |br|
We recommend using the `bom` output instead. |br|
This output is what you get from the 'Tools/Generate Bill of Materials' menu in eeschema. |br|
Also note that here the KiBot concept of variants doesn't apply. |br|
Type: ``kibom``
Parameters:
- **comment** :index:`: <pair: output - kibom; comment>` [string=''] A comment for documentation purposes. It helps to identify the output.
- **dir** :index:`: <pair: output - kibom; dir>` [string='./'] Output directory for the generated files.
If it starts with `+` the rest is concatenated to the default dir.
- **name** :index:`: <pair: output - kibom; name>` [string=''] Used to identify this particular output definition.
Avoid using `_` as first character. These names are reserved for KiBot.
- **options** :index:`: <pair: output - kibom; options>` [dict] Options for the `kibom` output.
- Valid keys:
- **format** :index:`: <pair: output - kibom - options; format>` [string='HTML'] [HTML,CSV,XML,XLSX] Format for the BoM.
- **number** :index:`: <pair: output - kibom - options; number>` [number=1] Number of boards to build (components multiplier).
- **output** :index:`: <pair: output - kibom - options; output>` [string='%f-%i%I%v.%x'] Filename for the output (%i=bom). Affected by global options.
- ``conf`` :index:`: <pair: output - kibom - options; conf>` [string|dict] BoM configuration file, relative to PCB. Environment variables and ~ allowed.
You can also define the configuration here, will be stored in `config.kibom.ini`.
- Valid keys:
- **columns** :index:`: <pair: output - kibom - options - conf; columns>` [list(dict)|list(string)] List of columns to display.
Can be just the name of the field.
- Valid keys:
- **field** :index:`: <pair: output - kibom - options - conf - columns; field>` [string=''] Name of the field to use for this column.
Use `_field_lcsc_part` to get the value defined in the global options.
- **name** :index:`: <pair: output - kibom - options - conf - columns; name>` [string=''] Name to display in the header. The field is used when empty.
- ``join`` :index:`: <pair: output - kibom - options - conf - columns; join>` [list(string)|string=''] List of fields to join to this column.
- **fit_field** :index:`: <pair: output - kibom - options - conf; fit_field>` [string='Config'] Field name used to determine if a particular part is to be fitted (also DNC and variants).
- **group_fields** :index:`: <pair: output - kibom - options - conf; group_fields>` [list(string)] List of fields used for sorting individual components into groups.
Components which match (comparing *all* fields) will be grouped together.
Field names are case-insensitive.
If empty: ['Part', 'Part Lib', 'Value', 'Footprint', 'Footprint Lib'] is used.
- **ignore_dnf** :index:`: <pair: output - kibom - options - conf; ignore_dnf>` [boolean=true] Exclude DNF (Do Not Fit) components.
- **number_rows** :index:`: <pair: output - kibom - options - conf; number_rows>` [boolean=true] First column is the row number.
- ``component_aliases`` :index:`: <pair: output - kibom - options - conf; component_aliases>` [list(list(string))] A series of values which are considered to be equivalent for the part name.
Each entry is a list of equivalen names. Example: ['c', 'c_small', 'cap' ]
will ensure the equivalent capacitor symbols can be grouped together.
If empty the following aliases are used:
- ['r', 'r_small', 'res', 'resistor']
- ['l', 'l_small', 'inductor']
- ['c', 'c_small', 'cap', 'capacitor']
- ['sw', 'switch']
- ['zener', 'zenersmall']
- ['d', 'diode', 'd_small'].
- ``datasheet_as_link`` :index:`: <pair: output - kibom - options - conf; datasheet_as_link>` [string=''] Column with links to the datasheet (HTML only).
- ``digikey_link`` :index:`: <pair: output - kibom - options - conf; digikey_link>` [string|list(string)=''] Column/s containing Digi-Key part numbers, will be linked to web page (HTML only).
- ``exclude_any`` :index:`: <pair: output - kibom - options - conf; exclude_any>` [list(dict)] A series of regular expressions used to exclude parts.
If a component matches ANY of these, it will be excluded.
Column names are case-insensitive.
If empty the following list is used:
- column: References |br|
regex: '^TP[0-9]*'
- column: References |br|
regex: '^FID'
- column: Part |br|
regex: 'mount.*hole'
- column: Part |br|
regex: 'solder.*bridge'
- column: Part |br|
regex: 'test.*point'
- column: Footprint |br|
regex 'test.*point'
- column: Footprint |br|
regex: 'mount.*hole'
- column: Footprint |br|
regex: 'fiducial'.
- Valid keys:
- ``column`` :index:`: <pair: output - kibom - options - conf - exclude_any; column>` [string=''] Name of the column to apply the regular expression.
Use `_field_lcsc_part` to get the value defined in the global options.
- *field* :index:`: <pair: output - kibom - options - conf - exclude_any; field>` Alias for column.
- ``regex`` :index:`: <pair: output - kibom - options - conf - exclude_any; regex>` [string=''] Regular expression to match.
- *regexp* :index:`: <pair: output - kibom - options - conf - exclude_any; regexp>` Alias for regex.
- ``group_connectors`` :index:`: <pair: output - kibom - options - conf; group_connectors>` [boolean=true] Connectors with the same footprints will be grouped together, independent of the name of the connector.
- ``hide_headers`` :index:`: <pair: output - kibom - options - conf; hide_headers>` [boolean=false] Hide column headers.
- ``hide_pcb_info`` :index:`: <pair: output - kibom - options - conf; hide_pcb_info>` [boolean=false] Hide project information.
- ``html_generate_dnf`` :index:`: <pair: output - kibom - options - conf; html_generate_dnf>` [boolean=true] Generate a separated section for DNF (Do Not Fit) components (HTML only).
- ``include_only`` :index:`: <pair: output - kibom - options - conf; include_only>` [list(dict)] A series of regular expressions used to select included parts.
If there are any regex defined here, only components that match against ANY of them will be included.
Column names are case-insensitive.
If empty all the components are included.
- Valid keys:
- ``column`` :index:`: <pair: output - kibom - options - conf - include_only; column>` [string=''] Name of the column to apply the regular expression.
Use `_field_lcsc_part` to get the value defined in the global options.
- *field* :index:`: <pair: output - kibom - options - conf - include_only; field>` Alias for column.
- ``regex`` :index:`: <pair: output - kibom - options - conf - include_only; regex>` [string=''] Regular expression to match.
- *regexp* :index:`: <pair: output - kibom - options - conf - include_only; regexp>` Alias for regex.
- ``merge_blank_fields`` :index:`: <pair: output - kibom - options - conf; merge_blank_fields>` [boolean=true] Component groups with blank fields will be merged into the most compatible group, where possible.
- ``mouser_link`` :index:`: <pair: output - kibom - options - conf; mouser_link>` [string|list(string)=''] Column/s containing Mouser part numbers, will be linked to web page (HTML only).
- ``ref_separator`` :index:`: <pair: output - kibom - options - conf; ref_separator>` [string=' '] Separator used for the list of references.
- ``test_regex`` :index:`: <pair: output - kibom - options - conf; test_regex>` [boolean=true] Each component group will be tested against a number of regular-expressions.
- ``use_alt`` :index:`: <pair: output - kibom - options - conf; use_alt>` [boolean=false] Print grouped references in the alternate compressed style eg: R1-R7,R18.
- ``separator`` :index:`: <pair: output - kibom - options; separator>` [string=','] CSV Separator.
- ``variant`` :index:`: <pair: output - kibom - options; variant>` [string=''] Board variant(s), used to determine which components
are output to the BoM. To specify multiple variants,
with a BOM file exported for each variant, separate
variants with the ';' (semicolon) character.
This isn't related to the KiBot concept of variants.
- **type** :index:`: <pair: output - kibom; type>` 'kibom'
- ``category`` :index:`: <pair: output - kibom; category>` [string|list(string)=''] The category for this output. If not specified an internally defined category is used.
Categories looks like file system paths, i.e. **PCB/fabrication/gerber**.
The categories are currently used for `navigate_results`.
- ``disable_run_by_default`` :index:`: <pair: output - kibom; disable_run_by_default>` [string|boolean] Use it to disable the `run_by_default` status of other output.
Useful when this output extends another and you don't want to generate the original.
Use the boolean true value to disable the output you are extending.
- ``extends`` :index:`: <pair: output - kibom; extends>` [string=''] Copy the `options` section from the indicated output.
Used to inherit options from another output of the same type.
- ``groups`` :index:`: <pair: output - kibom; groups>` [string|list(string)=''] One or more groups to add this output. In order to catch typos
we recommend to add outputs only to existing groups. You can create an empty group if
needed.
- ``output_id`` :index:`: <pair: output - kibom; output_id>` [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
- ``priority`` :index:`: <pair: output - kibom; priority>` [number=50] [0,100] Priority for this output. High priority outputs are created first.
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
- ``run_by_default`` :index:`: <pair: output - kibom; run_by_default>` [boolean=true] When enabled this output will be created when no specific outputs are requested.