diff --git a/examples/example1.gv b/examples/example1.gv new file mode 100644 index 0000000..4c36ab6 --- /dev/null +++ b/examples/example1.gv @@ -0,0 +1,20 @@ +graph { + graph [bgcolor=transparent fontname=arial rankdir=LR ranksep=2] + node [fillcolor=white fontname=arial shape=record style="rounded,filled"] + edge [fontname=arial style=bold] + X1 [label="X1|{D-Sub|female|9-pin}|{{DCD|RX|TX|DTR|GND|DSR|RTS|CTS|RI}|{1|2|3|4|5|6|7|8|9}}"] + X2 [label="X2|{Molex KK 254|female|6-pin}|{{1|2|3|4|5|6}|{GND|RX|TX|NC|OUT|IN}}"] + X2:p5:w -- X2:p6:w + W1 [label="W1|{3x|0.25 mm²|+ S|0.2 m}|{{1|2|3|}|{WH|BN|GN|Shield}|{1|2|3|}}"] + edge [color="#000000:#ffffff:#000000"] + X1:p5 -- W1:w1i + W1:w1o -- X2:p1 + edge [color="#000000:#666600:#000000"] + X1:p2 -- W1:w2i + W1:w2o -- X2:p3 + edge [color="#000000:#00ff00:#000000"] + X1:p3 -- W1:w3i + W1:w3o -- X2:p2 + edge [color="#000000"] + X1:p5 -- W1:wsi +} diff --git a/examples/example1.png b/examples/example1.png new file mode 100644 index 0000000..8fcfd59 Binary files /dev/null and b/examples/example1.png differ diff --git a/examples/example1.svg b/examples/example1.svg new file mode 100644 index 0000000..5a39842 --- /dev/null +++ b/examples/example1.svg @@ -0,0 +1,185 @@ + + + + + + + + +X1 + +X1 + +D-Sub + +female + +9-pin + +DCD + +RX + +TX + +DTR + +GND + +DSR + +RTS + +CTS + +RI + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + + + +W1 + +W1 + +3x + +0.25 mm² + ++ S + +0.2 m + +1 + +2 + +3 + + + +WH + +BN + +GN + +Shield + +1 + +2 + +3 + + + + + +X1:p5--W1:w1i + + + + + + +X1:p2--W1:w2i + + + + + + +X1:p3--W1:w3i + + + + + + +X1:p5--W1:wsi + + + + +X2 + +X2 + +Molex KK 254 + +female + +6-pin + +1 + +2 + +3 + +4 + +5 + +6 + +GND + +RX + +TX + +NC + +OUT + +IN + + + +X2:w--X2:w + + + + +W1:w1o--X2:p1 + + + + + + +W1:w2o--X2:p3 + + + + + + +W1:w3o--X2:p2 + + + + + + diff --git a/examples/example2.gv b/examples/example2.gv new file mode 100644 index 0000000..8cb99aa --- /dev/null +++ b/examples/example2.gv @@ -0,0 +1,56 @@ +graph { + graph [bgcolor=transparent fontname=arial rankdir=LR ranksep=2] + node [fillcolor=white fontname=arial shape=record style="rounded,filled"] + edge [fontname=arial style=bold] + X1 [label="X1|{Molex KK 254|female|8-pin}|{{GND|+5V|SCL|SDA|MISO|MOSI|SCK|N/C}|{1|2|3|4|5|6|7|8}}"] + X2 [label="X2|{Molex KK 254|female|4-pin}|{{1|2|3|4}|{GND|+5V|SCL|SDA}}"] + X3 [label="X3|{Molex KK 254|female|4-pin}|{{1|2|3|4}|{GND|+5V|SCL|SDA}}"] + X4 [label="X4|{Molex KK 254|female|5-pin}|{{1|2|3|4|5}|{GND|+12V|MISO|MOSI|SCK}}"] + X5 [label="X5|{Molex Micro-Fit|male|2-pin}|{{GND|+12V}|{1|2}}"] + W1 [label="{4x|0.14 mm² (26 AWG)|0.2 m}|{{BK|RD|YE|GN}}"] + edge [color="#000000:#000000:#000000"] + X1:p1 -- W1:w1 + W1:w1 -- X2:p1 + edge [color="#000000:#ff0000:#000000"] + X1:p2 -- W1:w2 + W1:w2 -- X2:p2 + edge [color="#000000:#ffff00:#000000"] + X1:p3 -- W1:w3 + W1:w3 -- X2:p3 + edge [color="#000000:#00ff00:#000000"] + X1:p4 -- W1:w4 + W1:w4 -- X2:p4 + W2 [label="{4x|0.14 mm² (26 AWG)|0.2 m}|{{BK|RD|YE|GN}}"] + edge [color="#000000:#000000:#000000"] + X1:p1 -- W2:w1 + W2:w1 -- X3:p1 + edge [color="#000000:#ff0000:#000000"] + X1:p2 -- W2:w2 + W2:w2 -- X3:p2 + edge [color="#000000:#ffff00:#000000"] + X1:p3 -- W2:w3 + W2:w3 -- X3:p3 + edge [color="#000000:#00ff00:#000000"] + X1:p4 -- W2:w4 + W2:w4 -- X3:p4 + W3 [label="{4x|0.14 mm² (26 AWG)|0.2 m}|{{BK|BU|OG|VT}}"] + edge [color="#000000:#000000:#000000"] + X1:p1 -- W3:w1 + W3:w1 -- X4:p1 + edge [color="#000000:#0000ff:#000000"] + X1:p5 -- W3:w2 + W3:w2 -- X4:p3 + edge [color="#000000:#ff8000:#000000"] + X1:p6 -- W3:w3 + W3:w3 -- X4:p4 + edge [color="#000000:#8000ff:#000000"] + X1:p7 -- W3:w4 + W3:w4 -- X4:p5 + W4 [label="{2x|0.5 mm² (21 AWG)|0.35 m}|{{BK|RD}}"] + edge [color="#000000:#000000:#000000"] + X5:p1 -- W4:w1 + W4:w1 -- X4:p1 + edge [color="#000000:#ff0000:#000000"] + X5:p2 -- W4:w2 + W4:w2 -- X4:p2 +} diff --git a/examples/example2.png b/examples/example2.png new file mode 100644 index 0000000..8303d9c Binary files /dev/null and b/examples/example2.png differ diff --git a/examples/example2.svg b/examples/example2.svg new file mode 100644 index 0000000..0a6c23d --- /dev/null +++ b/examples/example2.svg @@ -0,0 +1,427 @@ + + + + + + + + +X1 + +X1 + +Molex KK 254 + +female + +8-pin + +GND + ++5V + +SCL + +SDA + +MISO + +MOSI + +SCK + +N/C + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + + + +W1 + +4x + +0.14 mm² (26 AWG) + +0.2 m + +BK + +RD + +YE + +GN + + + +X1:p1--W1:w1 + + + + + + +X1:p2--W1:w2 + + + + + + +X1:p3--W1:w3 + + + + + + +X1:p4--W1:w4 + + + + + + +W2 + +4x + +0.14 mm² (26 AWG) + +0.2 m + +BK + +RD + +YE + +GN + + + +X1:p1--W2:w1 + + + + + + +X1:p2--W2:w2 + + + + + + +X1:p3--W2:w3 + + + + + + +X1:p4--W2:w4 + + + + + + +W3 + +4x + +0.14 mm² (26 AWG) + +0.2 m + +BK + +BU + +OG + +VT + + + +X1:p1--W3:w1 + + + + + + +X1:p5--W3:w2 + + + + + + +X1:p6--W3:w3 + + + + + + +X1:p7--W3:w4 + + + + + + +X2 + +X2 + +Molex KK 254 + +female + +4-pin + +1 + +2 + +3 + +4 + +GND + ++5V + +SCL + +SDA + + + +X3 + +X3 + +Molex KK 254 + +female + +4-pin + +1 + +2 + +3 + +4 + +GND + ++5V + +SCL + +SDA + + + +X4 + +X4 + +Molex KK 254 + +female + +5-pin + +1 + +2 + +3 + +4 + +5 + +GND + ++12V + +MISO + +MOSI + +SCK + + + +X5 + +X5 + +Molex Micro-Fit + +male + +2-pin + +GND + ++12V + +1 + +2 + + + +W4 + +2x + +0.5 mm² (21 AWG) + +0.35 m + +BK + +RD + + + +X5:p1--W4:w1 + + + + + + +X5:p2--W4:w2 + + + + + + +W1:w1--X2:p1 + + + + + + +W1:w2--X2:p2 + + + + + + +W1:w3--X2:p3 + + + + + + +W1:w4--X2:p4 + + + + + + +W2:w1--X3:p1 + + + + + + +W2:w2--X3:p2 + + + + + + +W2:w3--X3:p3 + + + + + + +W2:w4--X3:p4 + + + + + + +W3:w1--X4:p1 + + + + + + +W3:w2--X4:p3 + + + + + + +W3:w3--X4:p4 + + + + + + +W3:w4--X4:p5 + + + + + + +W4:w1--X4:p1 + + + + + + +W4:w2--X4:p2 + + + + + + diff --git a/examples/example3.gv b/examples/example3.gv new file mode 100644 index 0000000..843338e --- /dev/null +++ b/examples/example3.gv @@ -0,0 +1,185 @@ +graph { + graph [bgcolor=transparent fontname=arial rankdir=LR ranksep=2] + node [fillcolor=white fontname=arial shape=record style="rounded,filled"] + edge [fontname=arial style=bold] + X1 [label="X1|{10-pin}|{{}|{1|2|3|4|5|6|7|8|9|10}}"] + X2 [label="X2|{10-pin}|{{1|2|3|4|5|6|7|8|9|10}|{}}"] + X3 [label="X3|{20-pin}|{{}|{1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20}}"] + X4 [label="X4|{20-pin}|{{1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20}|{}}"] + X5 [label="X5|{20-pin}|{{}|{1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20}}"] + X6 [label="X6|{20-pin}|{{1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20}|{}}"] + X7 [label="X7|{6-pin}|{{}|{1|2|3|4|5|6}}"] + X8 [label="X8|{6-pin}|{{1|2|3|4|5|6}|{}}"] + W1 [label="{10x|None mm²|0 m}|{{brown|red|orange|yellow|green|blue|violet|grey|white|black}}"] + edge [color="#000000:#666600:#000000"] + X1:p1 -- W1:w1 + W1:w1 -- X2:p1 + edge [color="#000000:#ff0000:#000000"] + X1:p2 -- W1:w2 + W1:w2 -- X2:p2 + edge [color="#000000:#ff8000:#000000"] + X1:p3 -- W1:w3 + W1:w3 -- X2:p3 + edge [color="#000000:#ffff00:#000000"] + X1:p4 -- W1:w4 + W1:w4 -- X2:p4 + edge [color="#000000:#00ff00:#000000"] + X1:p5 -- W1:w5 + W1:w5 -- X2:p5 + edge [color="#000000:#0000ff:#000000"] + X1:p6 -- W1:w6 + W1:w6 -- X2:p6 + edge [color="#000000:#8000ff:#000000"] + X1:p7 -- W1:w7 + W1:w7 -- X2:p7 + edge [color="#000000:#808080:#000000"] + X1:p8 -- W1:w8 + W1:w8 -- X2:p8 + edge [color="#000000:#ffffff:#000000"] + X1:p9 -- W1:w9 + W1:w9 -- X2:p9 + edge [color="#000000:#000000:#000000"] + X1:p10 -- W1:w10 + W1:w10 -- X2:p10 + W2 [label="{20x|None mm²|0 m}|{{white|brown|green|yellow|grey|pink|blue|red|black|violet|white|brown|green|yellow|grey|pink|blue|red|black|violet}}"] + edge [color="#000000:#ffffff:#000000"] + X3:p1 -- W2:w1 + W2:w1 -- X4:p1 + edge [color="#000000:#666600:#000000"] + X3:p2 -- W2:w2 + W2:w2 -- X4:p2 + edge [color="#000000:#00ff00:#000000"] + X3:p3 -- W2:w3 + W2:w3 -- X4:p3 + edge [color="#000000:#ffff00:#000000"] + X3:p4 -- W2:w4 + W2:w4 -- X4:p4 + edge [color="#000000:#808080:#000000"] + X3:p5 -- W2:w5 + W2:w5 -- X4:p5 + edge [color="#000000:#ff80c0:#000000"] + X3:p6 -- W2:w6 + W2:w6 -- X4:p6 + edge [color="#000000:#0000ff:#000000"] + X3:p7 -- W2:w7 + W2:w7 -- X4:p7 + edge [color="#000000:#ff0000:#000000"] + X3:p8 -- W2:w8 + W2:w8 -- X4:p8 + edge [color="#000000:#000000:#000000"] + X3:p9 -- W2:w9 + W2:w9 -- X4:p9 + edge [color="#000000:#8000ff:#000000"] + X3:p10 -- W2:w10 + W2:w10 -- X4:p10 + edge [color="#000000:#ffffff:#000000"] + X3:p11 -- W2:w11 + W2:w11 -- X4:p11 + edge [color="#000000:#666600:#000000"] + X3:p12 -- W2:w12 + W2:w12 -- X4:p12 + edge [color="#000000:#00ff00:#000000"] + X3:p13 -- W2:w13 + W2:w13 -- X4:p13 + edge [color="#000000:#ffff00:#000000"] + X3:p14 -- W2:w14 + W2:w14 -- X4:p14 + edge [color="#000000:#808080:#000000"] + X3:p15 -- W2:w15 + W2:w15 -- X4:p15 + edge [color="#000000:#ff80c0:#000000"] + X3:p16 -- W2:w16 + W2:w16 -- X4:p16 + edge [color="#000000:#0000ff:#000000"] + X3:p17 -- W2:w17 + W2:w17 -- X4:p17 + edge [color="#000000:#ff0000:#000000"] + X3:p18 -- W2:w18 + W2:w18 -- X4:p18 + edge [color="#000000:#000000:#000000"] + X3:p19 -- W2:w19 + W2:w19 -- X4:p19 + edge [color="#000000:#8000ff:#000000"] + X3:p20 -- W2:w20 + W2:w20 -- X4:p20 + W3 [label="{20x|None mm²|0 m}|{{red|yellow|blue|red|yellow|blue|red|yellow|blue|red|yellow|blue|red|yellow|blue|red|yellow|blue|red|yellow}}"] + edge [color="#000000:#ff0000:#000000"] + X5:p1 -- W3:w1 + W3:w1 -- X6:p1 + edge [color="#000000:#ffff00:#000000"] + X5:p2 -- W3:w2 + W3:w2 -- X6:p2 + edge [color="#000000:#0000ff:#000000"] + X5:p3 -- W3:w3 + W3:w3 -- X6:p3 + edge [color="#000000:#ff0000:#000000"] + X5:p4 -- W3:w4 + W3:w4 -- X6:p4 + edge [color="#000000:#ffff00:#000000"] + X5:p5 -- W3:w5 + W3:w5 -- X6:p5 + edge [color="#000000:#0000ff:#000000"] + X5:p6 -- W3:w6 + W3:w6 -- X6:p6 + edge [color="#000000:#ff0000:#000000"] + X5:p7 -- W3:w7 + W3:w7 -- X6:p7 + edge [color="#000000:#ffff00:#000000"] + X5:p8 -- W3:w8 + W3:w8 -- X6:p8 + edge [color="#000000:#0000ff:#000000"] + X5:p9 -- W3:w9 + W3:w9 -- X6:p9 + edge [color="#000000:#ff0000:#000000"] + X5:p10 -- W3:w10 + W3:w10 -- X6:p10 + edge [color="#000000:#ffff00:#000000"] + X5:p11 -- W3:w11 + W3:w11 -- X6:p11 + edge [color="#000000:#0000ff:#000000"] + X5:p12 -- W3:w12 + W3:w12 -- X6:p12 + edge [color="#000000:#ff0000:#000000"] + X5:p13 -- W3:w13 + W3:w13 -- X6:p13 + edge [color="#000000:#ffff00:#000000"] + X5:p14 -- W3:w14 + W3:w14 -- X6:p14 + edge [color="#000000:#0000ff:#000000"] + X5:p15 -- W3:w15 + W3:w15 -- X6:p15 + edge [color="#000000:#ff0000:#000000"] + X5:p16 -- W3:w16 + W3:w16 -- X6:p16 + edge [color="#000000:#ffff00:#000000"] + X5:p17 -- W3:w17 + W3:w17 -- X6:p17 + edge [color="#000000:#0000ff:#000000"] + X5:p18 -- W3:w18 + W3:w18 -- X6:p18 + edge [color="#000000:#ff0000:#000000"] + X5:p19 -- W3:w19 + W3:w19 -- X6:p19 + edge [color="#000000:#ffff00:#000000"] + X5:p20 -- W3:w20 + W3:w20 -- X6:p20 + W4 [label="{6x|1 mm²|1 m}|{{|||||}}"] + edge [color="#000000"] + X7:p1 -- W4:w1 + W4:w1 -- X8:p1 + edge [color="#000000"] + X7:p2 -- W4:w2 + W4:w2 -- X8:p2 + edge [color="#000000"] + X7:p3 -- W4:w3 + W4:w3 -- X8:p3 + edge [color="#000000"] + X7:p4 -- W4:w4 + W4:w4 -- X8:p4 + edge [color="#000000"] + X7:p5 -- W4:w5 + W4:w5 -- X8:p5 + edge [color="#000000"] + X7:p6 -- W4:w6 + W4:w6 -- X8:p6 +} diff --git a/examples/example3.png b/examples/example3.png new file mode 100644 index 0000000..00b6e28 Binary files /dev/null and b/examples/example3.png differ diff --git a/examples/example3.svg b/examples/example3.svg new file mode 100644 index 0000000..74bf633 --- /dev/null +++ b/examples/example3.svg @@ -0,0 +1,1227 @@ + + + + + + + + +X1 + +X1 + +10-pin + + + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + +10 + + + +W1 + +10x + +None mm² + +0 m + +brown + +red + +orange + +yellow + +green + +blue + +violet + +grey + +white + +black + + + +X1:p1--W1:w1 + + + + + + +X1:p2--W1:w2 + + + + + + +X1:p3--W1:w3 + + + + + + +X1:p4--W1:w4 + + + + + + +X1:p5--W1:w5 + + + + + + +X1:p6--W1:w6 + + + + + + +X1:p7--W1:w7 + + + + + + +X1:p8--W1:w8 + + + + + + +X1:p9--W1:w9 + + + + + + +X1:p10--W1:w10 + + + + + + +X2 + +X2 + +10-pin + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + +10 + + + + + +X3 + +X3 + +20-pin + + + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + +10 + +11 + +12 + +13 + +14 + +15 + +16 + +17 + +18 + +19 + +20 + + + +W2 + +20x + +None mm² + +0 m + +white + +brown + +green + +yellow + +grey + +pink + +blue + +red + +black + +violet + +white + +brown + +green + +yellow + +grey + +pink + +blue + +red + +black + +violet + + + +X3:p1--W2:w1 + + + + + + +X3:p2--W2:w2 + + + + + + +X3:p3--W2:w3 + + + + + + +X3:p4--W2:w4 + + + + + + +X3:p5--W2:w5 + + + + + + +X3:p6--W2:w6 + + + + + + +X3:p7--W2:w7 + + + + + + +X3:p8--W2:w8 + + + + + + +X3:p9--W2:w9 + + + + + + +X3:p10--W2:w10 + + + + + + +X3:p11--W2:w11 + + + + + + +X3:p12--W2:w12 + + + + + + +X3:p13--W2:w13 + + + + + + +X3:p14--W2:w14 + + + + + + +X3:p15--W2:w15 + + + + + + +X3:p16--W2:w16 + + + + + + +X3:p17--W2:w17 + + + + + + +X3:p18--W2:w18 + + + + + + +X3:p19--W2:w19 + + + + + + +X3:p20--W2:w20 + + + + + + +X4 + +X4 + +20-pin + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + +10 + +11 + +12 + +13 + +14 + +15 + +16 + +17 + +18 + +19 + +20 + + + + + +X5 + +X5 + +20-pin + + + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + +10 + +11 + +12 + +13 + +14 + +15 + +16 + +17 + +18 + +19 + +20 + + + +W3 + +20x + +None mm² + +0 m + +red + +yellow + +blue + +red + +yellow + +blue + +red + +yellow + +blue + +red + +yellow + +blue + +red + +yellow + +blue + +red + +yellow + +blue + +red + +yellow + + + +X5:p1--W3:w1 + + + + + + +X5:p2--W3:w2 + + + + + + +X5:p3--W3:w3 + + + + + + +X5:p4--W3:w4 + + + + + + +X5:p5--W3:w5 + + + + + + +X5:p6--W3:w6 + + + + + + +X5:p7--W3:w7 + + + + + + +X5:p8--W3:w8 + + + + + + +X5:p9--W3:w9 + + + + + + +X5:p10--W3:w10 + + + + + + +X5:p11--W3:w11 + + + + + + +X5:p12--W3:w12 + + + + + + +X5:p13--W3:w13 + + + + + + +X5:p14--W3:w14 + + + + + + +X5:p15--W3:w15 + + + + + + +X5:p16--W3:w16 + + + + + + +X5:p17--W3:w17 + + + + + + +X5:p18--W3:w18 + + + + + + +X5:p19--W3:w19 + + + + + + +X5:p20--W3:w20 + + + + + + +X6 + +X6 + +20-pin + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + +10 + +11 + +12 + +13 + +14 + +15 + +16 + +17 + +18 + +19 + +20 + + + + + +X7 + +X7 + +6-pin + + + +1 + +2 + +3 + +4 + +5 + +6 + + + +W4 + +6x + +1 mm² + +1 m + + + + + + + + + + + + + + + +X7:p1--W4:w1 + + + + +X7:p2--W4:w2 + + + + +X7:p3--W4:w3 + + + + +X7:p4--W4:w4 + + + + +X7:p5--W4:w5 + + + + +X7:p6--W4:w6 + + + + +X8 + +X8 + +6-pin + +1 + +2 + +3 + +4 + +5 + +6 + + + + + +W1:w1--X2:p1 + + + + + + +W1:w2--X2:p2 + + + + + + +W1:w3--X2:p3 + + + + + + +W1:w4--X2:p4 + + + + + + +W1:w5--X2:p5 + + + + + + +W1:w6--X2:p6 + + + + + + +W1:w7--X2:p7 + + + + + + +W1:w8--X2:p8 + + + + + + +W1:w9--X2:p9 + + + + + + +W1:w10--X2:p10 + + + + + + +W2:w1--X4:p1 + + + + + + +W2:w2--X4:p2 + + + + + + +W2:w3--X4:p3 + + + + + + +W2:w4--X4:p4 + + + + + + +W2:w5--X4:p5 + + + + + + +W2:w6--X4:p6 + + + + + + +W2:w7--X4:p7 + + + + + + +W2:w8--X4:p8 + + + + + + +W2:w9--X4:p9 + + + + + + +W2:w10--X4:p10 + + + + + + +W2:w11--X4:p11 + + + + + + +W2:w12--X4:p12 + + + + + + +W2:w13--X4:p13 + + + + + + +W2:w14--X4:p14 + + + + + + +W2:w15--X4:p15 + + + + + + +W2:w16--X4:p16 + + + + + + +W2:w17--X4:p17 + + + + + + +W2:w18--X4:p18 + + + + + + +W2:w19--X4:p19 + + + + + + +W2:w20--X4:p20 + + + + + + +W3:w1--X6:p1 + + + + + + +W3:w2--X6:p2 + + + + + + +W3:w3--X6:p3 + + + + + + +W3:w4--X6:p4 + + + + + + +W3:w5--X6:p5 + + + + + + +W3:w6--X6:p6 + + + + + + +W3:w7--X6:p7 + + + + + + +W3:w8--X6:p8 + + + + + + +W3:w9--X6:p9 + + + + + + +W3:w10--X6:p10 + + + + + + +W3:w11--X6:p11 + + + + + + +W3:w12--X6:p12 + + + + + + +W3:w13--X6:p13 + + + + + + +W3:w14--X6:p14 + + + + + + +W3:w15--X6:p15 + + + + + + +W3:w16--X6:p16 + + + + + + +W3:w17--X6:p17 + + + + + + +W3:w18--X6:p18 + + + + + + +W3:w19--X6:p19 + + + + + + +W3:w20--X6:p20 + + + + + + +W4:w1--X8:p1 + + + + +W4:w2--X8:p2 + + + + +W4:w3--X8:p3 + + + + +W4:w4--X8:p4 + + + + +W4:w5--X8:p5 + + + + +W4:w6--X8:p6 + + + + diff --git a/idea/example1.dot b/idea/example1.gv similarity index 100% rename from idea/example1.dot rename to idea/example1.gv diff --git a/idea/example2.dot b/idea/example2.gv similarity index 100% rename from idea/example2.dot rename to idea/example2.gv diff --git a/src/.gitignore b/src/.gitignore index c18dd8d..2d7c3ea 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1 +1,2 @@ __pycache__/ +_output/ diff --git a/src/example1.py b/src/example1.py index d1aaf49..0677c28 100644 --- a/src/example1.py +++ b/src/example1.py @@ -12,4 +12,4 @@ h.loop('X2', 5, 6) # Harness.objects['W1'].connect('X1',(5,2,3),'auto','X2',(1,3,2)) # wires # Harness.objects['W1'].connect('X1',(5,),('s',),'X2',(None,)) # shield -h.output('output/output', format='png', view=False) +h.output(filename='output', format=('png','svg'), view=False) diff --git a/src/example2.py b/src/example2.py index 45e0b79..952644b 100644 --- a/src/example2.py +++ b/src/example2.py @@ -28,4 +28,4 @@ h.connect('W2','X1',(1,2,3,4),'auto','X3','auto') h.connect('W3','X1',(1,5,6,7),'auto','X4',(1,3,4,5)) h.connect_all_straight('W4','X5','X4') -h.output('output/output', format='png', view=False) +h.output(filename='output', format=('png','svg'), view=False) diff --git a/src/example3.py b/src/example3.py index f0bc41e..c4397b9 100644 --- a/src/example3.py +++ b/src/example3.py @@ -23,4 +23,4 @@ h.add_node('X8', num_pins=6, ports_left=True) h.add_cable('W4', num_wires=6, length=1, mm2=1) h.connect_all_straight('W4','X7','X8') -h.output('output/output', format='png', view=False) +h.output(filename='output', format=('png','svg'), view=False) diff --git a/src/input/footer.dot b/src/input/footer.dot deleted file mode 100644 index 5c34318..0000000 --- a/src/input/footer.dot +++ /dev/null @@ -1 +0,0 @@ -} diff --git a/src/input/header.dot b/src/input/header.dot deleted file mode 100644 index 86c0d19..0000000 --- a/src/input/header.dot +++ /dev/null @@ -1,8 +0,0 @@ -// Graph generated by WireViz -// https://github.com/formatc1702/WireViz -// Daniel Rojas - 2020 - -graph G { - graph [rankdir = "LR", ranksep=2, fontname = "arial", bgcolor="transparent"] - edge [fontname = "arial"] - node [shape="record", style="rounded,filled", fontname = "arial", fillcolor="white"] diff --git a/src/output/.gitignore b/src/output/.gitignore deleted file mode 100644 index e1a5a94..0000000 --- a/src/output/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -output -output.dot -output.pdf -output.png diff --git a/src/output/output_ex1.dot b/src/output/output_ex1.dot deleted file mode 100644 index da0ab50..0000000 --- a/src/output/output_ex1.dot +++ /dev/null @@ -1,29 +0,0 @@ -// Graph generated by WireViz -// https://github.com/formatc1702/WireViz -// Daniel Rojas - 2020 - -digraph G { - graph [rankdir = LR, ranksep=2, fontname = "arial"]; - edge [arrowhead=none, fontname = "arial"]; - node [shape=record, style=rounded, fontname = "arial"]; - - -X1[label="X1 | {D-Sub DE-9|female|9-pin} | {{DCD|RX|TX|DTR|GND|DSR|RTS|CTS|RI} | {1|2|3|4|5|6|7|8|9}}}"] - -X2[label="X2 | {Molex KK 254|female|6-pin} | {{1|2|3|4|5|6} | {|||||}}}"] - -{edge[style=bold] -X2:p5:w -> X2:p6:w -} - -W1[label="W1 | {3x|0.25 mm²| + S|0.2 m} | {{1|2|3|} | {WH|BN|GN|Shield} | {1|2|3|}}}"] - -{edge[style=bold] -{edge[color="#000000:#ffffff:#000000"] X1:p5 -> W1:w1i; W1:w1o -> X2:p1} -{edge[color="#000000:#666600:#000000"] X1:p2 -> W1:w2i; W1:w2o -> X2:p3} -{edge[color="#000000:#00ff00:#000000"] X1:p3 -> W1:w3i; W1:w3o -> X2:p2} -{X1:p5 -> W1:wsi; } -} - - -} diff --git a/src/output/output_ex2.dot b/src/output/output_ex2.dot deleted file mode 100644 index fa191bd..0000000 --- a/src/output/output_ex2.dot +++ /dev/null @@ -1,53 +0,0 @@ -// Graph generated by WireViz -// https://github.com/formatc1702/WireViz -// Daniel Rojas - 2020 - -digraph G { - graph [rankdir = LR, ranksep=2, fontname = "arial"]; - edge [arrowhead=none, fontname = "arial"]; - node [shape=record, style=rounded, fontname = "arial"]; - - -X1[label="X1 | {Molex KK 254|female|8-pin} | {{GND|+5V|SCL|SDA|MISO|MOSI|SCK|N/C} | {1|2|3|4|5|6|7|8}}}"] - -X2[label="X2 | {Molex KK 254|female|4-pin} | {{1|2|3|4} | {GND|+5V|SCL|SDA}}}"] - -X3[label="X3 | {Molex KK 254|female|4-pin} | {{1|2|3|4} | {GND|+5V|SCL|SDA}}}"] - -X4[label="X4 | {Molex KK 254|female|5-pin} | {{1|2|3|4|5} | {GND|+12V|MISO|MOSI|SCK}}}"] - -X5[label="X5 | {Molex Micro-Fit|male|2-pin} | {{GND|+12V} | {1|2}}}"] - -W1[label="{4x|0.14 mm²|0.2 m} | {{BK|RD|YE|GN}}}"] - -{edge[style=bold] -{edge[color="#000000:#000000:#000000"] X1:p1 -> W1:w1; W1:w1 -> X2:p1} -{edge[color="#000000:#ff0000:#000000"] X1:p2 -> W1:w2; W1:w2 -> X2:p2} -{edge[color="#000000:#ffff00:#000000"] X1:p3 -> W1:w3; W1:w3 -> X2:p3} -{edge[color="#000000:#00ff00:#000000"] X1:p4 -> W1:w4; W1:w4 -> X2:p4} -} -W2[label="{4x|0.14 mm²|0.2 m} | {{BK|RD|YE|GN}}}"] - -{edge[style=bold] -{edge[color="#000000:#000000:#000000"] X1:p1 -> W2:w1; W2:w1 -> X3:p1} -{edge[color="#000000:#ff0000:#000000"] X1:p2 -> W2:w2; W2:w2 -> X3:p2} -{edge[color="#000000:#ffff00:#000000"] X1:p3 -> W2:w3; W2:w3 -> X3:p3} -{edge[color="#000000:#00ff00:#000000"] X1:p4 -> W2:w4; W2:w4 -> X3:p4} -} -W3[label="{4x|0.14 mm²|0.2 m} | {{BK|BU|OG|VT}}}"] - -{edge[style=bold] -{edge[color="#000000:#000000:#000000"] X1:p1 -> W3:w1; W3:w1 -> X4:p1} -{edge[color="#000000:#0000ff:#000000"] X1:p5 -> W3:w2; W3:w2 -> X4:p3} -{edge[color="#000000:#ff8000:#000000"] X1:p6 -> W3:w3; W3:w3 -> X4:p4} -{edge[color="#000000:#8000ff:#000000"] X1:p7 -> W3:w4; W3:w4 -> X4:p5} -} -W4[label="{2x|0.5 mm²|0.35 m} | {{BK|RD}}}"] - -{edge[style=bold] -{edge[color="#000000:#000000:#000000"] X5:p1 -> W4:w1; W4:w1 -> X4:p1} -{edge[color="#000000:#ff0000:#000000"] X5:p2 -> W4:w2; W4:w2 -> X4:p2} -} - - -} diff --git a/src/output/output_ex3.dot b/src/output/output_ex3.dot deleted file mode 100644 index 263bb47..0000000 --- a/src/output/output_ex3.dot +++ /dev/null @@ -1,49 +0,0 @@ -// Graph generated by WireViz -// https://github.com/formatc1702/WireViz -// Daniel Rojas - 2020 - -digraph G { - graph [rankdir = LR, ranksep=2, fontname = "arial"]; - edge [arrowhead=none, fontname = "arial"]; - node [shape=record, style=rounded, fontname = "arial"]; - - -X1[label="X1 | {10-pin} | {{|||||||||} | {1|2|3|4|5|6|7|8|9|10}}}"] - -X2[label="X2 | {10-pin} | {{1|2|3|4|5|6|7|8|9|10} | {|||||||||}}}"] - -W1[label="{10x} | {{BN|RD|OG|YE|GN|BU|VT|GY|WH|BK}}}"] - -{edge[style=bold] -{edge[color="#000000:#666600:#000000"] X1:p1 -> W1:w1; W1:w1 -> X2:p1} -{edge[color="#000000:#ff0000:#000000"] X1:p2 -> W1:w2; W1:w2 -> X2:p2} -{edge[color="#000000:#ff8000:#000000"] X1:p3 -> W1:w3; W1:w3 -> X2:p3} -{edge[color="#000000:#ffff00:#000000"] X1:p4 -> W1:w4; W1:w4 -> X2:p4} -{edge[color="#000000:#00ff00:#000000"] X1:p5 -> W1:w5; W1:w5 -> X2:p5} -{edge[color="#000000:#0000ff:#000000"] X1:p6 -> W1:w6; W1:w6 -> X2:p6} -{edge[color="#000000:#8000ff:#000000"] X1:p7 -> W1:w7; W1:w7 -> X2:p7} -{edge[color="#000000:#808080:#000000"] X1:p8 -> W1:w8; W1:w8 -> X2:p8} -{edge[color="#000000:#ffffff:#000000"] X1:p9 -> W1:w9; W1:w9 -> X2:p9} -{edge[color="#000000:#000000:#000000"] X1:p10 -> W1:w10; W1:w10 -> X2:p10} -} -X3[label="X3 | {10-pin} | {{|||||||||} | {1|2|3|4|5|6|7|8|9|10}}}"] - -X4[label="X4 | {10-pin} | {{1|2|3|4|5|6|7|8|9|10} | {|||||||||}}}"] - -W2[label="{10x} | {{WH|BN|GN|YE|GY|PK|BU|RD|BK|VT}}}"] - -{edge[style=bold] -{edge[color="#000000:#ffffff:#000000"] X3:p1 -> W2:w1; W2:w1 -> X4:p1} -{edge[color="#000000:#666600:#000000"] X3:p2 -> W2:w2; W2:w2 -> X4:p2} -{edge[color="#000000:#00ff00:#000000"] X3:p3 -> W2:w3; W2:w3 -> X4:p3} -{edge[color="#000000:#ffff00:#000000"] X3:p4 -> W2:w4; W2:w4 -> X4:p4} -{edge[color="#000000:#808080:#000000"] X3:p5 -> W2:w5; W2:w5 -> X4:p5} -{edge[color="#000000:#ff80c0:#000000"] X3:p6 -> W2:w6; W2:w6 -> X4:p6} -{edge[color="#000000:#0000ff:#000000"] X3:p7 -> W2:w7; W2:w7 -> X4:p7} -{edge[color="#000000:#ff0000:#000000"] X3:p8 -> W2:w8; W2:w8 -> X4:p8} -{edge[color="#000000:#000000:#000000"] X3:p9 -> W2:w9; W2:w9 -> X4:p9} -{edge[color="#000000:#8000ff:#000000"] X3:p10 -> W2:w10; W2:w10 -> X4:p10} -} - - -} diff --git a/src/wireviz.py b/src/wireviz.py index 323c045..4024e1a 100644 --- a/src/wireviz.py +++ b/src/wireviz.py @@ -74,6 +74,8 @@ class Harness: def create_graph(self): dot = Graph() + dot.body.append('// Graph generated by WireViz') + dot.body.append('// https://github.com/formatc1702/WireViz') font = 'arial' dot.attr('graph', rankdir='LR', ranksep='2', bgcolor='transparent', fontname=font) dot.attr('node', shape='record', style='rounded,filled', fillcolor='white', fontname=font) @@ -95,9 +97,11 @@ class Harness: l = [n.name if n.show_name == True else '', a, p] dot.node(k, label=nested(l)) - for x in n.loops: - dot.edge('{name}:p{port_from}:{loop_side}'.format(name=n.name, port_from=x[0], port_to=x[1], loop_side=x[2]), - '{name}:p{port_to}:{loop_side}'.format(name=n.name, port_from=x[0], port_to=x[1], loop_side=x[2])) + if len(n.loops) > 0: + dot.attr('edge',color='#000000') + for x in n.loops: + dot.edge('{name}:p{port_from}:{loop_side}'.format(name=n.name, port_from=x[0], port_to=x[1], loop_side=x[2]), + '{name}:p{port_to}:{loop_side}'.format(name=n.name, port_from=x[0], port_to=x[1], loop_side=x[2])) for k in self.cables: c = self.cables[k] @@ -146,10 +150,12 @@ class Harness: return dot - def output(self, filename, format='pdf', view=True): + def output(self, filename, directory='_output', view=False, cleanup=True, format='pdf'): d = self.create_graph() - d.format = format - d.render(filename, view=view) + for f in format: + d.format = f + d.render(filename=filename, directory=directory, view=view, cleanup=cleanup) + d.save(filename='{}.gv'.format(filename), directory=directory) class Node: