diff --git a/src/example1.py b/src/example1.py new file mode 100644 index 0000000..51e8472 --- /dev/null +++ b/src/example1.py @@ -0,0 +1,14 @@ +import wireviz + +X1 = wireviz.Node('X1', type='D-Sub', gender='female', pinout=('DCD','RX','TX','DTR','GND','DSR','RTS','CTS','RI'), ports_right=True) +X2 = wireviz.Node('X2', type='Molex KK 254', gender='female', pinout=('GND','RX','TX','NC','OUT','IN'), ports_left=True) +W1 = wireviz.Cable('W1', mm2=0.25, length=0.2, show_name=True, show_pinout=True, num_wires=3, color_code='DIN', shield=True) +# Option 1: define wires and shield in one line +# W1.connect(X1,(5,2,3,5),(1,2,3,'s'),X2,(1,3,2,None)) +# Option 2: define wires and shield separately +W1.connect(X1,(5,2,3),'auto',X2,(1,3,2)) # wires +W1.connect(X1,(5,),('s',),X2,(None,)) # shield +X2.loop(5,6) +objects = [X1, X2, W1] + +wireviz.output(objects) diff --git a/src/example2.py b/src/example2.py new file mode 100644 index 0000000..25de389 --- /dev/null +++ b/src/example2.py @@ -0,0 +1,32 @@ +import wireviz + +PINOUT_I2C = ('GND','+5V','SCL','SDA') +COLORS_I2C = ('BK', 'RD', 'YE', 'GN') + +PINOUT_SPI_DATAONLY = ('MISO','MOSI','SCK') + +X1 = wireviz.Node('X1',type='Molex KK 254', gender='female', pinout=( +'GND', +'+5V', +'SCL', +'SDA', +'MISO', +'MOSI', +'SCK', +'N/C' +), ports_right=True) +X2 = wireviz.Node('X2', type='Molex KK 254', gender='female', pinout=PINOUT_I2C, ports_left=True) +X3 = wireviz.Node('X3', type='Molex KK 254', gender='female', pinout=PINOUT_I2C, ports_left=True) +X4 = wireviz.Node('X4', type='Molex KK 254', gender='female', pinout=('GND','+12V')+PINOUT_SPI_DATAONLY, ports_left=True) +X5 = wireviz.Node('X5', type='Molex Micro-Fit', gender='male', pinout=('GND','+12V'), ports_right=True) +W1 = wireviz.Cable('W1', mm2=0.14, length=0.2, colors=COLORS_I2C) +W2 = wireviz.Cable('W2', mm2=0.14, length=0.2, colors=COLORS_I2C) +W3 = wireviz.Cable('W3', mm2=0.14, length=0.2, colors=('BK','BU','OG','VT')) +W4 = wireviz.Cable('W4', mm2=0.5, length=0.35, colors=('BK','RD')) +W1.connect(X1,(1,2,3,4),'auto',X2,'auto') +W2.connect(X1,(1,2,3,4),'auto',X3,'auto') +W3.connect(X1,(1,5,6,7),'auto',X4,(1,3,4,5)) +W4.connect(X5,'auto','auto',X4,'auto') +objects = [X1, X2, X3, X4, X5, W1, W2, W3, W4] + +wireviz.output(objects) diff --git a/src/example3.py b/src/example3.py new file mode 100644 index 0000000..06a09dd --- /dev/null +++ b/src/example3.py @@ -0,0 +1,15 @@ +import wireviz + +wireviz.color_mode = 'full' # short/SHORT/full/FULL/hex/HEX + +X1 = wireviz.Node('X1', num_pins=10, ports_right=True) +X2 = wireviz.Node('X2', num_pins=10, ports_left=True) +W1 = wireviz.Cable('W1', num_wires=10, color_code='IEC') +W1.connect_all_straight(X1,X2) +X3 = wireviz.Node('X3', num_pins=10, ports_right=True) +X4 = wireviz.Node('X4', num_pins=10, ports_left=True) +W2 = wireviz.Cable('W2', num_wires=10, color_code='DIN') +W2.connect_all_straight(X3,X4) +objects = [X1, X2, W1, X3, X4, W2] + +wireviz.output(objects) diff --git a/src/test.py b/src/test.py deleted file mode 100644 index 2752bda..0000000 --- a/src/test.py +++ /dev/null @@ -1,76 +0,0 @@ -import wireviz - - -PINOUT_I2C = ('GND','+5V','SCL','SDA') -COLORS_I2C = ('BK', 'RD', 'YE', 'GN') - -PINOUT_SPI_DATAONLY = ('MISO','MOSI','SCK') - -wireviz.color_mode = 'SHORT' # short/SHORT/full/FULL/hex/HEX - -# example 1 -X1 = wireviz.Node('X1', type='D-Sub', gender='female', pinout=('DCD','RX','TX','DTR','GND','DSR','RTS','CTS','RI'), ports_right=True) -X2 = wireviz.Node('X2', type='Molex KK 254', gender='female', pinout=('GND','RX','TX','NC','OUT','IN'), ports_left=True) -W1 = wireviz.Cable('W1', mm2=0.25, length=0.2, show_name=True, show_pinout=True, num_wires=3, color_code='DIN', shield=True) -# Option 1: define wires and shield in one line -# W1.connect(X1,(5,2,3,5),(1,2,3,'s'),X2,(1,3,2,None)) -# Option 2: define wires and shield separately -W1.connect(X1,(5,2,3),'auto',X2,(1,3,2)) # wires -W1.connect(X1,(5,),('s',),X2,(None,)) # shield -X2.loop(5,6) -objects = [X1, X2, W1] - -# example 2 -# X1 = wireviz.Node('X1',type='Molex KK 254', gender='female', pinout=( -# 'GND', -# '+5V', -# 'SCL', -# 'SDA', -# 'MISO', -# 'MOSI', -# 'SCK', -# 'N/C' -# ), ports_right=True) -# X2 = wireviz.Node('X2', type='Molex KK 254', gender='female', pinout=PINOUT_I2C, ports_left=True) -# X3 = wireviz.Node('X3', type='Molex KK 254', gender='female', pinout=PINOUT_I2C, ports_left=True) -# X4 = wireviz.Node('X4', type='Molex KK 254', gender='female', pinout=('GND','+12V')+PINOUT_SPI_DATAONLY, ports_left=True) -# X5 = wireviz.Node('X5', type='Molex Micro-Fit', gender='male', pinout=('GND','+12V'), ports_right=True) -# W1 = wireviz.Cable('W1', mm2=0.14, length=0.2, colors=COLORS_I2C) -# W2 = wireviz.Cable('W2', mm2=0.14, length=0.2, colors=COLORS_I2C) -# W3 = wireviz.Cable('W3', mm2=0.14, length=0.2, colors=('BK','BU','OG','VT')) -# W4 = wireviz.Cable('W4', mm2=0.5, length=0.35, colors=('BK','RD')) -# W1.connect(X1,(1,2,3,4),'auto',X2,'auto') -# W2.connect(X1,(1,2,3,4),'auto',X3,'auto') -# W3.connect(X1,(1,5,6,7),'auto',X4,(1,3,4,5)) -# W4.connect(X5,'auto','auto',X4,'auto') -# objects = [X1, X2, X3, X4, X5, W1, W2, W3, W4] - -# example 3 -# X1 = wireviz.Node('X1', num_pins=10, ports_right=True) -# X2 = wireviz.Node('X2', num_pins=10, ports_left=True) -# W1 = wireviz.Cable('W1', num_wires=10, color_code='IEC') -# W1.connect_all_straight(X1,X2) -# X3 = wireviz.Node('X3', num_pins=10, ports_right=True) -# X4 = wireviz.Node('X4', num_pins=10, ports_left=True) -# W2 = wireviz.Cable('W2', num_wires=10, color_code='DIN') -# W2.connect_all_straight(X3,X4) -# objects = [X1, X2, W1, X3, X4, W2] - -with open('output/output.dot','w') as f: - with open('input/header.dot','r') as infile: - for line in infile: - f.write(line) - f.write('\n\n') - - for o in objects: - f.write(o.graphviz() + '\n') - - f.write('\n\n') - with open('input/footer.dot','r') as infile: - for line in infile: - f.write(line) - -# print output file -# with open('output/output.dot','r') as f: -# for line in f: -# print(line) diff --git a/src/wireviz.py b/src/wireviz.py index b63dae9..254bdad 100644 --- a/src/wireviz.py +++ b/src/wireviz.py @@ -281,3 +281,23 @@ class Cable: s = s + '}' return s + +def output(objects, print_to_screen=False): + with open('output/output.dot','w') as f: + with open('input/header.dot','r') as infile: + for line in infile: + f.write(line) + f.write('\n\n') + + for o in objects: + f.write(o.graphviz() + '\n') + + f.write('\n\n') + with open('input/footer.dot','r') as infile: + for line in infile: + f.write(line) + + if print_to_screen == True: + with open('output/output.dot','r') as f: + for line in f: + print(line)