WireViz/README.md
Andreas Nordin 5514fd4244 refactor dependencies and installation
There are hard copies of the graphviz and pyyaml dependencies included
in the repo. Remove these.

Sort out installation and dependency handling by writing a functional
setup.py script. Rename top level documentation. Refactor wireviz.py
slightly to allow it to run as an installed script.

# Conflicts:
#	src/batch.py
#	src/wireviz/batch.py
#	src/wireviz/build_examples.py
2020-06-28 10:46:24 +02:00

3.0 KiB

WireViz

Summary

WireViz is a tool for easily documenting cables, wiring harnesses and connector pinouts. It takes plain text, YAML-formatted files as input and produces beautiful graphical output (SVG, PNG, ...) thanks to GraphViz. It handles automatic BOM (Bill of Materials) creation and has a lot of extra features.

Features

  • WireViz input files are fully text based
    • No special editor required
    • Human readable
    • Easy version control
    • YAML syntax
  • Understands and uses color abbreviations as per IEC 60757 (black=BK, red=RD, ...)
    • Optionally outputs colors as abbreviation (e.g. 'YE'), full name (e.g. 'yellow') or hex value (e.g. '#ffff00'), with choice of UPPER or lower case
  • Auto-generates standard wire color schemes and allows custom ones if needed
    • DIN 47100 (WT/BN/GN/YE/GY/PK/BU/RD/BK/VT/...)
    • IEC 62 (BN/RD/OR/YE/GN/BU/VT/GY/WT/BK/...)
  • Understands wire gauge in mm² or AWG
    • Optionally auto-calculates and displays AWG equivalent when specifying mm²
  • Allows more than one connector per side, as well as loopbacks
  • Allows for easy-autorouting for 1-to-1 wiring
  • Generates BOM (Bill of Materials)

Note: WireViz is not designed to represent the complete wiring of a system. Its main aim is to document the construction of individual wires and harnesses.

Examples

Demo 01

WireViz input file:

connectors:
  X1:
    type: D-Sub
    subtype: female
    pinout: [DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI]
  X2:
    type: Molex KK 254
    subtype: female
    pinout: [GND, RX, TX]

cables:
  W1:
    gauge: 0.25 mm2
    length: 0.2
    color_code: DIN
    wirecount: 3
    shield: true

connections:
  -
    - X1: [5,2,1]
    - W1: [1,2,3]
    - X2: [1,3,2]
  -
    - X1: 5
    - W1: s

Output file:

Sample output diagram

Bill of Materials (auto-generated)

Demo 02

Source - Bill of Materials

See the tutorial page for sample code, as well as the example gallery to see more of what WireViz can do.

Usage

$ python3 wireviz.py ~/path/to/file/mywire.yml

This will output the following files

mywire.gv         GraphViz output
mywire.svg        Wiring diagram as vector image
mywire.png        Wiring diagram as raster image
mywire.bom.tsv    BOM (bill of materials) as tab-separated text file
mywire.html       HTML page with wiring diagram and BOM embedded

Status

This is very much a work in progress. Source code, API, syntax and functionality may change wildly at any time.

Requirements

Developed and tested using Python 3.7; might not work with older Python versions.

License

GNU GPLv3