From dec64abaf50e3e6966c25c8838109234f92ed512 Mon Sep 17 00:00:00 2001 From: William Sutton Date: Fri, 28 Aug 2020 18:00:21 -0400 Subject: [PATCH] Add support for wire length units Based on #161, #162, #171. Co-authored-by: stevegt Co-authored-by: kvid --- src/wireviz/DataClasses.py | 4 ++++ src/wireviz/Harness.py | 2 +- src/wireviz/wv_bom.py | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/wireviz/DataClasses.py b/src/wireviz/DataClasses.py index 48be7062..c2d680d6 100644 --- a/src/wireviz/DataClasses.py +++ b/src/wireviz/DataClasses.py @@ -176,6 +176,7 @@ class Cable: gauge_unit: Optional[str] = None show_equiv: bool = False length: float = 0 + length_unit: Optional[str] = None color: Optional[Color] = None wirecount: Optional[int] = None shield: Union[bool, Color] = False @@ -215,6 +216,9 @@ def __post_init__(self) -> None: self.connections = [] + if self.length_unit is None: #Default wire length units to meters if left undeclared + self.length_unit = 'm' + if self.wirecount: # number of wires explicitly defined if self.colors: # use custom color palette (partly or looped if needed) pass diff --git a/src/wireviz/Harness.py b/src/wireviz/Harness.py index 352f93b2..9d83a3df 100644 --- a/src/wireviz/Harness.py +++ b/src/wireviz/Harness.py @@ -203,7 +203,7 @@ def create_graph(self) -> Graph: f'{cable.wirecount}x' if cable.show_wirecount else None, f'{cable.gauge} {cable.gauge_unit}{awg_fmt}' if cable.gauge else None, '+ S' if cable.shield else None, - f'{cable.length} m' if cable.length > 0 else None, + f'{cable.length} {cable.length_unit}' if cable.length > 0 else None, cable.color, html_colorbar(cable.color)], '', [html_image(cable.image)], diff --git a/src/wireviz/wv_bom.py b/src/wireviz/wv_bom.py index a854ac86..ac5b071d 100644 --- a/src/wireviz/wv_bom.py +++ b/src/wireviz/wv_bom.py @@ -67,7 +67,7 @@ def generate_bom(harness): + (f' x {cable.gauge} {cable.gauge_unit}' if cable.gauge else ' wires') + (' shielded' if cable.shield else '')) bom_entries.append({ - 'item': description, 'qty': cable.length, 'unit': 'm', 'designators': cable.name if cable.show_name else None, + 'item': description, 'qty': cable.length, 'unit': cable.length_unit, 'designators': cable.name if cable.show_name else None, 'manufacturer': cable.manufacturer, 'mpn': cable.mpn, 'pn': cable.pn }) else: @@ -78,7 +78,7 @@ def generate_bom(harness): + (f', {cable.gauge} {cable.gauge_unit}' if cable.gauge else '') + (f', {color}' if color else '')) bom_entries.append({ - 'item': description, 'qty': cable.length, 'unit': 'm', 'designators': cable.name if cable.show_name else None, + 'item': description, 'qty': cable.length, 'unit': cable.length_unit, 'designators': cable.name if cable.show_name else None, 'manufacturer': index_if_list(cable.manufacturer, index), 'mpn': index_if_list(cable.mpn, index), 'pn': index_if_list(cable.pn, index) })