Added ability to set part numbers
This commit is contained in:
parent
a3728f52ce
commit
92b6b21895
@ -90,7 +90,7 @@ class Harness:
|
|||||||
|
|
||||||
else: # not a ferrule
|
else: # not a ferrule
|
||||||
# a = attributes
|
# a = attributes
|
||||||
a = [n.type,
|
a = [n.part_number, n.type,
|
||||||
n.subtype,
|
n.subtype,
|
||||||
'{}-pin'.format(n.pincount) if n.show_pincount else '']
|
'{}-pin'.format(n.pincount) if n.show_pincount else '']
|
||||||
# p = pinout
|
# p = pinout
|
||||||
@ -123,7 +123,8 @@ class Harness:
|
|||||||
|
|
||||||
for k, c in self.cables.items():
|
for k, c in self.cables.items():
|
||||||
# a = attributes
|
# a = attributes
|
||||||
a = ['{}x'.format(len(c.colors)) if c.show_wirecount else '',
|
a = [c.part_number,
|
||||||
|
'{}x'.format(len(c.colors)) if c.show_wirecount else '',
|
||||||
'{} {}{}'.format(c.gauge, c.gauge_unit, ' ({} AWG)'.format(awg_equiv(c.gauge)) if c.gauge_unit == 'mm\u00B2' and c.show_equiv else '') if c.gauge else '', # TODO: show equiv
|
'{} {}{}'.format(c.gauge, c.gauge_unit, ' ({} AWG)'.format(awg_equiv(c.gauge)) if c.gauge_unit == 'mm\u00B2' and c.show_equiv else '') if c.gauge else '', # TODO: show equiv
|
||||||
'+ S' if c.shield else '',
|
'+ S' if c.shield else '',
|
||||||
'{} m'.format(c.length) if c.length > 0 else '']
|
'{} m'.format(c.length) if c.length > 0 else '']
|
||||||
@ -253,11 +254,14 @@ class Harness:
|
|||||||
shared = next(iter(items.values()))
|
shared = next(iter(items.values()))
|
||||||
designators = list(items.keys())
|
designators = list(items.keys())
|
||||||
designators.sort()
|
designators.sort()
|
||||||
|
part_number = shared.part_number
|
||||||
name = 'Connector{type}{subtype}{pincount}{color}'.format(type = ', {}'.format(shared.type) if shared.type else '',
|
name = 'Connector{type}{subtype}{pincount}{color}'.format(type = ', {}'.format(shared.type) if shared.type else '',
|
||||||
subtype = ', {}'.format(shared.subtype) if shared.subtype else '',
|
subtype = ', {}'.format(shared.subtype) if shared.subtype else '',
|
||||||
pincount = ', {} pins'.format(shared.pincount) if shared.category != 'ferrule' else '',
|
pincount = ', {} pins'.format(shared.pincount) if shared.category != 'ferrule' else '',
|
||||||
color = ', {}'.format(shared.color) if shared.color else '')
|
color = ', {}'.format(shared.color) if shared.color else '')
|
||||||
item = {'item': name, 'qty': len(designators), 'unit': '', 'designators': designators if shared.category != 'ferrule' else ''}
|
item = {'item': name, 'qty': len(designators), 'unit': '', 'designators': designators if shared.category != 'ferrule' else ''}
|
||||||
|
if part_number is not None: # set part number only if it exists
|
||||||
|
item['part number'] = part_number
|
||||||
bom_connectors.append(item)
|
bom_connectors.append(item)
|
||||||
bom_connectors = sorted(bom_connectors, key=lambda k: k['item']) # https://stackoverflow.com/a/73050
|
bom_connectors = sorted(bom_connectors, key=lambda k: k['item']) # https://stackoverflow.com/a/73050
|
||||||
bom.extend(bom_connectors)
|
bom.extend(bom_connectors)
|
||||||
@ -269,11 +273,14 @@ class Harness:
|
|||||||
if shared.category != 'bundle':
|
if shared.category != 'bundle':
|
||||||
designators = list(items.keys())
|
designators = list(items.keys())
|
||||||
designators.sort()
|
designators.sort()
|
||||||
|
part_number = shared.part_number
|
||||||
total_length = sum(i.length for i in items.values())
|
total_length = sum(i.length for i in items.values())
|
||||||
name = 'Cable, {wirecount}{gauge}{shield}'.format(wirecount = shared.wirecount,
|
name = 'Cable, {wirecount}{gauge}{shield}'.format(wirecount = shared.wirecount,
|
||||||
gauge = ' x {} {}'.format(shared.gauge, shared.gauge_unit) if shared.gauge else ' wires',
|
gauge = ' x {} {}'.format(shared.gauge, shared.gauge_unit) if shared.gauge else ' wires',
|
||||||
shield = ' shielded' if shared.shield else '')
|
shield = ' shielded' if shared.shield else '')
|
||||||
item = {'item': name, 'qty': round(total_length, 3), 'unit': 'm', 'designators': designators}
|
item = {'item': name, 'qty': round(total_length, 3), 'unit': 'm', 'designators': designators}
|
||||||
|
if part_number is not None: # set part number only if it exists
|
||||||
|
item['part number'] = part_number
|
||||||
bom_cables.append(item)
|
bom_cables.append(item)
|
||||||
# bundles (ignores wirecount)
|
# bundles (ignores wirecount)
|
||||||
wirelist = []
|
wirelist = []
|
||||||
@ -309,6 +316,9 @@ class Harness:
|
|||||||
def bom_list(self):
|
def bom_list(self):
|
||||||
bom = self.bom()
|
bom = self.bom()
|
||||||
keys = ['item', 'qty', 'unit', 'designators']
|
keys = ['item', 'qty', 'unit', 'designators']
|
||||||
|
# check if any part numbers are set
|
||||||
|
if any("part number" in x for x in bom):
|
||||||
|
keys.append("part number")
|
||||||
bom_list = []
|
bom_list = []
|
||||||
bom_list.append([k.capitalize() for k in keys]) # create header row with keys
|
bom_list.append([k.capitalize() for k in keys]) # create header row with keys
|
||||||
for item in bom:
|
for item in bom:
|
||||||
@ -322,6 +332,7 @@ class Harness:
|
|||||||
@dataclass
|
@dataclass
|
||||||
class Connector:
|
class Connector:
|
||||||
name: str
|
name: str
|
||||||
|
part_number: str = None
|
||||||
category: str = None
|
category: str = None
|
||||||
type: str = None
|
type: str = None
|
||||||
subtype: str = None
|
subtype: str = None
|
||||||
@ -372,6 +383,7 @@ class Connector:
|
|||||||
@dataclass
|
@dataclass
|
||||||
class Cable:
|
class Cable:
|
||||||
name: str
|
name: str
|
||||||
|
part_number: str = None
|
||||||
category : str = None
|
category : str = None
|
||||||
type: str = None
|
type: str = None
|
||||||
gauge: float = None
|
gauge: float = None
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user