diff --git a/docs/syntax.md b/docs/syntax.md index a0a30c27..a0d9041b 100644 --- a/docs/syntax.md +++ b/docs/syntax.md @@ -43,9 +43,12 @@ additional_bom_items: # custom items to add to BOM notes: # product information (all optional) - pn: # [internal] part number - mpn: # manufacturer part number - manufacturer: # manufacturer name + ignore_in_bom: # if set to true the connector is not added to the BOM + pn: # [internal] part number + mpn: # manufacturer part number + manufacturer: # manufacturer name + additional_components: # additional components + - # additional component (see below) # pinout information # at least one of the following must be specified @@ -108,9 +111,12 @@ Since the auto-incremented and auto-assigned designator is not known to the user notes: # product information (all optional) - pn: # [internal] part number - mpn: # manufacturer part number - manufacturer: # manufacturer name + ignore_in_bom: # if set to true the cable or wires are not added to the BOM + pn: # [internal] part number + mpn: # manufacturer part number + manufacturer: # manufacturer name + additional_components: # additional components + - # additional component (see below) # conductor information # the following combinations are permitted: @@ -212,27 +218,42 @@ For connectors with `autogenerate: true`, a new instance, with auto-generated de - `-` auto-expands to a range. -## BOM items +## BOM items and additional components -Connectors (both regular, and auto-generated), cables, and wires of a bundle are automatically added to the BOM. +Connectors (both regular, and auto-generated), cables, and wires of a bundle are automatically added to the BOM, +unless the `ignore_in_bom` attribute is set to `true`. +Additional items can be added to the BOM as either part of a connector or cable or on their own. - +Parts can be added to a connector or cable in the section `` which will also list them in the graph. -Additional BOM entries can be generated in the sections marked `` above. +```yaml +- + type: # type of additional component + # all the following are optional: + subtype: # additional description (only shown in bom) + qty: # qty to add to the bom (defaults to 1) + qty_multiplier: # multiplies qty by a feature of the parent component + # when used in a connector: + # pincount number of pins of connector + # populated number of populated positions in a connector + # when used in a cable: + # wirecount number of wires of cable/bundle + # terminations number of terminations on a cable/bundle + # length length of cable/bundle + # total_length sum of lengths of each wire in the bundle + unit: + pn: # [internal] part number + mpn: # manufacturer part number + manufacturer: # manufacturer name +``` - +Alternatively items can be added to just the BOM by putting them in the section `` above. ```yaml - description: - qty: # when used in the additional_bom_items section: - # manually specify qty. - # when used within a component: - # manually specify qty. - # pincount match number of pins of connector - # wirecount match number of wires of cable/bundle - # connectioncount match number of connected pins # all the following are optional: + qty: # qty to add to the bom (defaults to 1) unit: designators: pn: # [internal] part number diff --git a/src/wireviz/Harness.py b/src/wireviz/Harness.py index 06e3dc4f..b729d0a3 100644 --- a/src/wireviz/Harness.py +++ b/src/wireviz/Harness.py @@ -418,7 +418,7 @@ def bom(self): for item in self.additional_bom_items: bom_entries.append({ - 'item': item.get('description', ''), 'qty': item.get('qty'), 'unit': item.get('unit'), 'designators': item.get('designators'), + 'item': item.get('description', ''), 'qty': item.get('qty', 1), 'unit': item.get('unit'), 'designators': item.get('designators'), 'manufacturer': item.get('manufacturer'), 'mpn': item.get('mpn'), 'pn': item.get('pn') })