Multiple different colored loops
This commit is contained in:
parent
304b8df0be
commit
adb3ce8fe2
@ -178,8 +178,6 @@ class Harness:
|
|||||||
fillcolor=translate_color(self.options.bgcolor_connector, "HEX"))
|
fillcolor=translate_color(self.options.bgcolor_connector, "HEX"))
|
||||||
|
|
||||||
if len(connector.loops) > 0:
|
if len(connector.loops) > 0:
|
||||||
loop_color_hex = translate_color(connector.loop_color, "hex")
|
|
||||||
dot.attr('edge', color=f'#000000:{loop_color_hex}:#000000')
|
|
||||||
if connector.ports_left:
|
if connector.ports_left:
|
||||||
loop_side = 'l'
|
loop_side = 'l'
|
||||||
loop_dir = 'w'
|
loop_dir = 'w'
|
||||||
@ -187,18 +185,34 @@ class Harness:
|
|||||||
loop_side = 'r'
|
loop_side = 'r'
|
||||||
loop_dir = 'e'
|
loop_dir = 'e'
|
||||||
else:
|
else:
|
||||||
raise Exception('No side for loops')
|
raise Exception('No side for loops')
|
||||||
|
|
||||||
|
color_iter = iter(wv_colors.COLOR_CODES["DIN"])
|
||||||
for loop in connector.loops:
|
for loop in connector.loops:
|
||||||
|
if type(loop) == dict:
|
||||||
|
color = list(loop.keys())[0]
|
||||||
|
loop = loop[color]
|
||||||
|
else:
|
||||||
|
color = next(color_iter)
|
||||||
|
loop_color_hex = translate_color(color, "hex")
|
||||||
|
dot.attr('edge', color=f'#000000:{loop_color_hex}:#000000')
|
||||||
loop_pins = []
|
loop_pins = []
|
||||||
for pin in loop:
|
for pin in loop:
|
||||||
if connector.pins.count(pin) == 1:
|
if pin in connector.pins:
|
||||||
loop_pins.append(connector.pins.index(pin)+1)
|
loop_pins.append(connector.pins.index(pin)+1)
|
||||||
elif connector.pinlabels.count(pin) == 1:
|
elif pin in connector.pinlabels:
|
||||||
loop_pins.append(connector.pinlabels.index(pin)+1)
|
loop_pins.append(connector.pinlabels.index(pin)+1)
|
||||||
else:
|
else:
|
||||||
raise Exception(f"Didn't find exactly one {connector.name}:{pin} to loop into")
|
raise Exception(f"Didn't find exactly one {connector.name}:{pin} to loop into")
|
||||||
dot.edge(f'{connector.name}:p{loop_pins[0]}{loop_side}:{loop_dir}',
|
first = True
|
||||||
f'{connector.name}:p{loop_pins[1]}{loop_side}:{loop_dir}')
|
for found in loop_pins:
|
||||||
|
if first:
|
||||||
|
first = False
|
||||||
|
prev = found
|
||||||
|
else:
|
||||||
|
dot.edge(f'{connector.name}:p{prev}{loop_side}:{loop_dir}',
|
||||||
|
f'{connector.name}:p{found}{loop_side}:{loop_dir}')
|
||||||
|
prev = found
|
||||||
|
|
||||||
|
|
||||||
# determine if there are double- or triple-colored wires in the harness;
|
# determine if there are double- or triple-colored wires in the harness;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user