Merge branch 'release/v0.4-rc' into release/v0.4-rc2

`rc2` branch is based directly on `master`. By merging into `rc2`, any merge conflicts can be resolved while leaving `master` intact until final merge is approved.

# Conflicts:
#	docs/CHANGELOG.md
#	src/wireviz/Harness.py
#	src/wireviz/__init__.py
#	src/wireviz/wireviz.py
This commit is contained in:
Daniel Rojas 2024-05-05 15:30:40 +02:00
commit 487498e128
132 changed files with 17416 additions and 10025 deletions

View File

@ -1,10 +1,35 @@
# Change Log
## [0.4](https://github.com/formatc1702/WireViz/tree/v0.4) (2024-XX-XX)
### Backward-incompatible changes
- New syntax for autogenerated components ([#184](https://github.com/wireviz/WireViz/issues/184), [#186](https://github.com/wireviz/WireViz/pull/186))
- Components that are not referenced in any connection set will not be rendered. Instead, a warning will be output in the console. ([#328](https://github.com/wireviz/WireViz/issues/328), [#332](https://github.com/wireviz/WireViz/pull/332))
- New command line interface ([#244](https://github.com/wireviz/WireViz/pull/244)). Run `wireviz --help` for details
- The path specified with the `-o`/`--output-dir` option no longer includes the filename (without extension) of the generated files. Use the `-O`/`--output-name` option to specify a different filename for the generated files.
### New features
- Allow mates between connectors ([#134](https://github.com/wireviz/WireViz/issues/134), [#186](https://github.com/wireviz/WireViz/pull/186))
- Improve technical drawing output ([#74](https://github.com/wireviz/WireViz/pull/74), [#32](https://github.com/wireviz/WireViz/issues/32), [#239](https://github.com/wireviz/WireViz/pull/239))
- Embed images in SVG output ([#189](https://github.com/wireviz/WireViz/pull/189))
- Add ability to choose output formats using the `-f`/`--format` command line option ([#60](https://github.com/wireviz/WireViz/issues/60))
- Add option to multiply additional component quantity by number of unpopulated positions on connector ([#298](https://github.com/wireviz/WireViz/pull/298))
### Misc. fixes
- Use `isort` and `black` for cleaner code and easier merging ([#248](https://github.com/wireviz/WireViz/pull/248))
- Code improvements ([#246](https://github.com/wireviz/WireViz/pull/246), [#250](https://github.com/wireviz/WireViz/pull/250))
- Bug fixes ([#264](https://github.com/wireviz/WireViz/pull/264), [#318](https://github.com/wireviz/WireViz/pull/318))
- Minor adjustments ([#256](https://github.com/wireviz/WireViz/pull/256))
## [0.3.2](https://github.com/formatc1702/WireViz/tree/v0.3.2) (2021-11-27)
### Hotfix
- Adjust GraphViz generation code for compatibility with v0.18 of the `graphviz` Python package ([#258](https://github.com/formatc1702/WireViz/issues/258), [#262](https://github.com/formatc1702/WireViz/pull/261))
- Adjust GraphViz generation code for compatibility with v0.18 of the `graphviz` Python package ([#258](https://github.com/formatc1702/WireViz/issues/258), [#261](https://github.com/formatc1702/WireViz/pull/261))
## [0.3.1](https://github.com/formatc1702/WireViz/tree/v0.3.1) (2021-10-25)
@ -12,6 +37,7 @@
- Assign generic harness title when using WireViz as a module and not specifying an output file name ([#253](https://github.com/formatc1702/WireViz/issues/253), [#254](https://github.com/formatc1702/WireViz/pull/254))
## [0.3](https://github.com/formatc1702/WireViz/tree/v0.3) (2021-10-11)
### New features
@ -24,11 +50,13 @@
- Add harness metadata section ([#158](https://github.com/formatc1702/WireViz/issues/158), [#214](https://github.com/formatc1702/WireViz/pull/214))
- Add support for supplier and supplier part number information ([#240](https://github.com/formatc1702/WireViz/issues/240), [#241](https://github.com/formatc1702/WireViz/pull/241/))
- Add graph rendering options (colors, font, color name display style, ...) ([#158](https://github.com/formatc1702/WireViz/issues/158), [#214](https://github.com/formatc1702/WireViz/pull/214))
- Add support for supplier and supplier part number information ([#240](https://github.com/formatc1702/WireViz/issues/240), [#241](https://github.com/formatc1702/WireViz/pull/241/))
- Add graph rendering options (colors, font, color name display style, ...) ([#158](https://github.com/formatc1702/WireViz/issues/158), [#214](https://github.com/formatc1702/WireViz/pull/214))
- Add support for background colors for cables and connectors, as well as for some individual cells ([#210](https://github.com/formatc1702/WireViz/issues/210), [#219](https://github.com/formatc1702/WireViz/pull/219))
- Add optional tweaking of the .gv output ([#215](https://github.com/formatc1702/WireViz/pull/215)) (experimental)
## Misc. fixes
### Misc. fixes
- Remove case-sensitivity issues with pin names and labels ([#160](https://github.com/formatc1702/WireViz/issues/160), [#229](https://github.com/formatc1702/WireViz/pull/229))
- Improve type hinting ([#156](https://github.com/formatc1702/WireViz/issues/156), [#163](https://github.com/formatc1702/WireViz/pull/163))
@ -36,7 +64,7 @@
- Simplify BOM code ([#197](https://github.com/formatc1702/WireViz/pull/197))
- Bug fixes ([#218](https://github.com/formatc1702/WireViz/pull/218), [#221](https://github.com/formatc1702/WireViz/pull/221))
## Known issues
### Known issues
- Including images in the harness may lead to issues in the following cases: ([#189](https://github.com/formatc1702/WireViz/pull/189), [#220](https://github.com/formatc1702/WireViz/issues/220))
- When using the `-o`/`--output_file` CLI option, specifying an output path in a different directory from the input file

View File

@ -25,6 +25,7 @@ When contributing to this repository, please [submit a new issue](https://github
1. Create a new feature branch on top of the `dev` branch.
1. Commit your code changes to this feature branch.
1. Push the changes to your fork.
1. Please format your code using [`isort`](https://pycqa.github.io/isort/) and [`black`](https://black.readthedocs.io) before submitting.
1. Submit a new pull request, using `dev` as the base branch.
- If your code changes or extends the WireViz YAML syntax, be sure to update the [syntax description document](https://github.com/formatc1702/WireViz/blob/dev/docs/syntax.md) in your PR.
1. Please include in the PR description (and optionally also in the commit message body) a reference (# followed by issue number) to the issue where the suggested changes are discussed.

View File

@ -4,6 +4,7 @@
[![PyPI - Version](https://img.shields.io/pypi/v/wireviz.svg?colorB=blue)](https://pypi.org/project/wireviz/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/wireviz.svg?)](https://pypi.org/project/wireviz/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/wireviz)](https://pypi.org/project/wireviz/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
## Summary
@ -81,10 +82,11 @@ Output file:
[Source](../examples/demo02.yml) - [Bill of Materials](../examples/demo02.bom.tsv)
### Tutorial and example gallery
### Syntax, tutorial and example gallery
See the [tutorial page](../tutorial/readme.md) for sample code,
as well as the [example gallery](../examples/readme.md) to see more of what WireViz can do.
Read the [syntax description](syntax.md) to learn about WireViz' features and how to use them.
See the [tutorial page](../tutorial/readme.md) for sample code, as well as the [example gallery](../examples/readme.md) to see more of what WireViz can do.
## Usage
@ -125,7 +127,7 @@ If you would like to contribute to this project, make sure you read the [contrib
$ wireviz ~/path/to/file/mywire.yml
```
This will output the following files
Depending on the options specified, this will output some or all of the following files:
```
mywire.gv GraphViz output
@ -135,17 +137,16 @@ mywire.bom.tsv BOM (bill of materials) as tab-separated text file
mywire.html HTML page with wiring diagram and BOM embedded
```
#### Command line options
Wildcars in the file path are also supported to process multiple files at once, e.g.:
```
$ wireviz ~/path/to/files/*.yml
```
- `--prepend-file <FILE>` to prepend an additional YAML file. Useful for part libraries and templates shared among multiple cables/harnesses.
- `-o <OUTPUT>` or `--output_file <OUTPUT>` to generate output files with a name different from the input file.
- `-V` or `--version` to display the WireViz version.
- `-h` or `--help` to see a summary of the usage help text.
To see how to specify the output formats, as well as additional options, run:
### Syntax description
A description of the WireViz YAML input syntax can be found [here](syntax.md).
```
$ wireviz --help
```
### (Re-)Building the example projects

View File

@ -85,22 +85,8 @@ tweak: # optional tweaking of .gv output
# loops
loops: <List> # every list item is itself a list of exactly two pins
# on the connector that are to be shorted
# auto-generation
autogenerate: <bool> # optional; defaults to false; see below
```
### Auto-generation of connectors
The `autogenerate: true` option is especially useful for very simple, recurring connectors such as crimp ferrules, splices, and others, where it would be a hassle to individually assign unique designators for every instance.
By default, when defining a connector, it will be generated once using the specified designator, and can be referenced multiple times, in different connection sets (see below).
If `autogenerate: true` is set, the connector will _not_ be generated at first. When defining the `connections` section (see below), every time the connector is mentioned, a new instance with an auto-incremented designator is generated and attached.
Since the auto-incremented and auto-assigned designator is not known to the user, one instance of the connector can not be referenced again outside the point of creation. The `autogenerate: true` option is therefore only useful for terminals with only one wire attached, or splices with exactly one wire going in, and one wire going out. If more wires are to be attached (e.g. for a three-way splice, or a crimp where multiple wires are joined), a separate connector with `autogenerate: false` and a user-defined, unique designator needs to be used.
## Cable attributes
```yaml
@ -173,6 +159,7 @@ connections:
- # Each list entry is a connection set
- <component> # Each connection set is itself a list of items
- <component> # Items must alternatingly belong to the connectors and cables sections
# Arrows may be used instead of cables
-...
- # example (single connection)
@ -189,16 +176,29 @@ connections:
- [<connector>, ..., <connector>] # specify multiple simple connectors to attach in parallel
# these may be unique, auto-generated, or a mix of both
- # example (arrows between pins)
- <connector>: [<pin>, ..., <pin>]
- [<arrow>, ..., <arrow>] # draw arrow linking pins of both connectors
# use single line arrows (--, <--, <-->, -->)
- <connector>: [<pin>, ..., <pin>]
- # example (arrows between connectors)
- <connector>
- <arrow> # draw arrow linking the connectors themselves
# use double line arrow (==, <==, <==>, ==>)
- <connector>
...
```
- Each connection set is a list of components.
- The minimum number of items is two.
- The minimum number of items is one.
- The maximum number of items is unlimited.
- Items must alternatingly belong to the `connectors` and the `cables` sections.
- When a connection set defines multiple parallel connections, the number of specified `<pin>`s and `<wire>`s for each component in the set must match. When specifying only one designator, one is auto-generated for each connection of the set.
- `<pin>` may reference a pin's unique ID (as per the connector's `pins` attribute, auto-numbered from 1 by default) or its label (as per `pinlabels`).
- `<wire>` may reference a wire's number within a cable/bundle, its label (as per `wirelabels`) or, if unambiguous, its color.
- For `<arrow>`, see below.
### Single connections
@ -207,7 +207,6 @@ connections:
- `- <designator>: <int/str>` attaches a pin of the connector, referring to a pin number (from the connector's `pins` attribute) or a pin label (from its `pinlabels` attribute), provided the label is unique.
- `- <designator>` is allowed for simple connectors, since they have only one pin to connect.
For connectors with `autogenerate: true`, a new instance, with auto-generated designator, is created.
#### Cables
@ -230,14 +229,10 @@ For connectors with `autogenerate: true`, a new instance, with auto-generated de
- `- [<designator>, ..., <designator>]`
Attaches multiple different single pin connectors, one per connection in the set.
For connectors with `autogenerate: true`, a new instance, with auto-generated designator, is created with every mention.
Auto-generated and non-autogenerated connectors may be mixed.
- `- <designator>`
Attaches multiple instances of the same single pin connector, one per connectioin in the set.
For connectors with `autogenerate: true`, a new instance, with auto-generated designator, is created for every connection in the set.
Since only connectors with `pincount: 1` can be auto-generated, pin number 1 is implicit.
#### Cables
@ -249,6 +244,100 @@ For connectors with `autogenerate: true`, a new instance, with auto-generated de
- `<int>-<int>` auto-expands to a range.
- `<str>` to refer to a wire's label or color, if unambiguous.
### Arrows
Arrows may be used in place of wires to join two connectors. This can represent the mating of matching connectors.
To represent joining individual pins between two connectors, a list of single arrows is used:
```yaml
connections:
-
- <connector>: [<pin>,...,<pin>]
- [<arrow>, ..., <arrow>] # --, <--, <--> or -->
- <connector>: [<pin>,...,<pin>]
```
To represent mating of two connectors as a whole, one double arrow is used:
```yaml
connections:
-
- <connector> # using connector designator only
- <arrow> # ==, <==, <==> or ==>
- <connector>
-
- ...
- <connector>: [<pin>, ...] # designator and pinlist (pinlist is ignored)
# useful when combining arrows and wires
- <arrow> # ==, <==, <==> or ==>
- <connector>: [<pin>, ...]
- ...
```
### Autogeneration of items
If multiple identical copies of a connector or cable are needed, it is possible to define them once as a template, and then generate multiple instances as needed. This is called autogeneration. Both connectors and cables can be autogenerated.
Autogenerated instances of components can be explicitly assigned a designator; this way, they can be referenced in multiple connection sets. However, it is also possible to generate unnamed instances of components. This is especially useful for components that do not need to be referenced in more than one connection set, and where naming each individual instance is an unnecessary complication.
Example (see `connections` section):
```yaml
connectors:
X:
# ...
Y:
# ...
Z:
style: simple
# ...
cables:
V:
# ...
W:
# ...
connections:
- # no autogeneration (normal use)
- X: [1,2,...] # Use X as both the template and the instance designator
- V: [1,2,...] # Use V as both the template and the instance designator
# ...
- # autogeneration of named instances
- Y.Y1: [1,2,...] # Use template Y, generate instance with designator Y1
- W.W1: [1,2,...] # Use template W, generate instance with designator W1
- Y.Y2: [1,2,...] # generate more instances from the same templates
- W.W2: [1,2,...]
- Y.Y3: [1,2,...]
- # autogeneration of unnamed instances
- Y3: [1,2,...] # reuse existing instance Y3
- W.W4: [1,2,...]
- Z. # Use template Z, generate one unnamed instance
# for each connection in set
```
Since the internally assigned designator of an unnamed component is not known to the user, one instance of the connector can not be referenced again outside the point of creation (i.e. in other connection sets, or later in the same set). Autogeneration of unnamed instances is therefore only useful for terminals with only one wire attached, or splices with exactly one wire going in, and one wire going out.
If a component is to be used in other connection sets (e.g. for a three-way splice, or a crimp where multiple wires are joined), a named instance needs to be used.
Names of autogenerated components are hidden by default. While they can be shown in the graphical output using the `show_name: true` option, it is not recommended to manually use the internally assigned designator (starting with a double underscore `__`), since it might change in future WireViz versions, or when the order of items in connection sets changes.
### Unconnected components
Even if a component is not connected to any other components, it must be mentioned in a connection set for it to be displayed.
```yaml
connectors:
X1: # this connector will not be connected to any other components
...
connections:
-
- X1 # minimal connection set to include connector in the diagram
```
If any component is defined in the `connectors` or `cables` sections but not referenced in `connections`, a warning is printed in the console.
## Metadata entries
@ -300,6 +389,7 @@ For connectors with `autogenerate: true`, a new instance, with auto-generated de
mini_bom_mode: <bool> # Default = True
```
## BOM items and additional components
Connectors (both regular, and auto-generated), cables, and wires of a bundle are automatically added to the BOM,
@ -318,6 +408,7 @@ Parts can be added to a connector or cable in the section `<additional-component
# when used in a connector:
# pincount number of pins of connector
# populated number of populated positions in a connector
# unpopulated number of unpopulated positions
# when used in a cable:
# wirecount number of wires of cable/bundle
# terminations number of terminations on a cable/bundle

2
examples/demo01.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

329
examples/demo01.html generated
View File

@ -1,210 +1,245 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>demo01</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>demo01</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="833pt" height="291pt"
viewBox="0.00 0.00 833.00 291.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="821pt" height="291pt"
viewBox="0.00 0.00 821.00 291.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 287)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-287 829,-287 829,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-287 817,-287 817,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="139,-253 0,-253 0,0 139,0 139,-253"/>
<polygon fill="none" stroke="black" points="0.5,-229.5 0.5,-252.5 139.5,-252.5 139.5,-229.5 0.5,-229.5"/>
<text text-anchor="start" x="61" y="-237.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-206.5 0.5,-229.5 48.5,-229.5 48.5,-206.5 0.5,-206.5"/>
<text text-anchor="start" x="4.5" y="-214.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="48.5,-206.5 48.5,-229.5 99.5,-229.5 99.5,-206.5 48.5,-206.5"/>
<text text-anchor="start" x="52.5" y="-214.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="99.5,-206.5 99.5,-229.5 139.5,-229.5 139.5,-206.5 99.5,-206.5"/>
<text text-anchor="start" x="103.5" y="-214.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 82.5,-206.5 82.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="26" y="-191.3" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="82.5,-183.5 82.5,-206.5 139.5,-206.5 139.5,-183.5 82.5,-183.5"/>
<text text-anchor="start" x="107" y="-191.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 82.5,-183.5 82.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="31.5" y="-168.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="82.5,-160.5 82.5,-183.5 139.5,-183.5 139.5,-160.5 82.5,-160.5"/>
<text text-anchor="start" x="107" y="-168.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-137.5 0.5,-160.5 82.5,-160.5 82.5,-137.5 0.5,-137.5"/>
<text text-anchor="start" x="32.5" y="-145.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="82.5,-137.5 82.5,-160.5 139.5,-160.5 139.5,-137.5 82.5,-137.5"/>
<text text-anchor="start" x="107" y="-145.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-114.5 0.5,-137.5 82.5,-137.5 82.5,-114.5 0.5,-114.5"/>
<text text-anchor="start" x="27" y="-122.3" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="82.5,-114.5 82.5,-137.5 139.5,-137.5 139.5,-114.5 82.5,-114.5"/>
<text text-anchor="start" x="107" y="-122.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0.5,-91.5 0.5,-114.5 82.5,-114.5 82.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="25.5" y="-99.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="82.5,-91.5 82.5,-114.5 139.5,-114.5 139.5,-91.5 82.5,-91.5"/>
<text text-anchor="start" x="107" y="-99.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-68.5 0.5,-91.5 82.5,-91.5 82.5,-68.5 0.5,-68.5"/>
<text text-anchor="start" x="26.5" y="-76.3" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="82.5,-68.5 82.5,-91.5 139.5,-91.5 139.5,-68.5 82.5,-68.5"/>
<text text-anchor="start" x="107" y="-76.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,-45.5 0.5,-68.5 82.5,-68.5 82.5,-45.5 0.5,-45.5"/>
<text text-anchor="start" x="27.5" y="-53.3" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="82.5,-45.5 82.5,-68.5 139.5,-68.5 139.5,-45.5 82.5,-45.5"/>
<text text-anchor="start" x="107" y="-53.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0.5,-22.5 0.5,-45.5 82.5,-45.5 82.5,-22.5 0.5,-22.5"/>
<text text-anchor="start" x="27.5" y="-30.3" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="82.5,-22.5 82.5,-45.5 139.5,-45.5 139.5,-22.5 82.5,-22.5"/>
<text text-anchor="start" x="107" y="-30.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 82.5,-22.5 82.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="34.5" y="-7.3" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="82.5,0.5 82.5,-22.5 139.5,-22.5 139.5,0.5 82.5,0.5"/>
<text text-anchor="start" x="107" y="-7.3" font-family="arial" font-size="14.00">9</text>
<polygon fill="#ffffff" stroke="black" points="136,-253 0,-253 0,0 136,0 136,-253"/>
<polygon fill="none" stroke="black" points="0,-229.5 0,-252.5 136,-252.5 136,-229.5 0,-229.5"/>
<text text-anchor="start" x="59.5" y="-237.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-206.5 0,-229.5 47,-229.5 47,-206.5 0,-206.5"/>
<text text-anchor="start" x="4" y="-214.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="47,-206.5 47,-229.5 97,-229.5 97,-206.5 47,-206.5"/>
<text text-anchor="start" x="51" y="-214.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="97,-206.5 97,-229.5 136,-229.5 136,-206.5 97,-206.5"/>
<text text-anchor="start" x="101" y="-214.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-183.5 0,-206.5 80,-206.5 80,-183.5 0,-183.5"/>
<text text-anchor="start" x="25" y="-191.3" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="80,-183.5 80,-206.5 136,-206.5 136,-183.5 80,-183.5"/>
<text text-anchor="start" x="104" y="-191.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-160.5 0,-183.5 80,-183.5 80,-160.5 0,-160.5"/>
<text text-anchor="start" x="30.5" y="-168.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="80,-160.5 80,-183.5 136,-183.5 136,-160.5 80,-160.5"/>
<text text-anchor="start" x="104" y="-168.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-137.5 0,-160.5 80,-160.5 80,-137.5 0,-137.5"/>
<text text-anchor="start" x="31" y="-145.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="80,-137.5 80,-160.5 136,-160.5 136,-137.5 80,-137.5"/>
<text text-anchor="start" x="104" y="-145.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-114.5 0,-137.5 80,-137.5 80,-114.5 0,-114.5"/>
<text text-anchor="start" x="26" y="-122.3" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="80,-114.5 80,-137.5 136,-137.5 136,-114.5 80,-114.5"/>
<text text-anchor="start" x="104" y="-122.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-91.5 0,-114.5 80,-114.5 80,-91.5 0,-91.5"/>
<text text-anchor="start" x="24.5" y="-99.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="80,-91.5 80,-114.5 136,-114.5 136,-91.5 80,-91.5"/>
<text text-anchor="start" x="104" y="-99.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-68.5 0,-91.5 80,-91.5 80,-68.5 0,-68.5"/>
<text text-anchor="start" x="25.5" y="-76.3" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="80,-68.5 80,-91.5 136,-91.5 136,-68.5 80,-68.5"/>
<text text-anchor="start" x="104" y="-76.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-45.5 0,-68.5 80,-68.5 80,-45.5 0,-45.5"/>
<text text-anchor="start" x="26" y="-53.3" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="80,-45.5 80,-68.5 136,-68.5 136,-45.5 80,-45.5"/>
<text text-anchor="start" x="104" y="-53.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-22.5 0,-45.5 80,-45.5 80,-22.5 0,-22.5"/>
<text text-anchor="start" x="26" y="-30.3" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="80,-22.5 80,-45.5 136,-45.5 136,-22.5 80,-22.5"/>
<text text-anchor="start" x="104" y="-30.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 80,-22.5 80,0.5 0,0.5"/>
<text text-anchor="start" x="33" y="-7.3" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="80,0.5 80,-22.5 136,-22.5 136,0.5 80,0.5"/>
<text text-anchor="start" x="104" y="-7.3" font-family="arial" font-size="14.00">9</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="494,-283 283,-283 283,-84 494,-84 494,-283"/>
<polygon fill="none" stroke="black" points="283.5,-259.5 283.5,-282.5 494.5,-282.5 494.5,-259.5 283.5,-259.5"/>
<text text-anchor="start" x="378.5" y="-267.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="283.5,-236.5 283.5,-259.5 318.5,-259.5 318.5,-236.5 283.5,-236.5"/>
<text text-anchor="start" x="293.5" y="-244.3" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="318.5,-236.5 318.5,-259.5 398.5,-259.5 398.5,-236.5 318.5,-236.5"/>
<text text-anchor="start" x="328.5" y="-244.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="398.5,-236.5 398.5,-259.5 439.5,-259.5 439.5,-236.5 398.5,-236.5"/>
<text text-anchor="start" x="408" y="-244.3" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="439.5,-236.5 439.5,-259.5 494.5,-259.5 494.5,-236.5 439.5,-236.5"/>
<text text-anchor="start" x="449" y="-244.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="315.5" y="-223.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-204.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="353.5" y="-204.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="428.5" y="-204.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-196.5 283.5,-198.5 494.5,-198.5 494.5,-196.5 283.5,-196.5"/>
<polygon fill="#ffffff" stroke="transparent" points="283.5,-194.5 283.5,-196.5 494.5,-196.5 494.5,-194.5 283.5,-194.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-192.5 283.5,-194.5 494.5,-194.5 494.5,-192.5 283.5,-192.5"/>
<text text-anchor="start" x="291" y="-179.3" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="355.5" y="-179.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="435" y="-179.3" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-171.5 283.5,-173.5 494.5,-173.5 494.5,-171.5 283.5,-171.5"/>
<polygon fill="#895956" stroke="transparent" points="283.5,-169.5 283.5,-171.5 494.5,-171.5 494.5,-169.5 283.5,-169.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-167.5 283.5,-169.5 494.5,-169.5 494.5,-167.5 283.5,-167.5"/>
<text text-anchor="start" x="292" y="-154.3" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="355" y="-154.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="434" y="-154.3" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-146.5 283.5,-148.5 494.5,-148.5 494.5,-146.5 283.5,-146.5"/>
<polygon fill="#00ff00" stroke="transparent" points="283.5,-144.5 283.5,-146.5 494.5,-146.5 494.5,-144.5 283.5,-144.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-142.5 283.5,-144.5 494.5,-144.5 494.5,-142.5 283.5,-142.5"/>
<text text-anchor="start" x="315.5" y="-129.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-110.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="369.5" y="-110.3" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-102.5 283.5,-104.5 494.5,-104.5 494.5,-102.5 283.5,-102.5"/>
<text text-anchor="start" x="315.5" y="-89.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="487,-283 280,-283 280,-84 487,-84 487,-283"/>
<polygon fill="none" stroke="black" points="280.5,-259.5 280.5,-282.5 487.5,-282.5 487.5,-259.5 280.5,-259.5"/>
<text text-anchor="start" x="373" y="-267.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="280.5,-236.5 280.5,-259.5 314.5,-259.5 314.5,-236.5 280.5,-236.5"/>
<text text-anchor="start" x="290" y="-244.3" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="314.5,-236.5 314.5,-259.5 392.5,-259.5 392.5,-236.5 314.5,-236.5"/>
<text text-anchor="start" x="324" y="-244.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="392.5,-236.5 392.5,-259.5 433.5,-259.5 433.5,-236.5 392.5,-236.5"/>
<text text-anchor="start" x="402" y="-244.3" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="433.5,-236.5 433.5,-259.5 487.5,-259.5 487.5,-236.5 433.5,-236.5"/>
<text text-anchor="start" x="443" y="-244.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="312" y="-223.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="282.5" y="-204.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="349.5" y="-204.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="422.5" y="-204.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="280.5,-196.5 280.5,-198.5 487.5,-198.5 487.5,-196.5 280.5,-196.5"/>
<polygon fill="#ffffff" stroke="none" points="280.5,-194.5 280.5,-196.5 487.5,-196.5 487.5,-194.5 280.5,-194.5"/>
<polygon fill="#000000" stroke="none" points="280.5,-192.5 280.5,-194.5 487.5,-194.5 487.5,-192.5 280.5,-192.5"/>
<text text-anchor="start" x="288.5" y="-179.3" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="352" y="-179.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="429.5" y="-179.3" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="none" points="280.5,-171.5 280.5,-173.5 487.5,-173.5 487.5,-171.5 280.5,-171.5"/>
<polygon fill="#895956" stroke="none" points="280.5,-169.5 280.5,-171.5 487.5,-171.5 487.5,-169.5 280.5,-169.5"/>
<polygon fill="#000000" stroke="none" points="280.5,-167.5 280.5,-169.5 487.5,-169.5 487.5,-167.5 280.5,-167.5"/>
<text text-anchor="start" x="289.5" y="-154.3" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="350.5" y="-154.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="428.5" y="-154.3" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="none" points="280.5,-146.5 280.5,-148.5 487.5,-148.5 487.5,-146.5 280.5,-146.5"/>
<polygon fill="#00ff00" stroke="none" points="280.5,-144.5 280.5,-146.5 487.5,-146.5 487.5,-144.5 280.5,-144.5"/>
<polygon fill="#000000" stroke="none" points="280.5,-142.5 280.5,-144.5 487.5,-144.5 487.5,-142.5 280.5,-142.5"/>
<text text-anchor="start" x="312" y="-129.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="282.5" y="-110.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="365" y="-110.3" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="280.5,-102.5 280.5,-104.5 487.5,-104.5 487.5,-102.5 280.5,-102.5"/>
<text text-anchor="start" x="312" y="-89.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-100.5C217.18,-102.68 208.81,-195.68 283,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M139,-102.5C215.19,-102.5 206.81,-195.5 283,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-104.5C213.19,-102.32 204.82,-195.32 283,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-100.5C214.18,-102.68 205.81,-195.68 280,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M136,-102.5C212.19,-102.5 203.81,-195.5 280,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-104.5C210.19,-102.32 201.82,-195.32 280,-197.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-170.5C202.76,-170.52 218.75,-168.52 283,-168.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M139,-172.5C203.01,-172.5 218.99,-170.5 283,-170.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-174.5C203.25,-174.48 219.24,-172.48 283,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-170.5C199.76,-170.52 215.75,-168.52 280,-168.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M136,-172.5C200.01,-172.5 215.99,-170.5 280,-170.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-174.5C200.25,-174.48 216.24,-172.48 280,-172.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-147.5C202.54,-147.56 218.49,-143.56 283,-143.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M139,-149.5C203.02,-149.5 218.98,-145.5 283,-145.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-151.5C203.51,-151.44 219.46,-147.44 283,-147.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-147.5C199.54,-147.56 215.49,-143.56 280,-143.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M136,-149.5C200.02,-149.5 215.98,-145.5 280,-145.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-151.5C200.51,-151.44 216.46,-147.44 280,-147.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-102.5C203,-102.5 219,-103.5 283,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-102.5C200,-102.5 216,-103.5 280,-103.5"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="825,-254 638,-254 638,-139 825,-139 825,-254"/>
<polygon fill="none" stroke="black" points="638.5,-230.5 638.5,-253.5 825.5,-253.5 825.5,-230.5 638.5,-230.5"/>
<text text-anchor="start" x="723" y="-238.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638.5,-207.5 638.5,-230.5 734.5,-230.5 734.5,-207.5 638.5,-207.5"/>
<text text-anchor="start" x="642.5" y="-215.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="734.5,-207.5 734.5,-230.5 785.5,-230.5 785.5,-207.5 734.5,-207.5"/>
<text text-anchor="start" x="738.5" y="-215.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="785.5,-207.5 785.5,-230.5 825.5,-230.5 825.5,-207.5 785.5,-207.5"/>
<text text-anchor="start" x="789.5" y="-215.3" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="638.5,-184.5 638.5,-207.5 720.5,-207.5 720.5,-184.5 638.5,-184.5"/>
<text text-anchor="start" x="675.5" y="-192.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="720.5,-184.5 720.5,-207.5 825.5,-207.5 825.5,-184.5 720.5,-184.5"/>
<text text-anchor="start" x="757" y="-192.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="638.5,-161.5 638.5,-184.5 720.5,-184.5 720.5,-161.5 638.5,-161.5"/>
<text text-anchor="start" x="675.5" y="-169.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="720.5,-161.5 720.5,-184.5 825.5,-184.5 825.5,-161.5 720.5,-161.5"/>
<text text-anchor="start" x="763" y="-169.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="638.5,-138.5 638.5,-161.5 720.5,-161.5 720.5,-138.5 638.5,-138.5"/>
<text text-anchor="start" x="675.5" y="-146.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="720.5,-138.5 720.5,-161.5 825.5,-161.5 825.5,-138.5 720.5,-138.5"/>
<text text-anchor="start" x="764" y="-146.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="813,-254 631,-254 631,-139 813,-139 813,-254"/>
<polygon fill="none" stroke="black" points="631,-230.5 631,-253.5 813,-253.5 813,-230.5 631,-230.5"/>
<text text-anchor="start" x="713.5" y="-238.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="631,-207.5 631,-230.5 724,-230.5 724,-207.5 631,-207.5"/>
<text text-anchor="start" x="635" y="-215.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="724,-207.5 724,-230.5 774,-230.5 774,-207.5 724,-207.5"/>
<text text-anchor="start" x="728" y="-215.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="774,-207.5 774,-230.5 813,-230.5 813,-207.5 774,-207.5"/>
<text text-anchor="start" x="778" y="-215.3" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="631,-184.5 631,-207.5 711,-207.5 711,-184.5 631,-184.5"/>
<text text-anchor="start" x="667" y="-192.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="711,-184.5 711,-207.5 813,-207.5 813,-184.5 711,-184.5"/>
<text text-anchor="start" x="746.5" y="-192.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="631,-161.5 631,-184.5 711,-184.5 711,-161.5 631,-161.5"/>
<text text-anchor="start" x="667" y="-169.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="711,-161.5 711,-184.5 813,-184.5 813,-161.5 711,-161.5"/>
<text text-anchor="start" x="752.5" y="-169.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="631,-138.5 631,-161.5 711,-161.5 711,-138.5 631,-138.5"/>
<text text-anchor="start" x="667" y="-146.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="711,-138.5 711,-161.5 813,-161.5 813,-138.5 711,-138.5"/>
<text text-anchor="start" x="753" y="-146.3" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-193.5C558,-193.5 574,-193.5 638,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M494,-195.5C558,-195.5 574,-195.5 638,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-197.5C558,-197.5 574,-197.5 638,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-193.5C551,-193.5 567,-193.5 631,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M487,-195.5C551,-195.5 567,-195.5 631,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-197.5C551,-197.5 567,-197.5 631,-197.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-168.5C557.04,-169.36 571.68,-148.36 638,-147.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M494,-170.5C558.68,-170.5 573.32,-149.5 638,-149.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-172.5C560.32,-171.64 574.96,-150.64 638,-151.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-168.5C550.04,-169.36 564.68,-148.36 631,-147.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M487,-170.5C551.68,-170.5 566.32,-149.5 631,-149.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-172.5C553.32,-171.64 567.96,-150.64 631,-151.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-143.5C560.9,-144.59 574.67,-171.59 638,-170.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-145.5C559.12,-145.5 572.88,-172.5 638,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-147.5C557.33,-146.41 571.1,-173.41 638,-174.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-143.5C553.9,-144.59 567.67,-171.59 631,-170.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M487,-145.5C552.12,-145.5 565.88,-172.5 631,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-147.5C550.33,-146.41 564.1,-173.41 631,-174.5"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Cable, 3 x 0.25 mm&sup2; shielded</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, 3 x 0.25 mm² shielded</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Connector, D-Sub, female, 9 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, D-Sub, female, 9 pins</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">3</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 3 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X2</td>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Connector, Molex KK 254, female, 3 pins</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X2</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/demo01.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 55 KiB

248
examples/demo01.svg generated
View File

@ -1,172 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="833pt" height="291pt"
viewBox="0.00 0.00 833.00 291.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="821pt" height="291pt"
viewBox="0.00 0.00 821.00 291.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 287)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-287 829,-287 829,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-287 817,-287 817,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="139,-253 0,-253 0,0 139,0 139,-253"/>
<polygon fill="none" stroke="black" points="0.5,-229.5 0.5,-252.5 139.5,-252.5 139.5,-229.5 0.5,-229.5"/>
<text text-anchor="start" x="61" y="-237.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-206.5 0.5,-229.5 48.5,-229.5 48.5,-206.5 0.5,-206.5"/>
<text text-anchor="start" x="4.5" y="-214.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="48.5,-206.5 48.5,-229.5 99.5,-229.5 99.5,-206.5 48.5,-206.5"/>
<text text-anchor="start" x="52.5" y="-214.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="99.5,-206.5 99.5,-229.5 139.5,-229.5 139.5,-206.5 99.5,-206.5"/>
<text text-anchor="start" x="103.5" y="-214.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 82.5,-206.5 82.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="26" y="-191.3" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="82.5,-183.5 82.5,-206.5 139.5,-206.5 139.5,-183.5 82.5,-183.5"/>
<text text-anchor="start" x="107" y="-191.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 82.5,-183.5 82.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="31.5" y="-168.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="82.5,-160.5 82.5,-183.5 139.5,-183.5 139.5,-160.5 82.5,-160.5"/>
<text text-anchor="start" x="107" y="-168.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-137.5 0.5,-160.5 82.5,-160.5 82.5,-137.5 0.5,-137.5"/>
<text text-anchor="start" x="32.5" y="-145.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="82.5,-137.5 82.5,-160.5 139.5,-160.5 139.5,-137.5 82.5,-137.5"/>
<text text-anchor="start" x="107" y="-145.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-114.5 0.5,-137.5 82.5,-137.5 82.5,-114.5 0.5,-114.5"/>
<text text-anchor="start" x="27" y="-122.3" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="82.5,-114.5 82.5,-137.5 139.5,-137.5 139.5,-114.5 82.5,-114.5"/>
<text text-anchor="start" x="107" y="-122.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0.5,-91.5 0.5,-114.5 82.5,-114.5 82.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="25.5" y="-99.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="82.5,-91.5 82.5,-114.5 139.5,-114.5 139.5,-91.5 82.5,-91.5"/>
<text text-anchor="start" x="107" y="-99.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-68.5 0.5,-91.5 82.5,-91.5 82.5,-68.5 0.5,-68.5"/>
<text text-anchor="start" x="26.5" y="-76.3" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="82.5,-68.5 82.5,-91.5 139.5,-91.5 139.5,-68.5 82.5,-68.5"/>
<text text-anchor="start" x="107" y="-76.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,-45.5 0.5,-68.5 82.5,-68.5 82.5,-45.5 0.5,-45.5"/>
<text text-anchor="start" x="27.5" y="-53.3" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="82.5,-45.5 82.5,-68.5 139.5,-68.5 139.5,-45.5 82.5,-45.5"/>
<text text-anchor="start" x="107" y="-53.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0.5,-22.5 0.5,-45.5 82.5,-45.5 82.5,-22.5 0.5,-22.5"/>
<text text-anchor="start" x="27.5" y="-30.3" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="82.5,-22.5 82.5,-45.5 139.5,-45.5 139.5,-22.5 82.5,-22.5"/>
<text text-anchor="start" x="107" y="-30.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 82.5,-22.5 82.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="34.5" y="-7.3" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="82.5,0.5 82.5,-22.5 139.5,-22.5 139.5,0.5 82.5,0.5"/>
<text text-anchor="start" x="107" y="-7.3" font-family="arial" font-size="14.00">9</text>
<polygon fill="#ffffff" stroke="black" points="136,-253 0,-253 0,0 136,0 136,-253"/>
<polygon fill="none" stroke="black" points="0,-229.5 0,-252.5 136,-252.5 136,-229.5 0,-229.5"/>
<text text-anchor="start" x="59.5" y="-237.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-206.5 0,-229.5 47,-229.5 47,-206.5 0,-206.5"/>
<text text-anchor="start" x="4" y="-214.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="47,-206.5 47,-229.5 97,-229.5 97,-206.5 47,-206.5"/>
<text text-anchor="start" x="51" y="-214.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="97,-206.5 97,-229.5 136,-229.5 136,-206.5 97,-206.5"/>
<text text-anchor="start" x="101" y="-214.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-183.5 0,-206.5 80,-206.5 80,-183.5 0,-183.5"/>
<text text-anchor="start" x="25" y="-191.3" font-family="arial" font-size="14.00">DCD</text>
<polygon fill="none" stroke="black" points="80,-183.5 80,-206.5 136,-206.5 136,-183.5 80,-183.5"/>
<text text-anchor="start" x="104" y="-191.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-160.5 0,-183.5 80,-183.5 80,-160.5 0,-160.5"/>
<text text-anchor="start" x="30.5" y="-168.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="80,-160.5 80,-183.5 136,-183.5 136,-160.5 80,-160.5"/>
<text text-anchor="start" x="104" y="-168.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-137.5 0,-160.5 80,-160.5 80,-137.5 0,-137.5"/>
<text text-anchor="start" x="31" y="-145.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="80,-137.5 80,-160.5 136,-160.5 136,-137.5 80,-137.5"/>
<text text-anchor="start" x="104" y="-145.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-114.5 0,-137.5 80,-137.5 80,-114.5 0,-114.5"/>
<text text-anchor="start" x="26" y="-122.3" font-family="arial" font-size="14.00">DTR</text>
<polygon fill="none" stroke="black" points="80,-114.5 80,-137.5 136,-137.5 136,-114.5 80,-114.5"/>
<text text-anchor="start" x="104" y="-122.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-91.5 0,-114.5 80,-114.5 80,-91.5 0,-91.5"/>
<text text-anchor="start" x="24.5" y="-99.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="80,-91.5 80,-114.5 136,-114.5 136,-91.5 80,-91.5"/>
<text text-anchor="start" x="104" y="-99.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-68.5 0,-91.5 80,-91.5 80,-68.5 0,-68.5"/>
<text text-anchor="start" x="25.5" y="-76.3" font-family="arial" font-size="14.00">DSR</text>
<polygon fill="none" stroke="black" points="80,-68.5 80,-91.5 136,-91.5 136,-68.5 80,-68.5"/>
<text text-anchor="start" x="104" y="-76.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-45.5 0,-68.5 80,-68.5 80,-45.5 0,-45.5"/>
<text text-anchor="start" x="26" y="-53.3" font-family="arial" font-size="14.00">RTS</text>
<polygon fill="none" stroke="black" points="80,-45.5 80,-68.5 136,-68.5 136,-45.5 80,-45.5"/>
<text text-anchor="start" x="104" y="-53.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-22.5 0,-45.5 80,-45.5 80,-22.5 0,-22.5"/>
<text text-anchor="start" x="26" y="-30.3" font-family="arial" font-size="14.00">CTS</text>
<polygon fill="none" stroke="black" points="80,-22.5 80,-45.5 136,-45.5 136,-22.5 80,-22.5"/>
<text text-anchor="start" x="104" y="-30.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 80,-22.5 80,0.5 0,0.5"/>
<text text-anchor="start" x="33" y="-7.3" font-family="arial" font-size="14.00">RI</text>
<polygon fill="none" stroke="black" points="80,0.5 80,-22.5 136,-22.5 136,0.5 80,0.5"/>
<text text-anchor="start" x="104" y="-7.3" font-family="arial" font-size="14.00">9</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="494,-283 283,-283 283,-84 494,-84 494,-283"/>
<polygon fill="none" stroke="black" points="283.5,-259.5 283.5,-282.5 494.5,-282.5 494.5,-259.5 283.5,-259.5"/>
<text text-anchor="start" x="378.5" y="-267.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="283.5,-236.5 283.5,-259.5 318.5,-259.5 318.5,-236.5 283.5,-236.5"/>
<text text-anchor="start" x="293.5" y="-244.3" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="318.5,-236.5 318.5,-259.5 398.5,-259.5 398.5,-236.5 318.5,-236.5"/>
<text text-anchor="start" x="328.5" y="-244.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="398.5,-236.5 398.5,-259.5 439.5,-259.5 439.5,-236.5 398.5,-236.5"/>
<text text-anchor="start" x="408" y="-244.3" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="439.5,-236.5 439.5,-259.5 494.5,-259.5 494.5,-236.5 439.5,-236.5"/>
<text text-anchor="start" x="449" y="-244.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="315.5" y="-223.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-204.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="353.5" y="-204.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="428.5" y="-204.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-196.5 283.5,-198.5 494.5,-198.5 494.5,-196.5 283.5,-196.5"/>
<polygon fill="#ffffff" stroke="transparent" points="283.5,-194.5 283.5,-196.5 494.5,-196.5 494.5,-194.5 283.5,-194.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-192.5 283.5,-194.5 494.5,-194.5 494.5,-192.5 283.5,-192.5"/>
<text text-anchor="start" x="291" y="-179.3" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="355.5" y="-179.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="435" y="-179.3" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-171.5 283.5,-173.5 494.5,-173.5 494.5,-171.5 283.5,-171.5"/>
<polygon fill="#895956" stroke="transparent" points="283.5,-169.5 283.5,-171.5 494.5,-171.5 494.5,-169.5 283.5,-169.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-167.5 283.5,-169.5 494.5,-169.5 494.5,-167.5 283.5,-167.5"/>
<text text-anchor="start" x="292" y="-154.3" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="355" y="-154.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="434" y="-154.3" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-146.5 283.5,-148.5 494.5,-148.5 494.5,-146.5 283.5,-146.5"/>
<polygon fill="#00ff00" stroke="transparent" points="283.5,-144.5 283.5,-146.5 494.5,-146.5 494.5,-144.5 283.5,-144.5"/>
<polygon fill="#000000" stroke="transparent" points="283.5,-142.5 283.5,-144.5 494.5,-144.5 494.5,-142.5 283.5,-142.5"/>
<text text-anchor="start" x="315.5" y="-129.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="285.5" y="-110.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="369.5" y="-110.3" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="283.5,-102.5 283.5,-104.5 494.5,-104.5 494.5,-102.5 283.5,-102.5"/>
<text text-anchor="start" x="315.5" y="-89.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="487,-283 280,-283 280,-84 487,-84 487,-283"/>
<polygon fill="none" stroke="black" points="280.5,-259.5 280.5,-282.5 487.5,-282.5 487.5,-259.5 280.5,-259.5"/>
<text text-anchor="start" x="373" y="-267.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="280.5,-236.5 280.5,-259.5 314.5,-259.5 314.5,-236.5 280.5,-236.5"/>
<text text-anchor="start" x="290" y="-244.3" font-family="arial" font-size="14.00">3x</text>
<polygon fill="none" stroke="black" points="314.5,-236.5 314.5,-259.5 392.5,-259.5 392.5,-236.5 314.5,-236.5"/>
<text text-anchor="start" x="324" y="-244.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="392.5,-236.5 392.5,-259.5 433.5,-259.5 433.5,-236.5 392.5,-236.5"/>
<text text-anchor="start" x="402" y="-244.3" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="433.5,-236.5 433.5,-259.5 487.5,-259.5 487.5,-236.5 433.5,-236.5"/>
<text text-anchor="start" x="443" y="-244.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="312" y="-223.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="282.5" y="-204.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="349.5" y="-204.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="422.5" y="-204.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="280.5,-196.5 280.5,-198.5 487.5,-198.5 487.5,-196.5 280.5,-196.5"/>
<polygon fill="#ffffff" stroke="none" points="280.5,-194.5 280.5,-196.5 487.5,-196.5 487.5,-194.5 280.5,-194.5"/>
<polygon fill="#000000" stroke="none" points="280.5,-192.5 280.5,-194.5 487.5,-194.5 487.5,-192.5 280.5,-192.5"/>
<text text-anchor="start" x="288.5" y="-179.3" font-family="arial" font-size="14.00">X1:2:RX</text>
<text text-anchor="start" x="352" y="-179.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="429.5" y="-179.3" font-family="arial" font-size="14.00">X2:3:TX</text>
<polygon fill="#000000" stroke="none" points="280.5,-171.5 280.5,-173.5 487.5,-173.5 487.5,-171.5 280.5,-171.5"/>
<polygon fill="#895956" stroke="none" points="280.5,-169.5 280.5,-171.5 487.5,-171.5 487.5,-169.5 280.5,-169.5"/>
<polygon fill="#000000" stroke="none" points="280.5,-167.5 280.5,-169.5 487.5,-169.5 487.5,-167.5 280.5,-167.5"/>
<text text-anchor="start" x="289.5" y="-154.3" font-family="arial" font-size="14.00">X1:3:TX</text>
<text text-anchor="start" x="350.5" y="-154.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="428.5" y="-154.3" font-family="arial" font-size="14.00">X2:2:RX</text>
<polygon fill="#000000" stroke="none" points="280.5,-146.5 280.5,-148.5 487.5,-148.5 487.5,-146.5 280.5,-146.5"/>
<polygon fill="#00ff00" stroke="none" points="280.5,-144.5 280.5,-146.5 487.5,-146.5 487.5,-144.5 280.5,-144.5"/>
<polygon fill="#000000" stroke="none" points="280.5,-142.5 280.5,-144.5 487.5,-144.5 487.5,-142.5 280.5,-142.5"/>
<text text-anchor="start" x="312" y="-129.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="282.5" y="-110.3" font-family="arial" font-size="14.00">X1:5:GND</text>
<text text-anchor="start" x="365" y="-110.3" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="280.5,-102.5 280.5,-104.5 487.5,-104.5 487.5,-102.5 280.5,-102.5"/>
<text text-anchor="start" x="312" y="-89.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-100.5C217.18,-102.68 208.81,-195.68 283,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M139,-102.5C215.19,-102.5 206.81,-195.5 283,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-104.5C213.19,-102.32 204.82,-195.32 283,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-100.5C214.18,-102.68 205.81,-195.68 280,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M136,-102.5C212.19,-102.5 203.81,-195.5 280,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-104.5C210.19,-102.32 201.82,-195.32 280,-197.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-170.5C202.76,-170.52 218.75,-168.52 283,-168.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M139,-172.5C203.01,-172.5 218.99,-170.5 283,-170.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-174.5C203.25,-174.48 219.24,-172.48 283,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-170.5C199.76,-170.52 215.75,-168.52 280,-168.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M136,-172.5C200.01,-172.5 215.99,-170.5 280,-170.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-174.5C200.25,-174.48 216.24,-172.48 280,-172.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-147.5C202.54,-147.56 218.49,-143.56 283,-143.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M139,-149.5C203.02,-149.5 218.98,-145.5 283,-145.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-151.5C203.51,-151.44 219.46,-147.44 283,-147.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-147.5C199.54,-147.56 215.49,-143.56 280,-143.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M136,-149.5C200.02,-149.5 215.98,-145.5 280,-145.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-151.5C200.51,-151.44 216.46,-147.44 280,-147.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M139,-102.5C203,-102.5 219,-103.5 283,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M136,-102.5C200,-102.5 216,-103.5 280,-103.5"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="825,-254 638,-254 638,-139 825,-139 825,-254"/>
<polygon fill="none" stroke="black" points="638.5,-230.5 638.5,-253.5 825.5,-253.5 825.5,-230.5 638.5,-230.5"/>
<text text-anchor="start" x="723" y="-238.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638.5,-207.5 638.5,-230.5 734.5,-230.5 734.5,-207.5 638.5,-207.5"/>
<text text-anchor="start" x="642.5" y="-215.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="734.5,-207.5 734.5,-230.5 785.5,-230.5 785.5,-207.5 734.5,-207.5"/>
<text text-anchor="start" x="738.5" y="-215.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="785.5,-207.5 785.5,-230.5 825.5,-230.5 825.5,-207.5 785.5,-207.5"/>
<text text-anchor="start" x="789.5" y="-215.3" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="638.5,-184.5 638.5,-207.5 720.5,-207.5 720.5,-184.5 638.5,-184.5"/>
<text text-anchor="start" x="675.5" y="-192.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="720.5,-184.5 720.5,-207.5 825.5,-207.5 825.5,-184.5 720.5,-184.5"/>
<text text-anchor="start" x="757" y="-192.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="638.5,-161.5 638.5,-184.5 720.5,-184.5 720.5,-161.5 638.5,-161.5"/>
<text text-anchor="start" x="675.5" y="-169.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="720.5,-161.5 720.5,-184.5 825.5,-184.5 825.5,-161.5 720.5,-161.5"/>
<text text-anchor="start" x="763" y="-169.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="638.5,-138.5 638.5,-161.5 720.5,-161.5 720.5,-138.5 638.5,-138.5"/>
<text text-anchor="start" x="675.5" y="-146.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="720.5,-138.5 720.5,-161.5 825.5,-161.5 825.5,-138.5 720.5,-138.5"/>
<text text-anchor="start" x="764" y="-146.3" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="813,-254 631,-254 631,-139 813,-139 813,-254"/>
<polygon fill="none" stroke="black" points="631,-230.5 631,-253.5 813,-253.5 813,-230.5 631,-230.5"/>
<text text-anchor="start" x="713.5" y="-238.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="631,-207.5 631,-230.5 724,-230.5 724,-207.5 631,-207.5"/>
<text text-anchor="start" x="635" y="-215.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="724,-207.5 724,-230.5 774,-230.5 774,-207.5 724,-207.5"/>
<text text-anchor="start" x="728" y="-215.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="774,-207.5 774,-230.5 813,-230.5 813,-207.5 774,-207.5"/>
<text text-anchor="start" x="778" y="-215.3" font-family="arial" font-size="14.00">3&#45;pin</text>
<polygon fill="none" stroke="black" points="631,-184.5 631,-207.5 711,-207.5 711,-184.5 631,-184.5"/>
<text text-anchor="start" x="667" y="-192.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="711,-184.5 711,-207.5 813,-207.5 813,-184.5 711,-184.5"/>
<text text-anchor="start" x="746.5" y="-192.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="631,-161.5 631,-184.5 711,-184.5 711,-161.5 631,-161.5"/>
<text text-anchor="start" x="667" y="-169.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="711,-161.5 711,-184.5 813,-184.5 813,-161.5 711,-161.5"/>
<text text-anchor="start" x="752.5" y="-169.3" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="631,-138.5 631,-161.5 711,-161.5 711,-138.5 631,-138.5"/>
<text text-anchor="start" x="667" y="-146.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="711,-138.5 711,-161.5 813,-161.5 813,-138.5 711,-138.5"/>
<text text-anchor="start" x="753" y="-146.3" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-193.5C558,-193.5 574,-193.5 638,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M494,-195.5C558,-195.5 574,-195.5 638,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-197.5C558,-197.5 574,-197.5 638,-197.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-193.5C551,-193.5 567,-193.5 631,-193.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M487,-195.5C551,-195.5 567,-195.5 631,-195.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-197.5C551,-197.5 567,-197.5 631,-197.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-168.5C557.04,-169.36 571.68,-148.36 638,-147.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M494,-170.5C558.68,-170.5 573.32,-149.5 638,-149.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-172.5C560.32,-171.64 574.96,-150.64 638,-151.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-168.5C550.04,-169.36 564.68,-148.36 631,-147.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M487,-170.5C551.68,-170.5 566.32,-149.5 631,-149.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-172.5C553.32,-171.64 567.96,-150.64 631,-151.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-143.5C560.9,-144.59 574.67,-171.59 638,-170.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-145.5C559.12,-145.5 572.88,-172.5 638,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-147.5C557.33,-146.41 571.1,-173.41 638,-174.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-143.5C553.9,-144.59 567.67,-171.59 631,-170.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M487,-145.5C552.12,-145.5 565.88,-172.5 631,-172.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M487,-147.5C550.33,-146.41 564.1,-173.41 631,-174.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

10
examples/demo02.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
@ -168,7 +168,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_1 [label=<
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -180,7 +180,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_2 [label=<
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -487,10 +487,10 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style="filled,dashed"]
edge [color="#000000:#000000:#000000"]
_ferrule_crimp_1:e -- W4:w1:w
__F_1:e -- W4:w1:w
W4:w1:e -- X4:p1l:w
edge [color="#000000:#ff0000:#000000"]
_ferrule_crimp_2:e -- W4:w2:w
__F_2:e -- W4:w2:w
W4:w2:e -- X4:p2l:w
W4 [label=<
<table border="0" cellspacing="0" cellpadding="0">

1132
examples/demo02.html generated

File diff suppressed because it is too large Load Diff

BIN
examples/demo02.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 207 KiB

708
examples/demo02.svg generated
View File

@ -1,512 +1,512 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="882pt" height="767pt"
viewBox="0.00 0.00 882.00 766.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="872pt" height="767pt"
viewBox="0.00 0.00 872.00 766.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 762.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-762.5 878,-762.5 878,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-762.5 868,-762.5 868,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="189.5,-517.5 2.5,-517.5 2.5,-287.5 189.5,-287.5 189.5,-517.5"/>
<polygon fill="none" stroke="black" points="3,-494.5 3,-517.5 190,-517.5 190,-494.5 3,-494.5"/>
<text text-anchor="start" x="87.5" y="-502.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="3,-471.5 3,-494.5 99,-494.5 99,-471.5 3,-471.5"/>
<text text-anchor="start" x="7" y="-479.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="99,-471.5 99,-494.5 150,-494.5 150,-471.5 99,-471.5"/>
<text text-anchor="start" x="103" y="-479.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="150,-471.5 150,-494.5 190,-494.5 190,-471.5 150,-471.5"/>
<text text-anchor="start" x="154" y="-479.3" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="3,-448.5 3,-471.5 111,-471.5 111,-448.5 3,-448.5"/>
<polygon fill="#ffffff" stroke="black" points="185.5,-517.5 3.5,-517.5 3.5,-287.5 185.5,-287.5 185.5,-517.5"/>
<polygon fill="none" stroke="black" points="3.5,-494.5 3.5,-517.5 185.5,-517.5 185.5,-494.5 3.5,-494.5"/>
<text text-anchor="start" x="86" y="-502.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="3.5,-471.5 3.5,-494.5 96.5,-494.5 96.5,-471.5 3.5,-471.5"/>
<text text-anchor="start" x="7.5" y="-479.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-471.5 96.5,-494.5 146.5,-494.5 146.5,-471.5 96.5,-471.5"/>
<text text-anchor="start" x="100.5" y="-479.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="146.5,-471.5 146.5,-494.5 185.5,-494.5 185.5,-471.5 146.5,-471.5"/>
<text text-anchor="start" x="150.5" y="-479.3" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="3.5,-448.5 3.5,-471.5 109.5,-471.5 109.5,-448.5 3.5,-448.5"/>
<text text-anchor="start" x="41" y="-456.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="111,-448.5 111,-471.5 190,-471.5 190,-448.5 111,-448.5"/>
<text text-anchor="start" x="146.5" y="-456.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="3,-425.5 3,-448.5 111,-448.5 111,-425.5 3,-425.5"/>
<polygon fill="none" stroke="black" points="109.5,-448.5 109.5,-471.5 185.5,-471.5 185.5,-448.5 109.5,-448.5"/>
<text text-anchor="start" x="143.5" y="-456.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="3.5,-425.5 3.5,-448.5 109.5,-448.5 109.5,-425.5 3.5,-425.5"/>
<text text-anchor="start" x="44" y="-433.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="111,-425.5 111,-448.5 190,-448.5 190,-425.5 111,-425.5"/>
<text text-anchor="start" x="146.5" y="-433.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="3,-402.5 3,-425.5 111,-425.5 111,-402.5 3,-402.5"/>
<polygon fill="none" stroke="black" points="109.5,-425.5 109.5,-448.5 185.5,-448.5 185.5,-425.5 109.5,-425.5"/>
<text text-anchor="start" x="143.5" y="-433.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="3.5,-402.5 3.5,-425.5 109.5,-425.5 109.5,-402.5 3.5,-402.5"/>
<text text-anchor="start" x="43" y="-410.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="111,-402.5 111,-425.5 190,-425.5 190,-402.5 111,-402.5"/>
<text text-anchor="start" x="146.5" y="-410.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="3,-379.5 3,-402.5 111,-402.5 111,-379.5 3,-379.5"/>
<polygon fill="none" stroke="black" points="109.5,-402.5 109.5,-425.5 185.5,-425.5 185.5,-402.5 109.5,-402.5"/>
<text text-anchor="start" x="143.5" y="-410.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="3.5,-379.5 3.5,-402.5 109.5,-402.5 109.5,-379.5 3.5,-379.5"/>
<text text-anchor="start" x="42.5" y="-387.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="111,-379.5 111,-402.5 190,-402.5 190,-379.5 111,-379.5"/>
<text text-anchor="start" x="146.5" y="-387.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="3,-356.5 3,-379.5 111,-379.5 111,-356.5 3,-356.5"/>
<text text-anchor="start" x="39" y="-364.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="111,-356.5 111,-379.5 190,-379.5 190,-356.5 111,-356.5"/>
<text text-anchor="start" x="146.5" y="-364.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="3,-333.5 3,-356.5 111,-356.5 111,-333.5 3,-333.5"/>
<text text-anchor="start" x="39" y="-341.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="111,-333.5 111,-356.5 190,-356.5 190,-333.5 111,-333.5"/>
<text text-anchor="start" x="146.5" y="-341.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="3,-310.5 3,-333.5 111,-333.5 111,-310.5 3,-310.5"/>
<polygon fill="none" stroke="black" points="109.5,-379.5 109.5,-402.5 185.5,-402.5 185.5,-379.5 109.5,-379.5"/>
<text text-anchor="start" x="143.5" y="-387.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="3.5,-356.5 3.5,-379.5 109.5,-379.5 109.5,-356.5 3.5,-356.5"/>
<text text-anchor="start" x="38" y="-364.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="109.5,-356.5 109.5,-379.5 185.5,-379.5 185.5,-356.5 109.5,-356.5"/>
<text text-anchor="start" x="143.5" y="-364.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="3.5,-333.5 3.5,-356.5 109.5,-356.5 109.5,-333.5 3.5,-333.5"/>
<text text-anchor="start" x="38" y="-341.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="109.5,-333.5 109.5,-356.5 185.5,-356.5 185.5,-333.5 109.5,-333.5"/>
<text text-anchor="start" x="143.5" y="-341.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="3.5,-310.5 3.5,-333.5 109.5,-333.5 109.5,-310.5 3.5,-310.5"/>
<text text-anchor="start" x="42.5" y="-318.3" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="none" stroke="black" points="111,-310.5 111,-333.5 190,-333.5 190,-310.5 111,-310.5"/>
<text text-anchor="start" x="146.5" y="-318.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="3,-287.5 3,-310.5 111,-310.5 111,-287.5 3,-287.5"/>
<polygon fill="none" stroke="black" points="109.5,-310.5 109.5,-333.5 185.5,-333.5 185.5,-310.5 109.5,-310.5"/>
<text text-anchor="start" x="143.5" y="-318.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="3.5,-287.5 3.5,-310.5 109.5,-310.5 109.5,-287.5 3.5,-287.5"/>
<text text-anchor="start" x="44.5" y="-295.3" font-family="arial" font-size="14.00">N/C</text>
<polygon fill="none" stroke="black" points="111,-287.5 111,-310.5 190,-310.5 190,-287.5 111,-287.5"/>
<text text-anchor="start" x="146.5" y="-295.3" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="109.5,-287.5 109.5,-310.5 185.5,-310.5 185.5,-287.5 109.5,-287.5"/>
<text text-anchor="start" x="143.5" y="-295.3" font-family="arial" font-size="14.00">8</text>
</g>
<!-- W1 -->
<g id="node7" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="539,-758.5 340,-758.5 340,-574.5 539,-574.5 539,-758.5"/>
<polygon fill="none" stroke="black" points="340.5,-735.5 340.5,-758.5 539.5,-758.5 539.5,-735.5 340.5,-735.5"/>
<text text-anchor="start" x="429.5" y="-743.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="340.5,-712.5 340.5,-735.5 363.5,-735.5 363.5,-712.5 340.5,-712.5"/>
<text text-anchor="start" x="344.5" y="-720.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="363.5,-712.5 363.5,-735.5 495.5,-735.5 495.5,-712.5 363.5,-712.5"/>
<text text-anchor="start" x="367.5" y="-720.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-712.5 495.5,-735.5 539.5,-735.5 539.5,-712.5 495.5,-712.5"/>
<text text-anchor="start" x="499.5" y="-720.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="373" y="-699.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="343" y="-680.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413.5" y="-680.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="473.5" y="-680.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-672.5 340.5,-674.5 539.5,-674.5 539.5,-672.5 340.5,-672.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-670.5 340.5,-672.5 539.5,-672.5 539.5,-670.5 340.5,-670.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-668.5 340.5,-670.5 539.5,-670.5 539.5,-668.5 340.5,-668.5"/>
<text text-anchor="start" x="346" y="-655.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="412.5" y="-655.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="476.5" y="-655.3" font-family="arial" font-size="14.00">X2:2:+5V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-647.5 340.5,-649.5 539.5,-649.5 539.5,-647.5 340.5,-647.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-645.5 340.5,-647.5 539.5,-647.5 539.5,-645.5 340.5,-645.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-643.5 340.5,-645.5 539.5,-645.5 539.5,-643.5 340.5,-643.5"/>
<text text-anchor="start" x="345" y="-630.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="413.5" y="-630.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="475.5" y="-630.3" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-622.5 340.5,-624.5 539.5,-624.5 539.5,-622.5 340.5,-622.5"/>
<polygon fill="#ffff00" stroke="transparent" points="340.5,-620.5 340.5,-622.5 539.5,-622.5 539.5,-620.5 340.5,-620.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-618.5 340.5,-620.5 539.5,-620.5 539.5,-618.5 340.5,-618.5"/>
<text text-anchor="start" x="344" y="-605.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="412" y="-605.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="474.5" y="-605.3" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-597.5 340.5,-599.5 539.5,-599.5 539.5,-597.5 340.5,-597.5"/>
<polygon fill="#00ff00" stroke="transparent" points="340.5,-595.5 340.5,-597.5 539.5,-597.5 539.5,-595.5 340.5,-595.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-593.5 340.5,-595.5 539.5,-595.5 539.5,-593.5 340.5,-593.5"/>
<text text-anchor="start" x="373" y="-580.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="534.5,-758.5 336.5,-758.5 336.5,-574.5 534.5,-574.5 534.5,-758.5"/>
<polygon fill="none" stroke="black" points="336.5,-735.5 336.5,-758.5 534.5,-758.5 534.5,-735.5 336.5,-735.5"/>
<text text-anchor="start" x="424.5" y="-743.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="336.5,-712.5 336.5,-735.5 359.5,-735.5 359.5,-712.5 336.5,-712.5"/>
<text text-anchor="start" x="340.5" y="-720.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="359.5,-712.5 359.5,-735.5 491.5,-735.5 491.5,-712.5 359.5,-712.5"/>
<text text-anchor="start" x="363.5" y="-720.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="491.5,-712.5 491.5,-735.5 534.5,-735.5 534.5,-712.5 491.5,-712.5"/>
<text text-anchor="start" x="495.5" y="-720.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="369" y="-699.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="339.5" y="-680.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="410" y="-680.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-680.3" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="336.5,-672.5 336.5,-674.5 534.5,-674.5 534.5,-672.5 336.5,-672.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-670.5 336.5,-672.5 534.5,-672.5 534.5,-670.5 336.5,-670.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-668.5 336.5,-670.5 534.5,-670.5 534.5,-668.5 336.5,-668.5"/>
<text text-anchor="start" x="342.5" y="-655.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="409" y="-655.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="472" y="-655.3" font-family="arial" font-size="14.00">X2:2:+5V</text>
<polygon fill="#000000" stroke="none" points="336.5,-647.5 336.5,-649.5 534.5,-649.5 534.5,-647.5 336.5,-647.5"/>
<polygon fill="#ff0000" stroke="none" points="336.5,-645.5 336.5,-647.5 534.5,-647.5 534.5,-645.5 336.5,-645.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-643.5 336.5,-645.5 534.5,-645.5 534.5,-643.5 336.5,-643.5"/>
<text text-anchor="start" x="342" y="-630.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="410" y="-630.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="471.5" y="-630.3" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="none" points="336.5,-622.5 336.5,-624.5 534.5,-624.5 534.5,-622.5 336.5,-622.5"/>
<polygon fill="#ffff00" stroke="none" points="336.5,-620.5 336.5,-622.5 534.5,-622.5 534.5,-620.5 336.5,-620.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-618.5 336.5,-620.5 534.5,-620.5 534.5,-618.5 336.5,-618.5"/>
<text text-anchor="start" x="341" y="-605.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="408.5" y="-605.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="470.5" y="-605.3" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="none" points="336.5,-597.5 336.5,-599.5 534.5,-599.5 534.5,-597.5 336.5,-597.5"/>
<polygon fill="#00ff00" stroke="none" points="336.5,-595.5 336.5,-597.5 534.5,-597.5 534.5,-595.5 336.5,-595.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-593.5 336.5,-595.5 534.5,-595.5 534.5,-593.5 336.5,-593.5"/>
<text text-anchor="start" x="369" y="-580.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C307.54,-461.22 226.69,-672.22 339.5,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C305.67,-460.5 224.83,-671.5 339.5,-671.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C303.81,-459.78 222.96,-670.78 339.5,-673.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-458.5C303.17,-461.21 222.57,-672.21 335.5,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-460.5C301.3,-460.5 220.7,-671.5 335.5,-671.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-462.5C299.43,-459.79 218.83,-670.79 335.5,-673.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-435.5C306.82,-438.21 227.42,-647.21 339.5,-644.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M191,-437.5C304.95,-437.5 225.55,-646.5 339.5,-646.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-439.5C303.08,-436.79 223.68,-645.79 339.5,-648.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-435.5C302.45,-438.21 223.29,-647.21 335.5,-644.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M186.5,-437.5C300.58,-437.5 221.42,-646.5 335.5,-646.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-439.5C298.71,-436.79 219.55,-645.79 335.5,-648.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-412.5C306.1,-415.2 228.15,-622.2 339.5,-619.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M191,-414.5C304.23,-414.5 226.27,-621.5 339.5,-621.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-416.5C302.35,-413.8 224.4,-620.8 339.5,-623.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-412.5C301.73,-415.2 224.02,-622.2 335.5,-619.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M186.5,-414.5C299.86,-414.5 222.14,-621.5 335.5,-621.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-416.5C297.98,-413.8 220.27,-620.8 335.5,-623.5"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-388.5C305.74,-391.2 228.51,-597.2 339.5,-594.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M191,-390.5C303.86,-390.5 226.64,-596.5 339.5,-596.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-392.5C301.99,-389.8 224.76,-595.8 339.5,-598.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-388.5C301.37,-391.2 224.38,-597.2 335.5,-594.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M186.5,-390.5C299.49,-390.5 222.51,-596.5 335.5,-596.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-392.5C297.62,-389.8 220.63,-595.8 335.5,-598.5"/>
</g>
<!-- W2 -->
<g id="node8" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="539,-550.5 340,-550.5 340,-366.5 539,-366.5 539,-550.5"/>
<polygon fill="none" stroke="black" points="340.5,-527.5 340.5,-550.5 539.5,-550.5 539.5,-527.5 340.5,-527.5"/>
<text text-anchor="start" x="429.5" y="-535.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="340.5,-504.5 340.5,-527.5 363.5,-527.5 363.5,-504.5 340.5,-504.5"/>
<text text-anchor="start" x="344.5" y="-512.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="363.5,-504.5 363.5,-527.5 495.5,-527.5 495.5,-504.5 363.5,-504.5"/>
<text text-anchor="start" x="367.5" y="-512.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-504.5 495.5,-527.5 539.5,-527.5 539.5,-504.5 495.5,-504.5"/>
<text text-anchor="start" x="499.5" y="-512.3" font-family="arial" font-size="14.00">0.4 m</text>
<text text-anchor="start" x="373" y="-491.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="343" y="-472.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413.5" y="-472.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="473.5" y="-472.3" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-464.5 340.5,-466.5 539.5,-466.5 539.5,-464.5 340.5,-464.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-462.5 340.5,-464.5 539.5,-464.5 539.5,-462.5 340.5,-462.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-460.5 340.5,-462.5 539.5,-462.5 539.5,-460.5 340.5,-460.5"/>
<text text-anchor="start" x="346" y="-447.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="412.5" y="-447.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="476.5" y="-447.3" font-family="arial" font-size="14.00">X3:2:+5V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-439.5 340.5,-441.5 539.5,-441.5 539.5,-439.5 340.5,-439.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-437.5 340.5,-439.5 539.5,-439.5 539.5,-437.5 340.5,-437.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-435.5 340.5,-437.5 539.5,-437.5 539.5,-435.5 340.5,-435.5"/>
<text text-anchor="start" x="345" y="-422.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="413.5" y="-422.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="475.5" y="-422.3" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-414.5 340.5,-416.5 539.5,-416.5 539.5,-414.5 340.5,-414.5"/>
<polygon fill="#ffff00" stroke="transparent" points="340.5,-412.5 340.5,-414.5 539.5,-414.5 539.5,-412.5 340.5,-412.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-410.5 340.5,-412.5 539.5,-412.5 539.5,-410.5 340.5,-410.5"/>
<text text-anchor="start" x="344" y="-397.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="412" y="-397.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="474.5" y="-397.3" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-389.5 340.5,-391.5 539.5,-391.5 539.5,-389.5 340.5,-389.5"/>
<polygon fill="#00ff00" stroke="transparent" points="340.5,-387.5 340.5,-389.5 539.5,-389.5 539.5,-387.5 340.5,-387.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-385.5 340.5,-387.5 539.5,-387.5 539.5,-385.5 340.5,-385.5"/>
<text text-anchor="start" x="373" y="-372.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="534.5,-550.5 336.5,-550.5 336.5,-366.5 534.5,-366.5 534.5,-550.5"/>
<polygon fill="none" stroke="black" points="336.5,-527.5 336.5,-550.5 534.5,-550.5 534.5,-527.5 336.5,-527.5"/>
<text text-anchor="start" x="424.5" y="-535.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="336.5,-504.5 336.5,-527.5 359.5,-527.5 359.5,-504.5 336.5,-504.5"/>
<text text-anchor="start" x="340.5" y="-512.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="359.5,-504.5 359.5,-527.5 491.5,-527.5 491.5,-504.5 359.5,-504.5"/>
<text text-anchor="start" x="363.5" y="-512.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="491.5,-504.5 491.5,-527.5 534.5,-527.5 534.5,-504.5 491.5,-504.5"/>
<text text-anchor="start" x="495.5" y="-512.3" font-family="arial" font-size="14.00">0.4 m</text>
<text text-anchor="start" x="369" y="-491.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="339.5" y="-472.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="410" y="-472.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-472.3" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="336.5,-464.5 336.5,-466.5 534.5,-466.5 534.5,-464.5 336.5,-464.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-462.5 336.5,-464.5 534.5,-464.5 534.5,-462.5 336.5,-462.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-460.5 336.5,-462.5 534.5,-462.5 534.5,-460.5 336.5,-460.5"/>
<text text-anchor="start" x="342.5" y="-447.3" font-family="arial" font-size="14.00">X1:2:+5V</text>
<text text-anchor="start" x="409" y="-447.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="472" y="-447.3" font-family="arial" font-size="14.00">X3:2:+5V</text>
<polygon fill="#000000" stroke="none" points="336.5,-439.5 336.5,-441.5 534.5,-441.5 534.5,-439.5 336.5,-439.5"/>
<polygon fill="#ff0000" stroke="none" points="336.5,-437.5 336.5,-439.5 534.5,-439.5 534.5,-437.5 336.5,-437.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-435.5 336.5,-437.5 534.5,-437.5 534.5,-435.5 336.5,-435.5"/>
<text text-anchor="start" x="342" y="-422.3" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="410" y="-422.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="471.5" y="-422.3" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="none" points="336.5,-414.5 336.5,-416.5 534.5,-416.5 534.5,-414.5 336.5,-414.5"/>
<polygon fill="#ffff00" stroke="none" points="336.5,-412.5 336.5,-414.5 534.5,-414.5 534.5,-412.5 336.5,-412.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-410.5 336.5,-412.5 534.5,-412.5 534.5,-410.5 336.5,-410.5"/>
<text text-anchor="start" x="341" y="-397.3" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="408.5" y="-397.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="470.5" y="-397.3" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="none" points="336.5,-389.5 336.5,-391.5 534.5,-391.5 534.5,-389.5 336.5,-389.5"/>
<polygon fill="#00ff00" stroke="none" points="336.5,-387.5 336.5,-389.5 534.5,-389.5 534.5,-387.5 336.5,-387.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-385.5 336.5,-387.5 534.5,-387.5 534.5,-385.5 336.5,-385.5"/>
<text text-anchor="start" x="369" y="-372.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C257.37,-458.53 273.84,-461.53 339.5,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C257.01,-460.5 273.49,-463.5 339.5,-463.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C256.66,-462.47 273.13,-465.47 339.5,-465.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-458.5C253.09,-458.53 269.62,-461.53 335.5,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-460.5C252.74,-460.5 269.26,-463.5 335.5,-463.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-462.5C252.38,-462.47 268.91,-465.47 335.5,-465.5"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-435.5C257.12,-435.5 273.62,-436.5 339.5,-436.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M191,-437.5C257,-437.5 273.5,-438.5 339.5,-438.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-439.5C256.88,-439.5 273.38,-440.5 339.5,-440.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-435.5C252.84,-435.5 269.4,-436.5 335.5,-436.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M186.5,-437.5C252.72,-437.5 269.28,-438.5 335.5,-438.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-439.5C252.6,-439.5 269.16,-440.5 335.5,-440.5"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-412.5C256.88,-412.5 273.38,-411.5 339.5,-411.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M191,-414.5C257,-414.5 273.5,-413.5 339.5,-413.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-416.5C257.12,-416.5 273.62,-415.5 339.5,-415.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-412.5C252.6,-412.5 269.16,-411.5 335.5,-411.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M186.5,-414.5C252.72,-414.5 269.28,-413.5 335.5,-413.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-416.5C252.84,-416.5 269.4,-415.5 335.5,-415.5"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-388.5C256.77,-388.51 273.25,-386.51 339.5,-386.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M191,-390.5C257.01,-390.5 273.49,-388.5 339.5,-388.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-392.5C257.25,-392.49 273.73,-390.49 339.5,-390.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-388.5C252.49,-388.51 269.03,-386.51 335.5,-386.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M186.5,-390.5C252.73,-390.5 269.27,-388.5 335.5,-388.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-392.5C252.97,-392.49 269.51,-390.49 335.5,-390.5"/>
</g>
<!-- W3 -->
<g id="node9" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="543,-342.5 336,-342.5 336,-158.5 543,-158.5 543,-342.5"/>
<polygon fill="none" stroke="black" points="336.5,-319.5 336.5,-342.5 543.5,-342.5 543.5,-319.5 336.5,-319.5"/>
<text text-anchor="start" x="429.5" y="-327.3" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="336.5,-296.5 336.5,-319.5 362.5,-319.5 362.5,-296.5 336.5,-296.5"/>
<text text-anchor="start" x="342" y="-304.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="362.5,-296.5 362.5,-319.5 497.5,-319.5 497.5,-296.5 362.5,-296.5"/>
<text text-anchor="start" x="368" y="-304.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="497.5,-296.5 497.5,-319.5 543.5,-319.5 543.5,-296.5 497.5,-296.5"/>
<text text-anchor="start" x="502.5" y="-304.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="371" y="-283.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="341" y="-264.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="413" y="-264.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="475" y="-264.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-256.5 336.5,-258.5 543.5,-258.5 543.5,-256.5 336.5,-256.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-254.5 336.5,-256.5 543.5,-256.5 543.5,-254.5 336.5,-254.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-252.5 336.5,-254.5 543.5,-254.5 543.5,-252.5 336.5,-252.5"/>
<text text-anchor="start" x="338.5" y="-239.3" font-family="arial" font-size="14.00">X1:5:MISO</text>
<text text-anchor="start" x="412.5" y="-239.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="472.5" y="-239.3" font-family="arial" font-size="14.00">X4:3:MISO</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-231.5 336.5,-233.5 543.5,-233.5 543.5,-231.5 336.5,-231.5"/>
<polygon fill="#0066ff" stroke="transparent" points="336.5,-229.5 336.5,-231.5 543.5,-231.5 543.5,-229.5 336.5,-229.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-227.5 336.5,-229.5 543.5,-229.5 543.5,-227.5 336.5,-227.5"/>
<text text-anchor="start" x="338.5" y="-214.3" font-family="arial" font-size="14.00">X1:6:MOSI</text>
<text text-anchor="start" x="411.5" y="-214.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="472.5" y="-214.3" font-family="arial" font-size="14.00">X4:4:MOSI</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-206.5 336.5,-208.5 543.5,-208.5 543.5,-206.5 336.5,-206.5"/>
<polygon fill="#ff8000" stroke="transparent" points="336.5,-204.5 336.5,-206.5 543.5,-206.5 543.5,-204.5 336.5,-204.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-202.5 336.5,-204.5 543.5,-204.5 543.5,-202.5 336.5,-202.5"/>
<text text-anchor="start" x="342" y="-189.3" font-family="arial" font-size="14.00">X1:7:SCK</text>
<text text-anchor="start" x="413.5" y="-189.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="476" y="-189.3" font-family="arial" font-size="14.00">X4:5:SCK</text>
<polygon fill="#000000" stroke="transparent" points="336.5,-181.5 336.5,-183.5 543.5,-183.5 543.5,-181.5 336.5,-181.5"/>
<polygon fill="#8000ff" stroke="transparent" points="336.5,-179.5 336.5,-181.5 543.5,-181.5 543.5,-179.5 336.5,-179.5"/>
<polygon fill="#000000" stroke="transparent" points="336.5,-177.5 336.5,-179.5 543.5,-179.5 543.5,-177.5 336.5,-177.5"/>
<text text-anchor="start" x="371" y="-164.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="538,-342.5 333,-342.5 333,-158.5 538,-158.5 538,-342.5"/>
<polygon fill="none" stroke="black" points="333.5,-319.5 333.5,-342.5 538.5,-342.5 538.5,-319.5 333.5,-319.5"/>
<text text-anchor="start" x="425" y="-327.3" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="333.5,-296.5 333.5,-319.5 359.5,-319.5 359.5,-296.5 333.5,-296.5"/>
<text text-anchor="start" x="339" y="-304.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="359.5,-296.5 359.5,-319.5 493.5,-319.5 493.5,-296.5 359.5,-296.5"/>
<text text-anchor="start" x="364.5" y="-304.3" font-family="arial" font-size="14.00">0.14 mm² (26 AWG)</text>
<polygon fill="none" stroke="black" points="493.5,-296.5 493.5,-319.5 538.5,-319.5 538.5,-296.5 493.5,-296.5"/>
<text text-anchor="start" x="498.5" y="-304.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="367.5" y="-283.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="338" y="-264.3" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="410" y="-264.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="471" y="-264.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="333.5,-256.5 333.5,-258.5 538.5,-258.5 538.5,-256.5 333.5,-256.5"/>
<polygon fill="#000000" stroke="none" points="333.5,-254.5 333.5,-256.5 538.5,-256.5 538.5,-254.5 333.5,-254.5"/>
<polygon fill="#000000" stroke="none" points="333.5,-252.5 333.5,-254.5 538.5,-254.5 538.5,-252.5 333.5,-252.5"/>
<text text-anchor="start" x="335.5" y="-239.3" font-family="arial" font-size="14.00">X1:5:MISO</text>
<text text-anchor="start" x="409.5" y="-239.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-239.3" font-family="arial" font-size="14.00">X4:3:MISO</text>
<polygon fill="#000000" stroke="none" points="333.5,-231.5 333.5,-233.5 538.5,-233.5 538.5,-231.5 333.5,-231.5"/>
<polygon fill="#0066ff" stroke="none" points="333.5,-229.5 333.5,-231.5 538.5,-231.5 538.5,-229.5 333.5,-229.5"/>
<polygon fill="#000000" stroke="none" points="333.5,-227.5 333.5,-229.5 538.5,-229.5 538.5,-227.5 333.5,-227.5"/>
<text text-anchor="start" x="335.5" y="-214.3" font-family="arial" font-size="14.00">X1:6:MOSI</text>
<text text-anchor="start" x="407.5" y="-214.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-214.3" font-family="arial" font-size="14.00">X4:4:MOSI</text>
<polygon fill="#000000" stroke="none" points="333.5,-206.5 333.5,-208.5 538.5,-208.5 538.5,-206.5 333.5,-206.5"/>
<polygon fill="#ff8000" stroke="none" points="333.5,-204.5 333.5,-206.5 538.5,-206.5 538.5,-204.5 333.5,-204.5"/>
<polygon fill="#000000" stroke="none" points="333.5,-202.5 333.5,-204.5 538.5,-204.5 538.5,-202.5 333.5,-202.5"/>
<text text-anchor="start" x="339.5" y="-189.3" font-family="arial" font-size="14.00">X1:7:SCK</text>
<text text-anchor="start" x="410" y="-189.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="472.5" y="-189.3" font-family="arial" font-size="14.00">X4:5:SCK</text>
<polygon fill="#000000" stroke="none" points="333.5,-181.5 333.5,-183.5 538.5,-183.5 538.5,-181.5 333.5,-181.5"/>
<polygon fill="#8000ff" stroke="none" points="333.5,-179.5 333.5,-181.5 538.5,-181.5 538.5,-179.5 333.5,-179.5"/>
<polygon fill="#000000" stroke="none" points="333.5,-177.5 333.5,-179.5 538.5,-179.5 538.5,-177.5 333.5,-177.5"/>
<text text-anchor="start" x="367.5" y="-164.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge17" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-458.5C300.73,-461.21 222.53,-256.21 336,-253.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-460.5C302.6,-460.5 224.4,-255.5 336,-255.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-462.5C304.47,-459.79 226.27,-254.79 336,-257.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-458.5C296.61,-461.21 219.14,-256.21 333,-253.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-460.5C298.49,-460.5 221.01,-255.5 333,-255.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-462.5C300.36,-459.79 222.89,-254.79 333,-257.5"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge19" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-365.5C277.71,-367.96 245.39,-230.96 336,-228.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M191,-367.5C279.66,-367.5 247.34,-230.5 336,-230.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-369.5C281.61,-367.04 249.29,-230.04 336,-232.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-365.5C273.7,-367.95 241.91,-230.95 333,-228.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M186.5,-367.5C275.65,-367.5 243.85,-230.5 333,-230.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-369.5C277.59,-367.05 245.8,-230.05 333,-232.5"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge21" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-342.5C278.33,-344.97 244.78,-205.97 336,-203.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M191,-344.5C280.27,-344.5 246.73,-205.5 336,-205.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-346.5C282.22,-344.03 248.67,-205.03 336,-207.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-342.5C274.31,-344.96 241.3,-205.96 333,-203.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M186.5,-344.5C276.25,-344.5 243.25,-205.5 333,-205.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-346.5C278.2,-344.04 245.19,-205.04 333,-207.5"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge23" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-319.5C278.95,-321.98 244.17,-180.98 336,-178.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M191,-321.5C280.89,-321.5 246.11,-180.5 336,-180.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M191,-323.5C282.83,-321.02 248.05,-180.02 336,-182.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-319.5C274.93,-321.97 240.69,-180.97 333,-178.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M186.5,-321.5C276.87,-321.5 242.63,-180.5 333,-180.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M186.5,-323.5C278.81,-321.03 244.57,-180.03 333,-182.5"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="874,-726.5 687,-726.5 687,-588.5 874,-588.5 874,-726.5"/>
<polygon fill="none" stroke="black" points="687.5,-703.5 687.5,-726.5 874.5,-726.5 874.5,-703.5 687.5,-703.5"/>
<text text-anchor="start" x="772" y="-711.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="687.5,-680.5 687.5,-703.5 783.5,-703.5 783.5,-680.5 687.5,-680.5"/>
<text text-anchor="start" x="691.5" y="-688.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-680.5 783.5,-703.5 834.5,-703.5 834.5,-680.5 783.5,-680.5"/>
<text text-anchor="start" x="787.5" y="-688.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-680.5 834.5,-703.5 874.5,-703.5 874.5,-680.5 834.5,-680.5"/>
<text text-anchor="start" x="838.5" y="-688.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-657.5 687.5,-680.5 769.5,-680.5 769.5,-657.5 687.5,-657.5"/>
<text text-anchor="start" x="724.5" y="-665.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="769.5,-657.5 769.5,-680.5 874.5,-680.5 874.5,-657.5 769.5,-657.5"/>
<text text-anchor="start" x="806" y="-665.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-634.5 687.5,-657.5 769.5,-657.5 769.5,-634.5 687.5,-634.5"/>
<text text-anchor="start" x="724.5" y="-642.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="769.5,-634.5 769.5,-657.5 874.5,-657.5 874.5,-634.5 769.5,-634.5"/>
<text text-anchor="start" x="809" y="-642.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="687.5,-611.5 687.5,-634.5 769.5,-634.5 769.5,-611.5 687.5,-611.5"/>
<text text-anchor="start" x="724.5" y="-619.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="769.5,-611.5 769.5,-634.5 874.5,-634.5 874.5,-611.5 769.5,-611.5"/>
<text text-anchor="start" x="808" y="-619.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="687.5,-588.5 687.5,-611.5 769.5,-611.5 769.5,-588.5 687.5,-588.5"/>
<text text-anchor="start" x="724.5" y="-596.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="769.5,-588.5 769.5,-611.5 874.5,-611.5 874.5,-588.5 769.5,-588.5"/>
<text text-anchor="start" x="807.5" y="-596.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="864,-726.5 682,-726.5 682,-588.5 864,-588.5 864,-726.5"/>
<polygon fill="none" stroke="black" points="682,-703.5 682,-726.5 864,-726.5 864,-703.5 682,-703.5"/>
<text text-anchor="start" x="764.5" y="-711.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="682,-680.5 682,-703.5 775,-703.5 775,-680.5 682,-680.5"/>
<text text-anchor="start" x="686" y="-688.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="775,-680.5 775,-703.5 825,-703.5 825,-680.5 775,-680.5"/>
<text text-anchor="start" x="779" y="-688.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825,-680.5 825,-703.5 864,-703.5 864,-680.5 825,-680.5"/>
<text text-anchor="start" x="829" y="-688.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="682,-657.5 682,-680.5 762,-680.5 762,-657.5 682,-657.5"/>
<text text-anchor="start" x="718" y="-665.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="762,-657.5 762,-680.5 864,-680.5 864,-657.5 762,-657.5"/>
<text text-anchor="start" x="797.5" y="-665.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="682,-634.5 682,-657.5 762,-657.5 762,-634.5 682,-634.5"/>
<text text-anchor="start" x="718" y="-642.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="762,-634.5 762,-657.5 864,-657.5 864,-634.5 762,-634.5"/>
<text text-anchor="start" x="800.5" y="-642.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="682,-611.5 682,-634.5 762,-634.5 762,-611.5 682,-611.5"/>
<text text-anchor="start" x="718" y="-619.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="762,-611.5 762,-634.5 864,-634.5 864,-611.5 762,-611.5"/>
<text text-anchor="start" x="799.5" y="-619.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="682,-588.5 682,-611.5 762,-611.5 762,-588.5 682,-588.5"/>
<text text-anchor="start" x="718" y="-596.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="762,-588.5 762,-611.5 864,-611.5 864,-588.5 762,-588.5"/>
<text text-anchor="start" x="799" y="-596.3" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="874,-518.5 687,-518.5 687,-380.5 874,-380.5 874,-518.5"/>
<polygon fill="none" stroke="black" points="687.5,-495.5 687.5,-518.5 874.5,-518.5 874.5,-495.5 687.5,-495.5"/>
<text text-anchor="start" x="772" y="-503.3" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="687.5,-472.5 687.5,-495.5 783.5,-495.5 783.5,-472.5 687.5,-472.5"/>
<text text-anchor="start" x="691.5" y="-480.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-472.5 783.5,-495.5 834.5,-495.5 834.5,-472.5 783.5,-472.5"/>
<text text-anchor="start" x="787.5" y="-480.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-472.5 834.5,-495.5 874.5,-495.5 874.5,-472.5 834.5,-472.5"/>
<text text-anchor="start" x="838.5" y="-480.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-449.5 687.5,-472.5 769.5,-472.5 769.5,-449.5 687.5,-449.5"/>
<text text-anchor="start" x="724.5" y="-457.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="769.5,-449.5 769.5,-472.5 874.5,-472.5 874.5,-449.5 769.5,-449.5"/>
<text text-anchor="start" x="806" y="-457.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-426.5 687.5,-449.5 769.5,-449.5 769.5,-426.5 687.5,-426.5"/>
<text text-anchor="start" x="724.5" y="-434.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="769.5,-426.5 769.5,-449.5 874.5,-449.5 874.5,-426.5 769.5,-426.5"/>
<text text-anchor="start" x="809" y="-434.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="687.5,-403.5 687.5,-426.5 769.5,-426.5 769.5,-403.5 687.5,-403.5"/>
<text text-anchor="start" x="724.5" y="-411.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="769.5,-403.5 769.5,-426.5 874.5,-426.5 874.5,-403.5 769.5,-403.5"/>
<text text-anchor="start" x="808" y="-411.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="687.5,-380.5 687.5,-403.5 769.5,-403.5 769.5,-380.5 687.5,-380.5"/>
<text text-anchor="start" x="724.5" y="-388.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="769.5,-380.5 769.5,-403.5 874.5,-403.5 874.5,-380.5 769.5,-380.5"/>
<text text-anchor="start" x="807.5" y="-388.3" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="864,-518.5 682,-518.5 682,-380.5 864,-380.5 864,-518.5"/>
<polygon fill="none" stroke="black" points="682,-495.5 682,-518.5 864,-518.5 864,-495.5 682,-495.5"/>
<text text-anchor="start" x="764.5" y="-503.3" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="682,-472.5 682,-495.5 775,-495.5 775,-472.5 682,-472.5"/>
<text text-anchor="start" x="686" y="-480.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="775,-472.5 775,-495.5 825,-495.5 825,-472.5 775,-472.5"/>
<text text-anchor="start" x="779" y="-480.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825,-472.5 825,-495.5 864,-495.5 864,-472.5 825,-472.5"/>
<text text-anchor="start" x="829" y="-480.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="682,-449.5 682,-472.5 762,-472.5 762,-449.5 682,-449.5"/>
<text text-anchor="start" x="718" y="-457.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="762,-449.5 762,-472.5 864,-472.5 864,-449.5 762,-449.5"/>
<text text-anchor="start" x="797.5" y="-457.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="682,-426.5 682,-449.5 762,-449.5 762,-426.5 682,-426.5"/>
<text text-anchor="start" x="718" y="-434.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="762,-426.5 762,-449.5 864,-449.5 864,-426.5 762,-426.5"/>
<text text-anchor="start" x="800.5" y="-434.3" font-family="arial" font-size="14.00">+5V</text>
<polygon fill="none" stroke="black" points="682,-403.5 682,-426.5 762,-426.5 762,-403.5 682,-403.5"/>
<text text-anchor="start" x="718" y="-411.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="762,-403.5 762,-426.5 864,-426.5 864,-403.5 762,-403.5"/>
<text text-anchor="start" x="799.5" y="-411.3" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="682,-380.5 682,-403.5 762,-403.5 762,-380.5 682,-380.5"/>
<text text-anchor="start" x="718" y="-388.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="762,-380.5 762,-403.5 864,-403.5 864,-380.5 762,-380.5"/>
<text text-anchor="start" x="799" y="-388.3" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="874,-322 687,-322 687,-161 874,-161 874,-322"/>
<polygon fill="none" stroke="black" points="687.5,-298.5 687.5,-321.5 874.5,-321.5 874.5,-298.5 687.5,-298.5"/>
<text text-anchor="start" x="772" y="-306.3" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="687.5,-275.5 687.5,-298.5 783.5,-298.5 783.5,-275.5 687.5,-275.5"/>
<text text-anchor="start" x="691.5" y="-283.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="783.5,-275.5 783.5,-298.5 834.5,-298.5 834.5,-275.5 783.5,-275.5"/>
<text text-anchor="start" x="787.5" y="-283.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="834.5,-275.5 834.5,-298.5 874.5,-298.5 874.5,-275.5 834.5,-275.5"/>
<text text-anchor="start" x="838.5" y="-283.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="687.5,-252.5 687.5,-275.5 767.5,-275.5 767.5,-252.5 687.5,-252.5"/>
<text text-anchor="start" x="723.5" y="-260.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="767.5,-252.5 767.5,-275.5 874.5,-275.5 874.5,-252.5 767.5,-252.5"/>
<text text-anchor="start" x="805" y="-260.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="687.5,-229.5 687.5,-252.5 767.5,-252.5 767.5,-229.5 687.5,-229.5"/>
<text text-anchor="start" x="723.5" y="-237.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="767.5,-229.5 767.5,-252.5 874.5,-252.5 874.5,-229.5 767.5,-229.5"/>
<text text-anchor="start" x="804" y="-237.3" font-family="arial" font-size="14.00">+12V</text>
<polygon fill="none" stroke="black" points="687.5,-206.5 687.5,-229.5 767.5,-229.5 767.5,-206.5 687.5,-206.5"/>
<text text-anchor="start" x="723.5" y="-214.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="767.5,-206.5 767.5,-229.5 874.5,-229.5 874.5,-206.5 767.5,-206.5"/>
<text text-anchor="start" x="803" y="-214.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="687.5,-183.5 687.5,-206.5 767.5,-206.5 767.5,-183.5 687.5,-183.5"/>
<text text-anchor="start" x="723.5" y="-191.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="767.5,-183.5 767.5,-206.5 874.5,-206.5 874.5,-183.5 767.5,-183.5"/>
<text text-anchor="start" x="803" y="-191.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="687.5,-160.5 687.5,-183.5 767.5,-183.5 767.5,-160.5 687.5,-160.5"/>
<text text-anchor="start" x="723.5" y="-168.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="767.5,-160.5 767.5,-183.5 874.5,-183.5 874.5,-160.5 767.5,-160.5"/>
<text text-anchor="start" x="806.5" y="-168.3" font-family="arial" font-size="14.00">SCK</text>
<polygon fill="#ffffff" stroke="black" points="864,-322 682,-322 682,-161 864,-161 864,-322"/>
<polygon fill="none" stroke="black" points="682,-298.5 682,-321.5 864,-321.5 864,-298.5 682,-298.5"/>
<text text-anchor="start" x="764.5" y="-306.3" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="682,-275.5 682,-298.5 775,-298.5 775,-275.5 682,-275.5"/>
<text text-anchor="start" x="686" y="-283.3" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="775,-275.5 775,-298.5 825,-298.5 825,-275.5 775,-275.5"/>
<text text-anchor="start" x="779" y="-283.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825,-275.5 825,-298.5 864,-298.5 864,-275.5 825,-275.5"/>
<text text-anchor="start" x="829" y="-283.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="682,-252.5 682,-275.5 759,-275.5 759,-252.5 682,-252.5"/>
<text text-anchor="start" x="716.5" y="-260.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="759,-252.5 759,-275.5 864,-275.5 864,-252.5 759,-252.5"/>
<text text-anchor="start" x="796" y="-260.3" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="682,-229.5 682,-252.5 759,-252.5 759,-229.5 682,-229.5"/>
<text text-anchor="start" x="716.5" y="-237.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="759,-229.5 759,-252.5 864,-252.5 864,-229.5 759,-229.5"/>
<text text-anchor="start" x="795" y="-237.3" font-family="arial" font-size="14.00">+12V</text>
<polygon fill="none" stroke="black" points="682,-206.5 682,-229.5 759,-229.5 759,-206.5 682,-206.5"/>
<text text-anchor="start" x="716.5" y="-214.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="759,-206.5 759,-229.5 864,-229.5 864,-206.5 759,-206.5"/>
<text text-anchor="start" x="793" y="-214.3" font-family="arial" font-size="14.00">MISO</text>
<polygon fill="none" stroke="black" points="682,-183.5 682,-206.5 759,-206.5 759,-183.5 682,-183.5"/>
<text text-anchor="start" x="716.5" y="-191.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="759,-183.5 759,-206.5 864,-206.5 864,-183.5 759,-183.5"/>
<text text-anchor="start" x="793" y="-191.3" font-family="arial" font-size="14.00">MOSI</text>
<polygon fill="none" stroke="black" points="682,-160.5 682,-183.5 759,-183.5 759,-160.5 682,-160.5"/>
<text text-anchor="start" x="716.5" y="-168.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="759,-160.5 759,-183.5 864,-183.5 864,-160.5 759,-160.5"/>
<text text-anchor="start" x="797.5" y="-168.3" font-family="arial" font-size="14.00">SCK</text>
</g>
<!-- _ferrule_crimp_1 -->
<!-- __F_1 -->
<g id="node5" class="node">
<title>_ferrule_crimp_1</title>
<polygon fill="#ffffff" stroke="black" points="192,-70 0,-70 0,-47 192,-47 192,-70"/>
<polygon fill="none" stroke="black" points="0,-46.5 0,-69.5 89,-69.5 89,-46.5 0,-46.5"/>
<text text-anchor="start" x="4" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="89,-46.5 89,-69.5 157,-69.5 157,-46.5 89,-46.5"/>
<text text-anchor="start" x="93" y="-54.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="157,-46.5 157,-69.5 184,-69.5 184,-46.5 157,-46.5"/>
<text text-anchor="start" x="161" y="-54.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="transparent" points="184,-46.5 184,-69.5 192,-69.5 192,-46.5 184,-46.5"/>
<polygon fill="none" stroke="black" points="184,-46.5 184,-69.5 192,-69.5 192,-46.5 184,-46.5"/>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="189,-70 0,-70 0,-47 189,-47 189,-70"/>
<polygon fill="none" stroke="black" points="0.5,-46.5 0.5,-69.5 87.5,-69.5 87.5,-46.5 0.5,-46.5"/>
<text text-anchor="start" x="4.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="87.5,-46.5 87.5,-69.5 154.5,-69.5 154.5,-46.5 87.5,-46.5"/>
<text text-anchor="start" x="91.5" y="-54.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="154.5,-46.5 154.5,-69.5 181.5,-69.5 181.5,-46.5 154.5,-46.5"/>
<text text-anchor="start" x="158.5" y="-54.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="none" points="181.5,-46.5 181.5,-69.5 189.5,-69.5 189.5,-46.5 181.5,-46.5"/>
<polygon fill="none" stroke="black" points="181.5,-46.5 181.5,-69.5 189.5,-69.5 189.5,-46.5 181.5,-46.5"/>
</g>
<!-- W4 -->
<g id="node10" class="node">
<title>W4</title>
<polygon fill="#ffffff" stroke="black" points="539,-134.5 340,-134.5 340,-0.5 539,-0.5 539,-134.5"/>
<polygon fill="none" stroke="black" points="340.5,-111.5 340.5,-134.5 539.5,-134.5 539.5,-111.5 340.5,-111.5"/>
<text text-anchor="start" x="429.5" y="-119.3" font-family="arial" font-size="14.00">W4</text>
<polygon fill="none" stroke="black" points="340.5,-88.5 340.5,-111.5 363.5,-111.5 363.5,-88.5 340.5,-88.5"/>
<text text-anchor="start" x="344.5" y="-96.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="363.5,-88.5 363.5,-111.5 495.5,-111.5 495.5,-88.5 363.5,-88.5"/>
<text text-anchor="start" x="367.5" y="-96.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="495.5,-88.5 495.5,-111.5 539.5,-111.5 539.5,-88.5 495.5,-88.5"/>
<text text-anchor="start" x="499.5" y="-96.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="351" y="-75.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="376.5" y="-56.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="464.5" y="-56.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-48.5 340.5,-50.5 539.5,-50.5 539.5,-48.5 340.5,-48.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-46.5 340.5,-48.5 539.5,-48.5 539.5,-46.5 340.5,-46.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-44.5 340.5,-46.5 539.5,-46.5 539.5,-44.5 340.5,-44.5"/>
<text text-anchor="start" x="376" y="-31.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-31.3" font-family="arial" font-size="14.00">X4:2:+12V</text>
<polygon fill="#000000" stroke="transparent" points="340.5,-23.5 340.5,-25.5 539.5,-25.5 539.5,-23.5 340.5,-23.5"/>
<polygon fill="#ff0000" stroke="transparent" points="340.5,-21.5 340.5,-23.5 539.5,-23.5 539.5,-21.5 340.5,-21.5"/>
<polygon fill="#000000" stroke="transparent" points="340.5,-19.5 340.5,-21.5 539.5,-21.5 539.5,-19.5 340.5,-19.5"/>
<text text-anchor="start" x="351" y="-6.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="534.5,-134.5 336.5,-134.5 336.5,-0.5 534.5,-0.5 534.5,-134.5"/>
<polygon fill="none" stroke="black" points="336.5,-111.5 336.5,-134.5 534.5,-134.5 534.5,-111.5 336.5,-111.5"/>
<text text-anchor="start" x="424.5" y="-119.3" font-family="arial" font-size="14.00">W4</text>
<polygon fill="none" stroke="black" points="336.5,-88.5 336.5,-111.5 359.5,-111.5 359.5,-88.5 336.5,-88.5"/>
<text text-anchor="start" x="340.5" y="-96.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="359.5,-88.5 359.5,-111.5 491.5,-111.5 491.5,-88.5 359.5,-88.5"/>
<text text-anchor="start" x="363.5" y="-96.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="491.5,-88.5 491.5,-111.5 534.5,-111.5 534.5,-88.5 491.5,-88.5"/>
<text text-anchor="start" x="495.5" y="-96.3" font-family="arial" font-size="14.00">0.3 m</text>
<text text-anchor="start" x="347.5" y="-75.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="374" y="-56.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-56.3" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="336.5,-48.5 336.5,-50.5 534.5,-50.5 534.5,-48.5 336.5,-48.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-46.5 336.5,-48.5 534.5,-48.5 534.5,-46.5 336.5,-46.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-44.5 336.5,-46.5 534.5,-46.5 534.5,-44.5 336.5,-44.5"/>
<text text-anchor="start" x="373.5" y="-31.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-31.3" font-family="arial" font-size="14.00">X4:2:+12V</text>
<polygon fill="#000000" stroke="none" points="336.5,-23.5 336.5,-25.5 534.5,-25.5 534.5,-23.5 336.5,-23.5"/>
<polygon fill="#ff0000" stroke="none" points="336.5,-21.5 336.5,-23.5 534.5,-23.5 534.5,-21.5 336.5,-21.5"/>
<polygon fill="#000000" stroke="none" points="336.5,-19.5 336.5,-21.5 534.5,-21.5 534.5,-19.5 336.5,-19.5"/>
<text text-anchor="start" x="347.5" y="-6.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- _ferrule_crimp_1&#45;&#45;W4 -->
<!-- __F_1&#45;&#45;W4 -->
<g id="edge25" class="edge">
<title>_ferrule_crimp_1:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-56.5C256.61,-56.85 272.63,-45.85 339.5,-45.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-58.5C257.74,-58.5 273.76,-47.5 339.5,-47.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-60.5C258.87,-60.15 274.89,-49.15 339.5,-49.5"/>
<title>__F_1:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M189,-56.5C253.16,-56.85 269.07,-45.85 335.5,-45.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M189,-58.5C254.29,-58.5 270.21,-47.5 335.5,-47.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M189,-60.5C255.43,-60.15 271.34,-49.15 335.5,-49.5"/>
</g>
<!-- _ferrule_crimp_2 -->
<!-- __F_2 -->
<g id="node6" class="node">
<title>_ferrule_crimp_2</title>
<polygon fill="#ffffff" stroke="black" points="192,-23 0,-23 0,0 192,0 192,-23"/>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 89,-22.5 89,0.5 0,0.5"/>
<text text-anchor="start" x="4" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="89,0.5 89,-22.5 157,-22.5 157,0.5 89,0.5"/>
<text text-anchor="start" x="93" y="-7.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="157,0.5 157,-22.5 184,-22.5 184,0.5 157,0.5"/>
<text text-anchor="start" x="161" y="-7.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="transparent" points="184,0.5 184,-22.5 192,-22.5 192,0.5 184,0.5"/>
<polygon fill="none" stroke="black" points="184,0.5 184,-22.5 192,-22.5 192,0.5 184,0.5"/>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="189,-23 0,-23 0,0 189,0 189,-23"/>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 87.5,-22.5 87.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="4.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<polygon fill="none" stroke="black" points="87.5,0.5 87.5,-22.5 154.5,-22.5 154.5,0.5 87.5,0.5"/>
<text text-anchor="start" x="91.5" y="-7.3" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="154.5,0.5 154.5,-22.5 181.5,-22.5 181.5,0.5 154.5,0.5"/>
<text text-anchor="start" x="158.5" y="-7.3" font-family="arial" font-size="14.00">YE</text>
<polygon fill="#ffff00" stroke="none" points="181.5,0.5 181.5,-22.5 189.5,-22.5 189.5,0.5 181.5,0.5"/>
<polygon fill="none" stroke="black" points="181.5,0.5 181.5,-22.5 189.5,-22.5 189.5,0.5 181.5,0.5"/>
</g>
<!-- _ferrule_crimp_2&#45;&#45;W4 -->
<!-- __F_2&#45;&#45;W4 -->
<g id="edge27" class="edge">
<title>_ferrule_crimp_2:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-9.5C258.87,-9.85 274.89,-20.85 339.5,-20.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M192,-11.5C257.74,-11.5 273.76,-22.5 339.5,-22.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M192,-13.5C256.61,-13.15 272.63,-24.15 339.5,-24.5"/>
<title>__F_2:e&#45;&#45;W4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M189,-9.5C255.43,-9.85 271.34,-20.85 335.5,-20.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M189,-11.5C254.29,-11.5 270.21,-22.5 335.5,-22.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M189,-13.5C253.16,-13.15 269.07,-24.15 335.5,-24.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-669.5C605.37,-669.51 621.64,-667.51 687,-667.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-671.5C605.62,-671.5 621.88,-669.5 687,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-673.5C605.86,-673.49 622.13,-671.49 687,-671.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-669.5C600.37,-669.51 616.64,-667.51 682,-667.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-671.5C600.62,-671.5 616.88,-669.5 682,-669.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-673.5C600.86,-673.49 617.13,-671.49 682,-671.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-644.5C605.49,-644.5 621.76,-643.5 687,-643.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-646.5C605.61,-646.5 621.89,-645.5 687,-645.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-648.5C605.74,-648.5 622.01,-647.5 687,-647.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-644.5C600.49,-644.5 616.76,-643.5 682,-643.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M535.5,-646.5C600.61,-646.5 616.89,-645.5 682,-645.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-648.5C600.74,-648.5 617.01,-647.5 682,-647.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-619.5C605.74,-619.5 622.01,-620.5 687,-620.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540.5,-621.5C605.61,-621.5 621.89,-622.5 687,-622.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-623.5C605.49,-623.5 621.76,-624.5 687,-624.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-619.5C600.74,-619.5 617.01,-620.5 682,-620.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M535.5,-621.5C600.61,-621.5 616.89,-622.5 682,-622.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-623.5C600.49,-623.5 616.76,-624.5 682,-624.5"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-594.5C605.99,-594.53 622.24,-597.53 687,-597.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540.5,-596.5C605.62,-596.5 621.88,-599.5 687,-599.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-598.5C605.26,-598.47 621.51,-601.47 687,-601.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-594.5C600.99,-594.53 617.24,-597.53 682,-597.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M535.5,-596.5C600.62,-596.5 616.88,-599.5 682,-599.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-598.5C600.26,-598.47 616.51,-601.47 682,-601.5"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-461.5C605.37,-461.51 621.64,-459.51 687,-459.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-463.5C605.62,-463.5 621.88,-461.5 687,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-465.5C605.86,-465.49 622.13,-463.49 687,-463.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-461.5C600.37,-461.51 616.64,-459.51 682,-459.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-463.5C600.62,-463.5 616.88,-461.5 682,-461.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-465.5C600.86,-465.49 617.13,-463.49 682,-463.5"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-436.5C605.49,-436.5 621.76,-435.5 687,-435.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-438.5C605.61,-438.5 621.89,-437.5 687,-437.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-440.5C605.74,-440.5 622.01,-439.5 687,-439.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-436.5C600.49,-436.5 616.76,-435.5 682,-435.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M535.5,-438.5C600.61,-438.5 616.89,-437.5 682,-437.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-440.5C600.74,-440.5 617.01,-439.5 682,-439.5"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-411.5C605.74,-411.5 622.01,-412.5 687,-412.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540.5,-413.5C605.61,-413.5 621.89,-414.5 687,-414.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-415.5C605.49,-415.5 621.76,-416.5 687,-416.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-411.5C600.74,-411.5 617.01,-412.5 682,-412.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M535.5,-413.5C600.61,-413.5 616.89,-414.5 682,-414.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-415.5C600.49,-415.5 616.76,-416.5 682,-416.5"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-386.5C605.99,-386.53 622.24,-389.53 687,-389.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540.5,-388.5C605.62,-388.5 621.88,-391.5 687,-391.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-390.5C605.26,-390.47 621.51,-393.47 687,-393.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-386.5C600.99,-386.53 617.24,-389.53 682,-389.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M535.5,-388.5C600.62,-388.5 616.88,-391.5 682,-391.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-390.5C600.26,-390.47 616.51,-393.47 682,-393.5"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge18" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-253.5C608.12,-253.76 623.87,-262.76 687,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-255.5C607.12,-255.5 622.88,-264.5 687,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-257.5C606.13,-257.24 621.88,-266.24 687,-266.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-253.5C603.12,-253.76 618.87,-262.76 682,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-255.5C602.12,-255.5 617.88,-264.5 682,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-257.5C601.13,-257.24 616.88,-266.24 682,-266.5"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge20" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-228.5C605.97,-228.97 621.45,-215.97 687,-215.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M543,-230.5C607.26,-230.5 622.74,-217.5 687,-217.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-232.5C608.55,-232.03 624.03,-219.03 687,-219.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-228.5C600.97,-228.97 616.45,-215.97 682,-215.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M538,-230.5C602.26,-230.5 617.74,-217.5 682,-217.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-232.5C603.55,-232.03 619.03,-219.03 682,-219.5"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge22" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-203.5C606.04,-203.86 621.66,-192.86 687,-192.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M543,-205.5C607.19,-205.5 622.81,-194.5 687,-194.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-207.5C608.34,-207.14 623.96,-196.14 687,-196.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-203.5C601.04,-203.86 616.66,-192.86 682,-192.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M538,-205.5C602.19,-205.5 617.81,-194.5 682,-194.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-207.5C603.34,-207.14 618.96,-196.14 682,-196.5"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge24" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-178.5C606.13,-178.76 621.88,-169.76 687,-169.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M543,-180.5C607.12,-180.5 622.88,-171.5 687,-171.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M543,-182.5C608.12,-182.24 623.87,-173.24 687,-173.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-178.5C601.13,-178.76 616.88,-169.76 682,-169.5"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M538,-180.5C602.12,-180.5 617.88,-171.5 682,-171.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M538,-182.5C603.12,-182.24 618.87,-173.24 682,-173.5"/>
</g>
<!-- W4&#45;&#45;X4 -->
<g id="edge26" class="edge">
<title>W4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-45.5C658.72,-48.24 572.49,-265.24 687,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-47.5C656.87,-47.5 570.63,-264.5 687,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-49.5C655.01,-46.76 568.78,-263.76 687,-266.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-45.5C653.72,-48.24 567.49,-265.24 682,-262.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-47.5C651.87,-47.5 565.63,-264.5 682,-264.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-49.5C650.01,-46.76 563.78,-263.76 682,-266.5"/>
</g>
<!-- W4&#45;&#45;X4 -->
<g id="edge28" class="edge">
<title>W4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-20.5C659.09,-23.24 572.12,-241.24 687,-238.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540.5,-22.5C657.23,-22.5 570.27,-240.5 687,-240.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540.5,-24.5C655.38,-21.76 568.41,-239.76 687,-242.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-20.5C654.09,-23.24 567.12,-241.24 682,-238.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M535.5,-22.5C652.23,-22.5 565.27,-240.5 682,-240.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M535.5,-24.5C650.38,-21.76 563.41,-239.76 682,-242.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,3 +1,26 @@
metadata:
title: WireViz Demo 2
pn: WV-DEMO-02
authors:
Created:
name: D. Rojas
date: 2020-05-20
Approved:
name: D. Rojas
date: 2020-05-20
revisions:
A:
name: D. Rojas
date: 2020-10-17
changelog: WireViz 0.2 release
template:
name: din-6771
sheetsize: A3
templates: # defining templates to be used later on
- &molex_f
type: Molex KK 254
@ -22,9 +45,8 @@ connectors:
X4:
<<: *molex_f
pinlabels: [GND, +12V, MISO, MOSI, SCK]
ferrule_crimp:
F:
style: simple
autogenerate: true
type: Crimp ferrule
subtype: 0.25 mm²
color: YE
@ -64,6 +86,6 @@ connections:
- W3: [1-4]
- X4: [1,3-5]
-
- ferrule_crimp
- F.
- W4: [1,2]
- X4: [1,2]

2
examples/ex01.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

315
examples/ex01.html generated
View File

@ -1,209 +1,244 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex01</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex01</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="943pt" height="232pt"
viewBox="0.00 0.00 943.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="931pt" height="232pt"
viewBox="0.00 0.00 931.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 228)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-228 939,-228 939,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-228 927,-228 927,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-191 0,-191 0,-53 187,-53 187,-191"/>
<polygon fill="none" stroke="black" points="0.5,-168 0.5,-191 187.5,-191 187.5,-168 0.5,-168"/>
<text text-anchor="start" x="85" y="-175.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-145 0.5,-168 96.5,-168 96.5,-145 0.5,-145"/>
<text text-anchor="start" x="4.5" y="-152.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-145 96.5,-168 147.5,-168 147.5,-145 96.5,-145"/>
<text text-anchor="start" x="100.5" y="-152.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-145 147.5,-168 187.5,-168 187.5,-145 147.5,-145"/>
<text text-anchor="start" x="151.5" y="-152.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-122 0.5,-145 106.5,-145 106.5,-122 0.5,-122"/>
<text text-anchor="start" x="37.5" y="-129.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-122 106.5,-145 187.5,-145 187.5,-122 106.5,-122"/>
<text text-anchor="start" x="143" y="-129.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-99 0.5,-122 106.5,-122 106.5,-99 0.5,-99"/>
<text text-anchor="start" x="38.5" y="-106.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-99 106.5,-122 187.5,-122 187.5,-99 106.5,-99"/>
<text text-anchor="start" x="143" y="-106.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-76 0.5,-99 106.5,-99 106.5,-76 0.5,-76"/>
<text text-anchor="start" x="43.5" y="-83.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="106.5,-76 106.5,-99 187.5,-99 187.5,-76 106.5,-76"/>
<text text-anchor="start" x="143" y="-83.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-53 0.5,-76 106.5,-76 106.5,-53 0.5,-53"/>
<text text-anchor="start" x="44.5" y="-60.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="106.5,-53 106.5,-76 187.5,-76 187.5,-53 106.5,-53"/>
<text text-anchor="start" x="143" y="-60.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="182,-191 0,-191 0,-53 182,-53 182,-191"/>
<polygon fill="none" stroke="black" points="0,-168 0,-191 182,-191 182,-168 0,-168"/>
<text text-anchor="start" x="82.5" y="-175.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-145 0,-168 93,-168 93,-145 0,-145"/>
<text text-anchor="start" x="4" y="-152.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="93,-145 93,-168 143,-168 143,-145 93,-145"/>
<text text-anchor="start" x="97" y="-152.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="143,-145 143,-168 182,-168 182,-145 143,-145"/>
<text text-anchor="start" x="147" y="-152.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-122 0,-145 103,-145 103,-122 0,-122"/>
<text text-anchor="start" x="36" y="-129.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="103,-122 103,-145 182,-145 182,-122 103,-122"/>
<text text-anchor="start" x="138.5" y="-129.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-99 0,-122 103,-122 103,-99 0,-99"/>
<text text-anchor="start" x="37" y="-106.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="103,-99 103,-122 182,-122 182,-99 103,-99"/>
<text text-anchor="start" x="138.5" y="-106.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-76 0,-99 103,-99 103,-76 0,-76"/>
<text text-anchor="start" x="42" y="-83.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="103,-76 103,-99 182,-99 182,-76 103,-76"/>
<text text-anchor="start" x="138.5" y="-83.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-53 0,-76 103,-76 103,-53 0,-53"/>
<text text-anchor="start" x="42.5" y="-60.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="103,-53 103,-76 182,-76 182,-53 103,-53"/>
<text text-anchor="start" x="138.5" y="-60.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="604,-224 331,-224 331,0 604,0 604,-224"/>
<polygon fill="none" stroke="black" points="331.5,-201 331.5,-224 604.5,-224 604.5,-201 331.5,-201"/>
<text text-anchor="start" x="457.5" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-178 331.5,-201 375.5,-201 375.5,-178 331.5,-178"/>
<text text-anchor="start" x="335.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="375.5,-178 375.5,-201 398.5,-201 398.5,-178 375.5,-178"/>
<text text-anchor="start" x="379.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="398.5,-178 398.5,-201 530.5,-201 530.5,-178 398.5,-178"/>
<text text-anchor="start" x="402.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="530.5,-178 530.5,-201 560.5,-201 560.5,-178 530.5,-178"/>
<text text-anchor="start" x="534.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="560.5,-178 560.5,-201 604.5,-201 604.5,-178 560.5,-178"/>
<text text-anchor="start" x="564.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="374.5" y="-164.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-145.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="435" y="-145.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="528" y="-145.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-138 331.5,-140 604.5,-140 604.5,-138 331.5,-138"/>
<polygon fill="#895956" stroke="transparent" points="331.5,-136 331.5,-138 604.5,-138 604.5,-136 331.5,-136"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-134 331.5,-136 604.5,-136 604.5,-134 331.5,-134"/>
<text text-anchor="start" x="345" y="-120.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="435" y="-120.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="528.5" y="-120.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-113 331.5,-115 604.5,-115 604.5,-113 331.5,-113"/>
<polygon fill="#ff0000" stroke="transparent" points="331.5,-111 331.5,-113 604.5,-113 604.5,-111 331.5,-111"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-109 331.5,-111 604.5,-111 604.5,-109 331.5,-109"/>
<text text-anchor="start" x="350" y="-95.8" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="434" y="-95.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="534.5" y="-95.8" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-88 331.5,-90 604.5,-90 604.5,-88 331.5,-88"/>
<polygon fill="#ff8000" stroke="transparent" points="331.5,-86 331.5,-88 604.5,-88 604.5,-86 331.5,-86"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-84 331.5,-86 604.5,-86 604.5,-84 331.5,-84"/>
<text text-anchor="start" x="351" y="-70.8" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="435.5" y="-70.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="533.5" y="-70.8" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-63 331.5,-65 604.5,-65 604.5,-63 331.5,-63"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-61 331.5,-63 604.5,-63 604.5,-61 331.5,-61"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-59 331.5,-61 604.5,-61 604.5,-59 331.5,-59"/>
<text text-anchor="start" x="374.5" y="-45.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-26.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="449" y="-26.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 604.5,-21 604.5,-19 331.5,-19"/>
<text text-anchor="start" x="374.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="597,-224 326,-224 326,0 597,0 597,-224"/>
<polygon fill="none" stroke="black" points="326.5,-201 326.5,-224 597.5,-224 597.5,-201 326.5,-201"/>
<text text-anchor="start" x="451" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="326.5,-178 326.5,-201 369.5,-201 369.5,-178 326.5,-178"/>
<text text-anchor="start" x="330.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="369.5,-178 369.5,-201 392.5,-201 392.5,-178 369.5,-178"/>
<text text-anchor="start" x="373.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="392.5,-178 392.5,-201 524.5,-201 524.5,-178 392.5,-178"/>
<text text-anchor="start" x="396.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="524.5,-178 524.5,-201 554.5,-201 554.5,-178 524.5,-178"/>
<text text-anchor="start" x="528.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="554.5,-178 554.5,-201 597.5,-201 597.5,-178 554.5,-178"/>
<text text-anchor="start" x="558.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="369" y="-164.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="339.5" y="-145.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="430.5" y="-145.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="522" y="-145.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="326.5,-138 326.5,-140 597.5,-140 597.5,-138 326.5,-138"/>
<polygon fill="#895956" stroke="none" points="326.5,-136 326.5,-138 597.5,-138 597.5,-136 326.5,-136"/>
<polygon fill="#000000" stroke="none" points="326.5,-134 326.5,-136 597.5,-136 597.5,-134 326.5,-134"/>
<text text-anchor="start" x="340.5" y="-120.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="430" y="-120.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="523" y="-120.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="326.5,-113 326.5,-115 597.5,-115 597.5,-113 326.5,-113"/>
<polygon fill="#ff0000" stroke="none" points="326.5,-111 326.5,-113 597.5,-113 597.5,-111 326.5,-111"/>
<polygon fill="#000000" stroke="none" points="326.5,-109 326.5,-111 597.5,-111 597.5,-109 326.5,-109"/>
<text text-anchor="start" x="345.5" y="-95.8" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="428.5" y="-95.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="529" y="-95.8" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="none" points="326.5,-88 326.5,-90 597.5,-90 597.5,-88 326.5,-88"/>
<polygon fill="#ff8000" stroke="none" points="326.5,-86 326.5,-88 597.5,-88 597.5,-86 326.5,-86"/>
<polygon fill="#000000" stroke="none" points="326.5,-84 326.5,-86 597.5,-86 597.5,-84 326.5,-84"/>
<text text-anchor="start" x="346.5" y="-70.8" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="430.5" y="-70.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="528" y="-70.8" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="none" points="326.5,-63 326.5,-65 597.5,-65 597.5,-63 326.5,-63"/>
<polygon fill="#ffff00" stroke="none" points="326.5,-61 326.5,-63 597.5,-63 597.5,-61 326.5,-61"/>
<polygon fill="#000000" stroke="none" points="326.5,-59 326.5,-61 597.5,-61 597.5,-59 326.5,-59"/>
<text text-anchor="start" x="369" y="-45.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="339.5" y="-26.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="443.5" y="-26.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="326.5,-19 326.5,-21 597.5,-21 597.5,-19 326.5,-19"/>
<text text-anchor="start" x="369" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-132C251.38,-132.03 267.36,-135.03 331,-135"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M187,-134C251.01,-134 266.99,-137 331,-137"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-136C250.64,-135.97 266.62,-138.97 331,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-132C246.38,-132.03 262.36,-135.03 326,-135"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M182,-134C246.01,-134 261.99,-137 326,-137"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-136C245.64,-135.97 261.62,-138.97 326,-139"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-108C251.25,-108.02 267.24,-110.02 331,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M187,-110C251.01,-110 266.99,-112 331,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-112C250.76,-111.98 266.75,-113.98 331,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-108C246.25,-108.02 262.24,-110.02 326,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M182,-110C246.01,-110 261.99,-112 326,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-112C245.76,-111.98 261.75,-113.98 326,-114"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-85C251,-85 267,-85 331,-85"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M187,-87C251,-87 267,-87 331,-87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-89C251,-89 267,-89 331,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-85C246,-85 262,-85 326,-85"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M182,-87C246,-87 262,-87 326,-87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-89C246,-89 262,-89 326,-89"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-62C250.76,-62.02 266.75,-60.02 331,-60"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-64C251.01,-64 266.99,-62 331,-62"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-66C251.25,-65.98 267.24,-63.98 331,-64"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-62C245.76,-62.02 261.75,-60.02 326,-60"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M182,-64C246.01,-64 261.99,-62 326,-62"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-66C246.25,-65.98 262.24,-63.98 326,-64"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-134C268.63,-134 249.37,-20 331,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-134C263.63,-134 244.37,-20 326,-20"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="935,-193 748,-193 748,-55 935,-55 935,-193"/>
<polygon fill="none" stroke="black" points="748.5,-170 748.5,-193 935.5,-193 935.5,-170 748.5,-170"/>
<text text-anchor="start" x="833" y="-177.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="748.5,-147 748.5,-170 844.5,-170 844.5,-147 748.5,-147"/>
<text text-anchor="start" x="752.5" y="-154.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="844.5,-147 844.5,-170 895.5,-170 895.5,-147 844.5,-147"/>
<text text-anchor="start" x="848.5" y="-154.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="895.5,-147 895.5,-170 935.5,-170 935.5,-147 895.5,-147"/>
<text text-anchor="start" x="899.5" y="-154.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="748.5,-124 748.5,-147 830.5,-147 830.5,-124 748.5,-124"/>
<text text-anchor="start" x="785.5" y="-131.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="830.5,-124 830.5,-147 935.5,-147 935.5,-124 830.5,-124"/>
<text text-anchor="start" x="867" y="-131.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="748.5,-101 748.5,-124 830.5,-124 830.5,-101 748.5,-101"/>
<text text-anchor="start" x="785.5" y="-108.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="830.5,-101 830.5,-124 935.5,-124 935.5,-101 830.5,-101"/>
<text text-anchor="start" x="868" y="-108.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="748.5,-78 748.5,-101 830.5,-101 830.5,-78 748.5,-78"/>
<text text-anchor="start" x="785.5" y="-85.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="830.5,-78 830.5,-101 935.5,-101 935.5,-78 830.5,-78"/>
<text text-anchor="start" x="873" y="-85.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="748.5,-55 748.5,-78 830.5,-78 830.5,-55 748.5,-55"/>
<text text-anchor="start" x="785.5" y="-62.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="830.5,-55 830.5,-78 935.5,-78 935.5,-55 830.5,-55"/>
<text text-anchor="start" x="874" y="-62.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="923,-193 741,-193 741,-55 923,-55 923,-193"/>
<polygon fill="none" stroke="black" points="741,-170 741,-193 923,-193 923,-170 741,-170"/>
<text text-anchor="start" x="823.5" y="-177.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="741,-147 741,-170 834,-170 834,-147 741,-147"/>
<text text-anchor="start" x="745" y="-154.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="834,-147 834,-170 884,-170 884,-147 834,-147"/>
<text text-anchor="start" x="838" y="-154.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="884,-147 884,-170 923,-170 923,-147 884,-147"/>
<text text-anchor="start" x="888" y="-154.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="741,-124 741,-147 821,-147 821,-124 741,-124"/>
<text text-anchor="start" x="777" y="-131.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="821,-124 821,-147 923,-147 923,-124 821,-124"/>
<text text-anchor="start" x="856.5" y="-131.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="741,-101 741,-124 821,-124 821,-101 741,-101"/>
<text text-anchor="start" x="777" y="-108.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="821,-101 821,-124 923,-124 923,-101 821,-101"/>
<text text-anchor="start" x="857.5" y="-108.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="741,-78 741,-101 821,-101 821,-78 741,-78"/>
<text text-anchor="start" x="777" y="-85.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="821,-78 821,-101 923,-101 923,-78 821,-78"/>
<text text-anchor="start" x="862.5" y="-85.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="741,-55 741,-78 821,-78 821,-55 741,-55"/>
<text text-anchor="start" x="777" y="-62.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="821,-55 821,-78 923,-78 923,-55 821,-55"/>
<text text-anchor="start" x="863" y="-62.8" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-135C667.88,-135 683.87,-134 748,-134"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M604,-137C668,-137 684,-136 748,-136"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-139C668.13,-139 684.12,-138 748,-138"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-135C660.88,-135 676.87,-134 741,-134"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M597,-137C661,-137 677,-136 741,-136"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-139C661.13,-139 677.12,-138 741,-138"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-110C668,-110 684,-110 748,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M604,-112C668,-112 684,-112 748,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-114C668,-114 684,-114 748,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-110C661,-110 677,-110 741,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M597,-112C661,-112 677,-112 741,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-114C661,-114 677,-114 741,-114"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-85C667.04,-85.86 681.68,-64.86 748,-64"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M604,-87C668.68,-87 683.32,-66 748,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-89C670.32,-88.14 684.96,-67.14 748,-68"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-85C660.04,-85.86 674.68,-64.86 741,-64"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M597,-87C661.68,-87 676.32,-66 741,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-89C663.32,-88.14 677.96,-67.14 741,-68"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-60C670.9,-61.09 684.67,-88.09 748,-87"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M604,-62C669.12,-62 682.88,-89 748,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-64C667.33,-62.91 681.1,-89.91 748,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-60C663.9,-61.09 677.67,-88.09 741,-87"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M597,-62C662.12,-62 675.88,-89 741,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-64C660.33,-62.91 674.1,-89.91 741,-91"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Cable, Serial, 4 x 0.25 mm&sup2; shielded</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, Serial, 4 x 0.25 mm² shielded</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Molex KK 254, female, 4 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">2</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1, X2</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, Molex KK 254, female, 4 pins</td>
<td class="bom_col_qty">2</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1, X2</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex01.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

244
examples/ex01.svg generated
View File

@ -1,178 +1,178 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="943pt" height="232pt"
viewBox="0.00 0.00 943.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="931pt" height="232pt"
viewBox="0.00 0.00 931.00 232.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 228)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-228 939,-228 939,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-228 927,-228 927,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-191 0,-191 0,-53 187,-53 187,-191"/>
<polygon fill="none" stroke="black" points="0.5,-168 0.5,-191 187.5,-191 187.5,-168 0.5,-168"/>
<text text-anchor="start" x="85" y="-175.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-145 0.5,-168 96.5,-168 96.5,-145 0.5,-145"/>
<text text-anchor="start" x="4.5" y="-152.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-145 96.5,-168 147.5,-168 147.5,-145 96.5,-145"/>
<text text-anchor="start" x="100.5" y="-152.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-145 147.5,-168 187.5,-168 187.5,-145 147.5,-145"/>
<text text-anchor="start" x="151.5" y="-152.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-122 0.5,-145 106.5,-145 106.5,-122 0.5,-122"/>
<text text-anchor="start" x="37.5" y="-129.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-122 106.5,-145 187.5,-145 187.5,-122 106.5,-122"/>
<text text-anchor="start" x="143" y="-129.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-99 0.5,-122 106.5,-122 106.5,-99 0.5,-99"/>
<text text-anchor="start" x="38.5" y="-106.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-99 106.5,-122 187.5,-122 187.5,-99 106.5,-99"/>
<text text-anchor="start" x="143" y="-106.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-76 0.5,-99 106.5,-99 106.5,-76 0.5,-76"/>
<text text-anchor="start" x="43.5" y="-83.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="106.5,-76 106.5,-99 187.5,-99 187.5,-76 106.5,-76"/>
<text text-anchor="start" x="143" y="-83.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-53 0.5,-76 106.5,-76 106.5,-53 0.5,-53"/>
<text text-anchor="start" x="44.5" y="-60.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="106.5,-53 106.5,-76 187.5,-76 187.5,-53 106.5,-53"/>
<text text-anchor="start" x="143" y="-60.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="182,-191 0,-191 0,-53 182,-53 182,-191"/>
<polygon fill="none" stroke="black" points="0,-168 0,-191 182,-191 182,-168 0,-168"/>
<text text-anchor="start" x="82.5" y="-175.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-145 0,-168 93,-168 93,-145 0,-145"/>
<text text-anchor="start" x="4" y="-152.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="93,-145 93,-168 143,-168 143,-145 93,-145"/>
<text text-anchor="start" x="97" y="-152.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="143,-145 143,-168 182,-168 182,-145 143,-145"/>
<text text-anchor="start" x="147" y="-152.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-122 0,-145 103,-145 103,-122 0,-122"/>
<text text-anchor="start" x="36" y="-129.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="103,-122 103,-145 182,-145 182,-122 103,-122"/>
<text text-anchor="start" x="138.5" y="-129.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-99 0,-122 103,-122 103,-99 0,-99"/>
<text text-anchor="start" x="37" y="-106.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="103,-99 103,-122 182,-122 182,-99 103,-99"/>
<text text-anchor="start" x="138.5" y="-106.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-76 0,-99 103,-99 103,-76 0,-76"/>
<text text-anchor="start" x="42" y="-83.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="103,-76 103,-99 182,-99 182,-76 103,-76"/>
<text text-anchor="start" x="138.5" y="-83.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-53 0,-76 103,-76 103,-53 0,-53"/>
<text text-anchor="start" x="42.5" y="-60.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="none" stroke="black" points="103,-53 103,-76 182,-76 182,-53 103,-53"/>
<text text-anchor="start" x="138.5" y="-60.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="604,-224 331,-224 331,0 604,0 604,-224"/>
<polygon fill="none" stroke="black" points="331.5,-201 331.5,-224 604.5,-224 604.5,-201 331.5,-201"/>
<text text-anchor="start" x="457.5" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-178 331.5,-201 375.5,-201 375.5,-178 331.5,-178"/>
<text text-anchor="start" x="335.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="375.5,-178 375.5,-201 398.5,-201 398.5,-178 375.5,-178"/>
<text text-anchor="start" x="379.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="398.5,-178 398.5,-201 530.5,-201 530.5,-178 398.5,-178"/>
<text text-anchor="start" x="402.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="530.5,-178 530.5,-201 560.5,-201 560.5,-178 530.5,-178"/>
<text text-anchor="start" x="534.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="560.5,-178 560.5,-201 604.5,-201 604.5,-178 560.5,-178"/>
<text text-anchor="start" x="564.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="374.5" y="-164.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-145.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="435" y="-145.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="528" y="-145.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-138 331.5,-140 604.5,-140 604.5,-138 331.5,-138"/>
<polygon fill="#895956" stroke="transparent" points="331.5,-136 331.5,-138 604.5,-138 604.5,-136 331.5,-136"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-134 331.5,-136 604.5,-136 604.5,-134 331.5,-134"/>
<text text-anchor="start" x="345" y="-120.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="435" y="-120.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="528.5" y="-120.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-113 331.5,-115 604.5,-115 604.5,-113 331.5,-113"/>
<polygon fill="#ff0000" stroke="transparent" points="331.5,-111 331.5,-113 604.5,-113 604.5,-111 331.5,-111"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-109 331.5,-111 604.5,-111 604.5,-109 331.5,-109"/>
<text text-anchor="start" x="350" y="-95.8" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="434" y="-95.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="534.5" y="-95.8" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-88 331.5,-90 604.5,-90 604.5,-88 331.5,-88"/>
<polygon fill="#ff8000" stroke="transparent" points="331.5,-86 331.5,-88 604.5,-88 604.5,-86 331.5,-86"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-84 331.5,-86 604.5,-86 604.5,-84 331.5,-84"/>
<text text-anchor="start" x="351" y="-70.8" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="435.5" y="-70.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="533.5" y="-70.8" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-63 331.5,-65 604.5,-65 604.5,-63 331.5,-63"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-61 331.5,-63 604.5,-63 604.5,-61 331.5,-61"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-59 331.5,-61 604.5,-61 604.5,-59 331.5,-59"/>
<text text-anchor="start" x="374.5" y="-45.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="344.5" y="-26.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="449" y="-26.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 604.5,-21 604.5,-19 331.5,-19"/>
<text text-anchor="start" x="374.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="597,-224 326,-224 326,0 597,0 597,-224"/>
<polygon fill="none" stroke="black" points="326.5,-201 326.5,-224 597.5,-224 597.5,-201 326.5,-201"/>
<text text-anchor="start" x="451" y="-208.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="326.5,-178 326.5,-201 369.5,-201 369.5,-178 326.5,-178"/>
<text text-anchor="start" x="330.5" y="-185.8" font-family="arial" font-size="14.00">Serial</text>
<polygon fill="none" stroke="black" points="369.5,-178 369.5,-201 392.5,-201 392.5,-178 369.5,-178"/>
<text text-anchor="start" x="373.5" y="-185.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="392.5,-178 392.5,-201 524.5,-201 524.5,-178 392.5,-178"/>
<text text-anchor="start" x="396.5" y="-185.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="524.5,-178 524.5,-201 554.5,-201 554.5,-178 524.5,-178"/>
<text text-anchor="start" x="528.5" y="-185.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="554.5,-178 554.5,-201 597.5,-201 597.5,-178 554.5,-178"/>
<text text-anchor="start" x="558.5" y="-185.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="369" y="-164.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="339.5" y="-145.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="430.5" y="-145.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="522" y="-145.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="326.5,-138 326.5,-140 597.5,-140 597.5,-138 326.5,-138"/>
<polygon fill="#895956" stroke="none" points="326.5,-136 326.5,-138 597.5,-138 597.5,-136 326.5,-136"/>
<polygon fill="#000000" stroke="none" points="326.5,-134 326.5,-136 597.5,-136 597.5,-134 326.5,-134"/>
<text text-anchor="start" x="340.5" y="-120.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="430" y="-120.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="523" y="-120.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="326.5,-113 326.5,-115 597.5,-115 597.5,-113 326.5,-113"/>
<polygon fill="#ff0000" stroke="none" points="326.5,-111 326.5,-113 597.5,-113 597.5,-111 326.5,-111"/>
<polygon fill="#000000" stroke="none" points="326.5,-109 326.5,-111 597.5,-111 597.5,-109 326.5,-109"/>
<text text-anchor="start" x="345.5" y="-95.8" font-family="arial" font-size="14.00">X1:3:RX</text>
<text text-anchor="start" x="428.5" y="-95.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="529" y="-95.8" font-family="arial" font-size="14.00">X2:4:TX</text>
<polygon fill="#000000" stroke="none" points="326.5,-88 326.5,-90 597.5,-90 597.5,-88 326.5,-88"/>
<polygon fill="#ff8000" stroke="none" points="326.5,-86 326.5,-88 597.5,-88 597.5,-86 326.5,-86"/>
<polygon fill="#000000" stroke="none" points="326.5,-84 326.5,-86 597.5,-86 597.5,-84 326.5,-84"/>
<text text-anchor="start" x="346.5" y="-70.8" font-family="arial" font-size="14.00">X1:4:TX</text>
<text text-anchor="start" x="430.5" y="-70.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="528" y="-70.8" font-family="arial" font-size="14.00">X2:3:RX</text>
<polygon fill="#000000" stroke="none" points="326.5,-63 326.5,-65 597.5,-65 597.5,-63 326.5,-63"/>
<polygon fill="#ffff00" stroke="none" points="326.5,-61 326.5,-63 597.5,-63 597.5,-61 326.5,-61"/>
<polygon fill="#000000" stroke="none" points="326.5,-59 326.5,-61 597.5,-61 597.5,-59 326.5,-59"/>
<text text-anchor="start" x="369" y="-45.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="339.5" y="-26.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="443.5" y="-26.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="326.5,-19 326.5,-21 597.5,-21 597.5,-19 326.5,-19"/>
<text text-anchor="start" x="369" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-132C251.38,-132.03 267.36,-135.03 331,-135"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M187,-134C251.01,-134 266.99,-137 331,-137"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-136C250.64,-135.97 266.62,-138.97 331,-139"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-132C246.38,-132.03 262.36,-135.03 326,-135"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M182,-134C246.01,-134 261.99,-137 326,-137"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-136C245.64,-135.97 261.62,-138.97 326,-139"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-108C251.25,-108.02 267.24,-110.02 331,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M187,-110C251.01,-110 266.99,-112 331,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-112C250.76,-111.98 266.75,-113.98 331,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-108C246.25,-108.02 262.24,-110.02 326,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M182,-110C246.01,-110 261.99,-112 326,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-112C245.76,-111.98 261.75,-113.98 326,-114"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-85C251,-85 267,-85 331,-85"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M187,-87C251,-87 267,-87 331,-87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-89C251,-89 267,-89 331,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-85C246,-85 262,-85 326,-85"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M182,-87C246,-87 262,-87 326,-87"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-89C246,-89 262,-89 326,-89"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-62C250.76,-62.02 266.75,-60.02 331,-60"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-64C251.01,-64 266.99,-62 331,-62"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-66C251.25,-65.98 267.24,-63.98 331,-64"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-62C245.76,-62.02 261.75,-60.02 326,-60"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M182,-64C246.01,-64 261.99,-62 326,-62"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-66C246.25,-65.98 262.24,-63.98 326,-64"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-134C268.63,-134 249.37,-20 331,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-134C263.63,-134 244.37,-20 326,-20"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="935,-193 748,-193 748,-55 935,-55 935,-193"/>
<polygon fill="none" stroke="black" points="748.5,-170 748.5,-193 935.5,-193 935.5,-170 748.5,-170"/>
<text text-anchor="start" x="833" y="-177.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="748.5,-147 748.5,-170 844.5,-170 844.5,-147 748.5,-147"/>
<text text-anchor="start" x="752.5" y="-154.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="844.5,-147 844.5,-170 895.5,-170 895.5,-147 844.5,-147"/>
<text text-anchor="start" x="848.5" y="-154.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="895.5,-147 895.5,-170 935.5,-170 935.5,-147 895.5,-147"/>
<text text-anchor="start" x="899.5" y="-154.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="748.5,-124 748.5,-147 830.5,-147 830.5,-124 748.5,-124"/>
<text text-anchor="start" x="785.5" y="-131.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="830.5,-124 830.5,-147 935.5,-147 935.5,-124 830.5,-124"/>
<text text-anchor="start" x="867" y="-131.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="748.5,-101 748.5,-124 830.5,-124 830.5,-101 748.5,-101"/>
<text text-anchor="start" x="785.5" y="-108.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="830.5,-101 830.5,-124 935.5,-124 935.5,-101 830.5,-101"/>
<text text-anchor="start" x="868" y="-108.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="748.5,-78 748.5,-101 830.5,-101 830.5,-78 748.5,-78"/>
<text text-anchor="start" x="785.5" y="-85.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="830.5,-78 830.5,-101 935.5,-101 935.5,-78 830.5,-78"/>
<text text-anchor="start" x="873" y="-85.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="748.5,-55 748.5,-78 830.5,-78 830.5,-55 748.5,-55"/>
<text text-anchor="start" x="785.5" y="-62.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="830.5,-55 830.5,-78 935.5,-78 935.5,-55 830.5,-55"/>
<text text-anchor="start" x="874" y="-62.8" font-family="arial" font-size="14.00">TX</text>
<polygon fill="#ffffff" stroke="black" points="923,-193 741,-193 741,-55 923,-55 923,-193"/>
<polygon fill="none" stroke="black" points="741,-170 741,-193 923,-193 923,-170 741,-170"/>
<text text-anchor="start" x="823.5" y="-177.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="741,-147 741,-170 834,-170 834,-147 741,-147"/>
<text text-anchor="start" x="745" y="-154.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="834,-147 834,-170 884,-170 884,-147 834,-147"/>
<text text-anchor="start" x="838" y="-154.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="884,-147 884,-170 923,-170 923,-147 884,-147"/>
<text text-anchor="start" x="888" y="-154.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="741,-124 741,-147 821,-147 821,-124 741,-124"/>
<text text-anchor="start" x="777" y="-131.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="821,-124 821,-147 923,-147 923,-124 821,-124"/>
<text text-anchor="start" x="856.5" y="-131.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="741,-101 741,-124 821,-124 821,-101 741,-101"/>
<text text-anchor="start" x="777" y="-108.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="821,-101 821,-124 923,-124 923,-101 821,-101"/>
<text text-anchor="start" x="857.5" y="-108.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="741,-78 741,-101 821,-101 821,-78 741,-78"/>
<text text-anchor="start" x="777" y="-85.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="821,-78 821,-101 923,-101 923,-78 821,-78"/>
<text text-anchor="start" x="862.5" y="-85.8" font-family="arial" font-size="14.00">RX</text>
<polygon fill="none" stroke="black" points="741,-55 741,-78 821,-78 821,-55 741,-55"/>
<text text-anchor="start" x="777" y="-62.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="821,-55 821,-78 923,-78 923,-55 821,-55"/>
<text text-anchor="start" x="863" y="-62.8" font-family="arial" font-size="14.00">TX</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-135C667.88,-135 683.87,-134 748,-134"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M604,-137C668,-137 684,-136 748,-136"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-139C668.13,-139 684.12,-138 748,-138"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-135C660.88,-135 676.87,-134 741,-134"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M597,-137C661,-137 677,-136 741,-136"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-139C661.13,-139 677.12,-138 741,-138"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-110C668,-110 684,-110 748,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M604,-112C668,-112 684,-112 748,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-114C668,-114 684,-114 748,-114"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-110C661,-110 677,-110 741,-110"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M597,-112C661,-112 677,-112 741,-112"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-114C661,-114 677,-114 741,-114"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-85C667.04,-85.86 681.68,-64.86 748,-64"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M604,-87C668.68,-87 683.32,-66 748,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-89C670.32,-88.14 684.96,-67.14 748,-68"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-85C660.04,-85.86 674.68,-64.86 741,-64"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M597,-87C661.68,-87 676.32,-66 741,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-89C663.32,-88.14 677.96,-67.14 741,-68"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-60C670.9,-61.09 684.67,-88.09 748,-87"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M604,-62C669.12,-62 682.88,-89 748,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M604,-64C667.33,-62.91 681.1,-89.91 748,-91"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-60C663.9,-61.09 677.67,-88.09 741,-87"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M597,-62C662.12,-62 675.88,-89 741,-89"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M597,-64C660.33,-62.91 674.1,-89.91 741,-91"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

2
examples/ex02.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

445
examples/ex02.html generated
View File

@ -1,306 +1,341 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex02</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex02</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="881pt" height="458pt"
viewBox="0.00 0.00 881.00 458.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="870pt" height="458pt"
viewBox="0.00 0.00 870.00 458.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 454)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-454 877,-454 877,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-454 866,-454 866,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-262 0,-262 0,-170 183,-170 183,-262"/>
<polygon fill="none" stroke="black" points="0.5,-239 0.5,-262 183.5,-262 183.5,-239 0.5,-239"/>
<text text-anchor="start" x="83" y="-246.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-216 0.5,-239 104.5,-239 104.5,-216 0.5,-216"/>
<text text-anchor="start" x="4.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-216 104.5,-239 143.5,-239 143.5,-216 104.5,-216"/>
<text text-anchor="start" x="108.5" y="-223.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-216 143.5,-239 183.5,-239 183.5,-216 143.5,-216"/>
<text text-anchor="start" x="147.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-193 0.5,-216 104.5,-216 104.5,-193 0.5,-193"/>
<text text-anchor="start" x="36.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-193 104.5,-216 183.5,-216 183.5,-193 104.5,-193"/>
<text text-anchor="start" x="140" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-170 0.5,-193 104.5,-193 104.5,-170 0.5,-170"/>
<text text-anchor="start" x="37.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-170 104.5,-193 183.5,-193 183.5,-170 104.5,-170"/>
<text text-anchor="start" x="140" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="180,-262 0,-262 0,-170 180,-170 180,-262"/>
<polygon fill="none" stroke="black" points="0,-239 0,-262 180,-262 180,-239 0,-239"/>
<text text-anchor="start" x="81.5" y="-246.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-216 0,-239 102,-239 102,-216 0,-216"/>
<text text-anchor="start" x="4" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="102,-216 102,-239 141,-239 141,-216 102,-216"/>
<text text-anchor="start" x="106" y="-223.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="141,-216 141,-239 180,-239 180,-216 141,-216"/>
<text text-anchor="start" x="145" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-193 0,-216 102,-216 102,-193 0,-193"/>
<text text-anchor="start" x="35.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="102,-193 102,-216 180,-216 180,-193 102,-193"/>
<text text-anchor="start" x="137" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-170 0,-193 102,-193 102,-170 0,-170"/>
<text text-anchor="start" x="36.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="102,-170 102,-193 180,-193 180,-170 102,-170"/>
<text text-anchor="start" x="137" y="-177.8" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="534,-450 327,-450 327,-316 534,-316 534,-450"/>
<polygon fill="none" stroke="black" points="327.5,-427 327.5,-450 534.5,-450 534.5,-427 327.5,-427"/>
<text text-anchor="start" x="420.5" y="-434.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-404 327.5,-427 353.5,-427 353.5,-404 327.5,-404"/>
<text text-anchor="start" x="333" y="-411.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-404 353.5,-427 488.5,-427 488.5,-404 353.5,-404"/>
<text text-anchor="start" x="359" y="-411.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-404 488.5,-427 534.5,-427 534.5,-404 488.5,-404"/>
<text text-anchor="start" x="493.5" y="-411.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-390.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-371.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-371.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-371.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-364 327.5,-366 534.5,-366 534.5,-364 327.5,-364"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-362 327.5,-364 534.5,-364 534.5,-362 327.5,-362"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-360 327.5,-362 534.5,-362 534.5,-360 327.5,-360"/>
<text text-anchor="start" x="330" y="-346.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-346.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-346.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-339 327.5,-341 534.5,-341 534.5,-339 327.5,-339"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-337 327.5,-339 534.5,-339 534.5,-337 327.5,-337"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-335 327.5,-337 534.5,-337 534.5,-335 327.5,-335"/>
<text text-anchor="start" x="359.5" y="-321.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="527,-450 324,-450 324,-316 527,-316 527,-450"/>
<polygon fill="none" stroke="black" points="324.5,-427 324.5,-450 527.5,-450 527.5,-427 324.5,-427"/>
<text text-anchor="start" x="415" y="-434.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324.5,-404 324.5,-427 349.5,-427 349.5,-404 324.5,-404"/>
<text text-anchor="start" x="329.5" y="-411.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="349.5,-404 349.5,-427 483.5,-427 483.5,-404 349.5,-404"/>
<text text-anchor="start" x="354.5" y="-411.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="483.5,-404 483.5,-427 527.5,-427 527.5,-404 483.5,-404"/>
<text text-anchor="start" x="488" y="-411.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356" y="-390.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="326.5" y="-371.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="394" y="-371.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-371.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324.5,-364 324.5,-366 527.5,-366 527.5,-364 324.5,-364"/>
<polygon fill="#000000" stroke="none" points="324.5,-362 324.5,-364 527.5,-364 527.5,-362 324.5,-362"/>
<polygon fill="#000000" stroke="none" points="324.5,-360 324.5,-362 527.5,-362 527.5,-360 324.5,-360"/>
<text text-anchor="start" x="327.5" y="-346.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393.5" y="-346.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-346.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324.5,-339 324.5,-341 527.5,-341 527.5,-339 324.5,-339"/>
<polygon fill="#ff0000" stroke="none" points="324.5,-337 324.5,-339 527.5,-339 527.5,-337 324.5,-337"/>
<polygon fill="#000000" stroke="none" points="324.5,-335 324.5,-337 527.5,-337 527.5,-335 324.5,-335"/>
<text text-anchor="start" x="356" y="-321.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C280.26,-204.56 233.58,-363.56 327,-361"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C278.34,-204 231.66,-363 327,-363"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C276.42,-203.44 229.74,-362.44 327,-365"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-202C277.26,-204.56 230.58,-363.56 324,-361"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-204C275.34,-204 228.66,-363 324,-363"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-206C273.42,-203.44 226.74,-362.44 324,-365"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C279.6,-181.56 234.24,-338.56 327,-336"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C277.68,-181 232.32,-338 327,-338"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C275.76,-180.44 230.4,-337.44 327,-340"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-179C276.6,-181.56 231.24,-338.56 324,-336"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-181C274.68,-181 229.32,-338 324,-338"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-183C272.76,-180.44 227.4,-337.44 324,-340"/>
</g>
<!-- W2 -->
<g id="node6" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" points="534,-292 327,-292 327,-158 534,-158 534,-292"/>
<polygon fill="none" stroke="black" points="327.5,-269 327.5,-292 534.5,-292 534.5,-269 327.5,-269"/>
<text text-anchor="start" x="420.5" y="-276.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="327.5,-246 327.5,-269 353.5,-269 353.5,-246 327.5,-246"/>
<text text-anchor="start" x="333" y="-253.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-246 353.5,-269 488.5,-269 488.5,-246 353.5,-246"/>
<text text-anchor="start" x="359" y="-253.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-246 488.5,-269 534.5,-269 534.5,-246 488.5,-246"/>
<text text-anchor="start" x="493.5" y="-253.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-232.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-213.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-213.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-213.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-206 327.5,-208 534.5,-208 534.5,-206 327.5,-206"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-204 327.5,-206 534.5,-206 534.5,-204 327.5,-204"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 534.5,-204 534.5,-202 327.5,-202"/>
<text text-anchor="start" x="330" y="-188.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-188.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-188.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-181 327.5,-183 534.5,-183 534.5,-181 327.5,-181"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-179 327.5,-181 534.5,-181 534.5,-179 327.5,-179"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 534.5,-179 534.5,-177 327.5,-177"/>
<text text-anchor="start" x="359.5" y="-163.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="527,-292 324,-292 324,-158 527,-158 527,-292"/>
<polygon fill="none" stroke="black" points="324.5,-269 324.5,-292 527.5,-292 527.5,-269 324.5,-269"/>
<text text-anchor="start" x="415" y="-276.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="324.5,-246 324.5,-269 349.5,-269 349.5,-246 324.5,-246"/>
<text text-anchor="start" x="329.5" y="-253.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="349.5,-246 349.5,-269 483.5,-269 483.5,-246 349.5,-246"/>
<text text-anchor="start" x="354.5" y="-253.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="483.5,-246 483.5,-269 527.5,-269 527.5,-246 483.5,-246"/>
<text text-anchor="start" x="488" y="-253.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356" y="-232.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="326.5" y="-213.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="394" y="-213.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-213.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="324.5,-206 324.5,-208 527.5,-208 527.5,-206 324.5,-206"/>
<polygon fill="#000000" stroke="none" points="324.5,-204 324.5,-206 527.5,-206 527.5,-204 324.5,-204"/>
<polygon fill="#000000" stroke="none" points="324.5,-202 324.5,-204 527.5,-204 527.5,-202 324.5,-202"/>
<text text-anchor="start" x="327.5" y="-188.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393.5" y="-188.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-188.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324.5,-181 324.5,-183 527.5,-183 527.5,-181 324.5,-181"/>
<polygon fill="#ff0000" stroke="none" points="324.5,-179 324.5,-181 527.5,-181 527.5,-179 324.5,-179"/>
<polygon fill="#000000" stroke="none" points="324.5,-177 324.5,-179 527.5,-179 527.5,-177 324.5,-177"/>
<text text-anchor="start" x="356" y="-163.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C247.13,-202 263.12,-203 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C247,-204 263,-205 327,-205"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C246.88,-206 262.87,-207 327,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-202C244.13,-202 260.12,-203 324,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-204C244,-204 260,-205 324,-205"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-206C243.88,-206 259.87,-207 324,-207"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C246.88,-179 262.87,-178 327,-178"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C247,-181 263,-180 327,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C247.13,-183 263.12,-182 327,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-179C243.88,-179 259.87,-178 324,-178"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-181C244,-181 260,-180 324,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-183C244.13,-183 260.12,-182 324,-182"/>
</g>
<!-- W3 -->
<g id="node7" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" points="534,-134 327,-134 327,0 534,0 534,-134"/>
<polygon fill="none" stroke="black" points="327.5,-111 327.5,-134 534.5,-134 534.5,-111 327.5,-111"/>
<text text-anchor="start" x="420.5" y="-118.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="327.5,-88 327.5,-111 353.5,-111 353.5,-88 327.5,-88"/>
<text text-anchor="start" x="333" y="-95.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-88 353.5,-111 488.5,-111 488.5,-88 353.5,-88"/>
<text text-anchor="start" x="359" y="-95.8" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="488.5,-88 488.5,-111 534.5,-111 534.5,-88 488.5,-88"/>
<text text-anchor="start" x="493.5" y="-95.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-74.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-55.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-55.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-48 327.5,-50 534.5,-50 534.5,-48 327.5,-48"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-46 327.5,-48 534.5,-48 534.5,-46 327.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-44 327.5,-46 534.5,-46 534.5,-44 327.5,-44"/>
<text text-anchor="start" x="330" y="-30.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-30.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-23 327.5,-25 534.5,-25 534.5,-23 327.5,-23"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-21 327.5,-23 534.5,-23 534.5,-21 327.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-19 327.5,-21 534.5,-21 534.5,-19 327.5,-19"/>
<text text-anchor="start" x="359.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="527,-134 324,-134 324,0 527,0 527,-134"/>
<polygon fill="none" stroke="black" points="324.5,-111 324.5,-134 527.5,-134 527.5,-111 324.5,-111"/>
<text text-anchor="start" x="415" y="-118.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="324.5,-88 324.5,-111 349.5,-111 349.5,-88 324.5,-88"/>
<text text-anchor="start" x="329.5" y="-95.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="349.5,-88 349.5,-111 483.5,-111 483.5,-88 349.5,-88"/>
<text text-anchor="start" x="354.5" y="-95.8" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="483.5,-88 483.5,-111 527.5,-111 527.5,-88 483.5,-88"/>
<text text-anchor="start" x="488" y="-95.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356" y="-74.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="326.5" y="-55.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="394" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-55.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="324.5,-48 324.5,-50 527.5,-50 527.5,-48 324.5,-48"/>
<polygon fill="#000000" stroke="none" points="324.5,-46 324.5,-48 527.5,-48 527.5,-46 324.5,-46"/>
<polygon fill="#000000" stroke="none" points="324.5,-44 324.5,-46 527.5,-46 527.5,-44 324.5,-44"/>
<text text-anchor="start" x="327.5" y="-30.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-30.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324.5,-23 324.5,-25 527.5,-25 527.5,-23 324.5,-23"/>
<polygon fill="#ff0000" stroke="none" points="324.5,-21 324.5,-23 527.5,-23 527.5,-21 324.5,-21"/>
<polygon fill="#000000" stroke="none" points="324.5,-19 324.5,-21 527.5,-21 527.5,-19 324.5,-19"/>
<text text-anchor="start" x="356" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C275.76,-204.56 230.4,-47.56 327,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C277.68,-204 232.32,-47 327,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C279.6,-203.44 234.24,-46.44 327,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-202C272.76,-204.56 227.4,-47.56 324,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-204C274.68,-204 229.32,-47 324,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-206C276.6,-203.44 231.24,-46.44 324,-49"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C276.42,-181.56 229.74,-22.56 327,-20"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C278.34,-181 231.66,-22 327,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C280.26,-180.44 233.58,-21.44 327,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-179C273.42,-181.56 226.74,-22.56 324,-20"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-181C275.34,-181 228.66,-22 324,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-183C277.26,-180.44 230.58,-21.44 324,-24"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="873,-420 678,-420 678,-328 873,-328 873,-420"/>
<polygon fill="none" stroke="black" points="678.5,-397 678.5,-420 873.5,-420 873.5,-397 678.5,-397"/>
<text text-anchor="start" x="767" y="-404.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="678.5,-374 678.5,-397 782.5,-397 782.5,-374 678.5,-374"/>
<text text-anchor="start" x="682.5" y="-381.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-374 782.5,-397 833.5,-397 833.5,-374 782.5,-374"/>
<text text-anchor="start" x="786.5" y="-381.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-374 833.5,-397 873.5,-397 873.5,-374 833.5,-374"/>
<text text-anchor="start" x="837.5" y="-381.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-351 678.5,-374 764.5,-374 764.5,-351 678.5,-351"/>
<text text-anchor="start" x="717.5" y="-358.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-351 764.5,-374 873.5,-374 873.5,-351 764.5,-351"/>
<text text-anchor="start" x="803" y="-358.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-328 678.5,-351 764.5,-351 764.5,-328 678.5,-328"/>
<text text-anchor="start" x="717.5" y="-335.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-328 764.5,-351 873.5,-351 873.5,-328 764.5,-328"/>
<text text-anchor="start" x="804" y="-335.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="862,-420 671,-420 671,-328 862,-328 862,-420"/>
<polygon fill="none" stroke="black" points="671.5,-397 671.5,-420 862.5,-420 862.5,-397 671.5,-397"/>
<text text-anchor="start" x="758.5" y="-404.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="671.5,-374 671.5,-397 773.5,-397 773.5,-374 671.5,-374"/>
<text text-anchor="start" x="675.5" y="-381.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="773.5,-374 773.5,-397 823.5,-397 823.5,-374 773.5,-374"/>
<text text-anchor="start" x="777.5" y="-381.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="823.5,-374 823.5,-397 862.5,-397 862.5,-374 823.5,-374"/>
<text text-anchor="start" x="827.5" y="-381.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="671.5,-351 671.5,-374 755.5,-374 755.5,-351 671.5,-351"/>
<text text-anchor="start" x="709.5" y="-358.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.5,-351 755.5,-374 862.5,-374 862.5,-351 755.5,-351"/>
<text text-anchor="start" x="793.5" y="-358.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="671.5,-328 671.5,-351 755.5,-351 755.5,-328 671.5,-328"/>
<text text-anchor="start" x="709.5" y="-335.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.5,-328 755.5,-351 862.5,-351 862.5,-328 755.5,-328"/>
<text text-anchor="start" x="794.5" y="-335.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="873,-262 678,-262 678,-170 873,-170 873,-262"/>
<polygon fill="none" stroke="black" points="678.5,-239 678.5,-262 873.5,-262 873.5,-239 678.5,-239"/>
<text text-anchor="start" x="767" y="-246.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="678.5,-216 678.5,-239 782.5,-239 782.5,-216 678.5,-216"/>
<text text-anchor="start" x="682.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-216 782.5,-239 833.5,-239 833.5,-216 782.5,-216"/>
<text text-anchor="start" x="786.5" y="-223.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-216 833.5,-239 873.5,-239 873.5,-216 833.5,-216"/>
<text text-anchor="start" x="837.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-193 678.5,-216 764.5,-216 764.5,-193 678.5,-193"/>
<text text-anchor="start" x="717.5" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-193 764.5,-216 873.5,-216 873.5,-193 764.5,-193"/>
<text text-anchor="start" x="803" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-170 678.5,-193 764.5,-193 764.5,-170 678.5,-170"/>
<text text-anchor="start" x="717.5" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-170 764.5,-193 873.5,-193 873.5,-170 764.5,-170"/>
<text text-anchor="start" x="804" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="862,-262 671,-262 671,-170 862,-170 862,-262"/>
<polygon fill="none" stroke="black" points="671.5,-239 671.5,-262 862.5,-262 862.5,-239 671.5,-239"/>
<text text-anchor="start" x="758.5" y="-246.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="671.5,-216 671.5,-239 773.5,-239 773.5,-216 671.5,-216"/>
<text text-anchor="start" x="675.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="773.5,-216 773.5,-239 823.5,-239 823.5,-216 773.5,-216"/>
<text text-anchor="start" x="777.5" y="-223.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="823.5,-216 823.5,-239 862.5,-239 862.5,-216 823.5,-216"/>
<text text-anchor="start" x="827.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="671.5,-193 671.5,-216 755.5,-216 755.5,-193 671.5,-193"/>
<text text-anchor="start" x="709.5" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.5,-193 755.5,-216 862.5,-216 862.5,-193 755.5,-193"/>
<text text-anchor="start" x="793.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="671.5,-170 671.5,-193 755.5,-193 755.5,-170 671.5,-170"/>
<text text-anchor="start" x="709.5" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.5,-170 755.5,-193 862.5,-193 862.5,-170 755.5,-170"/>
<text text-anchor="start" x="794.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="873,-104 678,-104 678,-12 873,-12 873,-104"/>
<polygon fill="none" stroke="black" points="678.5,-81 678.5,-104 873.5,-104 873.5,-81 678.5,-81"/>
<text text-anchor="start" x="767" y="-88.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="678.5,-58 678.5,-81 782.5,-81 782.5,-58 678.5,-58"/>
<text text-anchor="start" x="682.5" y="-65.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-58 782.5,-81 833.5,-81 833.5,-58 782.5,-58"/>
<text text-anchor="start" x="786.5" y="-65.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-58 833.5,-81 873.5,-81 873.5,-58 833.5,-58"/>
<text text-anchor="start" x="837.5" y="-65.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-35 678.5,-58 764.5,-58 764.5,-35 678.5,-35"/>
<text text-anchor="start" x="717.5" y="-42.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-35 764.5,-58 873.5,-58 873.5,-35 764.5,-35"/>
<text text-anchor="start" x="803" y="-42.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-12 678.5,-35 764.5,-35 764.5,-12 678.5,-12"/>
<text text-anchor="start" x="717.5" y="-19.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-12 764.5,-35 873.5,-35 873.5,-12 764.5,-12"/>
<text text-anchor="start" x="804" y="-19.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="862,-104 671,-104 671,-12 862,-12 862,-104"/>
<polygon fill="none" stroke="black" points="671.5,-81 671.5,-104 862.5,-104 862.5,-81 671.5,-81"/>
<text text-anchor="start" x="758.5" y="-88.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="671.5,-58 671.5,-81 773.5,-81 773.5,-58 671.5,-58"/>
<text text-anchor="start" x="675.5" y="-65.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="773.5,-58 773.5,-81 823.5,-81 823.5,-58 773.5,-58"/>
<text text-anchor="start" x="777.5" y="-65.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="823.5,-58 823.5,-81 862.5,-81 862.5,-58 823.5,-58"/>
<text text-anchor="start" x="827.5" y="-65.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="671.5,-35 671.5,-58 755.5,-58 755.5,-35 671.5,-35"/>
<text text-anchor="start" x="709.5" y="-42.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.5,-35 755.5,-58 862.5,-58 862.5,-35 755.5,-35"/>
<text text-anchor="start" x="793.5" y="-42.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="671.5,-12 671.5,-35 755.5,-35 755.5,-12 671.5,-12"/>
<text text-anchor="start" x="709.5" y="-19.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.5,-12 755.5,-35 862.5,-35 862.5,-12 755.5,-12"/>
<text text-anchor="start" x="794.5" y="-19.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-361C597.88,-361 613.87,-360 678,-360"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-363C598,-363 614,-362 678,-362"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-365C598.13,-365 614.12,-364 678,-364"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-361C590.88,-361 606.87,-360 671,-360"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-363C591,-363 607,-362 671,-362"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-365C591.13,-365 607.12,-364 671,-364"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-336C598.13,-336 614.12,-337 678,-337"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-338C598,-338 614,-339 678,-339"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-340C597.88,-340 613.87,-341 678,-341"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-336C591.13,-336 607.12,-337 671,-337"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M527,-338C591,-338 607,-339 671,-339"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-340C590.88,-340 606.87,-341 671,-341"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-203C597.88,-203 613.87,-202 678,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-205C598,-205 614,-204 678,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-207C598.13,-207 614.12,-206 678,-206"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-203C590.88,-203 606.87,-202 671,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-205C591,-205 607,-204 671,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-207C591.13,-207 607.12,-206 671,-206"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-178C598.13,-178 614.12,-179 678,-179"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-180C598,-180 614,-181 678,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-182C597.88,-182 613.87,-183 678,-183"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-178C591.13,-178 607.12,-179 671,-179"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M527,-180C591,-180 607,-181 671,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-182C590.88,-182 606.87,-183 671,-183"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-45C597.88,-45 613.87,-44 678,-44"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-47C598,-47 614,-46 678,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-49C598.13,-49 614.12,-48 678,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-45C590.88,-45 606.87,-44 671,-44"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-47C591,-47 607,-46 671,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-49C591.13,-49 607.12,-48 671,-48"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-20C598.13,-20 614.12,-21 678,-21"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-22C598,-22 614,-23 678,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-24C597.88,-24 613.87,-25 678,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-20C591.13,-20 607.12,-21 671,-21"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M527,-22C591,-22 607,-23 671,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-24C590.88,-24 606.87,-25 671,-25"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Cable, 2 x 0.25 mm&sup2;</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.4</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1, W2</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, 2 x 0.25 mm²</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Cable, 2 x 20 AWG</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W3</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Cable, 2 x 20 AWG</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W3</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">3</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Molex Micro-Fit, female, 2 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">3</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X2, X3, X4</td>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Connector, Molex Micro-Fit, female, 2 pins</td>
<td class="bom_col_qty">3</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X2, X3, X4</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">4</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Molex Micro-Fit, male, 2 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1</td>
<td class="bom_col_id">4</td>
<td class="bom_col_description">Connector, Molex Micro-Fit, male, 2 pins</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex02.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 86 KiB

354
examples/ex02.svg generated
View File

@ -1,261 +1,261 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="881pt" height="458pt"
viewBox="0.00 0.00 881.00 458.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="870pt" height="458pt"
viewBox="0.00 0.00 870.00 458.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 454)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-454 877,-454 877,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-454 866,-454 866,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-262 0,-262 0,-170 183,-170 183,-262"/>
<polygon fill="none" stroke="black" points="0.5,-239 0.5,-262 183.5,-262 183.5,-239 0.5,-239"/>
<text text-anchor="start" x="83" y="-246.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-216 0.5,-239 104.5,-239 104.5,-216 0.5,-216"/>
<text text-anchor="start" x="4.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-216 104.5,-239 143.5,-239 143.5,-216 104.5,-216"/>
<text text-anchor="start" x="108.5" y="-223.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-216 143.5,-239 183.5,-239 183.5,-216 143.5,-216"/>
<text text-anchor="start" x="147.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-193 0.5,-216 104.5,-216 104.5,-193 0.5,-193"/>
<text text-anchor="start" x="36.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-193 104.5,-216 183.5,-216 183.5,-193 104.5,-193"/>
<text text-anchor="start" x="140" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-170 0.5,-193 104.5,-193 104.5,-170 0.5,-170"/>
<text text-anchor="start" x="37.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-170 104.5,-193 183.5,-193 183.5,-170 104.5,-170"/>
<text text-anchor="start" x="140" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="180,-262 0,-262 0,-170 180,-170 180,-262"/>
<polygon fill="none" stroke="black" points="0,-239 0,-262 180,-262 180,-239 0,-239"/>
<text text-anchor="start" x="81.5" y="-246.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-216 0,-239 102,-239 102,-216 0,-216"/>
<text text-anchor="start" x="4" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="102,-216 102,-239 141,-239 141,-216 102,-216"/>
<text text-anchor="start" x="106" y="-223.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="141,-216 141,-239 180,-239 180,-216 141,-216"/>
<text text-anchor="start" x="145" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-193 0,-216 102,-216 102,-193 0,-193"/>
<text text-anchor="start" x="35.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="102,-193 102,-216 180,-216 180,-193 102,-193"/>
<text text-anchor="start" x="137" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-170 0,-193 102,-193 102,-170 0,-170"/>
<text text-anchor="start" x="36.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="102,-170 102,-193 180,-193 180,-170 102,-170"/>
<text text-anchor="start" x="137" y="-177.8" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="534,-450 327,-450 327,-316 534,-316 534,-450"/>
<polygon fill="none" stroke="black" points="327.5,-427 327.5,-450 534.5,-450 534.5,-427 327.5,-427"/>
<text text-anchor="start" x="420.5" y="-434.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-404 327.5,-427 353.5,-427 353.5,-404 327.5,-404"/>
<text text-anchor="start" x="333" y="-411.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-404 353.5,-427 488.5,-427 488.5,-404 353.5,-404"/>
<text text-anchor="start" x="359" y="-411.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-404 488.5,-427 534.5,-427 534.5,-404 488.5,-404"/>
<text text-anchor="start" x="493.5" y="-411.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-390.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-371.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-371.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-371.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-364 327.5,-366 534.5,-366 534.5,-364 327.5,-364"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-362 327.5,-364 534.5,-364 534.5,-362 327.5,-362"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-360 327.5,-362 534.5,-362 534.5,-360 327.5,-360"/>
<text text-anchor="start" x="330" y="-346.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-346.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-346.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-339 327.5,-341 534.5,-341 534.5,-339 327.5,-339"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-337 327.5,-339 534.5,-339 534.5,-337 327.5,-337"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-335 327.5,-337 534.5,-337 534.5,-335 327.5,-335"/>
<text text-anchor="start" x="359.5" y="-321.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="527,-450 324,-450 324,-316 527,-316 527,-450"/>
<polygon fill="none" stroke="black" points="324.5,-427 324.5,-450 527.5,-450 527.5,-427 324.5,-427"/>
<text text-anchor="start" x="415" y="-434.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324.5,-404 324.5,-427 349.5,-427 349.5,-404 324.5,-404"/>
<text text-anchor="start" x="329.5" y="-411.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="349.5,-404 349.5,-427 483.5,-427 483.5,-404 349.5,-404"/>
<text text-anchor="start" x="354.5" y="-411.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="483.5,-404 483.5,-427 527.5,-427 527.5,-404 483.5,-404"/>
<text text-anchor="start" x="488" y="-411.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356" y="-390.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="326.5" y="-371.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="394" y="-371.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-371.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324.5,-364 324.5,-366 527.5,-366 527.5,-364 324.5,-364"/>
<polygon fill="#000000" stroke="none" points="324.5,-362 324.5,-364 527.5,-364 527.5,-362 324.5,-362"/>
<polygon fill="#000000" stroke="none" points="324.5,-360 324.5,-362 527.5,-362 527.5,-360 324.5,-360"/>
<text text-anchor="start" x="327.5" y="-346.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393.5" y="-346.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-346.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324.5,-339 324.5,-341 527.5,-341 527.5,-339 324.5,-339"/>
<polygon fill="#ff0000" stroke="none" points="324.5,-337 324.5,-339 527.5,-339 527.5,-337 324.5,-337"/>
<polygon fill="#000000" stroke="none" points="324.5,-335 324.5,-337 527.5,-337 527.5,-335 324.5,-335"/>
<text text-anchor="start" x="356" y="-321.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C280.26,-204.56 233.58,-363.56 327,-361"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C278.34,-204 231.66,-363 327,-363"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C276.42,-203.44 229.74,-362.44 327,-365"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-202C277.26,-204.56 230.58,-363.56 324,-361"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-204C275.34,-204 228.66,-363 324,-363"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-206C273.42,-203.44 226.74,-362.44 324,-365"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C279.6,-181.56 234.24,-338.56 327,-336"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C277.68,-181 232.32,-338 327,-338"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C275.76,-180.44 230.4,-337.44 327,-340"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-179C276.6,-181.56 231.24,-338.56 324,-336"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-181C274.68,-181 229.32,-338 324,-338"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-183C272.76,-180.44 227.4,-337.44 324,-340"/>
</g>
<!-- W2 -->
<g id="node6" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" points="534,-292 327,-292 327,-158 534,-158 534,-292"/>
<polygon fill="none" stroke="black" points="327.5,-269 327.5,-292 534.5,-292 534.5,-269 327.5,-269"/>
<text text-anchor="start" x="420.5" y="-276.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="327.5,-246 327.5,-269 353.5,-269 353.5,-246 327.5,-246"/>
<text text-anchor="start" x="333" y="-253.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-246 353.5,-269 488.5,-269 488.5,-246 353.5,-246"/>
<text text-anchor="start" x="359" y="-253.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="488.5,-246 488.5,-269 534.5,-269 534.5,-246 488.5,-246"/>
<text text-anchor="start" x="493.5" y="-253.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-232.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-213.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-213.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-213.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-206 327.5,-208 534.5,-208 534.5,-206 327.5,-206"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-204 327.5,-206 534.5,-206 534.5,-204 327.5,-204"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 534.5,-204 534.5,-202 327.5,-202"/>
<text text-anchor="start" x="330" y="-188.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-188.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-188.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-181 327.5,-183 534.5,-183 534.5,-181 327.5,-181"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-179 327.5,-181 534.5,-181 534.5,-179 327.5,-179"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 534.5,-179 534.5,-177 327.5,-177"/>
<text text-anchor="start" x="359.5" y="-163.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="527,-292 324,-292 324,-158 527,-158 527,-292"/>
<polygon fill="none" stroke="black" points="324.5,-269 324.5,-292 527.5,-292 527.5,-269 324.5,-269"/>
<text text-anchor="start" x="415" y="-276.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="324.5,-246 324.5,-269 349.5,-269 349.5,-246 324.5,-246"/>
<text text-anchor="start" x="329.5" y="-253.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="349.5,-246 349.5,-269 483.5,-269 483.5,-246 349.5,-246"/>
<text text-anchor="start" x="354.5" y="-253.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="483.5,-246 483.5,-269 527.5,-269 527.5,-246 483.5,-246"/>
<text text-anchor="start" x="488" y="-253.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356" y="-232.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="326.5" y="-213.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="394" y="-213.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-213.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="324.5,-206 324.5,-208 527.5,-208 527.5,-206 324.5,-206"/>
<polygon fill="#000000" stroke="none" points="324.5,-204 324.5,-206 527.5,-206 527.5,-204 324.5,-204"/>
<polygon fill="#000000" stroke="none" points="324.5,-202 324.5,-204 527.5,-204 527.5,-202 324.5,-202"/>
<text text-anchor="start" x="327.5" y="-188.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393.5" y="-188.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-188.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324.5,-181 324.5,-183 527.5,-183 527.5,-181 324.5,-181"/>
<polygon fill="#ff0000" stroke="none" points="324.5,-179 324.5,-181 527.5,-181 527.5,-179 324.5,-179"/>
<polygon fill="#000000" stroke="none" points="324.5,-177 324.5,-179 527.5,-179 527.5,-177 324.5,-177"/>
<text text-anchor="start" x="356" y="-163.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C247.13,-202 263.12,-203 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C247,-204 263,-205 327,-205"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C246.88,-206 262.87,-207 327,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-202C244.13,-202 260.12,-203 324,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-204C244,-204 260,-205 324,-205"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-206C243.88,-206 259.87,-207 324,-207"/>
</g>
<!-- X1&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C246.88,-179 262.87,-178 327,-178"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C247,-181 263,-180 327,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C247.13,-183 263.12,-182 327,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-179C243.88,-179 259.87,-178 324,-178"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-181C244,-181 260,-180 324,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-183C244.13,-183 260.12,-182 324,-182"/>
</g>
<!-- W3 -->
<g id="node7" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" points="534,-134 327,-134 327,0 534,0 534,-134"/>
<polygon fill="none" stroke="black" points="327.5,-111 327.5,-134 534.5,-134 534.5,-111 327.5,-111"/>
<text text-anchor="start" x="420.5" y="-118.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="327.5,-88 327.5,-111 353.5,-111 353.5,-88 327.5,-88"/>
<text text-anchor="start" x="333" y="-95.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="353.5,-88 353.5,-111 488.5,-111 488.5,-88 353.5,-88"/>
<text text-anchor="start" x="359" y="-95.8" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="488.5,-88 488.5,-111 534.5,-111 534.5,-88 488.5,-88"/>
<text text-anchor="start" x="493.5" y="-95.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="359.5" y="-74.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="329.5" y="-55.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="398" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="468.5" y="-55.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-48 327.5,-50 534.5,-50 534.5,-48 327.5,-48"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-46 327.5,-48 534.5,-48 534.5,-46 327.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-44 327.5,-46 534.5,-46 534.5,-44 327.5,-44"/>
<text text-anchor="start" x="330" y="-30.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="397.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="469" y="-30.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-23 327.5,-25 534.5,-25 534.5,-23 327.5,-23"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-21 327.5,-23 534.5,-23 534.5,-21 327.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-19 327.5,-21 534.5,-21 534.5,-19 327.5,-19"/>
<text text-anchor="start" x="359.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="527,-134 324,-134 324,0 527,0 527,-134"/>
<polygon fill="none" stroke="black" points="324.5,-111 324.5,-134 527.5,-134 527.5,-111 324.5,-111"/>
<text text-anchor="start" x="415" y="-118.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="324.5,-88 324.5,-111 349.5,-111 349.5,-88 324.5,-88"/>
<text text-anchor="start" x="329.5" y="-95.8" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="349.5,-88 349.5,-111 483.5,-111 483.5,-88 349.5,-88"/>
<text text-anchor="start" x="354.5" y="-95.8" font-family="arial" font-size="14.00">20 AWG (0.75 mm²)</text>
<polygon fill="none" stroke="black" points="483.5,-88 483.5,-111 527.5,-111 527.5,-88 483.5,-88"/>
<text text-anchor="start" x="488" y="-95.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356" y="-74.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="326.5" y="-55.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="394" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-55.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="324.5,-48 324.5,-50 527.5,-50 527.5,-48 324.5,-48"/>
<polygon fill="#000000" stroke="none" points="324.5,-46 324.5,-48 527.5,-48 527.5,-46 324.5,-46"/>
<polygon fill="#000000" stroke="none" points="324.5,-44 324.5,-46 527.5,-46 527.5,-44 324.5,-44"/>
<text text-anchor="start" x="327.5" y="-30.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="393.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="463.5" y="-30.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324.5,-23 324.5,-25 527.5,-25 527.5,-23 324.5,-23"/>
<polygon fill="#ff0000" stroke="none" points="324.5,-21 324.5,-23 527.5,-23 527.5,-21 324.5,-21"/>
<polygon fill="#000000" stroke="none" points="324.5,-19 324.5,-21 527.5,-21 527.5,-19 324.5,-19"/>
<text text-anchor="start" x="356" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-202C275.76,-204.56 230.4,-47.56 327,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-204C277.68,-204 232.32,-47 327,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-206C279.6,-203.44 234.24,-46.44 327,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-202C272.76,-204.56 227.4,-47.56 324,-45"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-204C274.68,-204 229.32,-47 324,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-206C276.6,-203.44 231.24,-46.44 324,-49"/>
</g>
<!-- X1&#45;&#45;W3 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-179C276.42,-181.56 229.74,-22.56 327,-20"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-181C278.34,-181 231.66,-22 327,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-183C280.26,-180.44 233.58,-21.44 327,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-179C273.42,-181.56 226.74,-22.56 324,-20"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-181C275.34,-181 228.66,-22 324,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-183C277.26,-180.44 230.58,-21.44 324,-24"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="873,-420 678,-420 678,-328 873,-328 873,-420"/>
<polygon fill="none" stroke="black" points="678.5,-397 678.5,-420 873.5,-420 873.5,-397 678.5,-397"/>
<text text-anchor="start" x="767" y="-404.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="678.5,-374 678.5,-397 782.5,-397 782.5,-374 678.5,-374"/>
<text text-anchor="start" x="682.5" y="-381.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-374 782.5,-397 833.5,-397 833.5,-374 782.5,-374"/>
<text text-anchor="start" x="786.5" y="-381.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-374 833.5,-397 873.5,-397 873.5,-374 833.5,-374"/>
<text text-anchor="start" x="837.5" y="-381.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-351 678.5,-374 764.5,-374 764.5,-351 678.5,-351"/>
<text text-anchor="start" x="717.5" y="-358.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-351 764.5,-374 873.5,-374 873.5,-351 764.5,-351"/>
<text text-anchor="start" x="803" y="-358.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-328 678.5,-351 764.5,-351 764.5,-328 678.5,-328"/>
<text text-anchor="start" x="717.5" y="-335.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-328 764.5,-351 873.5,-351 873.5,-328 764.5,-328"/>
<text text-anchor="start" x="804" y="-335.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="862,-420 671,-420 671,-328 862,-328 862,-420"/>
<polygon fill="none" stroke="black" points="671.5,-397 671.5,-420 862.5,-420 862.5,-397 671.5,-397"/>
<text text-anchor="start" x="758.5" y="-404.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="671.5,-374 671.5,-397 773.5,-397 773.5,-374 671.5,-374"/>
<text text-anchor="start" x="675.5" y="-381.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="773.5,-374 773.5,-397 823.5,-397 823.5,-374 773.5,-374"/>
<text text-anchor="start" x="777.5" y="-381.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="823.5,-374 823.5,-397 862.5,-397 862.5,-374 823.5,-374"/>
<text text-anchor="start" x="827.5" y="-381.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="671.5,-351 671.5,-374 755.5,-374 755.5,-351 671.5,-351"/>
<text text-anchor="start" x="709.5" y="-358.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.5,-351 755.5,-374 862.5,-374 862.5,-351 755.5,-351"/>
<text text-anchor="start" x="793.5" y="-358.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="671.5,-328 671.5,-351 755.5,-351 755.5,-328 671.5,-328"/>
<text text-anchor="start" x="709.5" y="-335.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.5,-328 755.5,-351 862.5,-351 862.5,-328 755.5,-328"/>
<text text-anchor="start" x="794.5" y="-335.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="873,-262 678,-262 678,-170 873,-170 873,-262"/>
<polygon fill="none" stroke="black" points="678.5,-239 678.5,-262 873.5,-262 873.5,-239 678.5,-239"/>
<text text-anchor="start" x="767" y="-246.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="678.5,-216 678.5,-239 782.5,-239 782.5,-216 678.5,-216"/>
<text text-anchor="start" x="682.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-216 782.5,-239 833.5,-239 833.5,-216 782.5,-216"/>
<text text-anchor="start" x="786.5" y="-223.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-216 833.5,-239 873.5,-239 873.5,-216 833.5,-216"/>
<text text-anchor="start" x="837.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-193 678.5,-216 764.5,-216 764.5,-193 678.5,-193"/>
<text text-anchor="start" x="717.5" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-193 764.5,-216 873.5,-216 873.5,-193 764.5,-193"/>
<text text-anchor="start" x="803" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-170 678.5,-193 764.5,-193 764.5,-170 678.5,-170"/>
<text text-anchor="start" x="717.5" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-170 764.5,-193 873.5,-193 873.5,-170 764.5,-170"/>
<text text-anchor="start" x="804" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="862,-262 671,-262 671,-170 862,-170 862,-262"/>
<polygon fill="none" stroke="black" points="671.5,-239 671.5,-262 862.5,-262 862.5,-239 671.5,-239"/>
<text text-anchor="start" x="758.5" y="-246.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="671.5,-216 671.5,-239 773.5,-239 773.5,-216 671.5,-216"/>
<text text-anchor="start" x="675.5" y="-223.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="773.5,-216 773.5,-239 823.5,-239 823.5,-216 773.5,-216"/>
<text text-anchor="start" x="777.5" y="-223.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="823.5,-216 823.5,-239 862.5,-239 862.5,-216 823.5,-216"/>
<text text-anchor="start" x="827.5" y="-223.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="671.5,-193 671.5,-216 755.5,-216 755.5,-193 671.5,-193"/>
<text text-anchor="start" x="709.5" y="-200.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.5,-193 755.5,-216 862.5,-216 862.5,-193 755.5,-193"/>
<text text-anchor="start" x="793.5" y="-200.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="671.5,-170 671.5,-193 755.5,-193 755.5,-170 671.5,-170"/>
<text text-anchor="start" x="709.5" y="-177.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.5,-170 755.5,-193 862.5,-193 862.5,-170 755.5,-170"/>
<text text-anchor="start" x="794.5" y="-177.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="873,-104 678,-104 678,-12 873,-12 873,-104"/>
<polygon fill="none" stroke="black" points="678.5,-81 678.5,-104 873.5,-104 873.5,-81 678.5,-81"/>
<text text-anchor="start" x="767" y="-88.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="678.5,-58 678.5,-81 782.5,-81 782.5,-58 678.5,-58"/>
<text text-anchor="start" x="682.5" y="-65.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="782.5,-58 782.5,-81 833.5,-81 833.5,-58 782.5,-58"/>
<text text-anchor="start" x="786.5" y="-65.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="833.5,-58 833.5,-81 873.5,-81 873.5,-58 833.5,-58"/>
<text text-anchor="start" x="837.5" y="-65.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="678.5,-35 678.5,-58 764.5,-58 764.5,-35 678.5,-35"/>
<text text-anchor="start" x="717.5" y="-42.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="764.5,-35 764.5,-58 873.5,-58 873.5,-35 764.5,-35"/>
<text text-anchor="start" x="803" y="-42.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="678.5,-12 678.5,-35 764.5,-35 764.5,-12 678.5,-12"/>
<text text-anchor="start" x="717.5" y="-19.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="764.5,-12 764.5,-35 873.5,-35 873.5,-12 764.5,-12"/>
<text text-anchor="start" x="804" y="-19.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="862,-104 671,-104 671,-12 862,-12 862,-104"/>
<polygon fill="none" stroke="black" points="671.5,-81 671.5,-104 862.5,-104 862.5,-81 671.5,-81"/>
<text text-anchor="start" x="758.5" y="-88.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="671.5,-58 671.5,-81 773.5,-81 773.5,-58 671.5,-58"/>
<text text-anchor="start" x="675.5" y="-65.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="773.5,-58 773.5,-81 823.5,-81 823.5,-58 773.5,-58"/>
<text text-anchor="start" x="777.5" y="-65.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="823.5,-58 823.5,-81 862.5,-81 862.5,-58 823.5,-58"/>
<text text-anchor="start" x="827.5" y="-65.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="671.5,-35 671.5,-58 755.5,-58 755.5,-35 671.5,-35"/>
<text text-anchor="start" x="709.5" y="-42.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="755.5,-35 755.5,-58 862.5,-58 862.5,-35 755.5,-35"/>
<text text-anchor="start" x="793.5" y="-42.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="671.5,-12 671.5,-35 755.5,-35 755.5,-12 671.5,-12"/>
<text text-anchor="start" x="709.5" y="-19.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="755.5,-12 755.5,-35 862.5,-35 862.5,-12 755.5,-12"/>
<text text-anchor="start" x="794.5" y="-19.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-361C597.88,-361 613.87,-360 678,-360"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-363C598,-363 614,-362 678,-362"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-365C598.13,-365 614.12,-364 678,-364"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-361C590.88,-361 606.87,-360 671,-360"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-363C591,-363 607,-362 671,-362"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-365C591.13,-365 607.12,-364 671,-364"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-336C598.13,-336 614.12,-337 678,-337"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-338C598,-338 614,-339 678,-339"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-340C597.88,-340 613.87,-341 678,-341"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-336C591.13,-336 607.12,-337 671,-337"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M527,-338C591,-338 607,-339 671,-339"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-340C590.88,-340 606.87,-341 671,-341"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-203C597.88,-203 613.87,-202 678,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-205C598,-205 614,-204 678,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-207C598.13,-207 614.12,-206 678,-206"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-203C590.88,-203 606.87,-202 671,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-205C591,-205 607,-204 671,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-207C591.13,-207 607.12,-206 671,-206"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-178C598.13,-178 614.12,-179 678,-179"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-180C598,-180 614,-181 678,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-182C597.88,-182 613.87,-183 678,-183"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-178C591.13,-178 607.12,-179 671,-179"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M527,-180C591,-180 607,-181 671,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-182C590.88,-182 606.87,-183 671,-183"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-45C597.88,-45 613.87,-44 678,-44"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-47C598,-47 614,-46 678,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-49C598.13,-49 614.12,-48 678,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-45C590.88,-45 606.87,-44 671,-44"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-47C591,-47 607,-46 671,-46"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-49C591.13,-49 607.12,-48 671,-48"/>
</g>
<!-- W3&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-20C598.13,-20 614.12,-21 678,-21"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M534,-22C598,-22 614,-23 678,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M534,-24C597.88,-24 613.87,-25 678,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-20C591.13,-20 607.12,-21 671,-21"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M527,-22C591,-22 607,-23 671,-23"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M527,-24C590.88,-24 606.87,-25 671,-25"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

2
examples/ex03.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

401
examples/ex03.html generated
View File

@ -1,276 +1,311 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex03</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex03</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="873pt" height="332pt"
viewBox="0.00 0.00 873.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="865pt" height="332pt"
viewBox="0.00 0.00 865.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-328 869,-328 869,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-328 861,-328 861,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-208 0,-208 0,-116 183,-116 183,-208"/>
<polygon fill="none" stroke="black" points="0.5,-185 0.5,-208 183.5,-208 183.5,-185 0.5,-185"/>
<text text-anchor="start" x="83" y="-192.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-162 0.5,-185 104.5,-185 104.5,-162 0.5,-162"/>
<text text-anchor="start" x="4.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-162 104.5,-185 143.5,-185 143.5,-162 104.5,-162"/>
<text text-anchor="start" x="108.5" y="-169.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-162 143.5,-185 183.5,-185 183.5,-162 143.5,-162"/>
<text text-anchor="start" x="147.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-139 0.5,-162 104.5,-162 104.5,-139 0.5,-139"/>
<text text-anchor="start" x="36.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-139 104.5,-162 183.5,-162 183.5,-139 104.5,-139"/>
<text text-anchor="start" x="140" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-116 0.5,-139 104.5,-139 104.5,-116 0.5,-116"/>
<text text-anchor="start" x="37.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-116 104.5,-139 183.5,-139 183.5,-116 104.5,-116"/>
<text text-anchor="start" x="140" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="180,-208 0,-208 0,-116 180,-116 180,-208"/>
<polygon fill="none" stroke="black" points="0,-185 0,-208 180,-208 180,-185 0,-185"/>
<text text-anchor="start" x="81.5" y="-192.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-162 0,-185 102,-185 102,-162 0,-162"/>
<text text-anchor="start" x="4" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="102,-162 102,-185 141,-185 141,-162 102,-162"/>
<text text-anchor="start" x="106" y="-169.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="141,-162 141,-185 180,-185 180,-162 141,-162"/>
<text text-anchor="start" x="145" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-139 0,-162 102,-162 102,-139 0,-139"/>
<text text-anchor="start" x="35.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="102,-139 102,-162 180,-162 180,-139 102,-139"/>
<text text-anchor="start" x="137" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-116 0,-139 102,-139 102,-116 0,-116"/>
<text text-anchor="start" x="36.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="102,-116 102,-139 180,-139 180,-116 102,-116"/>
<text text-anchor="start" x="137" y="-123.8" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-288 327,-288 327,-54 526,-54 526,-288"/>
<polygon fill="none" stroke="black" points="327.5,-265 327.5,-288 526.5,-288 526.5,-265 327.5,-265"/>
<text text-anchor="start" x="416.5" y="-272.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-242 327.5,-265 350.5,-265 350.5,-242 327.5,-242"/>
<text text-anchor="start" x="331.5" y="-249.8" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="350.5,-242 350.5,-265 482.5,-265 482.5,-242 350.5,-242"/>
<text text-anchor="start" x="354.5" y="-249.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="482.5,-242 482.5,-265 526.5,-265 526.5,-242 482.5,-242"/>
<text text-anchor="start" x="486.5" y="-249.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="360" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="330" y="-209.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-209.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 526.5,-204 526.5,-202 327.5,-202"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-200 327.5,-202 526.5,-202 526.5,-200 327.5,-200"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-198 327.5,-200 526.5,-200 526.5,-198 327.5,-198"/>
<text text-anchor="start" x="330.5" y="-184.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-184.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 526.5,-179 526.5,-177 327.5,-177"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-175 327.5,-177 526.5,-177 526.5,-175 327.5,-175"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-173 327.5,-175 526.5,-175 526.5,-173 327.5,-173"/>
<text text-anchor="start" x="330" y="-159.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-159.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-152 327.5,-154 526.5,-154 526.5,-152 327.5,-152"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-150 327.5,-152 526.5,-152 526.5,-150 327.5,-150"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-148 327.5,-150 526.5,-150 526.5,-148 327.5,-148"/>
<text text-anchor="start" x="330.5" y="-134.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-134.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-127 327.5,-129 526.5,-129 526.5,-127 327.5,-127"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-125 327.5,-127 526.5,-127 526.5,-125 327.5,-125"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-123 327.5,-125 526.5,-125 526.5,-123 327.5,-123"/>
<text text-anchor="start" x="330" y="-109.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-109.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-109.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-102 327.5,-104 526.5,-104 526.5,-102 327.5,-102"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-100 327.5,-102 526.5,-102 526.5,-100 327.5,-100"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-98 327.5,-100 526.5,-100 526.5,-98 327.5,-98"/>
<text text-anchor="start" x="330.5" y="-84.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-84.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-84.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-77 327.5,-79 526.5,-79 526.5,-77 327.5,-77"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-75 327.5,-77 526.5,-77 526.5,-75 327.5,-75"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-73 327.5,-75 526.5,-75 526.5,-73 327.5,-73"/>
<text text-anchor="start" x="360" y="-59.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="522,-288 324,-288 324,-54 522,-54 522,-288"/>
<polygon fill="none" stroke="black" points="324,-265 324,-288 522,-288 522,-265 324,-265"/>
<text text-anchor="start" x="412" y="-272.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324,-242 324,-265 347,-265 347,-242 324,-242"/>
<text text-anchor="start" x="328" y="-249.8" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="347,-242 347,-265 479,-265 479,-242 347,-242"/>
<text text-anchor="start" x="351" y="-249.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="479,-242 479,-265 522,-265 522,-242 479,-242"/>
<text text-anchor="start" x="483" y="-249.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356.5" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="327" y="-209.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="397" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456" y="-209.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-202 324,-204 522,-204 522,-202 324,-202"/>
<polygon fill="#000000" stroke="none" points="324,-200 324,-202 522,-202 522,-200 324,-200"/>
<polygon fill="#000000" stroke="none" points="324,-198 324,-200 522,-200 522,-198 324,-198"/>
<text text-anchor="start" x="328" y="-184.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="396" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="457" y="-184.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-177 324,-179 522,-179 522,-177 324,-177"/>
<polygon fill="#ff0000" stroke="none" points="324,-175 324,-177 522,-177 522,-175 324,-175"/>
<polygon fill="#000000" stroke="none" points="324,-173 324,-175 522,-175 522,-173 324,-173"/>
<text text-anchor="start" x="327" y="-159.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="397" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456" y="-159.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-152 324,-154 522,-154 522,-152 324,-152"/>
<polygon fill="#000000" stroke="none" points="324,-150 324,-152 522,-152 522,-150 324,-150"/>
<polygon fill="#000000" stroke="none" points="324,-148 324,-150 522,-150 522,-148 324,-148"/>
<text text-anchor="start" x="328" y="-134.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="396" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="457" y="-134.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-127 324,-129 522,-129 522,-127 324,-127"/>
<polygon fill="#ff0000" stroke="none" points="324,-125 324,-127 522,-127 522,-125 324,-125"/>
<polygon fill="#000000" stroke="none" points="324,-123 324,-125 522,-125 522,-123 324,-123"/>
<text text-anchor="start" x="327" y="-109.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="397" y="-109.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456" y="-109.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-102 324,-104 522,-104 522,-102 324,-102"/>
<polygon fill="#000000" stroke="none" points="324,-100 324,-102 522,-102 522,-100 324,-100"/>
<polygon fill="#000000" stroke="none" points="324,-98 324,-100 522,-100 522,-98 324,-98"/>
<text text-anchor="start" x="328" y="-84.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="396" y="-84.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="457" y="-84.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-77 324,-79 522,-79 522,-77 324,-77"/>
<polygon fill="#ff0000" stroke="none" points="324,-75 324,-77 522,-77 522,-75 324,-75"/>
<polygon fill="#000000" stroke="none" points="324,-73 324,-75 522,-75 522,-73 324,-73"/>
<text text-anchor="start" x="356.5" y="-59.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C252.87,-149.68 261.08,-200.68 327,-199"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.9,-150 259.1,-201 327,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C248.92,-150.32 257.13,-201.32 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-148C249.87,-149.68 258.08,-200.68 324,-199"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-150C247.9,-150 256.1,-201 324,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-152C245.92,-150.32 254.13,-201.32 324,-203"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C252.57,-126.65 261.36,-175.65 327,-174"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.6,-127 259.4,-176 327,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C248.64,-127.35 257.43,-176.35 327,-178"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-125C249.57,-126.65 258.36,-175.65 324,-174"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-127C247.6,-127 256.4,-176 324,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-129C245.64,-127.35 254.43,-176.35 324,-178"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C247.13,-148 263.12,-149 327,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C247,-150 263,-151 327,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C246.88,-152 262.87,-153 327,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-148C244.13,-148 260.12,-149 324,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-150C244,-150 260,-151 324,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-152C243.88,-152 259.87,-153 324,-153"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C246.88,-125 262.87,-124 327,-124"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C247,-127 263,-126 327,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C247.13,-129 263.12,-128 327,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-125C243.88,-125 259.87,-124 324,-124"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-127C244,-127 260,-126 324,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-129C244.13,-129 260.12,-128 324,-128"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C248.64,-149.65 257.43,-100.65 327,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.6,-150 259.4,-101 327,-101"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C252.57,-150.35 261.36,-101.35 327,-103"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-148C245.64,-149.65 254.43,-100.65 324,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-150C247.6,-150 256.4,-101 324,-101"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-152C249.57,-150.35 258.36,-101.35 324,-103"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C248.92,-126.68 257.13,-75.68 327,-74"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.9,-127 259.1,-76 327,-76"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C252.87,-127.32 261.08,-76.32 327,-78"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-125C245.92,-126.68 254.13,-75.68 324,-74"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-127C247.9,-127 256.1,-76 324,-76"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-129C249.87,-127.32 258.08,-76.32 324,-78"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="865,-324 670,-324 670,-232 865,-232 865,-324"/>
<polygon fill="none" stroke="black" points="670.5,-301 670.5,-324 865.5,-324 865.5,-301 670.5,-301"/>
<text text-anchor="start" x="759" y="-308.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-278 670.5,-301 774.5,-301 774.5,-278 670.5,-278"/>
<text text-anchor="start" x="674.5" y="-285.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-278 774.5,-301 825.5,-301 825.5,-278 774.5,-278"/>
<text text-anchor="start" x="778.5" y="-285.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-278 825.5,-301 865.5,-301 865.5,-278 825.5,-278"/>
<text text-anchor="start" x="829.5" y="-285.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-255 670.5,-278 756.5,-278 756.5,-255 670.5,-255"/>
<text text-anchor="start" x="709.5" y="-262.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-255 756.5,-278 865.5,-278 865.5,-255 756.5,-255"/>
<text text-anchor="start" x="795" y="-262.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-232 670.5,-255 756.5,-255 756.5,-232 670.5,-232"/>
<text text-anchor="start" x="709.5" y="-239.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-232 756.5,-255 865.5,-255 865.5,-232 756.5,-232"/>
<text text-anchor="start" x="796" y="-239.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="857,-324 666,-324 666,-232 857,-232 857,-324"/>
<polygon fill="none" stroke="black" points="666.5,-301 666.5,-324 857.5,-324 857.5,-301 666.5,-301"/>
<text text-anchor="start" x="753.5" y="-308.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="666.5,-278 666.5,-301 768.5,-301 768.5,-278 666.5,-278"/>
<text text-anchor="start" x="670.5" y="-285.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="768.5,-278 768.5,-301 818.5,-301 818.5,-278 768.5,-278"/>
<text text-anchor="start" x="772.5" y="-285.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="818.5,-278 818.5,-301 857.5,-301 857.5,-278 818.5,-278"/>
<text text-anchor="start" x="822.5" y="-285.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="666.5,-255 666.5,-278 750.5,-278 750.5,-255 666.5,-255"/>
<text text-anchor="start" x="704.5" y="-262.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="750.5,-255 750.5,-278 857.5,-278 857.5,-255 750.5,-255"/>
<text text-anchor="start" x="788.5" y="-262.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="666.5,-232 666.5,-255 750.5,-255 750.5,-232 666.5,-232"/>
<text text-anchor="start" x="704.5" y="-239.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="750.5,-232 750.5,-255 857.5,-255 857.5,-232 750.5,-232"/>
<text text-anchor="start" x="789.5" y="-239.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="865,-208 670,-208 670,-116 865,-116 865,-208"/>
<polygon fill="none" stroke="black" points="670.5,-185 670.5,-208 865.5,-208 865.5,-185 670.5,-185"/>
<text text-anchor="start" x="759" y="-192.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="670.5,-162 670.5,-185 774.5,-185 774.5,-162 670.5,-162"/>
<text text-anchor="start" x="674.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-162 774.5,-185 825.5,-185 825.5,-162 774.5,-162"/>
<text text-anchor="start" x="778.5" y="-169.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-162 825.5,-185 865.5,-185 865.5,-162 825.5,-162"/>
<text text-anchor="start" x="829.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-139 670.5,-162 756.5,-162 756.5,-139 670.5,-139"/>
<text text-anchor="start" x="709.5" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-139 756.5,-162 865.5,-162 865.5,-139 756.5,-139"/>
<text text-anchor="start" x="795" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-116 670.5,-139 756.5,-139 756.5,-116 670.5,-116"/>
<text text-anchor="start" x="709.5" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-116 756.5,-139 865.5,-139 865.5,-116 756.5,-116"/>
<text text-anchor="start" x="796" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="857,-208 666,-208 666,-116 857,-116 857,-208"/>
<polygon fill="none" stroke="black" points="666.5,-185 666.5,-208 857.5,-208 857.5,-185 666.5,-185"/>
<text text-anchor="start" x="753.5" y="-192.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="666.5,-162 666.5,-185 768.5,-185 768.5,-162 666.5,-162"/>
<text text-anchor="start" x="670.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="768.5,-162 768.5,-185 818.5,-185 818.5,-162 768.5,-162"/>
<text text-anchor="start" x="772.5" y="-169.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="818.5,-162 818.5,-185 857.5,-185 857.5,-162 818.5,-162"/>
<text text-anchor="start" x="822.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="666.5,-139 666.5,-162 750.5,-162 750.5,-139 666.5,-139"/>
<text text-anchor="start" x="704.5" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="750.5,-139 750.5,-162 857.5,-162 857.5,-139 750.5,-139"/>
<text text-anchor="start" x="788.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="666.5,-116 666.5,-139 750.5,-139 750.5,-116 666.5,-116"/>
<text text-anchor="start" x="704.5" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="750.5,-116 750.5,-139 857.5,-139 857.5,-116 750.5,-116"/>
<text text-anchor="start" x="789.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="865,-92 670,-92 670,0 865,0 865,-92"/>
<polygon fill="none" stroke="black" points="670.5,-69 670.5,-92 865.5,-92 865.5,-69 670.5,-69"/>
<text text-anchor="start" x="759" y="-76.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="670.5,-46 670.5,-69 774.5,-69 774.5,-46 670.5,-46"/>
<text text-anchor="start" x="674.5" y="-53.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-46 774.5,-69 825.5,-69 825.5,-46 774.5,-46"/>
<text text-anchor="start" x="778.5" y="-53.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-46 825.5,-69 865.5,-69 865.5,-46 825.5,-46"/>
<text text-anchor="start" x="829.5" y="-53.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-23 670.5,-46 756.5,-46 756.5,-23 670.5,-23"/>
<text text-anchor="start" x="709.5" y="-30.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-23 756.5,-46 865.5,-46 865.5,-23 756.5,-23"/>
<text text-anchor="start" x="795" y="-30.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,0 670.5,-23 756.5,-23 756.5,0 670.5,0"/>
<text text-anchor="start" x="709.5" y="-7.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,0 756.5,-23 865.5,-23 865.5,0 756.5,0"/>
<text text-anchor="start" x="796" y="-7.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="857,-92 666,-92 666,0 857,0 857,-92"/>
<polygon fill="none" stroke="black" points="666.5,-69 666.5,-92 857.5,-92 857.5,-69 666.5,-69"/>
<text text-anchor="start" x="753.5" y="-76.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="666.5,-46 666.5,-69 768.5,-69 768.5,-46 666.5,-46"/>
<text text-anchor="start" x="670.5" y="-53.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="768.5,-46 768.5,-69 818.5,-69 818.5,-46 768.5,-46"/>
<text text-anchor="start" x="772.5" y="-53.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="818.5,-46 818.5,-69 857.5,-69 857.5,-46 818.5,-46"/>
<text text-anchor="start" x="822.5" y="-53.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="666.5,-23 666.5,-46 750.5,-46 750.5,-23 666.5,-23"/>
<text text-anchor="start" x="704.5" y="-30.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="750.5,-23 750.5,-46 857.5,-46 857.5,-23 750.5,-23"/>
<text text-anchor="start" x="788.5" y="-30.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="666.5,0 666.5,-23 750.5,-23 750.5,0 666.5,0"/>
<text text-anchor="start" x="704.5" y="-7.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="750.5,0 750.5,-23 857.5,-23 857.5,0 750.5,0"/>
<text text-anchor="start" x="789.5" y="-7.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-199C598.22,-200.89 601.78,-265.89 670,-264"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-201C596.22,-201 599.78,-266 670,-266"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-203C594.22,-201.11 597.78,-266.11 670,-268"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-199C594.22,-200.89 597.78,-265.89 666,-264"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-201C592.22,-201 595.78,-266 666,-266"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-203C590.22,-201.11 593.78,-266.11 666,-268"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-174C598.59,-175.92 601.41,-242.92 670,-241"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-176C596.59,-176 599.41,-243 670,-243"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-178C594.59,-176.08 597.41,-243.08 670,-245"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-174C594.59,-175.92 597.41,-242.92 666,-241"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M522,-176C592.59,-176 595.41,-243 666,-243"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-178C590.59,-176.08 593.41,-243.08 666,-245"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-149C589.88,-149 605.87,-148 670,-148"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-151C590,-151 606,-150 670,-150"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-153C590.13,-153 606.12,-152 670,-152"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-149C585.88,-149 601.87,-148 666,-148"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-151C586,-151 602,-150 666,-150"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-153C586.13,-153 602.12,-152 666,-152"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-124C590.13,-124 606.12,-125 670,-125"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-126C590,-126 606,-127 670,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-128C589.88,-128 605.87,-129 670,-129"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-124C586.13,-124 602.12,-125 666,-125"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M522,-126C586,-126 602,-127 666,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-128C585.88,-128 601.87,-129 666,-129"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C594.59,-100.92 597.41,-33.92 670,-32"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-101C596.59,-101 599.41,-34 670,-34"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-103C598.59,-101.08 601.41,-34.08 670,-36"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-99C590.59,-100.92 593.41,-33.92 666,-32"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-101C592.59,-101 595.41,-34 666,-34"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-103C594.59,-101.08 597.41,-34.08 666,-36"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C594.22,-75.89 597.78,-10.89 670,-9"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-76C596.22,-76 599.78,-11 670,-11"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-78C598.22,-76.11 601.78,-11.11 670,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-74C590.22,-75.89 593.78,-10.89 666,-9"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M522,-76C592.22,-76 595.78,-11 666,-11"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-78C594.22,-76.11 597.78,-11.11 666,-13"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Molex Micro-Fit, female, 2 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">3</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X2, X3, X4</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Connector, Molex Micro-Fit, female, 2 pins</td>
<td class="bom_col_qty">3</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X2, X3, X4</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Molex Micro-Fit, male, 2 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, Molex Micro-Fit, male, 2 pins</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">3</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, BK</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.6</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Wire, 0.25 mm², BK</td>
<td class="bom_col_qty">0.6</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">4</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, RD</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.6</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">4</td>
<td class="bom_col_description">Wire, 0.25 mm², RD</td>
<td class="bom_col_qty">0.6</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex03.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

310
examples/ex03.svg generated
View File

@ -1,231 +1,231 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="873pt" height="332pt"
viewBox="0.00 0.00 873.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="865pt" height="332pt"
viewBox="0.00 0.00 865.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-328 869,-328 869,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-328 861,-328 861,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="183,-208 0,-208 0,-116 183,-116 183,-208"/>
<polygon fill="none" stroke="black" points="0.5,-185 0.5,-208 183.5,-208 183.5,-185 0.5,-185"/>
<text text-anchor="start" x="83" y="-192.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-162 0.5,-185 104.5,-185 104.5,-162 0.5,-162"/>
<text text-anchor="start" x="4.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="104.5,-162 104.5,-185 143.5,-185 143.5,-162 104.5,-162"/>
<text text-anchor="start" x="108.5" y="-169.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="143.5,-162 143.5,-185 183.5,-185 183.5,-162 143.5,-162"/>
<text text-anchor="start" x="147.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-139 0.5,-162 104.5,-162 104.5,-139 0.5,-139"/>
<text text-anchor="start" x="36.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="104.5,-139 104.5,-162 183.5,-162 183.5,-139 104.5,-139"/>
<text text-anchor="start" x="140" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-116 0.5,-139 104.5,-139 104.5,-116 0.5,-116"/>
<text text-anchor="start" x="37.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="104.5,-116 104.5,-139 183.5,-139 183.5,-116 104.5,-116"/>
<text text-anchor="start" x="140" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="#ffffff" stroke="black" points="180,-208 0,-208 0,-116 180,-116 180,-208"/>
<polygon fill="none" stroke="black" points="0,-185 0,-208 180,-208 180,-185 0,-185"/>
<text text-anchor="start" x="81.5" y="-192.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-162 0,-185 102,-185 102,-162 0,-162"/>
<text text-anchor="start" x="4" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="102,-162 102,-185 141,-185 141,-162 102,-162"/>
<text text-anchor="start" x="106" y="-169.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="141,-162 141,-185 180,-185 180,-162 141,-162"/>
<text text-anchor="start" x="145" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-139 0,-162 102,-162 102,-139 0,-139"/>
<text text-anchor="start" x="35.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="102,-139 102,-162 180,-162 180,-139 102,-139"/>
<text text-anchor="start" x="137" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-116 0,-139 102,-139 102,-116 0,-116"/>
<text text-anchor="start" x="36.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="102,-116 102,-139 180,-139 180,-116 102,-116"/>
<text text-anchor="start" x="137" y="-123.8" font-family="arial" font-size="14.00">2</text>
</g>
<!-- W1 -->
<g id="node5" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-288 327,-288 327,-54 526,-54 526,-288"/>
<polygon fill="none" stroke="black" points="327.5,-265 327.5,-288 526.5,-288 526.5,-265 327.5,-265"/>
<text text-anchor="start" x="416.5" y="-272.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="327.5,-242 327.5,-265 350.5,-265 350.5,-242 327.5,-242"/>
<text text-anchor="start" x="331.5" y="-249.8" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="350.5,-242 350.5,-265 482.5,-265 482.5,-242 350.5,-242"/>
<text text-anchor="start" x="354.5" y="-249.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="482.5,-242 482.5,-265 526.5,-265 526.5,-242 482.5,-242"/>
<text text-anchor="start" x="486.5" y="-249.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="360" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="330" y="-209.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-209.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-202 327.5,-204 526.5,-204 526.5,-202 327.5,-202"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-200 327.5,-202 526.5,-202 526.5,-200 327.5,-200"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-198 327.5,-200 526.5,-200 526.5,-198 327.5,-198"/>
<text text-anchor="start" x="330.5" y="-184.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-184.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-177 327.5,-179 526.5,-179 526.5,-177 327.5,-177"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-175 327.5,-177 526.5,-177 526.5,-175 327.5,-175"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-173 327.5,-175 526.5,-175 526.5,-173 327.5,-173"/>
<text text-anchor="start" x="330" y="-159.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-159.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-152 327.5,-154 526.5,-154 526.5,-152 327.5,-152"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-150 327.5,-152 526.5,-152 526.5,-150 327.5,-150"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-148 327.5,-150 526.5,-150 526.5,-148 327.5,-148"/>
<text text-anchor="start" x="330.5" y="-134.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-134.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-127 327.5,-129 526.5,-129 526.5,-127 327.5,-127"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-125 327.5,-127 526.5,-127 526.5,-125 327.5,-125"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-123 327.5,-125 526.5,-125 526.5,-123 327.5,-123"/>
<text text-anchor="start" x="330" y="-109.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="400" y="-109.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460" y="-109.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-102 327.5,-104 526.5,-104 526.5,-102 327.5,-102"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-100 327.5,-102 526.5,-102 526.5,-100 327.5,-100"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-98 327.5,-100 526.5,-100 526.5,-98 327.5,-98"/>
<text text-anchor="start" x="330.5" y="-84.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="399" y="-84.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-84.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="327.5,-77 327.5,-79 526.5,-79 526.5,-77 327.5,-77"/>
<polygon fill="#ff0000" stroke="transparent" points="327.5,-75 327.5,-77 526.5,-77 526.5,-75 327.5,-75"/>
<polygon fill="#000000" stroke="transparent" points="327.5,-73 327.5,-75 526.5,-75 526.5,-73 327.5,-73"/>
<text text-anchor="start" x="360" y="-59.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="522,-288 324,-288 324,-54 522,-54 522,-288"/>
<polygon fill="none" stroke="black" points="324,-265 324,-288 522,-288 522,-265 324,-265"/>
<text text-anchor="start" x="412" y="-272.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="324,-242 324,-265 347,-265 347,-242 324,-242"/>
<text text-anchor="start" x="328" y="-249.8" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="347,-242 347,-265 479,-265 479,-242 347,-242"/>
<text text-anchor="start" x="351" y="-249.8" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="479,-242 479,-265 522,-265 522,-242 479,-242"/>
<text text-anchor="start" x="483" y="-249.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="356.5" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="327" y="-209.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="397" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456" y="-209.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-202 324,-204 522,-204 522,-202 324,-202"/>
<polygon fill="#000000" stroke="none" points="324,-200 324,-202 522,-202 522,-200 324,-200"/>
<polygon fill="#000000" stroke="none" points="324,-198 324,-200 522,-200 522,-198 324,-198"/>
<text text-anchor="start" x="328" y="-184.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="396" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="457" y="-184.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-177 324,-179 522,-179 522,-177 324,-177"/>
<polygon fill="#ff0000" stroke="none" points="324,-175 324,-177 522,-177 522,-175 324,-175"/>
<polygon fill="#000000" stroke="none" points="324,-173 324,-175 522,-175 522,-173 324,-173"/>
<text text-anchor="start" x="327" y="-159.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="397" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456" y="-159.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-152 324,-154 522,-154 522,-152 324,-152"/>
<polygon fill="#000000" stroke="none" points="324,-150 324,-152 522,-152 522,-150 324,-150"/>
<polygon fill="#000000" stroke="none" points="324,-148 324,-150 522,-150 522,-148 324,-148"/>
<text text-anchor="start" x="328" y="-134.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="396" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="457" y="-134.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-127 324,-129 522,-129 522,-127 324,-127"/>
<polygon fill="#ff0000" stroke="none" points="324,-125 324,-127 522,-127 522,-125 324,-125"/>
<polygon fill="#000000" stroke="none" points="324,-123 324,-125 522,-125 522,-123 324,-123"/>
<text text-anchor="start" x="327" y="-109.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="397" y="-109.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="456" y="-109.8" font-family="arial" font-size="14.00">X4:1:GND</text>
<polygon fill="#000000" stroke="none" points="324,-102 324,-104 522,-104 522,-102 324,-102"/>
<polygon fill="#000000" stroke="none" points="324,-100 324,-102 522,-102 522,-100 324,-100"/>
<polygon fill="#000000" stroke="none" points="324,-98 324,-100 522,-100 522,-98 324,-98"/>
<text text-anchor="start" x="328" y="-84.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="396" y="-84.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="457" y="-84.8" font-family="arial" font-size="14.00">X4:2:VCC</text>
<polygon fill="#000000" stroke="none" points="324,-77 324,-79 522,-79 522,-77 324,-77"/>
<polygon fill="#ff0000" stroke="none" points="324,-75 324,-77 522,-77 522,-75 324,-75"/>
<polygon fill="#000000" stroke="none" points="324,-73 324,-75 522,-75 522,-73 324,-73"/>
<text text-anchor="start" x="356.5" y="-59.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C252.87,-149.68 261.08,-200.68 327,-199"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.9,-150 259.1,-201 327,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C248.92,-150.32 257.13,-201.32 327,-203"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-148C249.87,-149.68 258.08,-200.68 324,-199"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-150C247.9,-150 256.1,-201 324,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-152C245.92,-150.32 254.13,-201.32 324,-203"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C252.57,-126.65 261.36,-175.65 327,-174"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.6,-127 259.4,-176 327,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C248.64,-127.35 257.43,-176.35 327,-178"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-125C249.57,-126.65 258.36,-175.65 324,-174"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-127C247.6,-127 256.4,-176 324,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-129C245.64,-127.35 254.43,-176.35 324,-178"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C247.13,-148 263.12,-149 327,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C247,-150 263,-151 327,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C246.88,-152 262.87,-153 327,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-148C244.13,-148 260.12,-149 324,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-150C244,-150 260,-151 324,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-152C243.88,-152 259.87,-153 324,-153"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C246.88,-125 262.87,-124 327,-124"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C247,-127 263,-126 327,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C247.13,-129 263.12,-128 327,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-125C243.88,-125 259.87,-124 324,-124"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-127C244,-127 260,-126 324,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-129C244.13,-129 260.12,-128 324,-128"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-148C248.64,-149.65 257.43,-100.65 327,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-150C250.6,-150 259.4,-101 327,-101"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-152C252.57,-150.35 261.36,-101.35 327,-103"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-148C245.64,-149.65 254.43,-100.65 324,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-150C247.6,-150 256.4,-101 324,-101"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-152C249.57,-150.35 258.36,-101.35 324,-103"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-125C248.92,-126.68 257.13,-75.68 327,-74"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M183,-127C250.9,-127 259.1,-76 327,-76"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M183,-129C252.87,-127.32 261.08,-76.32 327,-78"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-125C245.92,-126.68 254.13,-75.68 324,-74"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M180,-127C247.9,-127 256.1,-76 324,-76"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M180,-129C249.87,-127.32 258.08,-76.32 324,-78"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="865,-324 670,-324 670,-232 865,-232 865,-324"/>
<polygon fill="none" stroke="black" points="670.5,-301 670.5,-324 865.5,-324 865.5,-301 670.5,-301"/>
<text text-anchor="start" x="759" y="-308.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-278 670.5,-301 774.5,-301 774.5,-278 670.5,-278"/>
<text text-anchor="start" x="674.5" y="-285.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-278 774.5,-301 825.5,-301 825.5,-278 774.5,-278"/>
<text text-anchor="start" x="778.5" y="-285.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-278 825.5,-301 865.5,-301 865.5,-278 825.5,-278"/>
<text text-anchor="start" x="829.5" y="-285.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-255 670.5,-278 756.5,-278 756.5,-255 670.5,-255"/>
<text text-anchor="start" x="709.5" y="-262.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-255 756.5,-278 865.5,-278 865.5,-255 756.5,-255"/>
<text text-anchor="start" x="795" y="-262.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-232 670.5,-255 756.5,-255 756.5,-232 670.5,-232"/>
<text text-anchor="start" x="709.5" y="-239.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-232 756.5,-255 865.5,-255 865.5,-232 756.5,-232"/>
<text text-anchor="start" x="796" y="-239.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="857,-324 666,-324 666,-232 857,-232 857,-324"/>
<polygon fill="none" stroke="black" points="666.5,-301 666.5,-324 857.5,-324 857.5,-301 666.5,-301"/>
<text text-anchor="start" x="753.5" y="-308.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="666.5,-278 666.5,-301 768.5,-301 768.5,-278 666.5,-278"/>
<text text-anchor="start" x="670.5" y="-285.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="768.5,-278 768.5,-301 818.5,-301 818.5,-278 768.5,-278"/>
<text text-anchor="start" x="772.5" y="-285.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="818.5,-278 818.5,-301 857.5,-301 857.5,-278 818.5,-278"/>
<text text-anchor="start" x="822.5" y="-285.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="666.5,-255 666.5,-278 750.5,-278 750.5,-255 666.5,-255"/>
<text text-anchor="start" x="704.5" y="-262.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="750.5,-255 750.5,-278 857.5,-278 857.5,-255 750.5,-255"/>
<text text-anchor="start" x="788.5" y="-262.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="666.5,-232 666.5,-255 750.5,-255 750.5,-232 666.5,-232"/>
<text text-anchor="start" x="704.5" y="-239.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="750.5,-232 750.5,-255 857.5,-255 857.5,-232 750.5,-232"/>
<text text-anchor="start" x="789.5" y="-239.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="865,-208 670,-208 670,-116 865,-116 865,-208"/>
<polygon fill="none" stroke="black" points="670.5,-185 670.5,-208 865.5,-208 865.5,-185 670.5,-185"/>
<text text-anchor="start" x="759" y="-192.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="670.5,-162 670.5,-185 774.5,-185 774.5,-162 670.5,-162"/>
<text text-anchor="start" x="674.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-162 774.5,-185 825.5,-185 825.5,-162 774.5,-162"/>
<text text-anchor="start" x="778.5" y="-169.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-162 825.5,-185 865.5,-185 865.5,-162 825.5,-162"/>
<text text-anchor="start" x="829.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-139 670.5,-162 756.5,-162 756.5,-139 670.5,-139"/>
<text text-anchor="start" x="709.5" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-139 756.5,-162 865.5,-162 865.5,-139 756.5,-139"/>
<text text-anchor="start" x="795" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,-116 670.5,-139 756.5,-139 756.5,-116 670.5,-116"/>
<text text-anchor="start" x="709.5" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,-116 756.5,-139 865.5,-139 865.5,-116 756.5,-116"/>
<text text-anchor="start" x="796" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="857,-208 666,-208 666,-116 857,-116 857,-208"/>
<polygon fill="none" stroke="black" points="666.5,-185 666.5,-208 857.5,-208 857.5,-185 666.5,-185"/>
<text text-anchor="start" x="753.5" y="-192.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="666.5,-162 666.5,-185 768.5,-185 768.5,-162 666.5,-162"/>
<text text-anchor="start" x="670.5" y="-169.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="768.5,-162 768.5,-185 818.5,-185 818.5,-162 768.5,-162"/>
<text text-anchor="start" x="772.5" y="-169.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="818.5,-162 818.5,-185 857.5,-185 857.5,-162 818.5,-162"/>
<text text-anchor="start" x="822.5" y="-169.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="666.5,-139 666.5,-162 750.5,-162 750.5,-139 666.5,-139"/>
<text text-anchor="start" x="704.5" y="-146.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="750.5,-139 750.5,-162 857.5,-162 857.5,-139 750.5,-139"/>
<text text-anchor="start" x="788.5" y="-146.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="666.5,-116 666.5,-139 750.5,-139 750.5,-116 666.5,-116"/>
<text text-anchor="start" x="704.5" y="-123.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="750.5,-116 750.5,-139 857.5,-139 857.5,-116 750.5,-116"/>
<text text-anchor="start" x="789.5" y="-123.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- X4 -->
<g id="node4" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="865,-92 670,-92 670,0 865,0 865,-92"/>
<polygon fill="none" stroke="black" points="670.5,-69 670.5,-92 865.5,-92 865.5,-69 670.5,-69"/>
<text text-anchor="start" x="759" y="-76.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="670.5,-46 670.5,-69 774.5,-69 774.5,-46 670.5,-46"/>
<text text-anchor="start" x="674.5" y="-53.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="774.5,-46 774.5,-69 825.5,-69 825.5,-46 774.5,-46"/>
<text text-anchor="start" x="778.5" y="-53.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="825.5,-46 825.5,-69 865.5,-69 865.5,-46 825.5,-46"/>
<text text-anchor="start" x="829.5" y="-53.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-23 670.5,-46 756.5,-46 756.5,-23 670.5,-23"/>
<text text-anchor="start" x="709.5" y="-30.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="756.5,-23 756.5,-46 865.5,-46 865.5,-23 756.5,-23"/>
<text text-anchor="start" x="795" y="-30.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="670.5,0 670.5,-23 756.5,-23 756.5,0 670.5,0"/>
<text text-anchor="start" x="709.5" y="-7.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="756.5,0 756.5,-23 865.5,-23 865.5,0 756.5,0"/>
<text text-anchor="start" x="796" y="-7.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="#ffffff" stroke="black" points="857,-92 666,-92 666,0 857,0 857,-92"/>
<polygon fill="none" stroke="black" points="666.5,-69 666.5,-92 857.5,-92 857.5,-69 666.5,-69"/>
<text text-anchor="start" x="753.5" y="-76.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="666.5,-46 666.5,-69 768.5,-69 768.5,-46 666.5,-46"/>
<text text-anchor="start" x="670.5" y="-53.8" font-family="arial" font-size="14.00">Molex Micro&#45;Fit</text>
<polygon fill="none" stroke="black" points="768.5,-46 768.5,-69 818.5,-69 818.5,-46 768.5,-46"/>
<text text-anchor="start" x="772.5" y="-53.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="818.5,-46 818.5,-69 857.5,-69 857.5,-46 818.5,-46"/>
<text text-anchor="start" x="822.5" y="-53.8" font-family="arial" font-size="14.00">2&#45;pin</text>
<polygon fill="none" stroke="black" points="666.5,-23 666.5,-46 750.5,-46 750.5,-23 666.5,-23"/>
<text text-anchor="start" x="704.5" y="-30.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="750.5,-23 750.5,-46 857.5,-46 857.5,-23 750.5,-23"/>
<text text-anchor="start" x="788.5" y="-30.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="666.5,0 666.5,-23 750.5,-23 750.5,0 666.5,0"/>
<text text-anchor="start" x="704.5" y="-7.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="750.5,0 750.5,-23 857.5,-23 857.5,0 750.5,0"/>
<text text-anchor="start" x="789.5" y="-7.8" font-family="arial" font-size="14.00">VCC</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-199C598.22,-200.89 601.78,-265.89 670,-264"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-201C596.22,-201 599.78,-266 670,-266"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-203C594.22,-201.11 597.78,-266.11 670,-268"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-199C594.22,-200.89 597.78,-265.89 666,-264"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-201C592.22,-201 595.78,-266 666,-266"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-203C590.22,-201.11 593.78,-266.11 666,-268"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-174C598.59,-175.92 601.41,-242.92 670,-241"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-176C596.59,-176 599.41,-243 670,-243"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-178C594.59,-176.08 597.41,-243.08 670,-245"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-174C594.59,-175.92 597.41,-242.92 666,-241"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M522,-176C592.59,-176 595.41,-243 666,-243"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-178C590.59,-176.08 593.41,-243.08 666,-245"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-149C589.88,-149 605.87,-148 670,-148"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-151C590,-151 606,-150 670,-150"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-153C590.13,-153 606.12,-152 670,-152"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-149C585.88,-149 601.87,-148 666,-148"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-151C586,-151 602,-150 666,-150"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-153C586.13,-153 602.12,-152 666,-152"/>
</g>
<!-- W1&#45;&#45;X3 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-124C590.13,-124 606.12,-125 670,-125"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-126C590,-126 606,-127 670,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-128C589.88,-128 605.87,-129 670,-129"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-124C586.13,-124 602.12,-125 666,-125"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M522,-126C586,-126 602,-127 666,-127"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-128C585.88,-128 601.87,-129 666,-129"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C594.59,-100.92 597.41,-33.92 670,-32"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-101C596.59,-101 599.41,-34 670,-34"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-103C598.59,-101.08 601.41,-34.08 670,-36"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-99C590.59,-100.92 593.41,-33.92 666,-32"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-101C592.59,-101 595.41,-34 666,-34"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-103C594.59,-101.08 597.41,-34.08 666,-36"/>
</g>
<!-- W1&#45;&#45;X4 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C594.22,-75.89 597.78,-10.89 670,-9"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M526,-76C596.22,-76 599.78,-11 670,-11"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-78C598.22,-76.11 601.78,-11.11 670,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-74C590.22,-75.89 593.78,-10.89 666,-9"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M522,-76C592.22,-76 595.78,-11 666,-11"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M522,-78C594.22,-76.11 597.78,-11.11 666,-13"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

50
examples/ex04.gv generated
View File

@ -1,10 +1,10 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
_ferrule_crimp_1 [label=<
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -13,7 +13,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_2 [label=<
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -22,7 +22,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_3 [label=<
__F_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -31,7 +31,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_4 [label=<
__F_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -40,7 +40,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_5 [label=<
__F_5 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -49,7 +49,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_6 [label=<
__F_6 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -58,7 +58,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_7 [label=<
__F_7 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -67,7 +67,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_8 [label=<
__F_8 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -76,7 +76,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_9 [label=<
__F_9 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -85,7 +85,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_10 [label=<
__F_10 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -94,7 +94,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_11 [label=<
__F_11 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -103,7 +103,7 @@ graph {
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
_ferrule_crimp_12 [label=<
__F_12 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
@ -113,23 +113,23 @@ graph {
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#895956:#000000"]
_ferrule_crimp_1:e -- W1:w1:w
W1:w1:e -- _ferrule_crimp_7:w
__F_1:e -- W1:w1:w
W1:w1:e -- __F_7:w
edge [color="#000000:#ff0000:#000000"]
_ferrule_crimp_2:e -- W1:w2:w
W1:w2:e -- _ferrule_crimp_8:w
__F_2:e -- W1:w2:w
W1:w2:e -- __F_8:w
edge [color="#000000:#ff8000:#000000"]
_ferrule_crimp_3:e -- W1:w3:w
W1:w3:e -- _ferrule_crimp_9:w
__F_3:e -- W1:w3:w
W1:w3:e -- __F_9:w
edge [color="#000000:#ffff00:#000000"]
_ferrule_crimp_4:e -- W1:w4:w
W1:w4:e -- _ferrule_crimp_10:w
__F_4:e -- W1:w4:w
W1:w4:e -- __F_10:w
edge [color="#000000:#00ff00:#000000"]
_ferrule_crimp_5:e -- W1:w5:w
W1:w5:e -- _ferrule_crimp_11:w
__F_5:e -- W1:w5:w
W1:w5:e -- __F_11:w
edge [color="#000000:#0066ff:#000000"]
_ferrule_crimp_6:e -- W1:w6:w
W1:w6:e -- _ferrule_crimp_12:w
__F_6:e -- W1:w6:w
W1:w6:e -- __F_12:w
W1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>

427
examples/ex04.html generated
View File

@ -1,285 +1,320 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex04</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex04</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="673pt" height="287pt"
viewBox="0.00 0.00 673.00 286.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="668pt" height="287pt"
viewBox="0.00 0.00 668.00 286.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 282.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-282.5 669,-282.5 669,4 -4,4"/>
<!-- _ferrule_crimp_1 -->
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-282.5 664,-282.5 664,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>_ferrule_crimp_1</title>
<polygon fill="#ffffff" stroke="black" points="89,-258 0,-258 0,-235 89,-235 89,-258"/>
<polygon fill="none" stroke="black" points="0.5,-234.5 0.5,-257.5 89.5,-257.5 89.5,-234.5 0.5,-234.5"/>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="87,-258 0,-258 0,-235 87,-235 87,-258"/>
<polygon fill="none" stroke="black" points="0.5,-234.5 0.5,-257.5 87.5,-257.5 87.5,-234.5 0.5,-234.5"/>
<text text-anchor="start" x="4.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1 -->
<g id="node13" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="432,-278.5 233,-278.5 233,-44.5 432,-44.5 432,-278.5"/>
<polygon fill="none" stroke="black" points="233.5,-255.5 233.5,-278.5 432.5,-278.5 432.5,-255.5 233.5,-255.5"/>
<text text-anchor="start" x="322.5" y="-263.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="233.5,-232.5 233.5,-255.5 256.5,-255.5 256.5,-232.5 233.5,-232.5"/>
<text text-anchor="start" x="237.5" y="-240.3" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="256.5,-232.5 256.5,-255.5 388.5,-255.5 388.5,-232.5 256.5,-232.5"/>
<text text-anchor="start" x="260.5" y="-240.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="388.5,-232.5 388.5,-255.5 432.5,-255.5 432.5,-232.5 388.5,-232.5"/>
<text text-anchor="start" x="392.5" y="-240.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="256.5" y="-219.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="307.5" y="-200.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-192.5 233.5,-194.5 432.5,-194.5 432.5,-192.5 233.5,-192.5"/>
<polygon fill="#895956" stroke="transparent" points="233.5,-190.5 233.5,-192.5 432.5,-192.5 432.5,-190.5 233.5,-190.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-188.5 233.5,-190.5 432.5,-190.5 432.5,-188.5 233.5,-188.5"/>
<text text-anchor="start" x="307" y="-175.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-167.5 233.5,-169.5 432.5,-169.5 432.5,-167.5 233.5,-167.5"/>
<polygon fill="#ff0000" stroke="transparent" points="233.5,-165.5 233.5,-167.5 432.5,-167.5 432.5,-165.5 233.5,-165.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-163.5 233.5,-165.5 432.5,-165.5 432.5,-163.5 233.5,-163.5"/>
<text text-anchor="start" x="306.5" y="-150.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-142.5 233.5,-144.5 432.5,-144.5 432.5,-142.5 233.5,-142.5"/>
<polygon fill="#ff8000" stroke="transparent" points="233.5,-140.5 233.5,-142.5 432.5,-142.5 432.5,-140.5 233.5,-140.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-138.5 233.5,-140.5 432.5,-140.5 432.5,-138.5 233.5,-138.5"/>
<text text-anchor="start" x="308" y="-125.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-117.5 233.5,-119.5 432.5,-119.5 432.5,-117.5 233.5,-117.5"/>
<polygon fill="#ffff00" stroke="transparent" points="233.5,-115.5 233.5,-117.5 432.5,-117.5 432.5,-115.5 233.5,-115.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-113.5 233.5,-115.5 432.5,-115.5 432.5,-113.5 233.5,-113.5"/>
<text text-anchor="start" x="306.5" y="-100.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-92.5 233.5,-94.5 432.5,-94.5 432.5,-92.5 233.5,-92.5"/>
<polygon fill="#00ff00" stroke="transparent" points="233.5,-90.5 233.5,-92.5 432.5,-92.5 432.5,-90.5 233.5,-90.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-88.5 233.5,-90.5 432.5,-90.5 432.5,-88.5 233.5,-88.5"/>
<text text-anchor="start" x="307.5" y="-75.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-67.5 233.5,-69.5 432.5,-69.5 432.5,-67.5 233.5,-67.5"/>
<polygon fill="#0066ff" stroke="transparent" points="233.5,-65.5 233.5,-67.5 432.5,-67.5 432.5,-65.5 233.5,-65.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-63.5 233.5,-65.5 432.5,-65.5 432.5,-63.5 233.5,-63.5"/>
<text text-anchor="start" x="256.5" y="-50.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="429,-278.5 231,-278.5 231,-44.5 429,-44.5 429,-278.5"/>
<polygon fill="none" stroke="black" points="231,-255.5 231,-278.5 429,-278.5 429,-255.5 231,-255.5"/>
<text text-anchor="start" x="319" y="-263.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="231,-232.5 231,-255.5 254,-255.5 254,-232.5 231,-232.5"/>
<text text-anchor="start" x="235" y="-240.3" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="254,-232.5 254,-255.5 386,-255.5 386,-232.5 254,-232.5"/>
<text text-anchor="start" x="258" y="-240.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="386,-232.5 386,-255.5 429,-255.5 429,-232.5 386,-232.5"/>
<text text-anchor="start" x="390" y="-240.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="254" y="-219.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="306" y="-200.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-192.5 231,-194.5 429,-194.5 429,-192.5 231,-192.5"/>
<polygon fill="#895956" stroke="none" points="231,-190.5 231,-192.5 429,-192.5 429,-190.5 231,-190.5"/>
<polygon fill="#000000" stroke="none" points="231,-188.5 231,-190.5 429,-190.5 429,-188.5 231,-188.5"/>
<text text-anchor="start" x="305.5" y="-175.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-167.5 231,-169.5 429,-169.5 429,-167.5 231,-167.5"/>
<polygon fill="#ff0000" stroke="none" points="231,-165.5 231,-167.5 429,-167.5 429,-165.5 231,-165.5"/>
<polygon fill="#000000" stroke="none" points="231,-163.5 231,-165.5 429,-165.5 429,-163.5 231,-163.5"/>
<text text-anchor="start" x="304" y="-150.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-142.5 231,-144.5 429,-144.5 429,-142.5 231,-142.5"/>
<polygon fill="#ff8000" stroke="none" points="231,-140.5 231,-142.5 429,-142.5 429,-140.5 231,-140.5"/>
<polygon fill="#000000" stroke="none" points="231,-138.5 231,-140.5 429,-140.5 429,-138.5 231,-138.5"/>
<text text-anchor="start" x="306.5" y="-125.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-117.5 231,-119.5 429,-119.5 429,-117.5 231,-117.5"/>
<polygon fill="#ffff00" stroke="none" points="231,-115.5 231,-117.5 429,-117.5 429,-115.5 231,-115.5"/>
<polygon fill="#000000" stroke="none" points="231,-113.5 231,-115.5 429,-115.5 429,-113.5 231,-113.5"/>
<text text-anchor="start" x="305" y="-100.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-92.5 231,-94.5 429,-94.5 429,-92.5 231,-92.5"/>
<polygon fill="#00ff00" stroke="none" points="231,-90.5 231,-92.5 429,-92.5 429,-90.5 231,-90.5"/>
<polygon fill="#000000" stroke="none" points="231,-88.5 231,-90.5 429,-90.5 429,-88.5 231,-88.5"/>
<text text-anchor="start" x="306" y="-75.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-67.5 231,-69.5 429,-69.5 429,-67.5 231,-67.5"/>
<polygon fill="#0066ff" stroke="none" points="231,-65.5 231,-67.5 429,-67.5 429,-65.5 231,-65.5"/>
<polygon fill="#000000" stroke="none" points="231,-63.5 231,-65.5 429,-65.5 429,-63.5 231,-63.5"/>
<text text-anchor="start" x="254" y="-50.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- _ferrule_crimp_1&#45;&#45;W1 -->
<!-- __F_1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>_ferrule_crimp_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-244.5C155.53,-246.25 162.51,-191.25 233,-189.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M89,-246.5C157.51,-246.5 164.49,-191.5 233,-191.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-248.5C159.49,-246.75 166.47,-191.75 233,-193.5"/>
<title>__F_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-244.5C153.53,-246.25 160.51,-191.25 231,-189.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M87,-246.5C155.51,-246.5 162.49,-191.5 231,-191.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-248.5C157.49,-246.75 164.47,-191.75 231,-193.5"/>
</g>
<!-- _ferrule_crimp_2 -->
<!-- __F_2 -->
<g id="node2" class="node">
<title>_ferrule_crimp_2</title>
<polygon fill="#ffffff" stroke="black" points="89,-211 0,-211 0,-188 89,-188 89,-211"/>
<polygon fill="none" stroke="black" points="0.5,-187.5 0.5,-210.5 89.5,-210.5 89.5,-187.5 0.5,-187.5"/>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="87,-211 0,-211 0,-188 87,-188 87,-211"/>
<polygon fill="none" stroke="black" points="0.5,-187.5 0.5,-210.5 87.5,-210.5 87.5,-187.5 0.5,-187.5"/>
<text text-anchor="start" x="4.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_2&#45;&#45;W1 -->
<!-- __F_2&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>_ferrule_crimp_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-197.5C152.79,-198.78 165.47,-165.78 233,-164.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M89,-199.5C154.66,-199.5 167.34,-166.5 233,-166.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-201.5C156.53,-200.22 169.21,-167.22 233,-168.5"/>
<title>__F_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-197.5C150.79,-198.78 163.47,-165.78 231,-164.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M87,-199.5C152.66,-199.5 165.34,-166.5 231,-166.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-201.5C154.53,-200.22 167.21,-167.22 231,-168.5"/>
</g>
<!-- _ferrule_crimp_3 -->
<!-- __F_3 -->
<g id="node3" class="node">
<title>_ferrule_crimp_3</title>
<polygon fill="#ffffff" stroke="black" points="89,-164 0,-164 0,-141 89,-141 89,-164"/>
<polygon fill="none" stroke="black" points="0.5,-140.5 0.5,-163.5 89.5,-163.5 89.5,-140.5 0.5,-140.5"/>
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="87,-164 0,-164 0,-141 87,-141 87,-164"/>
<polygon fill="none" stroke="black" points="0.5,-140.5 0.5,-163.5 87.5,-163.5 87.5,-140.5 0.5,-140.5"/>
<text text-anchor="start" x="4.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_3&#45;&#45;W1 -->
<!-- __F_3&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>_ferrule_crimp_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-150.5C152.04,-150.86 167.66,-139.86 233,-139.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M89,-152.5C153.19,-152.5 168.81,-141.5 233,-141.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-154.5C154.34,-154.14 169.96,-143.14 233,-143.5"/>
<title>__F_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-150.5C150.04,-150.86 165.66,-139.86 231,-139.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M87,-152.5C151.19,-152.5 166.81,-141.5 231,-141.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-154.5C152.34,-154.14 167.96,-143.14 231,-143.5"/>
</g>
<!-- _ferrule_crimp_4 -->
<!-- __F_4 -->
<g id="node4" class="node">
<title>_ferrule_crimp_4</title>
<polygon fill="#ffffff" stroke="black" points="89,-117 0,-117 0,-94 89,-94 89,-117"/>
<polygon fill="none" stroke="black" points="0.5,-93.5 0.5,-116.5 89.5,-116.5 89.5,-93.5 0.5,-93.5"/>
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="87,-117 0,-117 0,-94 87,-94 87,-117"/>
<polygon fill="none" stroke="black" points="0.5,-93.5 0.5,-116.5 87.5,-116.5 87.5,-93.5 0.5,-93.5"/>
<text text-anchor="start" x="4.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_4&#45;&#45;W1 -->
<!-- __F_4&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>_ferrule_crimp_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-103.5C154.34,-103.86 169.96,-114.86 233,-114.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M89,-105.5C153.19,-105.5 168.81,-116.5 233,-116.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-107.5C152.04,-107.14 167.66,-118.14 233,-118.5"/>
<title>__F_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-103.5C152.34,-103.86 167.96,-114.86 231,-114.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M87,-105.5C151.19,-105.5 166.81,-116.5 231,-116.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-107.5C150.04,-107.14 165.66,-118.14 231,-118.5"/>
</g>
<!-- _ferrule_crimp_5 -->
<!-- __F_5 -->
<g id="node5" class="node">
<title>_ferrule_crimp_5</title>
<polygon fill="#ffffff" stroke="black" points="89,-70 0,-70 0,-47 89,-47 89,-70"/>
<polygon fill="none" stroke="black" points="0.5,-46.5 0.5,-69.5 89.5,-69.5 89.5,-46.5 0.5,-46.5"/>
<title>__F_5</title>
<polygon fill="#ffffff" stroke="black" points="87,-70 0,-70 0,-47 87,-47 87,-70"/>
<polygon fill="none" stroke="black" points="0.5,-46.5 0.5,-69.5 87.5,-69.5 87.5,-46.5 0.5,-46.5"/>
<text text-anchor="start" x="4.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_5&#45;&#45;W1 -->
<!-- __F_5&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>_ferrule_crimp_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-56.5C156.53,-57.78 169.21,-90.78 233,-89.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M89,-58.5C154.66,-58.5 167.34,-91.5 233,-91.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-60.5C152.79,-59.22 165.47,-92.22 233,-93.5"/>
<title>__F_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-56.5C154.53,-57.78 167.21,-90.78 231,-89.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M87,-58.5C152.66,-58.5 165.34,-91.5 231,-91.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-60.5C150.79,-59.22 163.47,-92.22 231,-93.5"/>
</g>
<!-- _ferrule_crimp_6 -->
<!-- __F_6 -->
<g id="node6" class="node">
<title>_ferrule_crimp_6</title>
<polygon fill="#ffffff" stroke="black" points="89,-23 0,-23 0,0 89,0 89,-23"/>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 89.5,-22.5 89.5,0.5 0.5,0.5"/>
<title>__F_6</title>
<polygon fill="#ffffff" stroke="black" points="87,-23 0,-23 0,0 87,0 87,-23"/>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 87.5,-22.5 87.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="4.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_6&#45;&#45;W1 -->
<!-- __F_6&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>_ferrule_crimp_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-9.5C159.49,-11.25 166.47,-66.25 233,-64.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M89,-11.5C157.51,-11.5 164.49,-66.5 233,-66.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-13.5C155.53,-11.75 162.51,-66.75 233,-68.5"/>
<title>__F_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-9.5C157.49,-11.25 164.47,-66.25 231,-64.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M87,-11.5C155.51,-11.5 162.49,-66.5 231,-66.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-13.5C153.53,-11.75 160.51,-66.75 231,-68.5"/>
</g>
<!-- _ferrule_crimp_7 -->
<!-- __F_7 -->
<g id="node7" class="node">
<title>_ferrule_crimp_7</title>
<polygon fill="#ffffff" stroke="black" points="665,-258 576,-258 576,-235 665,-235 665,-258"/>
<polygon fill="none" stroke="black" points="576.5,-234.5 576.5,-257.5 665.5,-257.5 665.5,-234.5 576.5,-234.5"/>
<text text-anchor="start" x="580.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_7</title>
<polygon fill="#ffffff" stroke="black" points="660,-258 573,-258 573,-235 660,-235 660,-258"/>
<polygon fill="none" stroke="black" points="573.5,-234.5 573.5,-257.5 660.5,-257.5 660.5,-234.5 573.5,-234.5"/>
<text text-anchor="start" x="577.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_8 -->
<!-- __F_8 -->
<g id="node8" class="node">
<title>_ferrule_crimp_8</title>
<polygon fill="#ffffff" stroke="black" points="665,-211 576,-211 576,-188 665,-188 665,-211"/>
<polygon fill="none" stroke="black" points="576.5,-187.5 576.5,-210.5 665.5,-210.5 665.5,-187.5 576.5,-187.5"/>
<text text-anchor="start" x="580.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_8</title>
<polygon fill="#ffffff" stroke="black" points="660,-211 573,-211 573,-188 660,-188 660,-211"/>
<polygon fill="none" stroke="black" points="573.5,-187.5 573.5,-210.5 660.5,-210.5 660.5,-187.5 573.5,-187.5"/>
<text text-anchor="start" x="577.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_9 -->
<!-- __F_9 -->
<g id="node9" class="node">
<title>_ferrule_crimp_9</title>
<polygon fill="#ffffff" stroke="black" points="665,-164 576,-164 576,-141 665,-141 665,-164"/>
<polygon fill="none" stroke="black" points="576.5,-140.5 576.5,-163.5 665.5,-163.5 665.5,-140.5 576.5,-140.5"/>
<text text-anchor="start" x="580.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_9</title>
<polygon fill="#ffffff" stroke="black" points="660,-164 573,-164 573,-141 660,-141 660,-164"/>
<polygon fill="none" stroke="black" points="573.5,-140.5 573.5,-163.5 660.5,-163.5 660.5,-140.5 573.5,-140.5"/>
<text text-anchor="start" x="577.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_10 -->
<!-- __F_10 -->
<g id="node10" class="node">
<title>_ferrule_crimp_10</title>
<polygon fill="#ffffff" stroke="black" points="665,-117 576,-117 576,-94 665,-94 665,-117"/>
<polygon fill="none" stroke="black" points="576.5,-93.5 576.5,-116.5 665.5,-116.5 665.5,-93.5 576.5,-93.5"/>
<text text-anchor="start" x="580.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_10</title>
<polygon fill="#ffffff" stroke="black" points="660,-117 573,-117 573,-94 660,-94 660,-117"/>
<polygon fill="none" stroke="black" points="573.5,-93.5 573.5,-116.5 660.5,-116.5 660.5,-93.5 573.5,-93.5"/>
<text text-anchor="start" x="577.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_11 -->
<!-- __F_11 -->
<g id="node11" class="node">
<title>_ferrule_crimp_11</title>
<polygon fill="#ffffff" stroke="black" points="665,-70 576,-70 576,-47 665,-47 665,-70"/>
<polygon fill="none" stroke="black" points="576.5,-46.5 576.5,-69.5 665.5,-69.5 665.5,-46.5 576.5,-46.5"/>
<text text-anchor="start" x="580.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_11</title>
<polygon fill="#ffffff" stroke="black" points="660,-70 573,-70 573,-47 660,-47 660,-70"/>
<polygon fill="none" stroke="black" points="573.5,-46.5 573.5,-69.5 660.5,-69.5 660.5,-46.5 573.5,-46.5"/>
<text text-anchor="start" x="577.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_12 -->
<!-- __F_12 -->
<g id="node12" class="node">
<title>_ferrule_crimp_12</title>
<polygon fill="#ffffff" stroke="black" points="665,-23 576,-23 576,0 665,0 665,-23"/>
<polygon fill="none" stroke="black" points="576.5,0.5 576.5,-22.5 665.5,-22.5 665.5,0.5 576.5,0.5"/>
<text text-anchor="start" x="580.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_12</title>
<polygon fill="#ffffff" stroke="black" points="660,-23 573,-23 573,0 660,0 660,-23"/>
<polygon fill="none" stroke="black" points="573.5,0.5 573.5,-22.5 660.5,-22.5 660.5,0.5 573.5,0.5"/>
<text text-anchor="start" x="577.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_7 -->
<!-- W1&#45;&#45;__F_7 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-189.5C502.49,-191.25 509.47,-246.25 576,-244.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M432,-191.5C500.51,-191.5 507.49,-246.5 576,-246.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-193.5C498.53,-191.75 505.51,-246.75 576,-248.5"/>
<title>W1:e&#45;&#45;__F_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-189.5C499.49,-191.25 506.47,-246.25 573,-244.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M429,-191.5C497.51,-191.5 504.49,-246.5 573,-246.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-193.5C495.53,-191.75 502.51,-246.75 573,-248.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_8 -->
<!-- W1&#45;&#45;__F_8 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-164.5C499.53,-165.78 512.21,-198.78 576,-197.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M432,-166.5C497.66,-166.5 510.34,-199.5 576,-199.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-168.5C495.79,-167.22 508.47,-200.22 576,-201.5"/>
<title>W1:e&#45;&#45;__F_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-164.5C496.53,-165.78 509.21,-198.78 573,-197.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M429,-166.5C494.66,-166.5 507.34,-199.5 573,-199.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-168.5C492.79,-167.22 505.47,-200.22 573,-201.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_9 -->
<!-- W1&#45;&#45;__F_9 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-139.5C497.34,-139.86 512.96,-150.86 576,-150.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M432,-141.5C496.19,-141.5 511.81,-152.5 576,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-143.5C495.04,-143.14 510.66,-154.14 576,-154.5"/>
<title>W1:e&#45;&#45;__F_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-139.5C494.34,-139.86 509.96,-150.86 573,-150.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M429,-141.5C493.19,-141.5 508.81,-152.5 573,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-143.5C492.04,-143.14 507.66,-154.14 573,-154.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_10 -->
<!-- W1&#45;&#45;__F_10 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-114.5C495.04,-114.86 510.66,-103.86 576,-103.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M432,-116.5C496.19,-116.5 511.81,-105.5 576,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-118.5C497.34,-118.14 512.96,-107.14 576,-107.5"/>
<title>W1:e&#45;&#45;__F_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-114.5C492.04,-114.86 507.66,-103.86 573,-103.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M429,-116.5C493.19,-116.5 508.81,-105.5 573,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-118.5C494.34,-118.14 509.96,-107.14 573,-107.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_11 -->
<!-- W1&#45;&#45;__F_11 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-89.5C495.79,-90.78 508.47,-57.78 576,-56.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M432,-91.5C497.66,-91.5 510.34,-58.5 576,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-93.5C499.53,-92.22 512.21,-59.22 576,-60.5"/>
<title>W1:e&#45;&#45;__F_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-89.5C492.79,-90.78 505.47,-57.78 573,-56.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M429,-91.5C494.66,-91.5 507.34,-58.5 573,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-93.5C496.53,-92.22 509.21,-59.22 573,-60.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_12 -->
<!-- W1&#45;&#45;__F_12 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-64.5C498.53,-66.25 505.51,-11.25 576,-9.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M432,-66.5C500.51,-66.5 507.49,-11.5 576,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-68.5C502.49,-66.75 509.47,-11.75 576,-13.5"/>
<title>W1:e&#45;&#45;__F_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-64.5C495.53,-66.25 502.51,-11.25 573,-9.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M429,-66.5C497.51,-66.5 504.49,-11.5 573,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-68.5C499.49,-66.75 506.47,-11.75 573,-13.5"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Crimp ferrule</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">12</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Connector, Crimp ferrule</td>
<td class="bom_col_qty">12</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators"></td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, BN</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Wire, 0.25 mm², BN</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">3</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, BU</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Wire, 0.25 mm², BU</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">4</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, GN</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">4</td>
<td class="bom_col_description">Wire, 0.25 mm², GN</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">5</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, OG</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">5</td>
<td class="bom_col_description">Wire, 0.25 mm², OG</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">6</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, RD</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">6</td>
<td class="bom_col_description">Wire, 0.25 mm², RD</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">7</td>
<td style="border:1px solid #000000; padding: 4px">Wire, 0.25 mm&sup2;, YE</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.2</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">7</td>
<td class="bom_col_description">Wire, 0.25 mm², YE</td>
<td class="bom_col_qty">0.2</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex04.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 69 KiB

306
examples/ex04.svg generated
View File

@ -1,219 +1,219 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="673pt" height="287pt"
viewBox="0.00 0.00 673.00 286.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="668pt" height="287pt"
viewBox="0.00 0.00 668.00 286.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 282.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-282.5 669,-282.5 669,4 -4,4"/>
<!-- _ferrule_crimp_1 -->
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-282.5 664,-282.5 664,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>_ferrule_crimp_1</title>
<polygon fill="#ffffff" stroke="black" points="89,-258 0,-258 0,-235 89,-235 89,-258"/>
<polygon fill="none" stroke="black" points="0.5,-234.5 0.5,-257.5 89.5,-257.5 89.5,-234.5 0.5,-234.5"/>
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="87,-258 0,-258 0,-235 87,-235 87,-258"/>
<polygon fill="none" stroke="black" points="0.5,-234.5 0.5,-257.5 87.5,-257.5 87.5,-234.5 0.5,-234.5"/>
<text text-anchor="start" x="4.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1 -->
<g id="node13" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="432,-278.5 233,-278.5 233,-44.5 432,-44.5 432,-278.5"/>
<polygon fill="none" stroke="black" points="233.5,-255.5 233.5,-278.5 432.5,-278.5 432.5,-255.5 233.5,-255.5"/>
<text text-anchor="start" x="322.5" y="-263.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="233.5,-232.5 233.5,-255.5 256.5,-255.5 256.5,-232.5 233.5,-232.5"/>
<text text-anchor="start" x="237.5" y="-240.3" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="256.5,-232.5 256.5,-255.5 388.5,-255.5 388.5,-232.5 256.5,-232.5"/>
<text text-anchor="start" x="260.5" y="-240.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="388.5,-232.5 388.5,-255.5 432.5,-255.5 432.5,-232.5 388.5,-232.5"/>
<text text-anchor="start" x="392.5" y="-240.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="256.5" y="-219.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="307.5" y="-200.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-192.5 233.5,-194.5 432.5,-194.5 432.5,-192.5 233.5,-192.5"/>
<polygon fill="#895956" stroke="transparent" points="233.5,-190.5 233.5,-192.5 432.5,-192.5 432.5,-190.5 233.5,-190.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-188.5 233.5,-190.5 432.5,-190.5 432.5,-188.5 233.5,-188.5"/>
<text text-anchor="start" x="307" y="-175.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-167.5 233.5,-169.5 432.5,-169.5 432.5,-167.5 233.5,-167.5"/>
<polygon fill="#ff0000" stroke="transparent" points="233.5,-165.5 233.5,-167.5 432.5,-167.5 432.5,-165.5 233.5,-165.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-163.5 233.5,-165.5 432.5,-165.5 432.5,-163.5 233.5,-163.5"/>
<text text-anchor="start" x="306.5" y="-150.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-142.5 233.5,-144.5 432.5,-144.5 432.5,-142.5 233.5,-142.5"/>
<polygon fill="#ff8000" stroke="transparent" points="233.5,-140.5 233.5,-142.5 432.5,-142.5 432.5,-140.5 233.5,-140.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-138.5 233.5,-140.5 432.5,-140.5 432.5,-138.5 233.5,-138.5"/>
<text text-anchor="start" x="308" y="-125.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-117.5 233.5,-119.5 432.5,-119.5 432.5,-117.5 233.5,-117.5"/>
<polygon fill="#ffff00" stroke="transparent" points="233.5,-115.5 233.5,-117.5 432.5,-117.5 432.5,-115.5 233.5,-115.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-113.5 233.5,-115.5 432.5,-115.5 432.5,-113.5 233.5,-113.5"/>
<text text-anchor="start" x="306.5" y="-100.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-92.5 233.5,-94.5 432.5,-94.5 432.5,-92.5 233.5,-92.5"/>
<polygon fill="#00ff00" stroke="transparent" points="233.5,-90.5 233.5,-92.5 432.5,-92.5 432.5,-90.5 233.5,-90.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-88.5 233.5,-90.5 432.5,-90.5 432.5,-88.5 233.5,-88.5"/>
<text text-anchor="start" x="307.5" y="-75.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="transparent" points="233.5,-67.5 233.5,-69.5 432.5,-69.5 432.5,-67.5 233.5,-67.5"/>
<polygon fill="#0066ff" stroke="transparent" points="233.5,-65.5 233.5,-67.5 432.5,-67.5 432.5,-65.5 233.5,-65.5"/>
<polygon fill="#000000" stroke="transparent" points="233.5,-63.5 233.5,-65.5 432.5,-65.5 432.5,-63.5 233.5,-63.5"/>
<text text-anchor="start" x="256.5" y="-50.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="429,-278.5 231,-278.5 231,-44.5 429,-44.5 429,-278.5"/>
<polygon fill="none" stroke="black" points="231,-255.5 231,-278.5 429,-278.5 429,-255.5 231,-255.5"/>
<text text-anchor="start" x="319" y="-263.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="231,-232.5 231,-255.5 254,-255.5 254,-232.5 231,-232.5"/>
<text text-anchor="start" x="235" y="-240.3" font-family="arial" font-size="14.00">6x</text>
<polygon fill="none" stroke="black" points="254,-232.5 254,-255.5 386,-255.5 386,-232.5 254,-232.5"/>
<text text-anchor="start" x="258" y="-240.3" font-family="arial" font-size="14.00">0.25 mm² (24 AWG)</text>
<polygon fill="none" stroke="black" points="386,-232.5 386,-255.5 429,-255.5 429,-232.5 386,-232.5"/>
<text text-anchor="start" x="390" y="-240.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="254" y="-219.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="306" y="-200.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-192.5 231,-194.5 429,-194.5 429,-192.5 231,-192.5"/>
<polygon fill="#895956" stroke="none" points="231,-190.5 231,-192.5 429,-192.5 429,-190.5 231,-190.5"/>
<polygon fill="#000000" stroke="none" points="231,-188.5 231,-190.5 429,-190.5 429,-188.5 231,-188.5"/>
<text text-anchor="start" x="305.5" y="-175.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-167.5 231,-169.5 429,-169.5 429,-167.5 231,-167.5"/>
<polygon fill="#ff0000" stroke="none" points="231,-165.5 231,-167.5 429,-167.5 429,-165.5 231,-165.5"/>
<polygon fill="#000000" stroke="none" points="231,-163.5 231,-165.5 429,-165.5 429,-163.5 231,-163.5"/>
<text text-anchor="start" x="304" y="-150.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;OG &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-142.5 231,-144.5 429,-144.5 429,-142.5 231,-142.5"/>
<polygon fill="#ff8000" stroke="none" points="231,-140.5 231,-142.5 429,-142.5 429,-140.5 231,-140.5"/>
<polygon fill="#000000" stroke="none" points="231,-138.5 231,-140.5 429,-140.5 429,-138.5 231,-138.5"/>
<text text-anchor="start" x="306.5" y="-125.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-117.5 231,-119.5 429,-119.5 429,-117.5 231,-117.5"/>
<polygon fill="#ffff00" stroke="none" points="231,-115.5 231,-117.5 429,-117.5 429,-115.5 231,-115.5"/>
<polygon fill="#000000" stroke="none" points="231,-113.5 231,-115.5 429,-115.5 429,-113.5 231,-113.5"/>
<text text-anchor="start" x="305" y="-100.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-92.5 231,-94.5 429,-94.5 429,-92.5 231,-92.5"/>
<polygon fill="#00ff00" stroke="none" points="231,-90.5 231,-92.5 429,-92.5 429,-90.5 231,-90.5"/>
<polygon fill="#000000" stroke="none" points="231,-88.5 231,-90.5 429,-90.5 429,-88.5 231,-88.5"/>
<text text-anchor="start" x="306" y="-75.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="231,-67.5 231,-69.5 429,-69.5 429,-67.5 231,-67.5"/>
<polygon fill="#0066ff" stroke="none" points="231,-65.5 231,-67.5 429,-67.5 429,-65.5 231,-65.5"/>
<polygon fill="#000000" stroke="none" points="231,-63.5 231,-65.5 429,-65.5 429,-63.5 231,-63.5"/>
<text text-anchor="start" x="254" y="-50.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- _ferrule_crimp_1&#45;&#45;W1 -->
<!-- __F_1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>_ferrule_crimp_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-244.5C155.53,-246.25 162.51,-191.25 233,-189.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M89,-246.5C157.51,-246.5 164.49,-191.5 233,-191.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-248.5C159.49,-246.75 166.47,-191.75 233,-193.5"/>
<title>__F_1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-244.5C153.53,-246.25 160.51,-191.25 231,-189.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M87,-246.5C155.51,-246.5 162.49,-191.5 231,-191.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-248.5C157.49,-246.75 164.47,-191.75 231,-193.5"/>
</g>
<!-- _ferrule_crimp_2 -->
<!-- __F_2 -->
<g id="node2" class="node">
<title>_ferrule_crimp_2</title>
<polygon fill="#ffffff" stroke="black" points="89,-211 0,-211 0,-188 89,-188 89,-211"/>
<polygon fill="none" stroke="black" points="0.5,-187.5 0.5,-210.5 89.5,-210.5 89.5,-187.5 0.5,-187.5"/>
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="87,-211 0,-211 0,-188 87,-188 87,-211"/>
<polygon fill="none" stroke="black" points="0.5,-187.5 0.5,-210.5 87.5,-210.5 87.5,-187.5 0.5,-187.5"/>
<text text-anchor="start" x="4.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_2&#45;&#45;W1 -->
<!-- __F_2&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>_ferrule_crimp_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-197.5C152.79,-198.78 165.47,-165.78 233,-164.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M89,-199.5C154.66,-199.5 167.34,-166.5 233,-166.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-201.5C156.53,-200.22 169.21,-167.22 233,-168.5"/>
<title>__F_2:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-197.5C150.79,-198.78 163.47,-165.78 231,-164.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M87,-199.5C152.66,-199.5 165.34,-166.5 231,-166.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-201.5C154.53,-200.22 167.21,-167.22 231,-168.5"/>
</g>
<!-- _ferrule_crimp_3 -->
<!-- __F_3 -->
<g id="node3" class="node">
<title>_ferrule_crimp_3</title>
<polygon fill="#ffffff" stroke="black" points="89,-164 0,-164 0,-141 89,-141 89,-164"/>
<polygon fill="none" stroke="black" points="0.5,-140.5 0.5,-163.5 89.5,-163.5 89.5,-140.5 0.5,-140.5"/>
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="87,-164 0,-164 0,-141 87,-141 87,-164"/>
<polygon fill="none" stroke="black" points="0.5,-140.5 0.5,-163.5 87.5,-163.5 87.5,-140.5 0.5,-140.5"/>
<text text-anchor="start" x="4.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_3&#45;&#45;W1 -->
<!-- __F_3&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>_ferrule_crimp_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-150.5C152.04,-150.86 167.66,-139.86 233,-139.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M89,-152.5C153.19,-152.5 168.81,-141.5 233,-141.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-154.5C154.34,-154.14 169.96,-143.14 233,-143.5"/>
<title>__F_3:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-150.5C150.04,-150.86 165.66,-139.86 231,-139.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M87,-152.5C151.19,-152.5 166.81,-141.5 231,-141.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-154.5C152.34,-154.14 167.96,-143.14 231,-143.5"/>
</g>
<!-- _ferrule_crimp_4 -->
<!-- __F_4 -->
<g id="node4" class="node">
<title>_ferrule_crimp_4</title>
<polygon fill="#ffffff" stroke="black" points="89,-117 0,-117 0,-94 89,-94 89,-117"/>
<polygon fill="none" stroke="black" points="0.5,-93.5 0.5,-116.5 89.5,-116.5 89.5,-93.5 0.5,-93.5"/>
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="87,-117 0,-117 0,-94 87,-94 87,-117"/>
<polygon fill="none" stroke="black" points="0.5,-93.5 0.5,-116.5 87.5,-116.5 87.5,-93.5 0.5,-93.5"/>
<text text-anchor="start" x="4.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_4&#45;&#45;W1 -->
<!-- __F_4&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>_ferrule_crimp_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-103.5C154.34,-103.86 169.96,-114.86 233,-114.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M89,-105.5C153.19,-105.5 168.81,-116.5 233,-116.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-107.5C152.04,-107.14 167.66,-118.14 233,-118.5"/>
<title>__F_4:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-103.5C152.34,-103.86 167.96,-114.86 231,-114.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M87,-105.5C151.19,-105.5 166.81,-116.5 231,-116.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-107.5C150.04,-107.14 165.66,-118.14 231,-118.5"/>
</g>
<!-- _ferrule_crimp_5 -->
<!-- __F_5 -->
<g id="node5" class="node">
<title>_ferrule_crimp_5</title>
<polygon fill="#ffffff" stroke="black" points="89,-70 0,-70 0,-47 89,-47 89,-70"/>
<polygon fill="none" stroke="black" points="0.5,-46.5 0.5,-69.5 89.5,-69.5 89.5,-46.5 0.5,-46.5"/>
<title>__F_5</title>
<polygon fill="#ffffff" stroke="black" points="87,-70 0,-70 0,-47 87,-47 87,-70"/>
<polygon fill="none" stroke="black" points="0.5,-46.5 0.5,-69.5 87.5,-69.5 87.5,-46.5 0.5,-46.5"/>
<text text-anchor="start" x="4.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_5&#45;&#45;W1 -->
<!-- __F_5&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>_ferrule_crimp_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-56.5C156.53,-57.78 169.21,-90.78 233,-89.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M89,-58.5C154.66,-58.5 167.34,-91.5 233,-91.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-60.5C152.79,-59.22 165.47,-92.22 233,-93.5"/>
<title>__F_5:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-56.5C154.53,-57.78 167.21,-90.78 231,-89.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M87,-58.5C152.66,-58.5 165.34,-91.5 231,-91.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-60.5C150.79,-59.22 163.47,-92.22 231,-93.5"/>
</g>
<!-- _ferrule_crimp_6 -->
<!-- __F_6 -->
<g id="node6" class="node">
<title>_ferrule_crimp_6</title>
<polygon fill="#ffffff" stroke="black" points="89,-23 0,-23 0,0 89,0 89,-23"/>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 89.5,-22.5 89.5,0.5 0.5,0.5"/>
<title>__F_6</title>
<polygon fill="#ffffff" stroke="black" points="87,-23 0,-23 0,0 87,0 87,-23"/>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 87.5,-22.5 87.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="4.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_6&#45;&#45;W1 -->
<!-- __F_6&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>_ferrule_crimp_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-9.5C159.49,-11.25 166.47,-66.25 233,-64.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M89,-11.5C157.51,-11.5 164.49,-66.5 233,-66.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M89,-13.5C155.53,-11.75 162.51,-66.75 233,-68.5"/>
<title>__F_6:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-9.5C157.49,-11.25 164.47,-66.25 231,-64.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M87,-11.5C155.51,-11.5 162.49,-66.5 231,-66.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M87,-13.5C153.53,-11.75 160.51,-66.75 231,-68.5"/>
</g>
<!-- _ferrule_crimp_7 -->
<!-- __F_7 -->
<g id="node7" class="node">
<title>_ferrule_crimp_7</title>
<polygon fill="#ffffff" stroke="black" points="665,-258 576,-258 576,-235 665,-235 665,-258"/>
<polygon fill="none" stroke="black" points="576.5,-234.5 576.5,-257.5 665.5,-257.5 665.5,-234.5 576.5,-234.5"/>
<text text-anchor="start" x="580.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_7</title>
<polygon fill="#ffffff" stroke="black" points="660,-258 573,-258 573,-235 660,-235 660,-258"/>
<polygon fill="none" stroke="black" points="573.5,-234.5 573.5,-257.5 660.5,-257.5 660.5,-234.5 573.5,-234.5"/>
<text text-anchor="start" x="577.5" y="-242.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_8 -->
<!-- __F_8 -->
<g id="node8" class="node">
<title>_ferrule_crimp_8</title>
<polygon fill="#ffffff" stroke="black" points="665,-211 576,-211 576,-188 665,-188 665,-211"/>
<polygon fill="none" stroke="black" points="576.5,-187.5 576.5,-210.5 665.5,-210.5 665.5,-187.5 576.5,-187.5"/>
<text text-anchor="start" x="580.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_8</title>
<polygon fill="#ffffff" stroke="black" points="660,-211 573,-211 573,-188 660,-188 660,-211"/>
<polygon fill="none" stroke="black" points="573.5,-187.5 573.5,-210.5 660.5,-210.5 660.5,-187.5 573.5,-187.5"/>
<text text-anchor="start" x="577.5" y="-195.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_9 -->
<!-- __F_9 -->
<g id="node9" class="node">
<title>_ferrule_crimp_9</title>
<polygon fill="#ffffff" stroke="black" points="665,-164 576,-164 576,-141 665,-141 665,-164"/>
<polygon fill="none" stroke="black" points="576.5,-140.5 576.5,-163.5 665.5,-163.5 665.5,-140.5 576.5,-140.5"/>
<text text-anchor="start" x="580.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_9</title>
<polygon fill="#ffffff" stroke="black" points="660,-164 573,-164 573,-141 660,-141 660,-164"/>
<polygon fill="none" stroke="black" points="573.5,-140.5 573.5,-163.5 660.5,-163.5 660.5,-140.5 573.5,-140.5"/>
<text text-anchor="start" x="577.5" y="-148.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_10 -->
<!-- __F_10 -->
<g id="node10" class="node">
<title>_ferrule_crimp_10</title>
<polygon fill="#ffffff" stroke="black" points="665,-117 576,-117 576,-94 665,-94 665,-117"/>
<polygon fill="none" stroke="black" points="576.5,-93.5 576.5,-116.5 665.5,-116.5 665.5,-93.5 576.5,-93.5"/>
<text text-anchor="start" x="580.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_10</title>
<polygon fill="#ffffff" stroke="black" points="660,-117 573,-117 573,-94 660,-94 660,-117"/>
<polygon fill="none" stroke="black" points="573.5,-93.5 573.5,-116.5 660.5,-116.5 660.5,-93.5 573.5,-93.5"/>
<text text-anchor="start" x="577.5" y="-101.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_11 -->
<!-- __F_11 -->
<g id="node11" class="node">
<title>_ferrule_crimp_11</title>
<polygon fill="#ffffff" stroke="black" points="665,-70 576,-70 576,-47 665,-47 665,-70"/>
<polygon fill="none" stroke="black" points="576.5,-46.5 576.5,-69.5 665.5,-69.5 665.5,-46.5 576.5,-46.5"/>
<text text-anchor="start" x="580.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_11</title>
<polygon fill="#ffffff" stroke="black" points="660,-70 573,-70 573,-47 660,-47 660,-70"/>
<polygon fill="none" stroke="black" points="573.5,-46.5 573.5,-69.5 660.5,-69.5 660.5,-46.5 573.5,-46.5"/>
<text text-anchor="start" x="577.5" y="-54.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- _ferrule_crimp_12 -->
<!-- __F_12 -->
<g id="node12" class="node">
<title>_ferrule_crimp_12</title>
<polygon fill="#ffffff" stroke="black" points="665,-23 576,-23 576,0 665,0 665,-23"/>
<polygon fill="none" stroke="black" points="576.5,0.5 576.5,-22.5 665.5,-22.5 665.5,0.5 576.5,0.5"/>
<text text-anchor="start" x="580.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
<title>__F_12</title>
<polygon fill="#ffffff" stroke="black" points="660,-23 573,-23 573,0 660,0 660,-23"/>
<polygon fill="none" stroke="black" points="573.5,0.5 573.5,-22.5 660.5,-22.5 660.5,0.5 573.5,0.5"/>
<text text-anchor="start" x="577.5" y="-7.3" font-family="arial" font-size="14.00">Crimp ferrule</text>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_7 -->
<!-- W1&#45;&#45;__F_7 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-189.5C502.49,-191.25 509.47,-246.25 576,-244.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M432,-191.5C500.51,-191.5 507.49,-246.5 576,-246.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-193.5C498.53,-191.75 505.51,-246.75 576,-248.5"/>
<title>W1:e&#45;&#45;__F_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-189.5C499.49,-191.25 506.47,-246.25 573,-244.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M429,-191.5C497.51,-191.5 504.49,-246.5 573,-246.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-193.5C495.53,-191.75 502.51,-246.75 573,-248.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_8 -->
<!-- W1&#45;&#45;__F_8 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-164.5C499.53,-165.78 512.21,-198.78 576,-197.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M432,-166.5C497.66,-166.5 510.34,-199.5 576,-199.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-168.5C495.79,-167.22 508.47,-200.22 576,-201.5"/>
<title>W1:e&#45;&#45;__F_8:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-164.5C496.53,-165.78 509.21,-198.78 573,-197.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M429,-166.5C494.66,-166.5 507.34,-199.5 573,-199.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-168.5C492.79,-167.22 505.47,-200.22 573,-201.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_9 -->
<!-- W1&#45;&#45;__F_9 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-139.5C497.34,-139.86 512.96,-150.86 576,-150.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M432,-141.5C496.19,-141.5 511.81,-152.5 576,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-143.5C495.04,-143.14 510.66,-154.14 576,-154.5"/>
<title>W1:e&#45;&#45;__F_9:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-139.5C494.34,-139.86 509.96,-150.86 573,-150.5"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M429,-141.5C493.19,-141.5 508.81,-152.5 573,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-143.5C492.04,-143.14 507.66,-154.14 573,-154.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_10 -->
<!-- W1&#45;&#45;__F_10 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-114.5C495.04,-114.86 510.66,-103.86 576,-103.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M432,-116.5C496.19,-116.5 511.81,-105.5 576,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-118.5C497.34,-118.14 512.96,-107.14 576,-107.5"/>
<title>W1:e&#45;&#45;__F_10:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-114.5C492.04,-114.86 507.66,-103.86 573,-103.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M429,-116.5C493.19,-116.5 508.81,-105.5 573,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-118.5C494.34,-118.14 509.96,-107.14 573,-107.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_11 -->
<!-- W1&#45;&#45;__F_11 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-89.5C495.79,-90.78 508.47,-57.78 576,-56.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M432,-91.5C497.66,-91.5 510.34,-58.5 576,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-93.5C499.53,-92.22 512.21,-59.22 576,-60.5"/>
<title>W1:e&#45;&#45;__F_11:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-89.5C492.79,-90.78 505.47,-57.78 573,-56.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M429,-91.5C494.66,-91.5 507.34,-58.5 573,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-93.5C496.53,-92.22 509.21,-59.22 573,-60.5"/>
</g>
<!-- W1&#45;&#45;_ferrule_crimp_12 -->
<!-- W1&#45;&#45;__F_12 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;_ferrule_crimp_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-64.5C498.53,-66.25 505.51,-11.25 576,-9.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M432,-66.5C500.51,-66.5 507.49,-11.5 576,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M432,-68.5C502.49,-66.75 509.47,-11.75 576,-13.5"/>
<title>W1:e&#45;&#45;__F_12:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-64.5C495.53,-66.25 502.51,-11.25 573,-9.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M429,-66.5C497.51,-66.5 504.49,-11.5 573,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M429,-68.5C499.49,-66.75 506.47,-11.75 573,-13.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -8,13 +8,12 @@ cables:
category: bundle
connectors:
ferrule_crimp:
F:
style: simple
autogenerate: true
type: Crimp ferrule
connections:
-
- ferrule_crimp
- F.
- W1: [1-6]
- ferrule_crimp
- F.

2
examples/ex05.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

519
examples/ex05.html generated
View File

@ -1,353 +1,388 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex05</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex05</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="1535pt" height="192pt"
viewBox="0.00 0.00 1535.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="1514pt" height="192pt"
viewBox="0.00 0.00 1514.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 188)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-188 1531,-188 1531,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-188 1510,-188 1510,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-152 0,-152 0,-14 187,-14 187,-152"/>
<polygon fill="none" stroke="black" points="0.5,-129 0.5,-152 187.5,-152 187.5,-129 0.5,-129"/>
<text text-anchor="start" x="85" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-106 0.5,-129 96.5,-129 96.5,-106 0.5,-106"/>
<text text-anchor="start" x="4.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-106 96.5,-129 147.5,-129 147.5,-106 96.5,-106"/>
<text text-anchor="start" x="100.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-106 147.5,-129 187.5,-129 187.5,-106 147.5,-106"/>
<text text-anchor="start" x="151.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-83 0.5,-106 106.5,-106 106.5,-83 0.5,-83"/>
<text text-anchor="start" x="37.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-83 106.5,-106 187.5,-106 187.5,-83 106.5,-83"/>
<text text-anchor="start" x="143" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-60 0.5,-83 106.5,-83 106.5,-60 0.5,-60"/>
<text text-anchor="start" x="38.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-60 106.5,-83 187.5,-83 187.5,-60 106.5,-60"/>
<text text-anchor="start" x="143" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-37 0.5,-60 106.5,-60 106.5,-37 0.5,-37"/>
<text text-anchor="start" x="39.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="106.5,-37 106.5,-60 187.5,-60 187.5,-37 106.5,-37"/>
<text text-anchor="start" x="143" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-14 0.5,-37 106.5,-37 106.5,-14 0.5,-14"/>
<text text-anchor="start" x="39" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="106.5,-14 106.5,-37 187.5,-37 187.5,-14 106.5,-14"/>
<text text-anchor="start" x="143" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="182,-152 0,-152 0,-14 182,-14 182,-152"/>
<polygon fill="none" stroke="black" points="0,-129 0,-152 182,-152 182,-129 0,-129"/>
<text text-anchor="start" x="82.5" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-106 0,-129 93,-129 93,-106 0,-106"/>
<text text-anchor="start" x="4" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="93,-106 93,-129 143,-129 143,-106 93,-106"/>
<text text-anchor="start" x="97" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="143,-106 143,-129 182,-129 182,-106 143,-106"/>
<text text-anchor="start" x="147" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-83 0,-106 103,-106 103,-83 0,-83"/>
<text text-anchor="start" x="36" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="103,-83 103,-106 182,-106 182,-83 103,-83"/>
<text text-anchor="start" x="138.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-60 0,-83 103,-83 103,-60 0,-60"/>
<text text-anchor="start" x="37" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="103,-60 103,-83 182,-83 182,-60 103,-60"/>
<text text-anchor="start" x="138.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-37 0,-60 103,-60 103,-37 0,-37"/>
<text text-anchor="start" x="38" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="103,-37 103,-60 182,-60 182,-37 103,-37"/>
<text text-anchor="start" x="138.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-14 0,-37 103,-37 103,-14 0,-14"/>
<text text-anchor="start" x="37.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="103,-14 103,-37 182,-37 182,-14 103,-14"/>
<text text-anchor="start" x="138.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node4" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-184 331,-184 331,0 526,0 526,-184"/>
<polygon fill="none" stroke="black" points="331.5,-161 331.5,-184 526.5,-184 526.5,-161 331.5,-161"/>
<text text-anchor="start" x="418.5" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-138 331.5,-161 369.5,-161 369.5,-138 331.5,-138"/>
<text text-anchor="start" x="339.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="369.5,-138 369.5,-161 400.5,-161 400.5,-138 369.5,-138"/>
<text text-anchor="start" x="377.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="400.5,-138 400.5,-161 475.5,-161 475.5,-138 400.5,-138"/>
<text text-anchor="start" x="408" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="475.5,-138 475.5,-161 526.5,-161 526.5,-138 475.5,-138"/>
<text text-anchor="start" x="483" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="363.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="333.5" y="-105.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="402" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-98 331.5,-100 526.5,-100 526.5,-98 331.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="331.5,-96 331.5,-98 526.5,-98 526.5,-96 331.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-94 331.5,-96 526.5,-96 526.5,-94 331.5,-94"/>
<text text-anchor="start" x="334" y="-80.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="401.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="461" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-73 331.5,-75 526.5,-75 526.5,-73 331.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="331.5,-71 331.5,-73 526.5,-73 526.5,-71 331.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-69 331.5,-71 526.5,-71 526.5,-69 331.5,-69"/>
<text text-anchor="start" x="335.5" y="-55.8" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="402" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-48 331.5,-50 526.5,-50 526.5,-48 331.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-46 331.5,-48 526.5,-48 526.5,-46 331.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-44 331.5,-46 526.5,-46 526.5,-44 331.5,-44"/>
<text text-anchor="start" x="334.5" y="-30.8" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="402.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="461.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-23 331.5,-25 526.5,-25 526.5,-23 331.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="331.5,-21 331.5,-23 526.5,-23 526.5,-21 331.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 526.5,-21 526.5,-19 331.5,-19"/>
<text text-anchor="start" x="363.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="518,-184 326,-184 326,0 518,0 518,-184"/>
<polygon fill="none" stroke="black" points="326,-161 326,-184 518,-184 518,-161 326,-161"/>
<text text-anchor="start" x="411" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="326,-138 326,-161 364,-161 364,-138 326,-138"/>
<text text-anchor="start" x="334" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="364,-138 364,-161 394,-161 394,-138 364,-138"/>
<text text-anchor="start" x="371.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="394,-138 394,-161 468,-161 468,-138 394,-138"/>
<text text-anchor="start" x="401.5" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="468,-138 468,-161 518,-161 518,-138 468,-138"/>
<text text-anchor="start" x="475.5" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="357.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="328" y="-105.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="396" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="453" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="326,-98 326,-100 518,-100 518,-98 326,-98"/>
<polygon fill="#ff66cc" stroke="none" points="326,-96 326,-98 518,-98 518,-96 326,-96"/>
<polygon fill="#000000" stroke="none" points="326,-94 326,-96 518,-96 518,-94 326,-94"/>
<text text-anchor="start" x="329" y="-80.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="395" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="454" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="326,-73 326,-75 518,-75 518,-73 326,-73"/>
<polygon fill="#00ffff" stroke="none" points="326,-71 326,-73 518,-73 518,-71 326,-71"/>
<polygon fill="#000000" stroke="none" points="326,-69 326,-71 518,-71 518,-69 326,-69"/>
<text text-anchor="start" x="330.5" y="-55.8" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="396" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="455.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="none" points="326,-48 326,-50 518,-50 518,-48 326,-48"/>
<polygon fill="#ffff00" stroke="none" points="326,-46 326,-48 518,-48 518,-46 326,-46"/>
<polygon fill="#000000" stroke="none" points="326,-44 326,-46 518,-46 518,-44 326,-44"/>
<text text-anchor="start" x="329.5" y="-30.8" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="396" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="454.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="none" points="326,-23 326,-25 518,-25 518,-23 326,-23"/>
<polygon fill="#8000ff" stroke="none" points="326,-21 326,-23 518,-23 518,-21 326,-21"/>
<polygon fill="#000000" stroke="none" points="326,-19 326,-21 518,-21 518,-19 326,-19"/>
<text text-anchor="start" x="357.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-93C251.25,-93.02 267.24,-95.02 331,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M187,-95C251.01,-95 266.99,-97 331,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-97C250.76,-96.98 266.75,-98.98 331,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-93C246.25,-93.02 262.24,-95.02 326,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M182,-95C246.01,-95 261.99,-97 326,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-97C245.76,-96.98 261.75,-98.98 326,-99"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-69C251.13,-69 267.12,-70 331,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M187,-71C251,-71 267,-72 331,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-73C250.88,-73 266.87,-74 331,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-69C246.13,-69 262.12,-70 326,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M182,-71C246,-71 262,-72 326,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-73C245.88,-73 261.87,-74 326,-74"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-46C250.88,-46 266.87,-45 331,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-48C251,-48 267,-47 331,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-50C251.13,-50 267.12,-49 331,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-46C245.88,-46 261.87,-45 326,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M182,-48C246,-48 262,-47 326,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-50C246.13,-50 262.12,-49 326,-49"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-23C250.64,-23.03 266.62,-20.03 331,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M187,-25C251.01,-25 266.99,-22 331,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-27C251.38,-26.97 267.36,-23.97 331,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-23C245.64,-23.03 261.62,-20.03 326,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M182,-25C246.01,-25 261.99,-22 326,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-27C246.38,-26.97 262.36,-23.97 326,-24"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="857,-152 670,-152 670,-14 857,-14 857,-152"/>
<polygon fill="none" stroke="black" points="670.5,-129 670.5,-152 857.5,-152 857.5,-129 670.5,-129"/>
<text text-anchor="start" x="755" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-106 670.5,-129 766.5,-129 766.5,-106 670.5,-106"/>
<text text-anchor="start" x="674.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="766.5,-106 766.5,-129 817.5,-129 817.5,-106 766.5,-106"/>
<text text-anchor="start" x="770.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="817.5,-106 817.5,-129 857.5,-129 857.5,-106 817.5,-106"/>
<text text-anchor="start" x="821.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-83 670.5,-106 725.5,-106 725.5,-83 670.5,-83"/>
<text text-anchor="start" x="694" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="725.5,-83 725.5,-106 803.5,-106 803.5,-83 725.5,-83"/>
<text text-anchor="start" x="748.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="803.5,-83 803.5,-106 857.5,-106 857.5,-83 803.5,-83"/>
<text text-anchor="start" x="826.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="670.5,-60 670.5,-83 725.5,-83 725.5,-60 670.5,-60"/>
<text text-anchor="start" x="694" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="725.5,-60 725.5,-83 803.5,-83 803.5,-60 725.5,-60"/>
<text text-anchor="start" x="749.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="803.5,-60 803.5,-83 857.5,-83 857.5,-60 803.5,-60"/>
<text text-anchor="start" x="826.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="670.5,-37 670.5,-60 725.5,-60 725.5,-37 670.5,-37"/>
<text text-anchor="start" x="694" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="725.5,-37 725.5,-60 803.5,-60 803.5,-37 725.5,-37"/>
<text text-anchor="start" x="750.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="803.5,-37 803.5,-60 857.5,-60 857.5,-37 803.5,-37"/>
<text text-anchor="start" x="826.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="670.5,-14 670.5,-37 725.5,-37 725.5,-14 670.5,-14"/>
<text text-anchor="start" x="694" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="725.5,-14 725.5,-37 803.5,-37 803.5,-14 725.5,-14"/>
<text text-anchor="start" x="750" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="803.5,-14 803.5,-37 857.5,-37 857.5,-14 803.5,-14"/>
<text text-anchor="start" x="826.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="844,-152 662,-152 662,-14 844,-14 844,-152"/>
<polygon fill="none" stroke="black" points="662,-129 662,-152 844,-152 844,-129 662,-129"/>
<text text-anchor="start" x="744.5" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="662,-106 662,-129 755,-129 755,-106 662,-106"/>
<text text-anchor="start" x="666" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="755,-106 755,-129 805,-129 805,-106 755,-106"/>
<text text-anchor="start" x="759" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="805,-106 805,-129 844,-129 844,-106 805,-106"/>
<text text-anchor="start" x="809" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="662,-83 662,-106 715,-106 715,-83 662,-83"/>
<text text-anchor="start" x="684.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="715,-83 715,-106 791,-106 791,-83 715,-83"/>
<text text-anchor="start" x="737.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="791,-83 791,-106 844,-106 844,-83 791,-83"/>
<text text-anchor="start" x="813.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="662,-60 662,-83 715,-83 715,-60 662,-60"/>
<text text-anchor="start" x="684.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="715,-60 715,-83 791,-83 791,-60 715,-60"/>
<text text-anchor="start" x="738.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="791,-60 791,-83 844,-83 844,-60 791,-60"/>
<text text-anchor="start" x="813.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="662,-37 662,-60 715,-60 715,-37 662,-37"/>
<text text-anchor="start" x="684.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="715,-37 715,-60 791,-60 791,-37 715,-37"/>
<text text-anchor="start" x="739.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="791,-37 791,-60 844,-60 844,-37 791,-37"/>
<text text-anchor="start" x="813.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="662,-14 662,-37 715,-37 715,-14 662,-14"/>
<text text-anchor="start" x="684.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="715,-14 715,-37 791,-37 791,-14 715,-14"/>
<text text-anchor="start" x="739" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="791,-14 791,-37 844,-37 844,-14 791,-14"/>
<text text-anchor="start" x="813.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W2 -->
<g id="node5" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1196,-184 1001,-184 1001,0 1196,0 1196,-184"/>
<polygon fill="none" stroke="black" points="1001.5,-161 1001.5,-184 1196.5,-184 1196.5,-161 1001.5,-161"/>
<text text-anchor="start" x="1088.5" y="-168.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="1001.5,-138 1001.5,-161 1039.5,-161 1039.5,-138 1001.5,-138"/>
<text text-anchor="start" x="1009.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1039.5,-138 1039.5,-161 1070.5,-161 1070.5,-138 1039.5,-138"/>
<text text-anchor="start" x="1047.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1070.5,-138 1070.5,-161 1145.5,-161 1145.5,-138 1070.5,-138"/>
<text text-anchor="start" x="1078" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1145.5,-138 1145.5,-161 1196.5,-161 1196.5,-138 1145.5,-138"/>
<text text-anchor="start" x="1153" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1033.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1003.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1072" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1130.5" y="-105.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-98 1001.5,-100 1196.5,-100 1196.5,-98 1001.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="1001.5,-96 1001.5,-98 1196.5,-98 1196.5,-96 1001.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-94 1001.5,-96 1196.5,-96 1196.5,-94 1001.5,-94"/>
<text text-anchor="start" x="1004" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1071.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131" y="-80.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-73 1001.5,-75 1196.5,-75 1196.5,-73 1001.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="1001.5,-71 1001.5,-73 1196.5,-73 1196.5,-71 1001.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-69 1001.5,-71 1196.5,-71 1196.5,-69 1001.5,-69"/>
<text text-anchor="start" x="1005.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1072" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1132.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-48 1001.5,-50 1196.5,-50 1196.5,-48 1001.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="1001.5,-46 1001.5,-48 1196.5,-48 1196.5,-46 1001.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-44 1001.5,-46 1196.5,-46 1196.5,-44 1001.5,-44"/>
<text text-anchor="start" x="1004.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1072.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-23 1001.5,-25 1196.5,-25 1196.5,-23 1001.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="1001.5,-21 1001.5,-23 1196.5,-23 1196.5,-21 1001.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-19 1001.5,-21 1196.5,-21 1196.5,-19 1001.5,-19"/>
<text text-anchor="start" x="1033.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1180,-184 988,-184 988,0 1180,0 1180,-184"/>
<polygon fill="none" stroke="black" points="988,-161 988,-184 1180,-184 1180,-161 988,-161"/>
<text text-anchor="start" x="1073" y="-168.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="988,-138 988,-161 1026,-161 1026,-138 988,-138"/>
<text text-anchor="start" x="996" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1026,-138 1026,-161 1056,-161 1056,-138 1026,-138"/>
<text text-anchor="start" x="1033.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1056,-138 1056,-161 1130,-161 1130,-138 1056,-138"/>
<text text-anchor="start" x="1063.5" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1130,-138 1130,-161 1180,-161 1180,-138 1130,-138"/>
<text text-anchor="start" x="1137.5" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1019.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="990" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1058" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1115" y="-105.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="988,-98 988,-100 1180,-100 1180,-98 988,-98"/>
<polygon fill="#ff66cc" stroke="none" points="988,-96 988,-98 1180,-98 1180,-96 988,-96"/>
<polygon fill="#000000" stroke="none" points="988,-94 988,-96 1180,-96 1180,-94 988,-94"/>
<text text-anchor="start" x="991" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1057" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1116" y="-80.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="988,-73 988,-75 1180,-75 1180,-73 988,-73"/>
<polygon fill="#00ffff" stroke="none" points="988,-71 988,-73 1180,-73 1180,-71 988,-71"/>
<polygon fill="#000000" stroke="none" points="988,-69 988,-71 1180,-71 1180,-69 988,-69"/>
<text text-anchor="start" x="992.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1058" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1117.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="none" points="988,-48 988,-50 1180,-50 1180,-48 988,-48"/>
<polygon fill="#ffff00" stroke="none" points="988,-46 988,-48 1180,-48 1180,-46 988,-46"/>
<polygon fill="#000000" stroke="none" points="988,-44 988,-46 1180,-46 1180,-44 988,-44"/>
<text text-anchor="start" x="991.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1058" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1116.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="none" points="988,-23 988,-25 1180,-25 1180,-23 988,-23"/>
<polygon fill="#8000ff" stroke="none" points="988,-21 988,-23 1180,-23 1180,-21 988,-21"/>
<polygon fill="#000000" stroke="none" points="988,-19 988,-21 1180,-21 1180,-19 988,-19"/>
<text text-anchor="start" x="1019.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-93C921.25,-93.02 937.24,-95.02 1001,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M857,-95C921.01,-95 936.99,-97 1001,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-97C920.76,-96.98 936.75,-98.98 1001,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-93C908.25,-93.02 924.24,-95.02 988,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M844,-95C908.01,-95 923.99,-97 988,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-97C907.76,-96.98 923.75,-98.98 988,-99"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-69C921.13,-69 937.12,-70 1001,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M857,-71C921,-71 937,-72 1001,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-73C920.88,-73 936.87,-74 1001,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-69C908.13,-69 924.12,-70 988,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M844,-71C908,-71 924,-72 988,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-73C907.88,-73 923.87,-74 988,-74"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-46C920.88,-46 936.87,-45 1001,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M857,-48C921,-48 937,-47 1001,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-50C921.13,-50 937.12,-49 1001,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-46C907.88,-46 923.87,-45 988,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M844,-48C908,-48 924,-47 988,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-50C908.13,-50 924.12,-49 988,-49"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-23C920.64,-23.03 936.62,-20.03 1001,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M857,-25C921.01,-25 936.99,-22 1001,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-27C921.38,-26.97 937.36,-23.97 1001,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-23C907.64,-23.03 923.62,-20.03 988,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M844,-25C908.01,-25 923.99,-22 988,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-27C908.38,-26.97 924.36,-23.97 988,-24"/>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="1527,-152 1340,-152 1340,-14 1527,-14 1527,-152"/>
<polygon fill="none" stroke="black" points="1340.5,-129 1340.5,-152 1527.5,-152 1527.5,-129 1340.5,-129"/>
<text text-anchor="start" x="1425" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1340.5,-106 1340.5,-129 1436.5,-129 1436.5,-106 1340.5,-106"/>
<text text-anchor="start" x="1344.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1436.5,-106 1436.5,-129 1487.5,-129 1487.5,-106 1436.5,-106"/>
<text text-anchor="start" x="1440.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1487.5,-106 1487.5,-129 1527.5,-129 1527.5,-106 1487.5,-106"/>
<text text-anchor="start" x="1491.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1340.5,-83 1340.5,-106 1422.5,-106 1422.5,-83 1340.5,-83"/>
<text text-anchor="start" x="1377.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1422.5,-83 1422.5,-106 1527.5,-106 1527.5,-83 1422.5,-83"/>
<text text-anchor="start" x="1459" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1340.5,-60 1340.5,-83 1422.5,-83 1422.5,-60 1340.5,-60"/>
<text text-anchor="start" x="1377.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1422.5,-60 1422.5,-83 1527.5,-83 1527.5,-60 1422.5,-60"/>
<text text-anchor="start" x="1460" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1340.5,-37 1340.5,-60 1422.5,-60 1422.5,-37 1340.5,-37"/>
<text text-anchor="start" x="1377.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1422.5,-37 1422.5,-60 1527.5,-60 1527.5,-37 1422.5,-37"/>
<text text-anchor="start" x="1461" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1340.5,-14 1340.5,-37 1422.5,-37 1422.5,-14 1340.5,-14"/>
<text text-anchor="start" x="1377.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1422.5,-14 1422.5,-37 1527.5,-37 1527.5,-14 1422.5,-14"/>
<text text-anchor="start" x="1460.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="1506,-152 1324,-152 1324,-14 1506,-14 1506,-152"/>
<polygon fill="none" stroke="black" points="1324,-129 1324,-152 1506,-152 1506,-129 1324,-129"/>
<text text-anchor="start" x="1406.5" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1324,-106 1324,-129 1417,-129 1417,-106 1324,-106"/>
<text text-anchor="start" x="1328" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1417,-106 1417,-129 1467,-129 1467,-106 1417,-106"/>
<text text-anchor="start" x="1421" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1467,-106 1467,-129 1506,-129 1506,-106 1467,-106"/>
<text text-anchor="start" x="1471" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1324,-83 1324,-106 1404,-106 1404,-83 1324,-83"/>
<text text-anchor="start" x="1360" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1404,-83 1404,-106 1506,-106 1506,-83 1404,-83"/>
<text text-anchor="start" x="1439.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1324,-60 1324,-83 1404,-83 1404,-60 1324,-60"/>
<text text-anchor="start" x="1360" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1404,-60 1404,-83 1506,-83 1506,-60 1404,-60"/>
<text text-anchor="start" x="1440.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1324,-37 1324,-60 1404,-60 1404,-37 1324,-37"/>
<text text-anchor="start" x="1360" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1404,-37 1404,-60 1506,-60 1506,-37 1404,-37"/>
<text text-anchor="start" x="1441.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1324,-14 1324,-37 1404,-37 1404,-14 1324,-14"/>
<text text-anchor="start" x="1360" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1404,-14 1404,-37 1506,-37 1506,-14 1404,-14"/>
<text text-anchor="start" x="1441" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-95C589.76,-95.02 605.75,-93.02 670,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M526,-97C590.01,-97 605.99,-95 670,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C590.25,-98.98 606.24,-96.98 670,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-95C581.76,-95.02 597.75,-93.02 662,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M518,-97C582.01,-97 597.99,-95 662,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-99C582.25,-98.98 598.24,-96.98 662,-97"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-70C589.88,-70 605.87,-69 670,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M526,-72C590,-72 606,-71 670,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C590.13,-74 606.12,-73 670,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-70C581.88,-70 597.87,-69 662,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M518,-72C582,-72 598,-71 662,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-74C582.13,-74 598.12,-73 662,-73"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-45C590.13,-45 606.12,-46 670,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M526,-47C590,-47 606,-48 670,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-49C589.88,-49 605.87,-50 670,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-45C582.13,-45 598.12,-46 662,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M518,-47C582,-47 598,-48 662,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-49C581.88,-49 597.87,-50 662,-50"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-20C590.38,-20.03 606.36,-23.03 670,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M526,-22C590.01,-22 605.99,-25 670,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-24C589.64,-23.97 605.62,-26.97 670,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-20C582.38,-20.03 598.36,-23.03 662,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M518,-22C582.01,-22 597.99,-25 662,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-24C581.64,-23.97 597.62,-26.97 662,-27"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-95C1259.76,-95.02 1275.75,-93.02 1340,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1196,-97C1260.01,-97 1275.99,-95 1340,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-99C1260.25,-98.98 1276.24,-96.98 1340,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-95C1243.76,-95.02 1259.75,-93.02 1324,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1180,-97C1244.01,-97 1259.99,-95 1324,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-99C1244.25,-98.98 1260.24,-96.98 1324,-97"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-70C1259.88,-70 1275.87,-69 1340,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1196,-72C1260,-72 1276,-71 1340,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-74C1260.13,-74 1276.12,-73 1340,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-70C1243.88,-70 1259.87,-69 1324,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1180,-72C1244,-72 1260,-71 1324,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-74C1244.13,-74 1260.12,-73 1324,-73"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-45C1260.13,-45 1276.12,-46 1340,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1196,-47C1260,-47 1276,-48 1340,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-49C1259.88,-49 1275.87,-50 1340,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-45C1244.13,-45 1260.12,-46 1324,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1180,-47C1244,-47 1260,-48 1324,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-49C1243.88,-49 1259.87,-50 1324,-50"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-20C1260.38,-20.03 1276.36,-23.03 1340,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1196,-22C1260.01,-22 1275.99,-25 1340,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-24C1259.64,-23.97 1275.62,-26.97 1340,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-20C1244.38,-20.03 1260.36,-23.03 1324,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1180,-22C1244.01,-22 1259.99,-25 1324,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-24C1243.64,-23.97 1259.62,-26.97 1324,-27"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Connector, <a href="https://www.molex.com/molex/products/family/kk_254_rpc_connector_system">Molex KK 254</a>, female, 4 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">3</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1, X2, X3</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Connector, <a href="https://www.molex.com/molex/products/family/kk_254_rpc_connector_system">Molex KK 254</a>, female, 4 pins</td>
<td class="bom_col_qty">3</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1, X2, X3</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Wire, I2C, 0.25 mm&sup2;, PK</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.4</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1, W2</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Wire, I2C, 0.25 mm², PK</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">3</td>
<td style="border:1px solid #000000; padding: 4px">Wire, I2C, 0.25 mm&sup2;, TQ</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.4</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1, W2</td>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Wire, I2C, 0.25 mm², TQ</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">4</td>
<td style="border:1px solid #000000; padding: 4px">Wire, I2C, 0.25 mm&sup2;, VT</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.4</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1, W2</td>
<td class="bom_col_id">4</td>
<td class="bom_col_description">Wire, I2C, 0.25 mm², VT</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">5</td>
<td style="border:1px solid #000000; padding: 4px">Wire, I2C, 0.25 mm&sup2;, YE</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">0.4</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1, W2</td>
<td class="bom_col_id">5</td>
<td class="bom_col_description">Wire, I2C, 0.25 mm², YE</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex05.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 50 KiB

418
examples/ex05.svg generated
View File

@ -1,301 +1,301 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="1535pt" height="192pt"
viewBox="0.00 0.00 1535.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="1514pt" height="192pt"
viewBox="0.00 0.00 1514.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 188)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-188 1531,-188 1531,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-188 1510,-188 1510,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="187,-152 0,-152 0,-14 187,-14 187,-152"/>
<polygon fill="none" stroke="black" points="0.5,-129 0.5,-152 187.5,-152 187.5,-129 0.5,-129"/>
<text text-anchor="start" x="85" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-106 0.5,-129 96.5,-129 96.5,-106 0.5,-106"/>
<text text-anchor="start" x="4.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="96.5,-106 96.5,-129 147.5,-129 147.5,-106 96.5,-106"/>
<text text-anchor="start" x="100.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="147.5,-106 147.5,-129 187.5,-129 187.5,-106 147.5,-106"/>
<text text-anchor="start" x="151.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-83 0.5,-106 106.5,-106 106.5,-83 0.5,-83"/>
<text text-anchor="start" x="37.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="106.5,-83 106.5,-106 187.5,-106 187.5,-83 106.5,-83"/>
<text text-anchor="start" x="143" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-60 0.5,-83 106.5,-83 106.5,-60 0.5,-60"/>
<text text-anchor="start" x="38.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="106.5,-60 106.5,-83 187.5,-83 187.5,-60 106.5,-60"/>
<text text-anchor="start" x="143" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-37 0.5,-60 106.5,-60 106.5,-37 0.5,-37"/>
<text text-anchor="start" x="39.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="106.5,-37 106.5,-60 187.5,-60 187.5,-37 106.5,-37"/>
<text text-anchor="start" x="143" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-14 0.5,-37 106.5,-37 106.5,-14 0.5,-14"/>
<text text-anchor="start" x="39" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="106.5,-14 106.5,-37 187.5,-37 187.5,-14 106.5,-14"/>
<text text-anchor="start" x="143" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="182,-152 0,-152 0,-14 182,-14 182,-152"/>
<polygon fill="none" stroke="black" points="0,-129 0,-152 182,-152 182,-129 0,-129"/>
<text text-anchor="start" x="82.5" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-106 0,-129 93,-129 93,-106 0,-106"/>
<text text-anchor="start" x="4" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="93,-106 93,-129 143,-129 143,-106 93,-106"/>
<text text-anchor="start" x="97" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="143,-106 143,-129 182,-129 182,-106 143,-106"/>
<text text-anchor="start" x="147" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-83 0,-106 103,-106 103,-83 0,-83"/>
<text text-anchor="start" x="36" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="103,-83 103,-106 182,-106 182,-83 103,-83"/>
<text text-anchor="start" x="138.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-60 0,-83 103,-83 103,-60 0,-60"/>
<text text-anchor="start" x="37" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="103,-60 103,-83 182,-83 182,-60 103,-60"/>
<text text-anchor="start" x="138.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-37 0,-60 103,-60 103,-37 0,-37"/>
<text text-anchor="start" x="38" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="103,-37 103,-60 182,-60 182,-37 103,-37"/>
<text text-anchor="start" x="138.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-14 0,-37 103,-37 103,-14 0,-14"/>
<text text-anchor="start" x="37.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="103,-14 103,-37 182,-37 182,-14 103,-14"/>
<text text-anchor="start" x="138.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node4" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="526,-184 331,-184 331,0 526,0 526,-184"/>
<polygon fill="none" stroke="black" points="331.5,-161 331.5,-184 526.5,-184 526.5,-161 331.5,-161"/>
<text text-anchor="start" x="418.5" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="331.5,-138 331.5,-161 369.5,-161 369.5,-138 331.5,-138"/>
<text text-anchor="start" x="339.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="369.5,-138 369.5,-161 400.5,-161 400.5,-138 369.5,-138"/>
<text text-anchor="start" x="377.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="400.5,-138 400.5,-161 475.5,-161 475.5,-138 400.5,-138"/>
<text text-anchor="start" x="408" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="475.5,-138 475.5,-161 526.5,-161 526.5,-138 475.5,-138"/>
<text text-anchor="start" x="483" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="363.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="333.5" y="-105.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="402" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="460.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-98 331.5,-100 526.5,-100 526.5,-98 331.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="331.5,-96 331.5,-98 526.5,-98 526.5,-96 331.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-94 331.5,-96 526.5,-96 526.5,-94 331.5,-94"/>
<text text-anchor="start" x="334" y="-80.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="401.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="461" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-73 331.5,-75 526.5,-75 526.5,-73 331.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="331.5,-71 331.5,-73 526.5,-73 526.5,-71 331.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-69 331.5,-71 526.5,-71 526.5,-69 331.5,-69"/>
<text text-anchor="start" x="335.5" y="-55.8" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="402" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="462.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-48 331.5,-50 526.5,-50 526.5,-48 331.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="331.5,-46 331.5,-48 526.5,-48 526.5,-46 331.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-44 331.5,-46 526.5,-46 526.5,-44 331.5,-44"/>
<text text-anchor="start" x="334.5" y="-30.8" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="402.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="461.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="331.5,-23 331.5,-25 526.5,-25 526.5,-23 331.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="331.5,-21 331.5,-23 526.5,-23 526.5,-21 331.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="331.5,-19 331.5,-21 526.5,-21 526.5,-19 331.5,-19"/>
<text text-anchor="start" x="363.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="518,-184 326,-184 326,0 518,0 518,-184"/>
<polygon fill="none" stroke="black" points="326,-161 326,-184 518,-184 518,-161 326,-161"/>
<text text-anchor="start" x="411" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="326,-138 326,-161 364,-161 364,-138 326,-138"/>
<text text-anchor="start" x="334" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="364,-138 364,-161 394,-161 394,-138 364,-138"/>
<text text-anchor="start" x="371.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="394,-138 394,-161 468,-161 468,-138 394,-138"/>
<text text-anchor="start" x="401.5" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="468,-138 468,-161 518,-161 518,-138 468,-138"/>
<text text-anchor="start" x="475.5" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="357.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="328" y="-105.8" font-family="arial" font-size="14.00">X1:1:GND</text>
<text text-anchor="start" x="396" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="453" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<polygon fill="#000000" stroke="none" points="326,-98 326,-100 518,-100 518,-98 326,-98"/>
<polygon fill="#ff66cc" stroke="none" points="326,-96 326,-98 518,-98 518,-96 326,-96"/>
<polygon fill="#000000" stroke="none" points="326,-94 326,-96 518,-96 518,-94 326,-94"/>
<text text-anchor="start" x="329" y="-80.8" font-family="arial" font-size="14.00">X1:2:VCC</text>
<text text-anchor="start" x="395" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="454" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<polygon fill="#000000" stroke="none" points="326,-73 326,-75 518,-75 518,-73 326,-73"/>
<polygon fill="#00ffff" stroke="none" points="326,-71 326,-73 518,-73 518,-71 326,-71"/>
<polygon fill="#000000" stroke="none" points="326,-69 326,-71 518,-71 518,-69 326,-69"/>
<text text-anchor="start" x="330.5" y="-55.8" font-family="arial" font-size="14.00">X1:3:SCL</text>
<text text-anchor="start" x="396" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="455.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<polygon fill="#000000" stroke="none" points="326,-48 326,-50 518,-50 518,-48 326,-48"/>
<polygon fill="#ffff00" stroke="none" points="326,-46 326,-48 518,-48 518,-46 326,-46"/>
<polygon fill="#000000" stroke="none" points="326,-44 326,-46 518,-46 518,-44 326,-44"/>
<text text-anchor="start" x="329.5" y="-30.8" font-family="arial" font-size="14.00">X1:4:SDA</text>
<text text-anchor="start" x="396" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="454.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<polygon fill="#000000" stroke="none" points="326,-23 326,-25 518,-25 518,-23 326,-23"/>
<polygon fill="#8000ff" stroke="none" points="326,-21 326,-23 518,-23 518,-21 326,-21"/>
<polygon fill="#000000" stroke="none" points="326,-19 326,-21 518,-21 518,-19 326,-19"/>
<text text-anchor="start" x="357.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-93C251.25,-93.02 267.24,-95.02 331,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M187,-95C251.01,-95 266.99,-97 331,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-97C250.76,-96.98 266.75,-98.98 331,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-93C246.25,-93.02 262.24,-95.02 326,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M182,-95C246.01,-95 261.99,-97 326,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-97C245.76,-96.98 261.75,-98.98 326,-99"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-69C251.13,-69 267.12,-70 331,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M187,-71C251,-71 267,-72 331,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-73C250.88,-73 266.87,-74 331,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-69C246.13,-69 262.12,-70 326,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M182,-71C246,-71 262,-72 326,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-73C245.88,-73 261.87,-74 326,-74"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-46C250.88,-46 266.87,-45 331,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M187,-48C251,-48 267,-47 331,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-50C251.13,-50 267.12,-49 331,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-46C245.88,-46 261.87,-45 326,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M182,-48C246,-48 262,-47 326,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-50C246.13,-50 262.12,-49 326,-49"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-23C250.64,-23.03 266.62,-20.03 331,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M187,-25C251.01,-25 266.99,-22 331,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M187,-27C251.38,-26.97 267.36,-23.97 331,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-23C245.64,-23.03 261.62,-20.03 326,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M182,-25C246.01,-25 261.99,-22 326,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M182,-27C246.38,-26.97 262.36,-23.97 326,-24"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="857,-152 670,-152 670,-14 857,-14 857,-152"/>
<polygon fill="none" stroke="black" points="670.5,-129 670.5,-152 857.5,-152 857.5,-129 670.5,-129"/>
<text text-anchor="start" x="755" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="670.5,-106 670.5,-129 766.5,-129 766.5,-106 670.5,-106"/>
<text text-anchor="start" x="674.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="766.5,-106 766.5,-129 817.5,-129 817.5,-106 766.5,-106"/>
<text text-anchor="start" x="770.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="817.5,-106 817.5,-129 857.5,-129 857.5,-106 817.5,-106"/>
<text text-anchor="start" x="821.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="670.5,-83 670.5,-106 725.5,-106 725.5,-83 670.5,-83"/>
<text text-anchor="start" x="694" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="725.5,-83 725.5,-106 803.5,-106 803.5,-83 725.5,-83"/>
<text text-anchor="start" x="748.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="803.5,-83 803.5,-106 857.5,-106 857.5,-83 803.5,-83"/>
<text text-anchor="start" x="826.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="670.5,-60 670.5,-83 725.5,-83 725.5,-60 670.5,-60"/>
<text text-anchor="start" x="694" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="725.5,-60 725.5,-83 803.5,-83 803.5,-60 725.5,-60"/>
<text text-anchor="start" x="749.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="803.5,-60 803.5,-83 857.5,-83 857.5,-60 803.5,-60"/>
<text text-anchor="start" x="826.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="670.5,-37 670.5,-60 725.5,-60 725.5,-37 670.5,-37"/>
<text text-anchor="start" x="694" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="725.5,-37 725.5,-60 803.5,-60 803.5,-37 725.5,-37"/>
<text text-anchor="start" x="750.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="803.5,-37 803.5,-60 857.5,-60 857.5,-37 803.5,-37"/>
<text text-anchor="start" x="826.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="670.5,-14 670.5,-37 725.5,-37 725.5,-14 670.5,-14"/>
<text text-anchor="start" x="694" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="725.5,-14 725.5,-37 803.5,-37 803.5,-14 725.5,-14"/>
<text text-anchor="start" x="750" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="803.5,-14 803.5,-37 857.5,-37 857.5,-14 803.5,-14"/>
<text text-anchor="start" x="826.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="844,-152 662,-152 662,-14 844,-14 844,-152"/>
<polygon fill="none" stroke="black" points="662,-129 662,-152 844,-152 844,-129 662,-129"/>
<text text-anchor="start" x="744.5" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="662,-106 662,-129 755,-129 755,-106 662,-106"/>
<text text-anchor="start" x="666" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="755,-106 755,-129 805,-129 805,-106 755,-106"/>
<text text-anchor="start" x="759" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="805,-106 805,-129 844,-129 844,-106 805,-106"/>
<text text-anchor="start" x="809" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="662,-83 662,-106 715,-106 715,-83 662,-83"/>
<text text-anchor="start" x="684.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="715,-83 715,-106 791,-106 791,-83 715,-83"/>
<text text-anchor="start" x="737.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="791,-83 791,-106 844,-106 844,-83 791,-83"/>
<text text-anchor="start" x="813.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="662,-60 662,-83 715,-83 715,-60 662,-60"/>
<text text-anchor="start" x="684.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="715,-60 715,-83 791,-83 791,-60 715,-60"/>
<text text-anchor="start" x="738.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="791,-60 791,-83 844,-83 844,-60 791,-60"/>
<text text-anchor="start" x="813.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="662,-37 662,-60 715,-60 715,-37 662,-37"/>
<text text-anchor="start" x="684.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="715,-37 715,-60 791,-60 791,-37 715,-37"/>
<text text-anchor="start" x="739.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="791,-37 791,-60 844,-60 844,-37 791,-37"/>
<text text-anchor="start" x="813.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="662,-14 662,-37 715,-37 715,-14 662,-14"/>
<text text-anchor="start" x="684.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="715,-14 715,-37 791,-37 791,-14 715,-14"/>
<text text-anchor="start" x="739" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="none" stroke="black" points="791,-14 791,-37 844,-37 844,-14 791,-14"/>
<text text-anchor="start" x="813.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W2 -->
<g id="node5" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1196,-184 1001,-184 1001,0 1196,0 1196,-184"/>
<polygon fill="none" stroke="black" points="1001.5,-161 1001.5,-184 1196.5,-184 1196.5,-161 1001.5,-161"/>
<text text-anchor="start" x="1088.5" y="-168.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="1001.5,-138 1001.5,-161 1039.5,-161 1039.5,-138 1001.5,-138"/>
<text text-anchor="start" x="1009.5" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1039.5,-138 1039.5,-161 1070.5,-161 1070.5,-138 1039.5,-138"/>
<text text-anchor="start" x="1047.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1070.5,-138 1070.5,-161 1145.5,-161 1145.5,-138 1070.5,-138"/>
<text text-anchor="start" x="1078" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1145.5,-138 1145.5,-161 1196.5,-161 1196.5,-138 1145.5,-138"/>
<text text-anchor="start" x="1153" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1033.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1003.5" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1072" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1130.5" y="-105.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-98 1001.5,-100 1196.5,-100 1196.5,-98 1001.5,-98"/>
<polygon fill="#ff66cc" stroke="transparent" points="1001.5,-96 1001.5,-98 1196.5,-98 1196.5,-96 1001.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-94 1001.5,-96 1196.5,-96 1196.5,-94 1001.5,-94"/>
<text text-anchor="start" x="1004" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1071.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131" y="-80.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-73 1001.5,-75 1196.5,-75 1196.5,-73 1001.5,-73"/>
<polygon fill="#00ffff" stroke="transparent" points="1001.5,-71 1001.5,-73 1196.5,-73 1196.5,-71 1001.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-69 1001.5,-71 1196.5,-71 1196.5,-69 1001.5,-69"/>
<text text-anchor="start" x="1005.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1072" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1132.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-48 1001.5,-50 1196.5,-50 1196.5,-48 1001.5,-48"/>
<polygon fill="#ffff00" stroke="transparent" points="1001.5,-46 1001.5,-48 1196.5,-48 1196.5,-46 1001.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-44 1001.5,-46 1196.5,-46 1196.5,-44 1001.5,-44"/>
<text text-anchor="start" x="1004.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1072.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1131.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="transparent" points="1001.5,-23 1001.5,-25 1196.5,-25 1196.5,-23 1001.5,-23"/>
<polygon fill="#8000ff" stroke="transparent" points="1001.5,-21 1001.5,-23 1196.5,-23 1196.5,-21 1001.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="1001.5,-19 1001.5,-21 1196.5,-21 1196.5,-19 1001.5,-19"/>
<text text-anchor="start" x="1033.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1180,-184 988,-184 988,0 1180,0 1180,-184"/>
<polygon fill="none" stroke="black" points="988,-161 988,-184 1180,-184 1180,-161 988,-161"/>
<text text-anchor="start" x="1073" y="-168.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="988,-138 988,-161 1026,-161 1026,-138 988,-138"/>
<text text-anchor="start" x="996" y="-145.8" font-family="arial" font-size="14.00">I2C</text>
<polygon fill="none" stroke="black" points="1026,-138 1026,-161 1056,-161 1056,-138 1026,-138"/>
<text text-anchor="start" x="1033.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1056,-138 1056,-161 1130,-161 1130,-138 1056,-138"/>
<text text-anchor="start" x="1063.5" y="-145.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="1130,-138 1130,-161 1180,-161 1180,-138 1130,-138"/>
<text text-anchor="start" x="1137.5" y="-145.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="1019.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="990" y="-105.8" font-family="arial" font-size="14.00">X2:1:GND</text>
<text text-anchor="start" x="1058" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1115" y="-105.8" font-family="arial" font-size="14.00">X3:1:GND</text>
<polygon fill="#000000" stroke="none" points="988,-98 988,-100 1180,-100 1180,-98 988,-98"/>
<polygon fill="#ff66cc" stroke="none" points="988,-96 988,-98 1180,-98 1180,-96 988,-96"/>
<polygon fill="#000000" stroke="none" points="988,-94 988,-96 1180,-96 1180,-94 988,-94"/>
<text text-anchor="start" x="991" y="-80.8" font-family="arial" font-size="14.00">X2:2:VCC</text>
<text text-anchor="start" x="1057" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;TQ &#160;&#160;&#160;</text>
<text text-anchor="start" x="1116" y="-80.8" font-family="arial" font-size="14.00">X3:2:VCC</text>
<polygon fill="#000000" stroke="none" points="988,-73 988,-75 1180,-75 1180,-73 988,-73"/>
<polygon fill="#00ffff" stroke="none" points="988,-71 988,-73 1180,-73 1180,-71 988,-71"/>
<polygon fill="#000000" stroke="none" points="988,-69 988,-71 1180,-71 1180,-69 988,-69"/>
<text text-anchor="start" x="992.5" y="-55.8" font-family="arial" font-size="14.00">X2:3:SCL</text>
<text text-anchor="start" x="1058" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1117.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:SCL</text>
<polygon fill="#000000" stroke="none" points="988,-48 988,-50 1180,-50 1180,-48 988,-48"/>
<polygon fill="#ffff00" stroke="none" points="988,-46 988,-48 1180,-48 1180,-46 988,-46"/>
<polygon fill="#000000" stroke="none" points="988,-44 988,-46 1180,-46 1180,-44 988,-44"/>
<text text-anchor="start" x="991.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:SDA</text>
<text text-anchor="start" x="1058" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="1116.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:SDA</text>
<polygon fill="#000000" stroke="none" points="988,-23 988,-25 1180,-25 1180,-23 988,-23"/>
<polygon fill="#8000ff" stroke="none" points="988,-21 988,-23 1180,-23 1180,-21 988,-21"/>
<polygon fill="#000000" stroke="none" points="988,-19 988,-21 1180,-21 1180,-19 988,-19"/>
<text text-anchor="start" x="1019.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-93C921.25,-93.02 937.24,-95.02 1001,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M857,-95C921.01,-95 936.99,-97 1001,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-97C920.76,-96.98 936.75,-98.98 1001,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-93C908.25,-93.02 924.24,-95.02 988,-95"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M844,-95C908.01,-95 923.99,-97 988,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-97C907.76,-96.98 923.75,-98.98 988,-99"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-69C921.13,-69 937.12,-70 1001,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M857,-71C921,-71 937,-72 1001,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-73C920.88,-73 936.87,-74 1001,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-69C908.13,-69 924.12,-70 988,-70"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M844,-71C908,-71 924,-72 988,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-73C907.88,-73 923.87,-74 988,-74"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-46C920.88,-46 936.87,-45 1001,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M857,-48C921,-48 937,-47 1001,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-50C921.13,-50 937.12,-49 1001,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-46C907.88,-46 923.87,-45 988,-45"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M844,-48C908,-48 924,-47 988,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-50C908.13,-50 924.12,-49 988,-49"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-23C920.64,-23.03 936.62,-20.03 1001,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M857,-25C921.01,-25 936.99,-22 1001,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M857,-27C921.38,-26.97 937.36,-23.97 1001,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-23C907.64,-23.03 923.62,-20.03 988,-20"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M844,-25C908.01,-25 923.99,-22 988,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M844,-27C908.38,-26.97 924.36,-23.97 988,-24"/>
</g>
<!-- X3 -->
<g id="node3" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="1527,-152 1340,-152 1340,-14 1527,-14 1527,-152"/>
<polygon fill="none" stroke="black" points="1340.5,-129 1340.5,-152 1527.5,-152 1527.5,-129 1340.5,-129"/>
<text text-anchor="start" x="1425" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1340.5,-106 1340.5,-129 1436.5,-129 1436.5,-106 1340.5,-106"/>
<text text-anchor="start" x="1344.5" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1436.5,-106 1436.5,-129 1487.5,-129 1487.5,-106 1436.5,-106"/>
<text text-anchor="start" x="1440.5" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1487.5,-106 1487.5,-129 1527.5,-129 1527.5,-106 1487.5,-106"/>
<text text-anchor="start" x="1491.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1340.5,-83 1340.5,-106 1422.5,-106 1422.5,-83 1340.5,-83"/>
<text text-anchor="start" x="1377.5" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1422.5,-83 1422.5,-106 1527.5,-106 1527.5,-83 1422.5,-83"/>
<text text-anchor="start" x="1459" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1340.5,-60 1340.5,-83 1422.5,-83 1422.5,-60 1340.5,-60"/>
<text text-anchor="start" x="1377.5" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1422.5,-60 1422.5,-83 1527.5,-83 1527.5,-60 1422.5,-60"/>
<text text-anchor="start" x="1460" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1340.5,-37 1340.5,-60 1422.5,-60 1422.5,-37 1340.5,-37"/>
<text text-anchor="start" x="1377.5" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1422.5,-37 1422.5,-60 1527.5,-60 1527.5,-37 1422.5,-37"/>
<text text-anchor="start" x="1461" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1340.5,-14 1340.5,-37 1422.5,-37 1422.5,-14 1340.5,-14"/>
<text text-anchor="start" x="1377.5" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1422.5,-14 1422.5,-37 1527.5,-37 1527.5,-14 1422.5,-14"/>
<text text-anchor="start" x="1460.5" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
<polygon fill="#ffffff" stroke="black" points="1506,-152 1324,-152 1324,-14 1506,-14 1506,-152"/>
<polygon fill="none" stroke="black" points="1324,-129 1324,-152 1506,-152 1506,-129 1324,-129"/>
<text text-anchor="start" x="1406.5" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1324,-106 1324,-129 1417,-129 1417,-106 1324,-106"/>
<text text-anchor="start" x="1328" y="-113.8" font-family="arial" font-size="14.00">Molex KK 254</text>
<polygon fill="none" stroke="black" points="1417,-106 1417,-129 1467,-129 1467,-106 1417,-106"/>
<text text-anchor="start" x="1421" y="-113.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1467,-106 1467,-129 1506,-129 1506,-106 1467,-106"/>
<text text-anchor="start" x="1471" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1324,-83 1324,-106 1404,-106 1404,-83 1324,-83"/>
<text text-anchor="start" x="1360" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1404,-83 1404,-106 1506,-106 1506,-83 1404,-83"/>
<text text-anchor="start" x="1439.5" y="-90.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="1324,-60 1324,-83 1404,-83 1404,-60 1324,-60"/>
<text text-anchor="start" x="1360" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1404,-60 1404,-83 1506,-83 1506,-60 1404,-60"/>
<text text-anchor="start" x="1440.5" y="-67.8" font-family="arial" font-size="14.00">VCC</text>
<polygon fill="none" stroke="black" points="1324,-37 1324,-60 1404,-60 1404,-37 1324,-37"/>
<text text-anchor="start" x="1360" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1404,-37 1404,-60 1506,-60 1506,-37 1404,-37"/>
<text text-anchor="start" x="1441.5" y="-44.8" font-family="arial" font-size="14.00">SCL</text>
<polygon fill="none" stroke="black" points="1324,-14 1324,-37 1404,-37 1404,-14 1324,-14"/>
<text text-anchor="start" x="1360" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1404,-14 1404,-37 1506,-37 1506,-14 1404,-14"/>
<text text-anchor="start" x="1441" y="-21.8" font-family="arial" font-size="14.00">SDA</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-95C589.76,-95.02 605.75,-93.02 670,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M526,-97C590.01,-97 605.99,-95 670,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-99C590.25,-98.98 606.24,-96.98 670,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-95C581.76,-95.02 597.75,-93.02 662,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M518,-97C582.01,-97 597.99,-95 662,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-99C582.25,-98.98 598.24,-96.98 662,-97"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-70C589.88,-70 605.87,-69 670,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M526,-72C590,-72 606,-71 670,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-74C590.13,-74 606.12,-73 670,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-70C581.88,-70 597.87,-69 662,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M518,-72C582,-72 598,-71 662,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-74C582.13,-74 598.12,-73 662,-73"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-45C590.13,-45 606.12,-46 670,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M526,-47C590,-47 606,-48 670,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-49C589.88,-49 605.87,-50 670,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-45C582.13,-45 598.12,-46 662,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M518,-47C582,-47 598,-48 662,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-49C581.88,-49 597.87,-50 662,-50"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-20C590.38,-20.03 606.36,-23.03 670,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M526,-22C590.01,-22 605.99,-25 670,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M526,-24C589.64,-23.97 605.62,-26.97 670,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-20C582.38,-20.03 598.36,-23.03 662,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M518,-22C582.01,-22 597.99,-25 662,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M518,-24C581.64,-23.97 597.62,-26.97 662,-27"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-95C1259.76,-95.02 1275.75,-93.02 1340,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1196,-97C1260.01,-97 1275.99,-95 1340,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-99C1260.25,-98.98 1276.24,-96.98 1340,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-95C1243.76,-95.02 1259.75,-93.02 1324,-93"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M1180,-97C1244.01,-97 1259.99,-95 1324,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-99C1244.25,-98.98 1260.24,-96.98 1324,-97"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-70C1259.88,-70 1275.87,-69 1340,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1196,-72C1260,-72 1276,-71 1340,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-74C1260.13,-74 1276.12,-73 1340,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-70C1243.88,-70 1259.87,-69 1324,-69"/>
<path fill="none" stroke="#00ffff" stroke-width="2" d="M1180,-72C1244,-72 1260,-71 1324,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-74C1244.13,-74 1260.12,-73 1324,-73"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-45C1260.13,-45 1276.12,-46 1340,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1196,-47C1260,-47 1276,-48 1340,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-49C1259.88,-49 1275.87,-50 1340,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-45C1244.13,-45 1260.12,-46 1324,-46"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1180,-47C1244,-47 1260,-48 1324,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-49C1243.88,-49 1259.87,-50 1324,-50"/>
</g>
<!-- W2&#45;&#45;X3 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-20C1260.38,-20.03 1276.36,-23.03 1340,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1196,-22C1260.01,-22 1275.99,-25 1340,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1196,-24C1259.64,-23.97 1275.62,-26.97 1340,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-20C1244.38,-20.03 1260.36,-23.03 1324,-23"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M1180,-22C1244.01,-22 1259.99,-25 1324,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1180,-24C1243.64,-23.97 1259.62,-26.97 1324,-27"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 22 KiB

2
examples/ex06.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

999
examples/ex06.html generated

File diff suppressed because it is too large Load Diff

BIN
examples/ex06.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 KiB

After

Width:  |  Height:  |  Size: 292 KiB

898
examples/ex06.svg generated

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 48 KiB

2
examples/ex07.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

217
examples/ex07.html generated
View File

@ -1,143 +1,178 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex07</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex07</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="858pt" height="153pt"
viewBox="0.00 0.00 858.00 152.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="841pt" height="153pt"
viewBox="0.00 0.00 841.00 152.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-148.5 854,-148.5 854,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-148.5 837,-148.5 837,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="212,-115 0,-115 0,0 212,0 212,-115"/>
<polygon fill="none" stroke="black" points="0,-91.5 0,-114.5 212,-114.5 212,-91.5 0,-91.5"/>
<text text-anchor="start" x="97" y="-99.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-68.5 0,-91.5 98,-91.5 98,-68.5 0,-68.5"/>
<polygon fill="#ffffff" stroke="black" points="205,-115 0,-115 0,0 205,0 205,-115"/>
<polygon fill="none" stroke="black" points="0.5,-91.5 0.5,-114.5 205.5,-114.5 205.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="94.5" y="-99.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-68.5 0.5,-91.5 95.5,-91.5 95.5,-68.5 0.5,-68.5"/>
<text text-anchor="start" x="8.5" y="-76.3" font-family="arial" font-size="14.00">TE 776164&#45;1</text>
<polygon fill="none" stroke="black" points="98,-68.5 98,-91.5 157,-91.5 157,-68.5 98,-68.5"/>
<text text-anchor="start" x="106" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="157,-68.5 157,-91.5 212,-91.5 212,-68.5 157,-68.5"/>
<text text-anchor="start" x="165" y="-76.3" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-45.5 0,-68.5 212,-68.5 212,-45.5 0,-45.5"/>
<text text-anchor="start" x="102" y="-53.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-22.5 0,-45.5 212,-45.5 212,-22.5 0,-22.5"/>
<text text-anchor="start" x="102" y="-30.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 212,-22.5 212,0.5 0,0.5"/>
<text text-anchor="start" x="4" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="none" stroke="black" points="95.5,-68.5 95.5,-91.5 152.5,-91.5 152.5,-68.5 95.5,-68.5"/>
<text text-anchor="start" x="103" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="152.5,-68.5 152.5,-91.5 205.5,-91.5 205.5,-68.5 152.5,-68.5"/>
<text text-anchor="start" x="160" y="-76.3" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-45.5 0.5,-68.5 205.5,-68.5 205.5,-45.5 0.5,-45.5"/>
<text text-anchor="start" x="99" y="-53.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-22.5 0.5,-45.5 205.5,-45.5 205.5,-22.5 0.5,-22.5"/>
<text text-anchor="start" x="99" y="-30.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 205.5,-22.5 205.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="4.5" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1 -->
<g id="node3" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="494,-144.5 356,-144.5 356,-10.5 494,-10.5 494,-144.5"/>
<polygon fill="none" stroke="black" points="356,-121.5 356,-144.5 494,-144.5 494,-121.5 356,-121.5"/>
<text text-anchor="start" x="416" y="-129.3" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="356,-98.5 356,-121.5 387,-121.5 387,-98.5 356,-98.5"/>
<text text-anchor="start" x="364" y="-106.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="387,-98.5 387,-121.5 455,-121.5 455,-98.5 387,-98.5"/>
<text text-anchor="start" x="395" y="-106.3" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="455,-98.5 455,-121.5 494,-121.5 494,-98.5 455,-98.5"/>
<text text-anchor="start" x="462.5" y="-106.3" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="370.5" y="-85.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="358" y="-66.3" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="392" y="-66.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-66.3" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="transparent" points="356,-58.5 356,-60.5 494,-60.5 494,-58.5 356,-58.5"/>
<polygon fill="#ffff00" stroke="transparent" points="356,-56.5 356,-58.5 494,-58.5 494,-56.5 356,-56.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-54.5 356,-56.5 494,-56.5 494,-54.5 356,-54.5"/>
<text text-anchor="start" x="358" y="-41.3" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="391" y="-41.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-41.3" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="transparent" points="356,-33.5 356,-35.5 494,-35.5 494,-33.5 356,-33.5"/>
<polygon fill="#00ff00" stroke="transparent" points="356,-31.5 356,-33.5 494,-33.5 494,-31.5 356,-31.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-29.5 356,-31.5 494,-31.5 494,-29.5 356,-29.5"/>
<text text-anchor="start" x="370.5" y="-16.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="484,-144.5 349,-144.5 349,-10.5 484,-10.5 484,-144.5"/>
<polygon fill="none" stroke="black" points="349.5,-121.5 349.5,-144.5 484.5,-144.5 484.5,-121.5 349.5,-121.5"/>
<text text-anchor="start" x="408" y="-129.3" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="349.5,-98.5 349.5,-121.5 379.5,-121.5 379.5,-98.5 349.5,-98.5"/>
<text text-anchor="start" x="357" y="-106.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="379.5,-98.5 379.5,-121.5 446.5,-121.5 446.5,-98.5 379.5,-98.5"/>
<text text-anchor="start" x="387" y="-106.3" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="446.5,-98.5 446.5,-121.5 484.5,-121.5 484.5,-98.5 446.5,-98.5"/>
<text text-anchor="start" x="453.5" y="-106.3" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="363.5" y="-85.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="351.5" y="-66.3" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="385" y="-66.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="454.5" y="-66.3" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="none" points="349.5,-58.5 349.5,-60.5 484.5,-60.5 484.5,-58.5 349.5,-58.5"/>
<polygon fill="#ffff00" stroke="none" points="349.5,-56.5 349.5,-58.5 484.5,-58.5 484.5,-56.5 349.5,-56.5"/>
<polygon fill="#000000" stroke="none" points="349.5,-54.5 349.5,-56.5 484.5,-56.5 484.5,-54.5 349.5,-54.5"/>
<text text-anchor="start" x="351.5" y="-41.3" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="383.5" y="-41.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="454.5" y="-41.3" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="none" points="349.5,-33.5 349.5,-35.5 484.5,-35.5 484.5,-33.5 349.5,-33.5"/>
<polygon fill="#00ff00" stroke="none" points="349.5,-31.5 349.5,-33.5 484.5,-33.5 484.5,-31.5 349.5,-31.5"/>
<polygon fill="#000000" stroke="none" points="349.5,-29.5 349.5,-31.5 484.5,-31.5 484.5,-29.5 349.5,-29.5"/>
<text text-anchor="start" x="363.5" y="-16.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-54.5C276.13,-54.5 292.12,-55.5 356,-55.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M212,-56.5C276,-56.5 292,-57.5 356,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-58.5C275.88,-58.5 291.87,-59.5 356,-59.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-54.5C269.13,-54.5 285.12,-55.5 349,-55.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M205,-56.5C269,-56.5 285,-57.5 349,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-58.5C268.88,-58.5 284.87,-59.5 349,-59.5"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-31.5C275.88,-31.5 291.87,-30.5 356,-30.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M212,-33.5C276,-33.5 292,-32.5 356,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-35.5C276.13,-35.5 292.12,-34.5 356,-34.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-31.5C268.88,-31.5 284.87,-30.5 349,-30.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M205,-33.5C269,-33.5 285,-32.5 349,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-35.5C269.13,-35.5 285.12,-34.5 349,-34.5"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="850,-115 638,-115 638,0 850,0 850,-115"/>
<polygon fill="none" stroke="black" points="638,-91.5 638,-114.5 850,-114.5 850,-91.5 638,-91.5"/>
<text text-anchor="start" x="735" y="-99.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638,-68.5 638,-91.5 711,-91.5 711,-68.5 638,-68.5"/>
<text text-anchor="start" x="654.5" y="-76.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="711,-68.5 711,-91.5 786,-91.5 786,-68.5 711,-68.5"/>
<text text-anchor="start" x="727" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="786,-68.5 786,-91.5 850,-91.5 850,-68.5 786,-68.5"/>
<text text-anchor="start" x="802" y="-76.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="638,-45.5 638,-68.5 850,-68.5 850,-45.5 638,-45.5"/>
<text text-anchor="start" x="740" y="-53.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="638,-22.5 638,-45.5 850,-45.5 850,-22.5 638,-22.5"/>
<text text-anchor="start" x="740" y="-30.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="638,0.5 638,-22.5 850,-22.5 850,0.5 638,0.5"/>
<text text-anchor="start" x="642" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="#ffffff" stroke="black" points="833,-115 628,-115 628,0 833,0 833,-115"/>
<polygon fill="none" stroke="black" points="628.5,-91.5 628.5,-114.5 833.5,-114.5 833.5,-91.5 628.5,-91.5"/>
<text text-anchor="start" x="722.5" y="-99.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="628.5,-68.5 628.5,-91.5 698.5,-91.5 698.5,-68.5 628.5,-68.5"/>
<text text-anchor="start" x="644" y="-76.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="698.5,-68.5 698.5,-91.5 771.5,-91.5 771.5,-68.5 698.5,-68.5"/>
<text text-anchor="start" x="714" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="771.5,-68.5 771.5,-91.5 833.5,-91.5 833.5,-68.5 771.5,-68.5"/>
<text text-anchor="start" x="787" y="-76.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="628.5,-45.5 628.5,-68.5 833.5,-68.5 833.5,-45.5 628.5,-45.5"/>
<text text-anchor="start" x="727" y="-53.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="628.5,-22.5 628.5,-45.5 833.5,-45.5 833.5,-22.5 628.5,-22.5"/>
<text text-anchor="start" x="727" y="-30.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="628.5,0.5 628.5,-22.5 833.5,-22.5 833.5,0.5 628.5,0.5"/>
<text text-anchor="start" x="632.5" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-55.5C557.16,-56.48 571.4,-32.48 638,-31.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M494,-57.5C558.88,-57.5 573.12,-33.5 638,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-59.5C560.6,-58.52 574.84,-34.52 638,-35.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-55.5C547.16,-56.48 561.4,-32.48 628,-31.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M484,-57.5C548.88,-57.5 563.12,-33.5 628,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-59.5C550.6,-58.52 564.84,-34.52 628,-35.5"/>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-30.5C560.6,-31.48 574.84,-55.48 638,-54.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-32.5C558.88,-32.5 573.12,-56.5 638,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-34.5C557.16,-33.52 571.4,-57.52 638,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-30.5C550.6,-31.48 564.84,-55.48 628,-54.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M484,-32.5C548.88,-32.5 563.12,-56.5 628,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-34.5C547.16,-33.52 561.4,-57.52 628,-58.5"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Cable, 2 x 20 AWG</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">C1</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, 2 x 20 AWG</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">C1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Connector, D-Sub, female, 9 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X2</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, D-Sub, female, 9 pins</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X2</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">3</td>
<td style="border:1px solid #000000; padding: 4px">Connector, TE 776164-1, female, 35 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1</td>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Connector, TE 776164-1, female, 35 pins</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex07.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 26 KiB

136
examples/ex07.svg generated
View File

@ -1,105 +1,105 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="858pt" height="153pt"
viewBox="0.00 0.00 858.00 152.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="841pt" height="153pt"
viewBox="0.00 0.00 841.00 152.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-148.5 854,-148.5 854,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-148.5 837,-148.5 837,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="212,-115 0,-115 0,0 212,0 212,-115"/>
<polygon fill="none" stroke="black" points="0,-91.5 0,-114.5 212,-114.5 212,-91.5 0,-91.5"/>
<text text-anchor="start" x="97" y="-99.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-68.5 0,-91.5 98,-91.5 98,-68.5 0,-68.5"/>
<polygon fill="#ffffff" stroke="black" points="205,-115 0,-115 0,0 205,0 205,-115"/>
<polygon fill="none" stroke="black" points="0.5,-91.5 0.5,-114.5 205.5,-114.5 205.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="94.5" y="-99.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-68.5 0.5,-91.5 95.5,-91.5 95.5,-68.5 0.5,-68.5"/>
<text text-anchor="start" x="8.5" y="-76.3" font-family="arial" font-size="14.00">TE 776164&#45;1</text>
<polygon fill="none" stroke="black" points="98,-68.5 98,-91.5 157,-91.5 157,-68.5 98,-68.5"/>
<text text-anchor="start" x="106" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="157,-68.5 157,-91.5 212,-91.5 212,-68.5 157,-68.5"/>
<text text-anchor="start" x="165" y="-76.3" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-45.5 0,-68.5 212,-68.5 212,-45.5 0,-45.5"/>
<text text-anchor="start" x="102" y="-53.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-22.5 0,-45.5 212,-45.5 212,-22.5 0,-22.5"/>
<text text-anchor="start" x="102" y="-30.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,0.5 0,-22.5 212,-22.5 212,0.5 0,0.5"/>
<text text-anchor="start" x="4" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="none" stroke="black" points="95.5,-68.5 95.5,-91.5 152.5,-91.5 152.5,-68.5 95.5,-68.5"/>
<text text-anchor="start" x="103" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="152.5,-68.5 152.5,-91.5 205.5,-91.5 205.5,-68.5 152.5,-68.5"/>
<text text-anchor="start" x="160" y="-76.3" font-family="arial" font-size="14.00">35&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-45.5 0.5,-68.5 205.5,-68.5 205.5,-45.5 0.5,-45.5"/>
<text text-anchor="start" x="99" y="-53.3" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-22.5 0.5,-45.5 205.5,-45.5 205.5,-22.5 0.5,-22.5"/>
<text text-anchor="start" x="99" y="-30.3" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,0.5 0.5,-22.5 205.5,-22.5 205.5,0.5 0.5,0.5"/>
<text text-anchor="start" x="4.5" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1 -->
<g id="node3" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="494,-144.5 356,-144.5 356,-10.5 494,-10.5 494,-144.5"/>
<polygon fill="none" stroke="black" points="356,-121.5 356,-144.5 494,-144.5 494,-121.5 356,-121.5"/>
<text text-anchor="start" x="416" y="-129.3" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="356,-98.5 356,-121.5 387,-121.5 387,-98.5 356,-98.5"/>
<text text-anchor="start" x="364" y="-106.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="387,-98.5 387,-121.5 455,-121.5 455,-98.5 387,-98.5"/>
<text text-anchor="start" x="395" y="-106.3" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="455,-98.5 455,-121.5 494,-121.5 494,-98.5 455,-98.5"/>
<text text-anchor="start" x="462.5" y="-106.3" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="370.5" y="-85.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="358" y="-66.3" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="392" y="-66.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-66.3" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="transparent" points="356,-58.5 356,-60.5 494,-60.5 494,-58.5 356,-58.5"/>
<polygon fill="#ffff00" stroke="transparent" points="356,-56.5 356,-58.5 494,-58.5 494,-56.5 356,-56.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-54.5 356,-56.5 494,-56.5 494,-54.5 356,-54.5"/>
<text text-anchor="start" x="358" y="-41.3" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="391" y="-41.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="463" y="-41.3" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="transparent" points="356,-33.5 356,-35.5 494,-35.5 494,-33.5 356,-33.5"/>
<polygon fill="#00ff00" stroke="transparent" points="356,-31.5 356,-33.5 494,-33.5 494,-31.5 356,-31.5"/>
<polygon fill="#000000" stroke="transparent" points="356,-29.5 356,-31.5 494,-31.5 494,-29.5 356,-29.5"/>
<text text-anchor="start" x="370.5" y="-16.3" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="484,-144.5 349,-144.5 349,-10.5 484,-10.5 484,-144.5"/>
<polygon fill="none" stroke="black" points="349.5,-121.5 349.5,-144.5 484.5,-144.5 484.5,-121.5 349.5,-121.5"/>
<text text-anchor="start" x="408" y="-129.3" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="349.5,-98.5 349.5,-121.5 379.5,-121.5 379.5,-98.5 349.5,-98.5"/>
<text text-anchor="start" x="357" y="-106.3" font-family="arial" font-size="14.00">2x</text>
<polygon fill="none" stroke="black" points="379.5,-98.5 379.5,-121.5 446.5,-121.5 446.5,-98.5 379.5,-98.5"/>
<text text-anchor="start" x="387" y="-106.3" font-family="arial" font-size="14.00">20 AWG</text>
<polygon fill="none" stroke="black" points="446.5,-98.5 446.5,-121.5 484.5,-121.5 484.5,-98.5 446.5,-98.5"/>
<text text-anchor="start" x="453.5" y="-106.3" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="363.5" y="-85.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="351.5" y="-66.3" font-family="arial" font-size="14.00">X1:5</text>
<text text-anchor="start" x="385" y="-66.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="454.5" y="-66.3" font-family="arial" font-size="14.00">X2:7</text>
<polygon fill="#000000" stroke="none" points="349.5,-58.5 349.5,-60.5 484.5,-60.5 484.5,-58.5 349.5,-58.5"/>
<polygon fill="#ffff00" stroke="none" points="349.5,-56.5 349.5,-58.5 484.5,-58.5 484.5,-56.5 349.5,-56.5"/>
<polygon fill="#000000" stroke="none" points="349.5,-54.5 349.5,-56.5 484.5,-56.5 484.5,-54.5 349.5,-54.5"/>
<text text-anchor="start" x="351.5" y="-41.3" font-family="arial" font-size="14.00">X1:6</text>
<text text-anchor="start" x="383.5" y="-41.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="454.5" y="-41.3" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="none" points="349.5,-33.5 349.5,-35.5 484.5,-35.5 484.5,-33.5 349.5,-33.5"/>
<polygon fill="#00ff00" stroke="none" points="349.5,-31.5 349.5,-33.5 484.5,-33.5 484.5,-31.5 349.5,-31.5"/>
<polygon fill="#000000" stroke="none" points="349.5,-29.5 349.5,-31.5 484.5,-31.5 484.5,-29.5 349.5,-29.5"/>
<text text-anchor="start" x="363.5" y="-16.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-54.5C276.13,-54.5 292.12,-55.5 356,-55.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M212,-56.5C276,-56.5 292,-57.5 356,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-58.5C275.88,-58.5 291.87,-59.5 356,-59.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-54.5C269.13,-54.5 285.12,-55.5 349,-55.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M205,-56.5C269,-56.5 285,-57.5 349,-57.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-58.5C268.88,-58.5 284.87,-59.5 349,-59.5"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-31.5C275.88,-31.5 291.87,-30.5 356,-30.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M212,-33.5C276,-33.5 292,-32.5 356,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M212,-35.5C276.13,-35.5 292.12,-34.5 356,-34.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-31.5C268.88,-31.5 284.87,-30.5 349,-30.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M205,-33.5C269,-33.5 285,-32.5 349,-32.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M205,-35.5C269.13,-35.5 285.12,-34.5 349,-34.5"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="850,-115 638,-115 638,0 850,0 850,-115"/>
<polygon fill="none" stroke="black" points="638,-91.5 638,-114.5 850,-114.5 850,-91.5 638,-91.5"/>
<text text-anchor="start" x="735" y="-99.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="638,-68.5 638,-91.5 711,-91.5 711,-68.5 638,-68.5"/>
<text text-anchor="start" x="654.5" y="-76.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="711,-68.5 711,-91.5 786,-91.5 786,-68.5 711,-68.5"/>
<text text-anchor="start" x="727" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="786,-68.5 786,-91.5 850,-91.5 850,-68.5 786,-68.5"/>
<text text-anchor="start" x="802" y="-76.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="638,-45.5 638,-68.5 850,-68.5 850,-45.5 638,-45.5"/>
<text text-anchor="start" x="740" y="-53.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="638,-22.5 638,-45.5 850,-45.5 850,-22.5 638,-22.5"/>
<text text-anchor="start" x="740" y="-30.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="638,0.5 638,-22.5 850,-22.5 850,0.5 638,0.5"/>
<text text-anchor="start" x="642" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
<polygon fill="#ffffff" stroke="black" points="833,-115 628,-115 628,0 833,0 833,-115"/>
<polygon fill="none" stroke="black" points="628.5,-91.5 628.5,-114.5 833.5,-114.5 833.5,-91.5 628.5,-91.5"/>
<text text-anchor="start" x="722.5" y="-99.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="628.5,-68.5 628.5,-91.5 698.5,-91.5 698.5,-68.5 628.5,-68.5"/>
<text text-anchor="start" x="644" y="-76.3" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="698.5,-68.5 698.5,-91.5 771.5,-91.5 771.5,-68.5 698.5,-68.5"/>
<text text-anchor="start" x="714" y="-76.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="771.5,-68.5 771.5,-91.5 833.5,-91.5 833.5,-68.5 771.5,-68.5"/>
<text text-anchor="start" x="787" y="-76.3" font-family="arial" font-size="14.00">9&#45;pin</text>
<polygon fill="none" stroke="black" points="628.5,-45.5 628.5,-68.5 833.5,-68.5 833.5,-45.5 628.5,-45.5"/>
<text text-anchor="start" x="727" y="-53.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="628.5,-22.5 628.5,-45.5 833.5,-45.5 833.5,-22.5 628.5,-22.5"/>
<text text-anchor="start" x="727" y="-30.3" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="628.5,0.5 628.5,-22.5 833.5,-22.5 833.5,0.5 628.5,0.5"/>
<text text-anchor="start" x="632.5" y="-7.3" font-family="arial" font-size="14.00">Unconnected pins are not shown</text>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-55.5C557.16,-56.48 571.4,-32.48 638,-31.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M494,-57.5C558.88,-57.5 573.12,-33.5 638,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-59.5C560.6,-58.52 574.84,-34.52 638,-35.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-55.5C547.16,-56.48 561.4,-32.48 628,-31.5"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M484,-57.5C548.88,-57.5 563.12,-33.5 628,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-59.5C550.6,-58.52 564.84,-34.52 628,-35.5"/>
</g>
<!-- C1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-30.5C560.6,-31.48 574.84,-55.48 638,-54.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M494,-32.5C558.88,-32.5 573.12,-56.5 638,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M494,-34.5C557.16,-33.52 571.4,-57.52 638,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-30.5C550.6,-31.48 564.84,-55.48 628,-54.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M484,-32.5C548.88,-32.5 563.12,-56.5 628,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M484,-34.5C547.16,-33.52 561.4,-57.52 628,-58.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

6
examples/ex08.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
@ -35,7 +35,7 @@ graph {
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left" sides="TLR"><img scale="false" src="resources/stereo-phone-plug-TRS.png"/></td>
<td balign="left" sides="TLR"><img scale="false" src="/Users/daniel/Projects/WireViz/examples/resources/stereo-phone-plug-TRS.png"/></td>
</tr></table>
</td></tr>
<tr><td>
@ -135,7 +135,7 @@ graph {
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left" sides="TLR">
<table border="0" cellspacing="0" cellborder="0"><tr>
<td width="70.0" height="70" fixedsize="true"><img scale="true" src="resources/cable-WH+BN+GN+shield.png"/></td>
<td width="70.0" height="70" fixedsize="true"><img scale="true" src="/Users/daniel/Projects/WireViz/examples/resources/cable-WH+BN+GN+shield.png"/></td>
</tr></table>
</td>
</tr></table>

229
examples/ex08.html generated

File diff suppressed because one or more lines are too long

BIN
examples/ex08.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 65 KiB

158
examples/ex08.svg generated

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 17 KiB

2
examples/ex09.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

875
examples/ex09.html generated

File diff suppressed because it is too large Load Diff

BIN
examples/ex09.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 240 KiB

794
examples/ex09.svg generated
View File

@ -1,524 +1,524 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="835pt" height="1158pt"
viewBox="0.00 0.00 835.00 1158.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="820pt" height="1158pt"
viewBox="0.00 0.00 820.00 1158.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1154)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1154 831,-1154 831,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-1154 816,-1154 816,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="134,-732.5 0,-732.5 0,-387.5 134,-387.5 134,-732.5"/>
<polygon fill="none" stroke="black" points="0,-709 0,-732 134,-732 134,-709 0,-709"/>
<text text-anchor="start" x="58" y="-716.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-686 0,-709 48,-709 48,-686 0,-686"/>
<polygon fill="#ffffff" stroke="black" points="132,-732.5 0,-732.5 0,-387.5 132,-387.5 132,-732.5"/>
<polygon fill="none" stroke="black" points="0,-709 0,-732 132,-732 132,-709 0,-709"/>
<text text-anchor="start" x="57.5" y="-716.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-686 0,-709 47,-709 47,-686 0,-686"/>
<text text-anchor="start" x="4" y="-693.8" font-family="arial" font-size="14.00">D&#45;Sub</text>
<polygon fill="none" stroke="black" points="48,-686 48,-709 87,-709 87,-686 48,-686"/>
<text text-anchor="start" x="52" y="-693.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="87,-686 87,-709 134,-709 134,-686 87,-686"/>
<text text-anchor="start" x="91" y="-693.8" font-family="arial" font-size="14.00">25&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-663 0,-686 100,-686 100,-663 0,-663"/>
<text text-anchor="start" x="9.5" y="-670.8" font-family="arial" font-size="14.00">SENSE_P_1</text>
<polygon fill="none" stroke="black" points="100,-663 100,-686 134,-686 134,-663 100,-663"/>
<text text-anchor="start" x="113" y="-670.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-640 0,-663 100,-663 100,-640 0,-640"/>
<polygon fill="none" stroke="black" points="47,-686 47,-709 86,-709 86,-686 47,-686"/>
<text text-anchor="start" x="51" y="-693.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="86,-686 86,-709 132,-709 132,-686 86,-686"/>
<text text-anchor="start" x="90" y="-693.8" font-family="arial" font-size="14.00">25&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-663 0,-686 98,-686 98,-663 0,-663"/>
<text text-anchor="start" x="10" y="-670.8" font-family="arial" font-size="14.00">SENSE_P_1</text>
<polygon fill="none" stroke="black" points="98,-663 98,-686 132,-686 132,-663 98,-663"/>
<text text-anchor="start" x="111" y="-670.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-640 0,-663 98,-663 98,-640 0,-640"/>
<text text-anchor="start" x="9.5" y="-647.8" font-family="arial" font-size="14.00">SENSE_N_1</text>
<polygon fill="none" stroke="black" points="100,-640 100,-663 134,-663 134,-640 100,-640"/>
<text text-anchor="start" x="109" y="-647.8" font-family="arial" font-size="14.00">14</text>
<polygon fill="none" stroke="black" points="0,-617 0,-640 100,-640 100,-617 0,-617"/>
<text text-anchor="start" x="9.5" y="-624.8" font-family="arial" font-size="14.00">SENSE_P_2</text>
<polygon fill="none" stroke="black" points="100,-617 100,-640 134,-640 134,-617 100,-617"/>
<text text-anchor="start" x="113" y="-624.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-594 0,-617 100,-617 100,-594 0,-594"/>
<polygon fill="none" stroke="black" points="98,-640 98,-663 132,-663 132,-640 98,-640"/>
<text text-anchor="start" x="107" y="-647.8" font-family="arial" font-size="14.00">14</text>
<polygon fill="none" stroke="black" points="0,-617 0,-640 98,-640 98,-617 0,-617"/>
<text text-anchor="start" x="10" y="-624.8" font-family="arial" font-size="14.00">SENSE_P_2</text>
<polygon fill="none" stroke="black" points="98,-617 98,-640 132,-640 132,-617 98,-617"/>
<text text-anchor="start" x="111" y="-624.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-594 0,-617 98,-617 98,-594 0,-594"/>
<text text-anchor="start" x="9.5" y="-601.8" font-family="arial" font-size="14.00">SENSE_N_2</text>
<polygon fill="none" stroke="black" points="100,-594 100,-617 134,-617 134,-594 100,-594"/>
<text text-anchor="start" x="109" y="-601.8" font-family="arial" font-size="14.00">16</text>
<polygon fill="none" stroke="black" points="0,-571 0,-594 100,-594 100,-571 0,-571"/>
<text text-anchor="start" x="9.5" y="-578.8" font-family="arial" font-size="14.00">SENSE_P_3</text>
<polygon fill="none" stroke="black" points="100,-571 100,-594 134,-594 134,-571 100,-571"/>
<text text-anchor="start" x="113" y="-578.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-548 0,-571 100,-571 100,-548 0,-548"/>
<polygon fill="none" stroke="black" points="98,-594 98,-617 132,-617 132,-594 98,-594"/>
<text text-anchor="start" x="107" y="-601.8" font-family="arial" font-size="14.00">16</text>
<polygon fill="none" stroke="black" points="0,-571 0,-594 98,-594 98,-571 0,-571"/>
<text text-anchor="start" x="10" y="-578.8" font-family="arial" font-size="14.00">SENSE_P_3</text>
<polygon fill="none" stroke="black" points="98,-571 98,-594 132,-594 132,-571 98,-571"/>
<text text-anchor="start" x="111" y="-578.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-548 0,-571 98,-571 98,-548 0,-548"/>
<text text-anchor="start" x="9.5" y="-555.8" font-family="arial" font-size="14.00">SENSE_N_3</text>
<polygon fill="none" stroke="black" points="100,-548 100,-571 134,-571 134,-548 100,-548"/>
<text text-anchor="start" x="109" y="-555.8" font-family="arial" font-size="14.00">18</text>
<polygon fill="none" stroke="black" points="0,-525 0,-548 100,-548 100,-525 0,-525"/>
<text text-anchor="start" x="9.5" y="-532.8" font-family="arial" font-size="14.00">SENSE_P_4</text>
<polygon fill="none" stroke="black" points="100,-525 100,-548 134,-548 134,-525 100,-525"/>
<text text-anchor="start" x="113" y="-532.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-502 0,-525 100,-525 100,-502 0,-502"/>
<polygon fill="none" stroke="black" points="98,-548 98,-571 132,-571 132,-548 98,-548"/>
<text text-anchor="start" x="107" y="-555.8" font-family="arial" font-size="14.00">18</text>
<polygon fill="none" stroke="black" points="0,-525 0,-548 98,-548 98,-525 0,-525"/>
<text text-anchor="start" x="10" y="-532.8" font-family="arial" font-size="14.00">SENSE_P_4</text>
<polygon fill="none" stroke="black" points="98,-525 98,-548 132,-548 132,-525 98,-525"/>
<text text-anchor="start" x="111" y="-532.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-502 0,-525 98,-525 98,-502 0,-502"/>
<text text-anchor="start" x="9.5" y="-509.8" font-family="arial" font-size="14.00">SENSE_N_4</text>
<polygon fill="none" stroke="black" points="100,-502 100,-525 134,-525 134,-502 100,-502"/>
<text text-anchor="start" x="109" y="-509.8" font-family="arial" font-size="14.00">20</text>
<polygon fill="none" stroke="black" points="0,-479 0,-502 100,-502 100,-479 0,-479"/>
<text text-anchor="start" x="9.5" y="-486.8" font-family="arial" font-size="14.00">SENSE_P_5</text>
<polygon fill="none" stroke="black" points="100,-479 100,-502 134,-502 134,-479 100,-479"/>
<text text-anchor="start" x="113" y="-486.8" font-family="arial" font-size="14.00">9</text>
<polygon fill="none" stroke="black" points="0,-456 0,-479 100,-479 100,-456 0,-456"/>
<polygon fill="none" stroke="black" points="98,-502 98,-525 132,-525 132,-502 98,-502"/>
<text text-anchor="start" x="107" y="-509.8" font-family="arial" font-size="14.00">20</text>
<polygon fill="none" stroke="black" points="0,-479 0,-502 98,-502 98,-479 0,-479"/>
<text text-anchor="start" x="10" y="-486.8" font-family="arial" font-size="14.00">SENSE_P_5</text>
<polygon fill="none" stroke="black" points="98,-479 98,-502 132,-502 132,-479 98,-479"/>
<text text-anchor="start" x="111" y="-486.8" font-family="arial" font-size="14.00">9</text>
<polygon fill="none" stroke="black" points="0,-456 0,-479 98,-479 98,-456 0,-456"/>
<text text-anchor="start" x="9.5" y="-463.8" font-family="arial" font-size="14.00">SENSE_N_5</text>
<polygon fill="none" stroke="black" points="100,-456 100,-479 134,-479 134,-456 100,-456"/>
<text text-anchor="start" x="109" y="-463.8" font-family="arial" font-size="14.00">22</text>
<polygon fill="none" stroke="black" points="0,-433 0,-456 100,-456 100,-433 0,-433"/>
<text text-anchor="start" x="9.5" y="-440.8" font-family="arial" font-size="14.00">SENSE_P_6</text>
<polygon fill="none" stroke="black" points="100,-433 100,-456 134,-456 134,-433 100,-433"/>
<text text-anchor="start" x="109.5" y="-440.8" font-family="arial" font-size="14.00">11</text>
<polygon fill="none" stroke="black" points="0,-410 0,-433 100,-433 100,-410 0,-410"/>
<polygon fill="none" stroke="black" points="98,-456 98,-479 132,-479 132,-456 98,-456"/>
<text text-anchor="start" x="107" y="-463.8" font-family="arial" font-size="14.00">22</text>
<polygon fill="none" stroke="black" points="0,-433 0,-456 98,-456 98,-433 0,-433"/>
<text text-anchor="start" x="10" y="-440.8" font-family="arial" font-size="14.00">SENSE_P_6</text>
<polygon fill="none" stroke="black" points="98,-433 98,-456 132,-456 132,-433 98,-433"/>
<text text-anchor="start" x="107.5" y="-440.8" font-family="arial" font-size="14.00">11</text>
<polygon fill="none" stroke="black" points="0,-410 0,-433 98,-433 98,-410 0,-410"/>
<text text-anchor="start" x="9.5" y="-417.8" font-family="arial" font-size="14.00">SENSE_N_6</text>
<polygon fill="none" stroke="black" points="100,-410 100,-433 134,-433 134,-410 100,-410"/>
<text text-anchor="start" x="109" y="-417.8" font-family="arial" font-size="14.00">24</text>
<polygon fill="none" stroke="black" points="0,-387 0,-410 100,-410 100,-387 0,-387"/>
<text text-anchor="start" x="34" y="-394.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="100,-387 100,-410 134,-410 134,-387 100,-387"/>
<text text-anchor="start" x="109" y="-394.8" font-family="arial" font-size="14.00">13</text>
<polygon fill="none" stroke="black" points="98,-410 98,-433 132,-433 132,-410 98,-410"/>
<text text-anchor="start" x="107" y="-417.8" font-family="arial" font-size="14.00">24</text>
<polygon fill="none" stroke="black" points="0,-387 0,-410 98,-410 98,-387 0,-387"/>
<text text-anchor="start" x="33.5" y="-394.8" font-family="arial" font-size="14.00">GND</text>
<polygon fill="none" stroke="black" points="98,-387 98,-410 132,-410 132,-387 98,-387"/>
<text text-anchor="start" x="107" y="-394.8" font-family="arial" font-size="14.00">13</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="552,-800 278,-800 278,-328 552,-328 552,-800"/>
<polygon fill="none" stroke="black" points="278,-777 278,-800 552,-800 552,-777 278,-777"/>
<text text-anchor="start" x="404.5" y="-784.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="278,-754 278,-777 335,-777 335,-754 278,-754"/>
<text text-anchor="start" x="295" y="-761.8" font-family="arial" font-size="14.00">12x</text>
<polygon fill="none" stroke="black" points="335,-754 335,-777 428,-777 428,-754 335,-754"/>
<text text-anchor="start" x="351.5" y="-761.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="428,-754 428,-777 483,-777 483,-754 428,-754"/>
<text text-anchor="start" x="444.5" y="-761.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="483,-754 483,-777 552,-777 552,-754 483,-754"/>
<text text-anchor="start" x="499.5" y="-761.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="339" y="-740.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="280" y="-721.8" font-family="arial" font-size="14.00">X1:14:SENSE_N_1</text>
<text text-anchor="start" x="418" y="-721.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="509.5" y="-721.8" font-family="arial" font-size="14.00">X2:z2</text>
<polygon fill="#000000" stroke="transparent" points="278,-714 278,-716 552,-716 552,-714 278,-714"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-712 278,-714 552,-714 552,-712 278,-712"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-710 278,-712 552,-712 552,-710 278,-710"/>
<polygon fill="#ffffff" stroke="transparent" points="278,-708 278,-710 552,-710 552,-708 278,-708"/>
<polygon fill="#000000" stroke="transparent" points="278,-706 278,-708 552,-708 552,-706 278,-706"/>
<text text-anchor="start" x="284.5" y="-692.8" font-family="arial" font-size="14.00">X1:1:SENSE_P_1</text>
<text text-anchor="start" x="420" y="-692.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="509" y="-692.8" font-family="arial" font-size="14.00">X2:d4</text>
<polygon fill="#000000" stroke="transparent" points="278,-685 278,-687 552,-687 552,-685 278,-685"/>
<polygon fill="#895956" stroke="transparent" points="278,-683 278,-685 552,-685 552,-683 278,-683"/>
<polygon fill="#895956" stroke="transparent" points="278,-681 278,-683 552,-683 552,-681 278,-681"/>
<polygon fill="#895956" stroke="transparent" points="278,-679 278,-681 552,-681 552,-679 278,-679"/>
<polygon fill="#000000" stroke="transparent" points="278,-677 278,-679 552,-679 552,-677 278,-677"/>
<text text-anchor="start" x="280" y="-663.8" font-family="arial" font-size="14.00">X1:16:SENSE_N_2</text>
<text text-anchor="start" x="419.5" y="-663.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="509.5" y="-663.8" font-family="arial" font-size="14.00">X2:z8</text>
<polygon fill="#000000" stroke="transparent" points="278,-656 278,-658 552,-658 552,-656 278,-656"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-654 278,-656 552,-656 552,-654 278,-654"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-652 278,-654 552,-654 552,-652 278,-652"/>
<polygon fill="#00ff00" stroke="transparent" points="278,-650 278,-652 552,-652 552,-650 278,-650"/>
<polygon fill="#000000" stroke="transparent" points="278,-648 278,-650 552,-650 552,-648 278,-648"/>
<text text-anchor="start" x="284.5" y="-634.8" font-family="arial" font-size="14.00">X1:3:SENSE_P_2</text>
<text text-anchor="start" x="420.5" y="-634.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-634.8" font-family="arial" font-size="14.00">X2:d10</text>
<polygon fill="#000000" stroke="transparent" points="278,-627 278,-629 552,-629 552,-627 278,-627"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-625 278,-627 552,-627 552,-625 278,-625"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-623 278,-625 552,-625 552,-623 278,-623"/>
<polygon fill="#ffff00" stroke="transparent" points="278,-621 278,-623 552,-623 552,-621 278,-621"/>
<polygon fill="#000000" stroke="transparent" points="278,-619 278,-621 552,-621 552,-619 278,-619"/>
<text text-anchor="start" x="280" y="-605.8" font-family="arial" font-size="14.00">X1:18:SENSE_N_3</text>
<text text-anchor="start" x="420" y="-605.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:GY &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-605.8" font-family="arial" font-size="14.00">X2:z14</text>
<polygon fill="#000000" stroke="transparent" points="278,-598 278,-600 552,-600 552,-598 278,-598"/>
<polygon fill="#999999" stroke="transparent" points="278,-596 278,-598 552,-598 552,-596 278,-596"/>
<polygon fill="#999999" stroke="transparent" points="278,-594 278,-596 552,-596 552,-594 278,-594"/>
<polygon fill="#999999" stroke="transparent" points="278,-592 278,-594 552,-594 552,-592 278,-592"/>
<polygon fill="#000000" stroke="transparent" points="278,-590 278,-592 552,-592 552,-590 278,-590"/>
<text text-anchor="start" x="284.5" y="-576.8" font-family="arial" font-size="14.00">X1:5:SENSE_P_3</text>
<text text-anchor="start" x="420.5" y="-576.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-576.8" font-family="arial" font-size="14.00">X2:d16</text>
<polygon fill="#000000" stroke="transparent" points="278,-569 278,-571 552,-571 552,-569 278,-569"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-567 278,-569 552,-569 552,-567 278,-567"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-565 278,-567 552,-567 552,-565 278,-565"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-563 278,-565 552,-565 552,-563 278,-563"/>
<polygon fill="#000000" stroke="transparent" points="278,-561 278,-563 552,-563 552,-561 278,-561"/>
<text text-anchor="start" x="280" y="-547.8" font-family="arial" font-size="14.00">X1:20:SENSE_N_4</text>
<text text-anchor="start" x="420" y="-547.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-547.8" font-family="arial" font-size="14.00">X2:z18</text>
<polygon fill="#000000" stroke="transparent" points="278,-540 278,-542 552,-542 552,-540 278,-540"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-538 278,-540 552,-540 552,-538 278,-538"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-536 278,-538 552,-538 552,-536 278,-536"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-534 278,-536 552,-536 552,-534 278,-534"/>
<polygon fill="#000000" stroke="transparent" points="278,-532 278,-534 552,-534 552,-532 278,-532"/>
<text text-anchor="start" x="284.5" y="-518.8" font-family="arial" font-size="14.00">X1:7:SENSE_P_4</text>
<text text-anchor="start" x="420" y="-518.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-518.8" font-family="arial" font-size="14.00">X2:d20</text>
<polygon fill="#000000" stroke="transparent" points="278,-511 278,-513 552,-513 552,-511 278,-511"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-509 278,-511 552,-511 552,-509 278,-509"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-507 278,-509 552,-509 552,-507 278,-507"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-505 278,-507 552,-507 552,-505 278,-505"/>
<polygon fill="#000000" stroke="transparent" points="278,-503 278,-505 552,-505 552,-503 278,-503"/>
<text text-anchor="start" x="280" y="-489.8" font-family="arial" font-size="14.00">X1:22:SENSE_N_5</text>
<text text-anchor="start" x="420.5" y="-489.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;9:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-489.8" font-family="arial" font-size="14.00">X2:z24</text>
<polygon fill="#000000" stroke="transparent" points="278,-482 278,-484 552,-484 552,-482 278,-482"/>
<polygon fill="#000000" stroke="transparent" points="278,-480 278,-482 552,-482 552,-480 278,-480"/>
<polygon fill="#000000" stroke="transparent" points="278,-478 278,-480 552,-480 552,-478 278,-478"/>
<polygon fill="#000000" stroke="transparent" points="278,-476 278,-478 552,-478 552,-476 278,-476"/>
<polygon fill="#000000" stroke="transparent" points="278,-474 278,-476 552,-476 552,-474 278,-474"/>
<text text-anchor="start" x="284.5" y="-460.8" font-family="arial" font-size="14.00">X1:9:SENSE_P_5</text>
<text text-anchor="start" x="417" y="-460.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;10:VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-460.8" font-family="arial" font-size="14.00">X2:d26</text>
<polygon fill="#000000" stroke="transparent" points="278,-453 278,-455 552,-455 552,-453 278,-453"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-451 278,-453 552,-453 552,-451 278,-451"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-449 278,-451 552,-451 552,-449 278,-449"/>
<polygon fill="#8000ff" stroke="transparent" points="278,-447 278,-449 552,-449 552,-447 278,-447"/>
<polygon fill="#000000" stroke="transparent" points="278,-445 278,-447 552,-447 552,-445 278,-445"/>
<text text-anchor="start" x="280" y="-431.8" font-family="arial" font-size="14.00">X1:24:SENSE_N_6</text>
<text text-anchor="start" x="407" y="-431.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;11:GYPK &#160;&#160;&#160;</text>
<text text-anchor="start" x="505.5" y="-431.8" font-family="arial" font-size="14.00">X2:z30</text>
<polygon fill="#000000" stroke="transparent" points="278,-424 278,-426 552,-426 552,-424 278,-424"/>
<polygon fill="#999999" stroke="transparent" points="278,-422 278,-424 552,-424 552,-422 278,-422"/>
<polygon fill="#ff66cc" stroke="transparent" points="278,-420 278,-422 552,-422 552,-420 278,-420"/>
<polygon fill="#999999" stroke="transparent" points="278,-418 278,-420 552,-420 552,-418 278,-418"/>
<polygon fill="#000000" stroke="transparent" points="278,-416 278,-418 552,-418 552,-416 278,-416"/>
<text text-anchor="start" x="281" y="-402.8" font-family="arial" font-size="14.00">X1:11:SENSE_P_6</text>
<text text-anchor="start" x="406" y="-402.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;12:RDBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="505" y="-402.8" font-family="arial" font-size="14.00">X2:d32</text>
<polygon fill="#000000" stroke="transparent" points="278,-395 278,-397 552,-397 552,-395 278,-395"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-393 278,-395 552,-395 552,-393 278,-393"/>
<polygon fill="#0066ff" stroke="transparent" points="278,-391 278,-393 552,-393 552,-391 278,-391"/>
<polygon fill="#ff0000" stroke="transparent" points="278,-389 278,-391 552,-391 552,-389 278,-389"/>
<polygon fill="#000000" stroke="transparent" points="278,-387 278,-389 552,-389 552,-387 278,-387"/>
<text text-anchor="start" x="339" y="-373.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="305" y="-354.8" font-family="arial" font-size="14.00">X1:13:GND</text>
<text text-anchor="start" x="434" y="-354.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="transparent" points="278,-347 278,-349 552,-349 552,-347 278,-347"/>
<text text-anchor="start" x="339" y="-333.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="540,-800 276,-800 276,-328 540,-328 540,-800"/>
<polygon fill="none" stroke="black" points="276,-777 276,-800 540,-800 540,-777 276,-777"/>
<text text-anchor="start" x="397" y="-784.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="276,-754 276,-777 330,-777 330,-754 276,-754"/>
<text text-anchor="start" x="292" y="-761.8" font-family="arial" font-size="14.00">12x</text>
<polygon fill="none" stroke="black" points="330,-754 330,-777 421,-777 421,-754 330,-754"/>
<text text-anchor="start" x="346" y="-761.8" font-family="arial" font-size="14.00">0.25 mm²</text>
<polygon fill="none" stroke="black" points="421,-754 421,-777 474,-777 474,-754 421,-754"/>
<text text-anchor="start" x="436.5" y="-761.8" font-family="arial" font-size="14.00">+ S</text>
<polygon fill="none" stroke="black" points="474,-754 474,-777 540,-777 540,-754 474,-754"/>
<text text-anchor="start" x="489.5" y="-761.8" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="335" y="-740.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="278" y="-721.8" font-family="arial" font-size="14.00">X1:14:SENSE_N_1</text>
<text text-anchor="start" x="411" y="-721.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="499" y="-721.8" font-family="arial" font-size="14.00">X2:z2</text>
<polygon fill="#000000" stroke="none" points="276,-714 276,-716 540,-716 540,-714 276,-714"/>
<polygon fill="#ffffff" stroke="none" points="276,-712 276,-714 540,-714 540,-712 276,-712"/>
<polygon fill="#ffffff" stroke="none" points="276,-710 276,-712 540,-712 540,-710 276,-710"/>
<polygon fill="#ffffff" stroke="none" points="276,-708 276,-710 540,-710 540,-708 276,-708"/>
<polygon fill="#000000" stroke="none" points="276,-706 276,-708 540,-708 540,-706 276,-706"/>
<text text-anchor="start" x="282.5" y="-692.8" font-family="arial" font-size="14.00">X1:1:SENSE_P_1</text>
<text text-anchor="start" x="413.5" y="-692.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="498.5" y="-692.8" font-family="arial" font-size="14.00">X2:d4</text>
<polygon fill="#000000" stroke="none" points="276,-685 276,-687 540,-687 540,-685 276,-685"/>
<polygon fill="#895956" stroke="none" points="276,-683 276,-685 540,-685 540,-683 276,-683"/>
<polygon fill="#895956" stroke="none" points="276,-681 276,-683 540,-683 540,-681 276,-681"/>
<polygon fill="#895956" stroke="none" points="276,-679 276,-681 540,-681 540,-679 276,-679"/>
<polygon fill="#000000" stroke="none" points="276,-677 276,-679 540,-679 540,-677 276,-677"/>
<text text-anchor="start" x="278" y="-663.8" font-family="arial" font-size="14.00">X1:16:SENSE_N_2</text>
<text text-anchor="start" x="412" y="-663.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="499" y="-663.8" font-family="arial" font-size="14.00">X2:z8</text>
<polygon fill="#000000" stroke="none" points="276,-656 276,-658 540,-658 540,-656 276,-656"/>
<polygon fill="#00ff00" stroke="none" points="276,-654 276,-656 540,-656 540,-654 276,-654"/>
<polygon fill="#00ff00" stroke="none" points="276,-652 276,-654 540,-654 540,-652 276,-652"/>
<polygon fill="#00ff00" stroke="none" points="276,-650 276,-652 540,-652 540,-650 276,-650"/>
<polygon fill="#000000" stroke="none" points="276,-648 276,-650 540,-650 540,-648 276,-648"/>
<text text-anchor="start" x="282.5" y="-634.8" font-family="arial" font-size="14.00">X1:3:SENSE_P_2</text>
<text text-anchor="start" x="413.5" y="-634.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-634.8" font-family="arial" font-size="14.00">X2:d10</text>
<polygon fill="#000000" stroke="none" points="276,-627 276,-629 540,-629 540,-627 276,-627"/>
<polygon fill="#ffff00" stroke="none" points="276,-625 276,-627 540,-627 540,-625 276,-625"/>
<polygon fill="#ffff00" stroke="none" points="276,-623 276,-625 540,-625 540,-623 276,-623"/>
<polygon fill="#ffff00" stroke="none" points="276,-621 276,-623 540,-623 540,-621 276,-621"/>
<polygon fill="#000000" stroke="none" points="276,-619 276,-621 540,-621 540,-619 276,-619"/>
<text text-anchor="start" x="278" y="-605.8" font-family="arial" font-size="14.00">X1:18:SENSE_N_3</text>
<text text-anchor="start" x="412.5" y="-605.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:GY &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-605.8" font-family="arial" font-size="14.00">X2:z14</text>
<polygon fill="#000000" stroke="none" points="276,-598 276,-600 540,-600 540,-598 276,-598"/>
<polygon fill="#999999" stroke="none" points="276,-596 276,-598 540,-598 540,-596 276,-596"/>
<polygon fill="#999999" stroke="none" points="276,-594 276,-596 540,-596 540,-594 276,-594"/>
<polygon fill="#999999" stroke="none" points="276,-592 276,-594 540,-594 540,-592 276,-592"/>
<polygon fill="#000000" stroke="none" points="276,-590 276,-592 540,-592 540,-590 276,-590"/>
<text text-anchor="start" x="282.5" y="-576.8" font-family="arial" font-size="14.00">X1:5:SENSE_P_3</text>
<text text-anchor="start" x="413.5" y="-576.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:PK &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-576.8" font-family="arial" font-size="14.00">X2:d16</text>
<polygon fill="#000000" stroke="none" points="276,-569 276,-571 540,-571 540,-569 276,-569"/>
<polygon fill="#ff66cc" stroke="none" points="276,-567 276,-569 540,-569 540,-567 276,-567"/>
<polygon fill="#ff66cc" stroke="none" points="276,-565 276,-567 540,-567 540,-565 276,-565"/>
<polygon fill="#ff66cc" stroke="none" points="276,-563 276,-565 540,-565 540,-563 276,-563"/>
<polygon fill="#000000" stroke="none" points="276,-561 276,-563 540,-563 540,-561 276,-561"/>
<text text-anchor="start" x="278" y="-547.8" font-family="arial" font-size="14.00">X1:20:SENSE_N_4</text>
<text text-anchor="start" x="413.5" y="-547.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-547.8" font-family="arial" font-size="14.00">X2:z18</text>
<polygon fill="#000000" stroke="none" points="276,-540 276,-542 540,-542 540,-540 276,-540"/>
<polygon fill="#0066ff" stroke="none" points="276,-538 276,-540 540,-540 540,-538 276,-538"/>
<polygon fill="#0066ff" stroke="none" points="276,-536 276,-538 540,-538 540,-536 276,-536"/>
<polygon fill="#0066ff" stroke="none" points="276,-534 276,-536 540,-536 540,-534 276,-534"/>
<polygon fill="#000000" stroke="none" points="276,-532 276,-534 540,-534 540,-532 276,-532"/>
<text text-anchor="start" x="282.5" y="-518.8" font-family="arial" font-size="14.00">X1:7:SENSE_P_4</text>
<text text-anchor="start" x="413" y="-518.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-518.8" font-family="arial" font-size="14.00">X2:d20</text>
<polygon fill="#000000" stroke="none" points="276,-511 276,-513 540,-513 540,-511 276,-511"/>
<polygon fill="#ff0000" stroke="none" points="276,-509 276,-511 540,-511 540,-509 276,-509"/>
<polygon fill="#ff0000" stroke="none" points="276,-507 276,-509 540,-509 540,-507 276,-507"/>
<polygon fill="#ff0000" stroke="none" points="276,-505 276,-507 540,-507 540,-505 276,-505"/>
<polygon fill="#000000" stroke="none" points="276,-503 276,-505 540,-505 540,-503 276,-503"/>
<text text-anchor="start" x="278" y="-489.8" font-family="arial" font-size="14.00">X1:22:SENSE_N_5</text>
<text text-anchor="start" x="413.5" y="-489.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;9:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-489.8" font-family="arial" font-size="14.00">X2:z24</text>
<polygon fill="#000000" stroke="none" points="276,-482 276,-484 540,-484 540,-482 276,-482"/>
<polygon fill="#000000" stroke="none" points="276,-480 276,-482 540,-482 540,-480 276,-480"/>
<polygon fill="#000000" stroke="none" points="276,-478 276,-480 540,-480 540,-478 276,-478"/>
<polygon fill="#000000" stroke="none" points="276,-476 276,-478 540,-478 540,-476 276,-476"/>
<polygon fill="#000000" stroke="none" points="276,-474 276,-476 540,-476 540,-474 276,-474"/>
<text text-anchor="start" x="282.5" y="-460.8" font-family="arial" font-size="14.00">X1:9:SENSE_P_5</text>
<text text-anchor="start" x="410.5" y="-460.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;10:VT &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-460.8" font-family="arial" font-size="14.00">X2:d26</text>
<polygon fill="#000000" stroke="none" points="276,-453 276,-455 540,-455 540,-453 276,-453"/>
<polygon fill="#8000ff" stroke="none" points="276,-451 276,-453 540,-453 540,-451 276,-451"/>
<polygon fill="#8000ff" stroke="none" points="276,-449 276,-451 540,-451 540,-449 276,-449"/>
<polygon fill="#8000ff" stroke="none" points="276,-447 276,-449 540,-449 540,-447 276,-447"/>
<polygon fill="#000000" stroke="none" points="276,-445 276,-447 540,-447 540,-445 276,-445"/>
<text text-anchor="start" x="278" y="-431.8" font-family="arial" font-size="14.00">X1:24:SENSE_N_6</text>
<text text-anchor="start" x="400" y="-431.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;11:GYPK &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-431.8" font-family="arial" font-size="14.00">X2:z30</text>
<polygon fill="#000000" stroke="none" points="276,-424 276,-426 540,-426 540,-424 276,-424"/>
<polygon fill="#999999" stroke="none" points="276,-422 276,-424 540,-424 540,-422 276,-422"/>
<polygon fill="#ff66cc" stroke="none" points="276,-420 276,-422 540,-422 540,-420 276,-420"/>
<polygon fill="#999999" stroke="none" points="276,-418 276,-420 540,-420 540,-418 276,-418"/>
<polygon fill="#000000" stroke="none" points="276,-416 276,-418 540,-418 540,-416 276,-416"/>
<text text-anchor="start" x="279" y="-402.8" font-family="arial" font-size="14.00">X1:11:SENSE_P_6</text>
<text text-anchor="start" x="400" y="-402.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;12:RDBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="495" y="-402.8" font-family="arial" font-size="14.00">X2:d32</text>
<polygon fill="#000000" stroke="none" points="276,-395 276,-397 540,-397 540,-395 276,-395"/>
<polygon fill="#ff0000" stroke="none" points="276,-393 276,-395 540,-395 540,-393 276,-393"/>
<polygon fill="#0066ff" stroke="none" points="276,-391 276,-393 540,-393 540,-391 276,-391"/>
<polygon fill="#ff0000" stroke="none" points="276,-389 276,-391 540,-391 540,-389 276,-389"/>
<polygon fill="#000000" stroke="none" points="276,-387 276,-389 540,-389 540,-387 276,-387"/>
<text text-anchor="start" x="335" y="-373.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="302" y="-354.8" font-family="arial" font-size="14.00">X1:13:GND</text>
<text text-anchor="start" x="426.5" y="-354.8" font-family="arial" font-size="14.00">Shield</text>
<polygon fill="#000000" stroke="none" points="276,-347 276,-349 540,-349 540,-347 276,-347"/>
<text text-anchor="start" x="335" y="-333.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-671C199.69,-671.34 215.54,-678.34 278,-678"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-673C198.88,-673.17 214.73,-680.17 278,-680"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-675C198.08,-675 213.92,-682 278,-682"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M134,-677C197.27,-676.83 213.12,-683.83 278,-684"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-679C196.46,-678.66 212.31,-685.66 278,-686"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-671C197.69,-671.34 213.54,-678.34 276,-678"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M132,-673C196.88,-673.17 212.73,-680.17 276,-680"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M132,-675C196.08,-675 211.92,-682 276,-682"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M132,-677C195.27,-676.83 211.12,-683.83 276,-684"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-679C194.46,-678.66 210.31,-685.66 276,-686"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-648C207.15,-651.62 212.82,-710.62 278,-707"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-650C205.15,-651.81 210.83,-710.81 278,-709"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-652C203.16,-652 208.84,-711 278,-711"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M134,-654C201.17,-652.19 206.85,-711.19 278,-713"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-656C199.18,-652.38 204.85,-711.38 278,-715"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-648C205.15,-651.62 210.82,-710.62 276,-707"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M132,-650C203.15,-651.81 208.83,-710.81 276,-709"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M132,-652C201.16,-652 206.84,-711 276,-711"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M132,-654C199.17,-652.19 204.85,-711.19 276,-713"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-656C197.18,-652.38 202.85,-711.38 276,-715"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-625C196.84,-625.18 212.76,-620.18 278,-620"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-627C197.44,-627.09 213.36,-622.09 278,-622"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-629C198.04,-629 213.96,-624 278,-624"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M134,-631C198.64,-630.91 214.56,-625.91 278,-626"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-633C199.24,-632.82 215.16,-627.82 278,-628"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-625C194.84,-625.18 210.76,-620.18 276,-620"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M132,-627C195.44,-627.09 211.36,-622.09 276,-622"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M132,-629C196.04,-629 211.96,-624 276,-624"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M132,-631C196.64,-630.91 212.56,-625.91 276,-626"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-633C197.24,-632.82 213.16,-627.82 276,-628"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-602C205.25,-605.22 214.6,-652.22 278,-649"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-604C203.28,-605.61 212.64,-652.61 278,-651"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-606C201.32,-606 210.68,-653 278,-653"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M134,-608C199.36,-606.39 208.72,-653.39 278,-655"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-610C197.4,-606.78 206.75,-653.78 278,-657"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-602C203.25,-605.22 212.6,-652.22 276,-649"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M132,-604C201.28,-605.61 210.64,-652.61 276,-651"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M132,-606C199.32,-606 208.68,-653 276,-653"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M132,-608C197.36,-606.39 206.72,-653.39 276,-655"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-610C195.4,-606.78 204.75,-653.78 276,-657"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-579C195.45,-580.34 210.57,-563.34 278,-562"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-581C196.95,-581.67 212.06,-564.67 278,-564"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-583C198.44,-583 213.56,-566 278,-566"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-585C199.94,-584.33 215.05,-567.33 278,-568"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-587C201.43,-585.66 216.55,-568.66 278,-570"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-579C193.45,-580.34 208.57,-563.34 276,-562"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M132,-581C194.95,-581.67 210.06,-564.67 276,-564"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M132,-583C196.44,-583 211.56,-566 276,-566"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M132,-585C197.94,-584.33 213.05,-567.33 276,-568"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-587C199.43,-585.66 214.55,-568.66 276,-570"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-555C203.76,-557.73 215.82,-593.73 278,-591"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-557C201.87,-558.36 213.93,-594.36 278,-593"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-559C199.97,-559 212.03,-595 278,-595"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-561C198.07,-559.64 210.13,-595.64 278,-597"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-563C196.18,-560.27 208.24,-596.27 278,-599"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-555C201.76,-557.73 213.82,-593.73 276,-591"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M132,-557C199.87,-558.36 211.93,-594.36 276,-593"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M132,-559C197.97,-559 210.03,-595 276,-595"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M132,-561C196.07,-559.64 208.13,-595.64 276,-597"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-563C194.18,-560.27 206.24,-596.27 276,-599"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-532C195.6,-534.25 209.2,-506.25 278,-504"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-534C197.4,-535.13 211,-507.13 278,-506"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-536C199.2,-536 212.8,-508 278,-508"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-538C201,-536.87 214.6,-508.87 278,-510"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-540C202.8,-537.75 216.4,-509.75 278,-512"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-532C193.6,-534.25 207.2,-506.25 276,-504"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M132,-534C195.4,-535.13 209,-507.13 276,-506"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M132,-536C197.2,-536 210.8,-508 276,-508"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M132,-538C199,-536.87 212.6,-508.87 276,-510"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-540C200.8,-537.75 214.4,-509.75 276,-512"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-509C202.32,-510.96 216.56,-534.96 278,-533"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-511C200.6,-511.98 214.84,-535.98 278,-535"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-513C198.88,-513 213.12,-537 278,-537"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-515C197.16,-514.02 211.4,-538.02 278,-539"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-517C195.44,-515.04 209.68,-539.04 278,-541"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-509C200.32,-510.96 214.56,-534.96 276,-533"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M132,-511C198.6,-511.98 212.84,-535.98 276,-535"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M132,-513C196.88,-513 211.12,-537 276,-537"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M132,-515C195.16,-514.02 209.4,-538.02 276,-539"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-517C193.44,-515.04 207.68,-539.04 276,-541"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge17" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-486C196.57,-488.93 207.72,-448.93 278,-446"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-488C198.5,-489.46 209.65,-449.46 278,-448"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-490C200.42,-490 211.58,-450 278,-450"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M134,-492C202.35,-490.54 213.5,-450.54 278,-452"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-494C204.28,-491.07 215.43,-451.07 278,-454"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-486C194.57,-488.93 205.72,-448.93 276,-446"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M132,-488C196.5,-489.46 207.65,-449.46 276,-448"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M132,-490C198.42,-490 209.58,-450 276,-450"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M132,-492C200.35,-490.54 211.5,-450.54 276,-452"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-494C202.28,-491.07 213.43,-451.07 276,-454"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge19" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-463C200.66,-463.83 216.22,-475.83 278,-475"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-465C199.44,-465.42 215,-477.42 278,-477"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-467C198.22,-467 213.78,-479 278,-479"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-469C197,-468.58 212.56,-480.58 278,-481"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-471C195.78,-470.17 211.34,-482.17 278,-483"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-463C198.66,-463.83 214.22,-475.83 276,-475"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-465C197.44,-465.42 213,-477.42 276,-477"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-467C196.22,-467 211.78,-479 276,-479"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-469C195,-468.58 210.56,-480.58 276,-481"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-471C193.78,-470.17 209.34,-482.17 276,-483"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge21" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-440C198.09,-443.4 206,-391.4 278,-388"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-442C200.07,-443.7 207.98,-391.7 278,-390"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M134,-444C202.05,-444 209.95,-392 278,-392"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M134,-446C204.02,-444.3 211.93,-392.3 278,-394"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-448C206,-444.6 213.91,-392.6 278,-396"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-440C196.09,-443.4 204,-391.4 276,-388"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M132,-442C198.07,-443.7 205.98,-391.7 276,-390"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M132,-444C200.05,-444 207.95,-392 276,-392"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M132,-446C202.02,-444.3 209.93,-392.3 276,-394"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-448C204,-444.6 211.91,-392.6 276,-396"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge23" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-417C198,-417 214,-417 278,-417"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-419C198,-419 214,-419 278,-419"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M134,-421C198,-421 214,-421 278,-421"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M134,-423C198,-423 214,-423 278,-423"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-425C198,-425 214,-425 278,-425"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-417C196,-417 212,-417 276,-417"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M132,-419C196,-419 212,-419 276,-419"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M132,-421C196,-421 212,-421 276,-421"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M132,-423C196,-423 212,-423 276,-423"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-425C196,-425 212,-425 276,-425"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge25" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M134,-398C201.75,-398 210.25,-348 278,-348"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M132,-398C199.75,-398 208.25,-348 276,-348"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="827,-1150 696,-1150 696,0 827,0 827,-1150"/>
<polygon fill="none" stroke="black" points="696.5,-1127 696.5,-1150 827.5,-1150 827.5,-1127 696.5,-1127"/>
<text text-anchor="start" x="753" y="-1134.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="696.5,-1104 696.5,-1127 729.5,-1127 729.5,-1104 696.5,-1104"/>
<text text-anchor="start" x="700.5" y="-1111.8" font-family="arial" font-size="14.00">F48</text>
<polygon fill="none" stroke="black" points="729.5,-1104 729.5,-1127 780.5,-1127 780.5,-1104 729.5,-1104"/>
<text text-anchor="start" x="733.5" y="-1111.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="780.5,-1104 780.5,-1127 827.5,-1127 827.5,-1104 780.5,-1104"/>
<text text-anchor="start" x="784.5" y="-1111.8" font-family="arial" font-size="14.00">48&#45;pin</text>
<polygon fill="none" stroke="black" points="696.5,-1081 696.5,-1104 827.5,-1104 827.5,-1081 696.5,-1081"/>
<text text-anchor="start" x="754.5" y="-1088.8" font-family="arial" font-size="14.00">z2</text>
<polygon fill="none" stroke="black" points="696.5,-1058 696.5,-1081 827.5,-1081 827.5,-1058 696.5,-1058"/>
<text text-anchor="start" x="754" y="-1065.8" font-family="arial" font-size="14.00">b2</text>
<polygon fill="none" stroke="black" points="696.5,-1035 696.5,-1058 827.5,-1058 827.5,-1035 696.5,-1035"/>
<text text-anchor="start" x="754" y="-1042.8" font-family="arial" font-size="14.00">d2</text>
<polygon fill="none" stroke="black" points="696.5,-1012 696.5,-1035 827.5,-1035 827.5,-1012 696.5,-1012"/>
<text text-anchor="start" x="754.5" y="-1019.8" font-family="arial" font-size="14.00">z4</text>
<polygon fill="none" stroke="black" points="696.5,-989 696.5,-1012 827.5,-1012 827.5,-989 696.5,-989"/>
<text text-anchor="start" x="754" y="-996.8" font-family="arial" font-size="14.00">b4</text>
<polygon fill="none" stroke="black" points="696.5,-966 696.5,-989 827.5,-989 827.5,-966 696.5,-966"/>
<text text-anchor="start" x="754" y="-973.8" font-family="arial" font-size="14.00">d4</text>
<polygon fill="none" stroke="black" points="696.5,-943 696.5,-966 827.5,-966 827.5,-943 696.5,-943"/>
<text text-anchor="start" x="754.5" y="-950.8" font-family="arial" font-size="14.00">z6</text>
<polygon fill="none" stroke="black" points="696.5,-920 696.5,-943 827.5,-943 827.5,-920 696.5,-920"/>
<text text-anchor="start" x="754" y="-927.8" font-family="arial" font-size="14.00">b6</text>
<polygon fill="none" stroke="black" points="696.5,-897 696.5,-920 827.5,-920 827.5,-897 696.5,-897"/>
<text text-anchor="start" x="754" y="-904.8" font-family="arial" font-size="14.00">d6</text>
<polygon fill="none" stroke="black" points="696.5,-874 696.5,-897 827.5,-897 827.5,-874 696.5,-874"/>
<text text-anchor="start" x="754.5" y="-881.8" font-family="arial" font-size="14.00">z8</text>
<polygon fill="none" stroke="black" points="696.5,-851 696.5,-874 827.5,-874 827.5,-851 696.5,-851"/>
<text text-anchor="start" x="754" y="-858.8" font-family="arial" font-size="14.00">b8</text>
<polygon fill="none" stroke="black" points="696.5,-828 696.5,-851 827.5,-851 827.5,-828 696.5,-828"/>
<text text-anchor="start" x="754" y="-835.8" font-family="arial" font-size="14.00">d8</text>
<polygon fill="none" stroke="black" points="696.5,-805 696.5,-828 827.5,-828 827.5,-805 696.5,-805"/>
<text text-anchor="start" x="750.5" y="-812.8" font-family="arial" font-size="14.00">z10</text>
<polygon fill="none" stroke="black" points="696.5,-782 696.5,-805 827.5,-805 827.5,-782 696.5,-782"/>
<text text-anchor="start" x="750" y="-789.8" font-family="arial" font-size="14.00">b10</text>
<polygon fill="none" stroke="black" points="696.5,-759 696.5,-782 827.5,-782 827.5,-759 696.5,-759"/>
<text text-anchor="start" x="750" y="-766.8" font-family="arial" font-size="14.00">d10</text>
<polygon fill="none" stroke="black" points="696.5,-736 696.5,-759 827.5,-759 827.5,-736 696.5,-736"/>
<text text-anchor="start" x="750.5" y="-743.8" font-family="arial" font-size="14.00">z12</text>
<polygon fill="none" stroke="black" points="696.5,-713 696.5,-736 827.5,-736 827.5,-713 696.5,-713"/>
<text text-anchor="start" x="750" y="-720.8" font-family="arial" font-size="14.00">b12</text>
<polygon fill="none" stroke="black" points="696.5,-690 696.5,-713 827.5,-713 827.5,-690 696.5,-690"/>
<text text-anchor="start" x="750" y="-697.8" font-family="arial" font-size="14.00">d12</text>
<polygon fill="none" stroke="black" points="696.5,-667 696.5,-690 827.5,-690 827.5,-667 696.5,-667"/>
<text text-anchor="start" x="750.5" y="-674.8" font-family="arial" font-size="14.00">z14</text>
<polygon fill="none" stroke="black" points="696.5,-644 696.5,-667 827.5,-667 827.5,-644 696.5,-644"/>
<text text-anchor="start" x="750" y="-651.8" font-family="arial" font-size="14.00">b14</text>
<polygon fill="none" stroke="black" points="696.5,-621 696.5,-644 827.5,-644 827.5,-621 696.5,-621"/>
<text text-anchor="start" x="750" y="-628.8" font-family="arial" font-size="14.00">d14</text>
<polygon fill="none" stroke="black" points="696.5,-598 696.5,-621 827.5,-621 827.5,-598 696.5,-598"/>
<text text-anchor="start" x="750.5" y="-605.8" font-family="arial" font-size="14.00">z16</text>
<polygon fill="none" stroke="black" points="696.5,-575 696.5,-598 827.5,-598 827.5,-575 696.5,-575"/>
<text text-anchor="start" x="750" y="-582.8" font-family="arial" font-size="14.00">b16</text>
<polygon fill="none" stroke="black" points="696.5,-552 696.5,-575 827.5,-575 827.5,-552 696.5,-552"/>
<text text-anchor="start" x="750" y="-559.8" font-family="arial" font-size="14.00">d16</text>
<polygon fill="none" stroke="black" points="696.5,-529 696.5,-552 827.5,-552 827.5,-529 696.5,-529"/>
<text text-anchor="start" x="750.5" y="-536.8" font-family="arial" font-size="14.00">z18</text>
<polygon fill="none" stroke="black" points="696.5,-506 696.5,-529 827.5,-529 827.5,-506 696.5,-506"/>
<text text-anchor="start" x="750" y="-513.8" font-family="arial" font-size="14.00">b18</text>
<polygon fill="none" stroke="black" points="696.5,-483 696.5,-506 827.5,-506 827.5,-483 696.5,-483"/>
<text text-anchor="start" x="750" y="-490.8" font-family="arial" font-size="14.00">d18</text>
<polygon fill="none" stroke="black" points="696.5,-460 696.5,-483 827.5,-483 827.5,-460 696.5,-460"/>
<text text-anchor="start" x="750.5" y="-467.8" font-family="arial" font-size="14.00">z20</text>
<polygon fill="none" stroke="black" points="696.5,-437 696.5,-460 827.5,-460 827.5,-437 696.5,-437"/>
<text text-anchor="start" x="750" y="-444.8" font-family="arial" font-size="14.00">b20</text>
<polygon fill="none" stroke="black" points="696.5,-414 696.5,-437 827.5,-437 827.5,-414 696.5,-414"/>
<text text-anchor="start" x="750" y="-421.8" font-family="arial" font-size="14.00">d20</text>
<polygon fill="none" stroke="black" points="696.5,-391 696.5,-414 827.5,-414 827.5,-391 696.5,-391"/>
<text text-anchor="start" x="750.5" y="-398.8" font-family="arial" font-size="14.00">z22</text>
<polygon fill="none" stroke="black" points="696.5,-368 696.5,-391 827.5,-391 827.5,-368 696.5,-368"/>
<text text-anchor="start" x="750" y="-375.8" font-family="arial" font-size="14.00">b22</text>
<polygon fill="none" stroke="black" points="696.5,-345 696.5,-368 827.5,-368 827.5,-345 696.5,-345"/>
<text text-anchor="start" x="750" y="-352.8" font-family="arial" font-size="14.00">d22</text>
<polygon fill="none" stroke="black" points="696.5,-322 696.5,-345 827.5,-345 827.5,-322 696.5,-322"/>
<text text-anchor="start" x="750.5" y="-329.8" font-family="arial" font-size="14.00">z24</text>
<polygon fill="none" stroke="black" points="696.5,-299 696.5,-322 827.5,-322 827.5,-299 696.5,-299"/>
<text text-anchor="start" x="750" y="-306.8" font-family="arial" font-size="14.00">b24</text>
<polygon fill="none" stroke="black" points="696.5,-276 696.5,-299 827.5,-299 827.5,-276 696.5,-276"/>
<text text-anchor="start" x="750" y="-283.8" font-family="arial" font-size="14.00">d24</text>
<polygon fill="none" stroke="black" points="696.5,-253 696.5,-276 827.5,-276 827.5,-253 696.5,-253"/>
<text text-anchor="start" x="750.5" y="-260.8" font-family="arial" font-size="14.00">z26</text>
<polygon fill="none" stroke="black" points="696.5,-230 696.5,-253 827.5,-253 827.5,-230 696.5,-230"/>
<text text-anchor="start" x="750" y="-237.8" font-family="arial" font-size="14.00">b26</text>
<polygon fill="none" stroke="black" points="696.5,-207 696.5,-230 827.5,-230 827.5,-207 696.5,-207"/>
<text text-anchor="start" x="750" y="-214.8" font-family="arial" font-size="14.00">d26</text>
<polygon fill="none" stroke="black" points="696.5,-184 696.5,-207 827.5,-207 827.5,-184 696.5,-184"/>
<text text-anchor="start" x="750.5" y="-191.8" font-family="arial" font-size="14.00">z28</text>
<polygon fill="none" stroke="black" points="696.5,-161 696.5,-184 827.5,-184 827.5,-161 696.5,-161"/>
<text text-anchor="start" x="750" y="-168.8" font-family="arial" font-size="14.00">b28</text>
<polygon fill="none" stroke="black" points="696.5,-138 696.5,-161 827.5,-161 827.5,-138 696.5,-138"/>
<text text-anchor="start" x="750" y="-145.8" font-family="arial" font-size="14.00">d28</text>
<polygon fill="none" stroke="black" points="696.5,-115 696.5,-138 827.5,-138 827.5,-115 696.5,-115"/>
<text text-anchor="start" x="750.5" y="-122.8" font-family="arial" font-size="14.00">z30</text>
<polygon fill="none" stroke="black" points="696.5,-92 696.5,-115 827.5,-115 827.5,-92 696.5,-92"/>
<text text-anchor="start" x="750" y="-99.8" font-family="arial" font-size="14.00">b30</text>
<polygon fill="none" stroke="black" points="696.5,-69 696.5,-92 827.5,-92 827.5,-69 696.5,-69"/>
<text text-anchor="start" x="750" y="-76.8" font-family="arial" font-size="14.00">d30</text>
<polygon fill="none" stroke="black" points="696.5,-46 696.5,-69 827.5,-69 827.5,-46 696.5,-46"/>
<text text-anchor="start" x="750.5" y="-53.8" font-family="arial" font-size="14.00">z32</text>
<polygon fill="none" stroke="black" points="696.5,-23 696.5,-46 827.5,-46 827.5,-23 696.5,-23"/>
<text text-anchor="start" x="750" y="-30.8" font-family="arial" font-size="14.00">b32</text>
<polygon fill="none" stroke="black" points="696.5,0 696.5,-23 827.5,-23 827.5,0 696.5,0"/>
<text text-anchor="start" x="750" y="-7.8" font-family="arial" font-size="14.00">d32</text>
<polygon fill="#ffffff" stroke="black" points="812,-1150 684,-1150 684,0 812,0 812,-1150"/>
<polygon fill="none" stroke="black" points="684,-1127 684,-1150 812,-1150 812,-1127 684,-1127"/>
<text text-anchor="start" x="739.5" y="-1134.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="684,-1104 684,-1127 716,-1127 716,-1104 684,-1104"/>
<text text-anchor="start" x="688" y="-1111.8" font-family="arial" font-size="14.00">F48</text>
<polygon fill="none" stroke="black" points="716,-1104 716,-1127 766,-1127 766,-1104 716,-1104"/>
<text text-anchor="start" x="720" y="-1111.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="766,-1104 766,-1127 812,-1127 812,-1104 766,-1104"/>
<text text-anchor="start" x="770" y="-1111.8" font-family="arial" font-size="14.00">48&#45;pin</text>
<polygon fill="none" stroke="black" points="684,-1081 684,-1104 812,-1104 812,-1081 684,-1081"/>
<text text-anchor="start" x="740.5" y="-1088.8" font-family="arial" font-size="14.00">z2</text>
<polygon fill="none" stroke="black" points="684,-1058 684,-1081 812,-1081 812,-1058 684,-1058"/>
<text text-anchor="start" x="740" y="-1065.8" font-family="arial" font-size="14.00">b2</text>
<polygon fill="none" stroke="black" points="684,-1035 684,-1058 812,-1058 812,-1035 684,-1035"/>
<text text-anchor="start" x="740" y="-1042.8" font-family="arial" font-size="14.00">d2</text>
<polygon fill="none" stroke="black" points="684,-1012 684,-1035 812,-1035 812,-1012 684,-1012"/>
<text text-anchor="start" x="740.5" y="-1019.8" font-family="arial" font-size="14.00">z4</text>
<polygon fill="none" stroke="black" points="684,-989 684,-1012 812,-1012 812,-989 684,-989"/>
<text text-anchor="start" x="740" y="-996.8" font-family="arial" font-size="14.00">b4</text>
<polygon fill="none" stroke="black" points="684,-966 684,-989 812,-989 812,-966 684,-966"/>
<text text-anchor="start" x="740" y="-973.8" font-family="arial" font-size="14.00">d4</text>
<polygon fill="none" stroke="black" points="684,-943 684,-966 812,-966 812,-943 684,-943"/>
<text text-anchor="start" x="740.5" y="-950.8" font-family="arial" font-size="14.00">z6</text>
<polygon fill="none" stroke="black" points="684,-920 684,-943 812,-943 812,-920 684,-920"/>
<text text-anchor="start" x="740" y="-927.8" font-family="arial" font-size="14.00">b6</text>
<polygon fill="none" stroke="black" points="684,-897 684,-920 812,-920 812,-897 684,-897"/>
<text text-anchor="start" x="740" y="-904.8" font-family="arial" font-size="14.00">d6</text>
<polygon fill="none" stroke="black" points="684,-874 684,-897 812,-897 812,-874 684,-874"/>
<text text-anchor="start" x="740.5" y="-881.8" font-family="arial" font-size="14.00">z8</text>
<polygon fill="none" stroke="black" points="684,-851 684,-874 812,-874 812,-851 684,-851"/>
<text text-anchor="start" x="740" y="-858.8" font-family="arial" font-size="14.00">b8</text>
<polygon fill="none" stroke="black" points="684,-828 684,-851 812,-851 812,-828 684,-828"/>
<text text-anchor="start" x="740" y="-835.8" font-family="arial" font-size="14.00">d8</text>
<polygon fill="none" stroke="black" points="684,-805 684,-828 812,-828 812,-805 684,-805"/>
<text text-anchor="start" x="737" y="-812.8" font-family="arial" font-size="14.00">z10</text>
<polygon fill="none" stroke="black" points="684,-782 684,-805 812,-805 812,-782 684,-782"/>
<text text-anchor="start" x="736.5" y="-789.8" font-family="arial" font-size="14.00">b10</text>
<polygon fill="none" stroke="black" points="684,-759 684,-782 812,-782 812,-759 684,-759"/>
<text text-anchor="start" x="736.5" y="-766.8" font-family="arial" font-size="14.00">d10</text>
<polygon fill="none" stroke="black" points="684,-736 684,-759 812,-759 812,-736 684,-736"/>
<text text-anchor="start" x="737" y="-743.8" font-family="arial" font-size="14.00">z12</text>
<polygon fill="none" stroke="black" points="684,-713 684,-736 812,-736 812,-713 684,-713"/>
<text text-anchor="start" x="736.5" y="-720.8" font-family="arial" font-size="14.00">b12</text>
<polygon fill="none" stroke="black" points="684,-690 684,-713 812,-713 812,-690 684,-690"/>
<text text-anchor="start" x="736.5" y="-697.8" font-family="arial" font-size="14.00">d12</text>
<polygon fill="none" stroke="black" points="684,-667 684,-690 812,-690 812,-667 684,-667"/>
<text text-anchor="start" x="737" y="-674.8" font-family="arial" font-size="14.00">z14</text>
<polygon fill="none" stroke="black" points="684,-644 684,-667 812,-667 812,-644 684,-644"/>
<text text-anchor="start" x="736.5" y="-651.8" font-family="arial" font-size="14.00">b14</text>
<polygon fill="none" stroke="black" points="684,-621 684,-644 812,-644 812,-621 684,-621"/>
<text text-anchor="start" x="736.5" y="-628.8" font-family="arial" font-size="14.00">d14</text>
<polygon fill="none" stroke="black" points="684,-598 684,-621 812,-621 812,-598 684,-598"/>
<text text-anchor="start" x="737" y="-605.8" font-family="arial" font-size="14.00">z16</text>
<polygon fill="none" stroke="black" points="684,-575 684,-598 812,-598 812,-575 684,-575"/>
<text text-anchor="start" x="736.5" y="-582.8" font-family="arial" font-size="14.00">b16</text>
<polygon fill="none" stroke="black" points="684,-552 684,-575 812,-575 812,-552 684,-552"/>
<text text-anchor="start" x="736.5" y="-559.8" font-family="arial" font-size="14.00">d16</text>
<polygon fill="none" stroke="black" points="684,-529 684,-552 812,-552 812,-529 684,-529"/>
<text text-anchor="start" x="737" y="-536.8" font-family="arial" font-size="14.00">z18</text>
<polygon fill="none" stroke="black" points="684,-506 684,-529 812,-529 812,-506 684,-506"/>
<text text-anchor="start" x="736.5" y="-513.8" font-family="arial" font-size="14.00">b18</text>
<polygon fill="none" stroke="black" points="684,-483 684,-506 812,-506 812,-483 684,-483"/>
<text text-anchor="start" x="736.5" y="-490.8" font-family="arial" font-size="14.00">d18</text>
<polygon fill="none" stroke="black" points="684,-460 684,-483 812,-483 812,-460 684,-460"/>
<text text-anchor="start" x="737" y="-467.8" font-family="arial" font-size="14.00">z20</text>
<polygon fill="none" stroke="black" points="684,-437 684,-460 812,-460 812,-437 684,-437"/>
<text text-anchor="start" x="736.5" y="-444.8" font-family="arial" font-size="14.00">b20</text>
<polygon fill="none" stroke="black" points="684,-414 684,-437 812,-437 812,-414 684,-414"/>
<text text-anchor="start" x="736.5" y="-421.8" font-family="arial" font-size="14.00">d20</text>
<polygon fill="none" stroke="black" points="684,-391 684,-414 812,-414 812,-391 684,-391"/>
<text text-anchor="start" x="737" y="-398.8" font-family="arial" font-size="14.00">z22</text>
<polygon fill="none" stroke="black" points="684,-368 684,-391 812,-391 812,-368 684,-368"/>
<text text-anchor="start" x="736.5" y="-375.8" font-family="arial" font-size="14.00">b22</text>
<polygon fill="none" stroke="black" points="684,-345 684,-368 812,-368 812,-345 684,-345"/>
<text text-anchor="start" x="736.5" y="-352.8" font-family="arial" font-size="14.00">d22</text>
<polygon fill="none" stroke="black" points="684,-322 684,-345 812,-345 812,-322 684,-322"/>
<text text-anchor="start" x="737" y="-329.8" font-family="arial" font-size="14.00">z24</text>
<polygon fill="none" stroke="black" points="684,-299 684,-322 812,-322 812,-299 684,-299"/>
<text text-anchor="start" x="736.5" y="-306.8" font-family="arial" font-size="14.00">b24</text>
<polygon fill="none" stroke="black" points="684,-276 684,-299 812,-299 812,-276 684,-276"/>
<text text-anchor="start" x="736.5" y="-283.8" font-family="arial" font-size="14.00">d24</text>
<polygon fill="none" stroke="black" points="684,-253 684,-276 812,-276 812,-253 684,-253"/>
<text text-anchor="start" x="737" y="-260.8" font-family="arial" font-size="14.00">z26</text>
<polygon fill="none" stroke="black" points="684,-230 684,-253 812,-253 812,-230 684,-230"/>
<text text-anchor="start" x="736.5" y="-237.8" font-family="arial" font-size="14.00">b26</text>
<polygon fill="none" stroke="black" points="684,-207 684,-230 812,-230 812,-207 684,-207"/>
<text text-anchor="start" x="736.5" y="-214.8" font-family="arial" font-size="14.00">d26</text>
<polygon fill="none" stroke="black" points="684,-184 684,-207 812,-207 812,-184 684,-184"/>
<text text-anchor="start" x="737" y="-191.8" font-family="arial" font-size="14.00">z28</text>
<polygon fill="none" stroke="black" points="684,-161 684,-184 812,-184 812,-161 684,-161"/>
<text text-anchor="start" x="736.5" y="-168.8" font-family="arial" font-size="14.00">b28</text>
<polygon fill="none" stroke="black" points="684,-138 684,-161 812,-161 812,-138 684,-138"/>
<text text-anchor="start" x="736.5" y="-145.8" font-family="arial" font-size="14.00">d28</text>
<polygon fill="none" stroke="black" points="684,-115 684,-138 812,-138 812,-115 684,-115"/>
<text text-anchor="start" x="737" y="-122.8" font-family="arial" font-size="14.00">z30</text>
<polygon fill="none" stroke="black" points="684,-92 684,-115 812,-115 812,-92 684,-92"/>
<text text-anchor="start" x="736.5" y="-99.8" font-family="arial" font-size="14.00">b30</text>
<polygon fill="none" stroke="black" points="684,-69 684,-92 812,-92 812,-69 684,-69"/>
<text text-anchor="start" x="736.5" y="-76.8" font-family="arial" font-size="14.00">d30</text>
<polygon fill="none" stroke="black" points="684,-46 684,-69 812,-69 812,-46 684,-46"/>
<text text-anchor="start" x="737" y="-53.8" font-family="arial" font-size="14.00">z32</text>
<polygon fill="none" stroke="black" points="684,-23 684,-46 812,-46 812,-23 684,-23"/>
<text text-anchor="start" x="736.5" y="-30.8" font-family="arial" font-size="14.00">b32</text>
<polygon fill="none" stroke="black" points="684,0 684,-23 812,-23 812,0 684,0"/>
<text text-anchor="start" x="736.5" y="-7.8" font-family="arial" font-size="14.00">d32</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-678C701.87,-683.79 553.28,-979.79 696,-974"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-680C700.08,-682.9 551.49,-978.9 696,-976"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-682C698.3,-682 549.7,-978 696,-978"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M552,-684C696.51,-681.1 547.92,-977.1 696,-980"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-686C694.72,-680.21 546.13,-976.21 696,-982"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-678C689.87,-683.79 541.28,-979.79 684,-974"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M540,-680C688.08,-682.9 539.49,-978.9 684,-976"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M540,-682C686.3,-682 537.7,-978 684,-978"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M540,-684C684.51,-681.1 535.92,-977.1 684,-980"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-686C682.72,-680.21 534.13,-976.21 684,-982"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-707C736.91,-712.99 518.03,-1094.99 696,-1089"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-709C735.18,-711.99 516.3,-1093.99 696,-1091"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-711C733.44,-711 514.56,-1093 696,-1093"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M552,-713C731.7,-710.01 512.82,-1092.01 696,-1095"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-715C729.97,-709.01 511.09,-1091.01 696,-1097"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-707C724.91,-712.99 506.03,-1094.99 684,-1089"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M540,-709C723.18,-711.99 504.3,-1093.99 684,-1091"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M540,-711C721.44,-711 502.56,-1093 684,-1093"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M540,-713C719.7,-710.01 500.82,-1092.01 684,-1095"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-715C717.97,-709.01 499.09,-1091.01 684,-1097"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-620C647.32,-625.02 608.41,-772.02 696,-767"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-622C645.39,-624.51 606.48,-771.51 696,-769"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-624C643.46,-624 604.54,-771 696,-771"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M552,-626C641.52,-623.49 602.61,-770.49 696,-773"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-628C639.59,-622.98 600.68,-769.98 696,-775"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-620C635.32,-625.02 596.41,-772.02 684,-767"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540,-622C633.39,-624.51 594.48,-771.51 684,-769"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540,-624C631.46,-624 592.54,-771 684,-771"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M540,-626C629.52,-623.49 590.61,-770.49 684,-773"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-628C627.59,-622.98 588.68,-769.98 684,-775"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-649C677.42,-654.57 577.94,-887.57 696,-882"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-651C675.58,-653.79 576.1,-886.79 696,-884"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-653C673.74,-653 574.26,-886 696,-886"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M552,-655C671.9,-652.21 572.42,-885.21 696,-888"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-657C670.06,-651.43 570.58,-884.43 696,-890"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-649C665.42,-654.57 565.94,-887.57 684,-882"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540,-651C663.58,-653.79 564.1,-886.79 684,-884"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540,-653C661.74,-653 562.26,-886 684,-886"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M540,-655C659.9,-652.21 560.42,-885.21 684,-888"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-657C658.06,-651.43 558.58,-884.43 684,-890"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-562C615.28,-562.07 631.25,-559.07 696,-559"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-564C615.64,-564.03 631.62,-561.03 696,-561"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-566C616.01,-566 631.99,-563 696,-563"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-568C616.38,-567.97 632.36,-564.97 696,-565"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-570C616.75,-569.93 632.72,-566.93 696,-567"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-562C603.28,-562.07 619.25,-559.07 684,-559"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M540,-564C603.64,-564.03 619.62,-561.03 684,-561"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M540,-566C604.01,-566 619.99,-563 684,-563"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M540,-568C604.38,-567.97 620.36,-564.97 684,-565"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-570C604.75,-569.93 620.72,-566.93 684,-567"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-591C630.09,-595.2 625.9,-679.2 696,-675"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-593C628.09,-595.1 623.9,-679.1 696,-677"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-595C626.09,-595 621.91,-679 696,-679"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-597C624.1,-594.9 619.91,-678.9 696,-681"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-599C622.1,-594.8 617.91,-678.8 696,-683"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-591C618.09,-595.2 613.9,-679.2 684,-675"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M540,-593C616.09,-595.1 611.9,-679.1 684,-677"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M540,-595C614.09,-595 609.91,-679 684,-679"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M540,-597C612.1,-594.9 607.91,-678.9 684,-681"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-599C610.1,-594.8 605.91,-678.8 684,-683"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-504C621.87,-508.18 618.13,-425.18 696,-421"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-506C623.87,-508.09 620.13,-425.09 696,-423"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-508C625.87,-508 622.13,-425 696,-425"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-510C627.87,-507.91 624.13,-424.91 696,-427"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-512C629.87,-507.82 626.13,-424.82 696,-429"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-504C609.87,-508.18 606.13,-425.18 684,-421"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540,-506C611.87,-508.09 608.13,-425.09 684,-423"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540,-508C613.87,-508 610.13,-425 684,-425"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540,-510C615.87,-507.91 612.13,-424.91 684,-427"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-512C617.87,-507.82 614.13,-424.82 684,-429"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-533C616.75,-533.07 632.72,-536.07 696,-536"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-535C616.38,-535.03 632.36,-538.03 696,-538"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-537C616.01,-537 631.99,-540 696,-540"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-539C615.64,-538.97 631.62,-541.97 696,-542"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-541C615.28,-540.93 631.25,-543.93 696,-544"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-533C604.75,-533.07 620.72,-536.07 684,-536"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M540,-535C604.38,-535.03 620.36,-538.03 684,-538"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M540,-537C604.01,-537 619.99,-540 684,-540"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M540,-539C603.64,-538.97 619.62,-541.97 684,-542"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-541C603.28,-540.93 619.25,-543.93 684,-544"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge18" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-446C669.68,-451.57 570.96,-219.57 696,-214"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-448C671.52,-450.78 572.8,-218.78 696,-216"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-450C673.36,-450 574.64,-218 696,-218"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M552,-452C675.2,-449.22 576.48,-217.22 696,-220"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-454C677.04,-448.43 578.32,-216.43 696,-222"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-446C657.68,-451.57 558.96,-219.57 684,-214"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M540,-448C659.52,-450.78 560.8,-218.78 684,-216"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M540,-450C661.36,-450 562.64,-218 684,-218"/>
<path fill="none" stroke="#8000ff" stroke-width="2" d="M540,-452C663.2,-449.22 564.48,-217.22 684,-220"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-454C665.04,-448.43 566.32,-216.43 684,-222"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge20" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-475C639.27,-480.01 600.99,-334.01 696,-329"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-477C641.21,-479.51 602.93,-333.51 696,-331"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-479C643.14,-479 604.86,-333 696,-333"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-481C645.07,-478.49 606.79,-332.49 696,-335"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-483C647.01,-477.99 608.73,-331.99 696,-337"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-475C627.27,-480.01 588.99,-334.01 684,-329"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-477C629.21,-479.51 590.93,-333.51 684,-331"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-479C631.14,-479 592.86,-333 684,-333"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-481C633.07,-478.49 594.79,-332.49 684,-335"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-483C635.01,-477.99 596.73,-331.99 684,-337"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge22" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-388C729.55,-393.99 511.5,-12.99 696,-7"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-390C731.29,-392.99 513.24,-11.99 696,-9"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M552,-392C733.02,-392 514.98,-11 696,-11"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M552,-394C734.76,-391.01 516.71,-10.01 696,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-396C736.5,-390.01 518.45,-9.01 696,-15"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-388C717.55,-393.99 499.5,-12.99 684,-7"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540,-390C719.29,-392.99 501.24,-11.99 684,-9"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M540,-392C721.02,-392 502.98,-11 684,-11"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M540,-394C722.76,-391.01 504.71,-10.01 684,-13"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-396C724.5,-390.01 506.45,-9.01 684,-15"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge24" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-417C694.32,-422.79 546.53,-127.79 696,-122"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-419C696.11,-421.9 548.31,-126.9 696,-124"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M552,-421C697.9,-421 550.1,-126 696,-126"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M552,-423C699.69,-420.1 551.89,-125.1 696,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M552,-425C701.47,-419.21 553.68,-124.21 696,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-417C682.32,-422.79 534.53,-127.79 684,-122"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M540,-419C684.11,-421.9 536.31,-126.9 684,-124"/>
<path fill="none" stroke="#ff66cc" stroke-width="2" d="M540,-421C685.9,-421 538.1,-126 684,-126"/>
<path fill="none" stroke="#999999" stroke-width="2" d="M540,-423C687.69,-420.1 539.89,-125.1 684,-128"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M540,-425C689.47,-419.21 541.68,-124.21 684,-130"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

2
examples/ex10.gv generated
View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

557
examples/ex10.html generated
View File

@ -1,358 +1,393 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex10</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex10</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="1120pt" height="324pt"
viewBox="0.00 0.00 1120.00 324.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="1097pt" height="324pt"
viewBox="0.00 0.00 1097.00 324.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 320)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-320 1116,-320 1116,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-320 1093,-320 1093,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="298,-264 0,-264 0,-34 298,-34 298,-264"/>
<polygon fill="none" stroke="black" points="0,-241 0,-264 298,-264 298,-241 0,-241"/>
<text text-anchor="start" x="140" y="-248.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-218 0,-241 219,-241 219,-218 0,-218"/>
<text text-anchor="start" x="4" y="-225.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="219,-218 219,-241 258,-241 258,-218 219,-218"/>
<text text-anchor="start" x="223" y="-225.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="258,-218 258,-241 298,-241 298,-218 258,-218"/>
<text text-anchor="start" x="262" y="-225.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-195 0,-218 160,-218 160,-195 0,-195"/>
<text text-anchor="start" x="66" y="-202.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="160,-195 160,-218 298,-218 298,-195 160,-195"/>
<text text-anchor="start" x="225" y="-202.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-172 0,-195 160,-195 160,-172 0,-172"/>
<text text-anchor="start" x="67.5" y="-179.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="160,-172 160,-195 298,-195 298,-172 160,-172"/>
<text text-anchor="start" x="225" y="-179.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-149 0,-172 160,-172 160,-149 0,-149"/>
<text text-anchor="start" x="66" y="-156.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="160,-149 160,-172 298,-172 298,-149 160,-149"/>
<text text-anchor="start" x="225" y="-156.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-126 0,-149 160,-149 160,-126 0,-126"/>
<text text-anchor="start" x="65.5" y="-133.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="160,-126 160,-149 298,-149 298,-126 160,-126"/>
<text text-anchor="start" x="225" y="-133.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-103 0,-126 160,-126 160,-103 0,-103"/>
<text text-anchor="start" x="67.5" y="-110.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="160,-103 160,-126 298,-126 298,-103 160,-103"/>
<text text-anchor="start" x="225" y="-110.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-80 0,-103 160,-103 160,-80 0,-80"/>
<text text-anchor="start" x="67.5" y="-87.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="160,-80 160,-103 298,-103 298,-80 160,-80"/>
<text text-anchor="start" x="225" y="-87.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-57 0,-80 160,-80 160,-57 0,-57"/>
<text text-anchor="start" x="65.5" y="-64.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="160,-57 160,-80 298,-80 298,-57 160,-57"/>
<text text-anchor="start" x="225" y="-64.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-34 0,-57 160,-57 160,-34 0,-34"/>
<text text-anchor="start" x="67.5" y="-41.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="160,-34 160,-57 298,-57 298,-34 160,-34"/>
<text text-anchor="start" x="225" y="-41.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="#ffffff" stroke="black" points="289,-264 0,-264 0,-34 289,-34 289,-264"/>
<polygon fill="none" stroke="black" points="0.5,-241 0.5,-264 289.5,-264 289.5,-241 0.5,-241"/>
<text text-anchor="start" x="136.5" y="-248.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-218 0.5,-241 211.5,-241 211.5,-218 0.5,-218"/>
<text text-anchor="start" x="4.5" y="-225.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="211.5,-218 211.5,-241 250.5,-241 250.5,-218 211.5,-218"/>
<text text-anchor="start" x="215.5" y="-225.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="250.5,-218 250.5,-241 289.5,-241 289.5,-218 250.5,-218"/>
<text text-anchor="start" x="254.5" y="-225.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-195 0.5,-218 155.5,-218 155.5,-195 0.5,-195"/>
<text text-anchor="start" x="64" y="-202.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="155.5,-195 155.5,-218 289.5,-218 289.5,-195 155.5,-195"/>
<text text-anchor="start" x="218.5" y="-202.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-172 0.5,-195 155.5,-195 155.5,-172 0.5,-172"/>
<text text-anchor="start" x="66" y="-179.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-172 155.5,-195 289.5,-195 289.5,-172 155.5,-172"/>
<text text-anchor="start" x="218.5" y="-179.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-149 0.5,-172 155.5,-172 155.5,-149 0.5,-149"/>
<text text-anchor="start" x="64" y="-156.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="155.5,-149 155.5,-172 289.5,-172 289.5,-149 155.5,-149"/>
<text text-anchor="start" x="218.5" y="-156.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-126 0.5,-149 155.5,-149 155.5,-126 0.5,-126"/>
<text text-anchor="start" x="64" y="-133.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="155.5,-126 155.5,-149 289.5,-149 289.5,-126 155.5,-126"/>
<text text-anchor="start" x="218.5" y="-133.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0.5,-103 0.5,-126 155.5,-126 155.5,-103 0.5,-103"/>
<text text-anchor="start" x="65.5" y="-110.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-103 155.5,-126 289.5,-126 289.5,-103 155.5,-103"/>
<text text-anchor="start" x="218.5" y="-110.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-80 0.5,-103 155.5,-103 155.5,-80 0.5,-80"/>
<text text-anchor="start" x="66" y="-87.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-80 155.5,-103 289.5,-103 289.5,-80 155.5,-80"/>
<text text-anchor="start" x="218.5" y="-87.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,-57 0.5,-80 155.5,-80 155.5,-57 0.5,-57"/>
<text text-anchor="start" x="64" y="-64.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="155.5,-57 155.5,-80 289.5,-80 289.5,-57 155.5,-57"/>
<text text-anchor="start" x="218.5" y="-64.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0.5,-34 0.5,-57 155.5,-57 155.5,-34 0.5,-34"/>
<text text-anchor="start" x="65.5" y="-41.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-34 155.5,-57 289.5,-57 289.5,-34 155.5,-34"/>
<text text-anchor="start" x="218.5" y="-41.8" font-family="arial" font-size="14.00">8</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="670,-316 442,-316 442,0 670,0 670,-316"/>
<polygon fill="none" stroke="black" points="442,-293 442,-316 670,-316 670,-293 442,-293"/>
<text text-anchor="start" x="545.5" y="-300.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="442,-270 442,-293 509,-293 509,-270 442,-270"/>
<text text-anchor="start" x="454" y="-277.8" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="509,-270 509,-293 548,-293 548,-270 509,-270"/>
<text text-anchor="start" x="521" y="-277.8" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="548,-270 548,-293 623,-293 623,-270 548,-270"/>
<text text-anchor="start" x="559.5" y="-277.8" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="623,-270 623,-293 670,-293 670,-270 623,-270"/>
<text text-anchor="start" x="634.5" y="-277.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="473" y="-256.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="444.5" y="-237.8" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="510" y="-237.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-237.8" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="transparent" points="442,-230 442,-232 670,-232 670,-230 442,-230"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-228 442,-230 670,-230 670,-228 442,-228"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-226 442,-228 670,-228 670,-226 442,-226"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-224 442,-226 670,-226 670,-224 442,-224"/>
<polygon fill="#000000" stroke="transparent" points="442,-222 442,-224 670,-224 670,-222 442,-222"/>
<text text-anchor="start" x="446.5" y="-208.8" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="522" y="-208.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-208.8" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-201 442,-203 670,-203 670,-201 442,-201"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-199 442,-201 670,-201 670,-199 442,-199"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-197 442,-199 670,-199 670,-197 442,-197"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-195 442,-197 670,-197 670,-195 442,-195"/>
<polygon fill="#000000" stroke="transparent" points="442,-193 442,-195 670,-195 670,-193 442,-193"/>
<text text-anchor="start" x="444.5" y="-179.8" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="510" y="-179.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-179.8" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="transparent" points="442,-172 442,-174 670,-174 670,-172 442,-172"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-170 442,-172 670,-172 670,-170 442,-170"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-168 442,-170 670,-170 670,-168 442,-168"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-166 442,-168 670,-168 670,-166 442,-166"/>
<polygon fill="#000000" stroke="transparent" points="442,-164 442,-166 670,-166 670,-164 442,-164"/>
<text text-anchor="start" x="444" y="-150.8" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="522.5" y="-150.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-150.8" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="transparent" points="442,-143 442,-145 670,-145 670,-143 442,-143"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-141 442,-143 670,-143 670,-141 442,-141"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-139 442,-141 670,-141 670,-139 442,-139"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-137 442,-139 670,-139 670,-137 442,-137"/>
<polygon fill="#000000" stroke="transparent" points="442,-135 442,-137 670,-137 670,-135 442,-135"/>
<text text-anchor="start" x="446" y="-121.8" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="511" y="-121.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-121.8" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-114 442,-116 670,-116 670,-114 442,-114"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-112 442,-114 670,-114 670,-112 442,-112"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-110 442,-112 670,-112 670,-110 442,-110"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-108 442,-110 670,-110 670,-108 442,-108"/>
<polygon fill="#000000" stroke="transparent" points="442,-106 442,-108 670,-108 670,-106 442,-106"/>
<text text-anchor="start" x="446.5" y="-92.8" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="521.5" y="-92.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-92.8" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-85 442,-87 670,-87 670,-85 442,-85"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-83 442,-85 670,-85 670,-83 442,-83"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-81 442,-83 670,-83 670,-81 442,-81"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-79 442,-81 670,-81 670,-79 442,-79"/>
<polygon fill="#000000" stroke="transparent" points="442,-77 442,-79 670,-79 670,-77 442,-77"/>
<text text-anchor="start" x="444" y="-63.8" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="511" y="-63.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-63.8" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="transparent" points="442,-56 442,-58 670,-58 670,-56 442,-56"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-54 442,-56 670,-56 670,-54 442,-54"/>
<polygon fill="#895956" stroke="transparent" points="442,-52 442,-54 670,-54 670,-52 442,-52"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-50 442,-52 670,-52 670,-50 442,-50"/>
<polygon fill="#000000" stroke="transparent" points="442,-48 442,-50 670,-50 670,-48 442,-48"/>
<text text-anchor="start" x="446" y="-34.8" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="522.5" y="-34.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-34.8" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-27 442,-29 670,-29 670,-27 442,-27"/>
<polygon fill="#895956" stroke="transparent" points="442,-25 442,-27 670,-27 670,-25 442,-25"/>
<polygon fill="#895956" stroke="transparent" points="442,-23 442,-25 670,-25 670,-23 442,-23"/>
<polygon fill="#895956" stroke="transparent" points="442,-21 442,-23 670,-23 670,-21 442,-21"/>
<polygon fill="#000000" stroke="transparent" points="442,-19 442,-21 670,-21 670,-19 442,-19"/>
<text text-anchor="start" x="473" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="656,-316 433,-316 433,0 656,0 656,-316"/>
<polygon fill="none" stroke="black" points="433.5,-293 433.5,-316 656.5,-316 656.5,-293 433.5,-293"/>
<text text-anchor="start" x="534" y="-300.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="433.5,-270 433.5,-293 498.5,-293 498.5,-270 433.5,-270"/>
<text text-anchor="start" x="445" y="-277.8" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="498.5,-270 498.5,-293 536.5,-293 536.5,-270 498.5,-270"/>
<text text-anchor="start" x="510" y="-277.8" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="536.5,-270 536.5,-293 610.5,-293 610.5,-270 536.5,-270"/>
<text text-anchor="start" x="547.5" y="-277.8" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="610.5,-270 610.5,-293 656.5,-293 656.5,-270 610.5,-270"/>
<text text-anchor="start" x="621.5" y="-277.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="463.5" y="-256.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="436" y="-237.8" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="500" y="-237.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="595" y="-237.8" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="none" points="433.5,-230 433.5,-232 656.5,-232 656.5,-230 433.5,-230"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-228 433.5,-230 656.5,-230 656.5,-228 433.5,-228"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-226 433.5,-228 656.5,-228 656.5,-226 433.5,-226"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-224 433.5,-226 656.5,-226 656.5,-224 433.5,-224"/>
<polygon fill="#000000" stroke="none" points="433.5,-222 433.5,-224 656.5,-224 656.5,-222 433.5,-222"/>
<text text-anchor="start" x="438" y="-208.8" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="511.5" y="-208.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="597" y="-208.8" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-201 433.5,-203 656.5,-203 656.5,-201 433.5,-201"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-199 433.5,-201 656.5,-201 656.5,-199 433.5,-199"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-197 433.5,-199 656.5,-199 656.5,-197 433.5,-197"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-195 433.5,-197 656.5,-197 656.5,-195 433.5,-195"/>
<polygon fill="#000000" stroke="none" points="433.5,-193 433.5,-195 656.5,-195 656.5,-193 433.5,-193"/>
<text text-anchor="start" x="436" y="-179.8" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="499.5" y="-179.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="595" y="-179.8" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="none" points="433.5,-172 433.5,-174 656.5,-174 656.5,-172 433.5,-172"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-170 433.5,-172 656.5,-172 656.5,-170 433.5,-170"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-168 433.5,-170 656.5,-170 656.5,-168 433.5,-168"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-166 433.5,-168 656.5,-168 656.5,-166 433.5,-166"/>
<polygon fill="#000000" stroke="none" points="433.5,-164 433.5,-166 656.5,-166 656.5,-164 433.5,-164"/>
<text text-anchor="start" x="435.5" y="-150.8" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="513" y="-150.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="594.5" y="-150.8" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="none" points="433.5,-143 433.5,-145 656.5,-145 656.5,-143 433.5,-143"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-141 433.5,-143 656.5,-143 656.5,-141 433.5,-141"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-139 433.5,-141 656.5,-141 656.5,-139 433.5,-139"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-137 433.5,-139 656.5,-139 656.5,-137 433.5,-137"/>
<polygon fill="#000000" stroke="none" points="433.5,-135 433.5,-137 656.5,-137 656.5,-135 433.5,-135"/>
<text text-anchor="start" x="437.5" y="-121.8" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="501" y="-121.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="596.5" y="-121.8" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-114 433.5,-116 656.5,-116 656.5,-114 433.5,-114"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-112 433.5,-114 656.5,-114 656.5,-112 433.5,-112"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-110 433.5,-112 656.5,-112 656.5,-110 433.5,-110"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-108 433.5,-110 656.5,-110 656.5,-108 433.5,-108"/>
<polygon fill="#000000" stroke="none" points="433.5,-106 433.5,-108 656.5,-108 656.5,-106 433.5,-106"/>
<text text-anchor="start" x="438" y="-92.8" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="511" y="-92.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="597" y="-92.8" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-85 433.5,-87 656.5,-87 656.5,-85 433.5,-85"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-83 433.5,-85 656.5,-85 656.5,-83 433.5,-83"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-81 433.5,-83 656.5,-83 656.5,-81 433.5,-81"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-79 433.5,-81 656.5,-81 656.5,-79 433.5,-79"/>
<polygon fill="#000000" stroke="none" points="433.5,-77 433.5,-79 656.5,-79 656.5,-77 433.5,-77"/>
<text text-anchor="start" x="435.5" y="-63.8" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="501" y="-63.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="594.5" y="-63.8" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="none" points="433.5,-56 433.5,-58 656.5,-58 656.5,-56 433.5,-56"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-54 433.5,-56 656.5,-56 656.5,-54 433.5,-54"/>
<polygon fill="#895956" stroke="none" points="433.5,-52 433.5,-54 656.5,-54 656.5,-52 433.5,-52"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-50 433.5,-52 656.5,-52 656.5,-50 433.5,-50"/>
<polygon fill="#000000" stroke="none" points="433.5,-48 433.5,-50 656.5,-50 656.5,-48 433.5,-48"/>
<text text-anchor="start" x="437.5" y="-34.8" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="513" y="-34.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="596.5" y="-34.8" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-27 433.5,-29 656.5,-29 656.5,-27 433.5,-27"/>
<polygon fill="#895956" stroke="none" points="433.5,-25 433.5,-27 656.5,-27 656.5,-25 433.5,-25"/>
<polygon fill="#895956" stroke="none" points="433.5,-23 433.5,-25 656.5,-25 656.5,-23 433.5,-23"/>
<polygon fill="#895956" stroke="none" points="433.5,-21 433.5,-23 656.5,-23 656.5,-21 433.5,-21"/>
<polygon fill="#000000" stroke="none" points="433.5,-19 433.5,-21 656.5,-21 656.5,-19 433.5,-19"/>
<text text-anchor="start" x="463.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-203C365.83,-204.62 380.6,-224.62 442,-223"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-205C364.22,-205.81 378.99,-225.81 442,-225"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-207C362.61,-207 377.39,-227 442,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-209C361.01,-208.19 375.78,-228.19 442,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-211C359.4,-209.38 374.17,-229.38 442,-231"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-203C356.83,-204.62 371.6,-224.62 433,-223"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-205C355.22,-205.81 369.99,-225.81 433,-225"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-207C353.61,-207 368.39,-227 433,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-209C352.01,-208.19 366.78,-228.19 433,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-211C350.4,-209.38 365.17,-229.38 433,-231"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-180C364.99,-181.04 380.39,-195.04 442,-194"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-182C363.65,-182.52 379.04,-196.52 442,-196"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-184C362.3,-184 377.7,-198 442,-198"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-186C360.96,-185.48 376.35,-199.48 442,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-188C359.61,-186.96 375.01,-200.96 442,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-180C355.99,-181.04 371.39,-195.04 433,-194"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-182C354.65,-182.52 370.04,-196.52 433,-196"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-184C353.3,-184 368.7,-198 433,-198"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-186C351.96,-185.48 367.35,-199.48 433,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-188C350.61,-186.96 366.01,-200.96 433,-202"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-157C363.91,-157.43 379.71,-165.43 442,-165"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-159C363,-159.22 378.8,-167.22 442,-167"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-161C362.1,-161 377.9,-169 442,-169"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-163C361.2,-162.78 377,-170.78 442,-171"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-165C360.29,-164.57 376.09,-172.57 442,-173"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-157C354.91,-157.43 370.71,-165.43 433,-165"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-159C354,-159.22 369.8,-167.22 433,-167"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-161C353.1,-161 368.9,-169 433,-169"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-163C352.2,-162.78 368,-170.78 433,-171"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-165C351.29,-164.57 367.09,-172.57 433,-173"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-133C362.75,-133.07 378.72,-136.07 442,-136"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-135C362.38,-135.03 378.36,-138.03 442,-138"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-137C362.01,-137 377.99,-140 442,-140"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-139C361.64,-138.97 377.62,-141.97 442,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-141C361.28,-140.93 377.25,-143.93 442,-144"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-133C353.75,-133.07 369.72,-136.07 433,-136"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-135C353.38,-135.03 369.36,-138.03 433,-138"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-137C353.01,-137 368.99,-140 433,-140"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-139C352.64,-138.97 368.62,-141.97 433,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-141C352.28,-140.93 368.25,-143.93 433,-144"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-110C361.28,-110.07 377.25,-107.07 442,-107"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-112C361.64,-112.03 377.62,-109.03 442,-109"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-114C362.01,-114 377.99,-111 442,-111"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-116C362.38,-115.97 378.36,-112.97 442,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-118C362.75,-117.93 378.72,-114.93 442,-115"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-110C352.28,-110.07 368.25,-107.07 433,-107"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-112C352.64,-112.03 368.62,-109.03 433,-109"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-114C353.01,-114 368.99,-111 433,-111"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-116C353.38,-115.97 369.36,-112.97 433,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-118C353.75,-117.93 369.72,-114.93 433,-115"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-87C360.14,-87.53 375.89,-78.53 442,-78"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-89C361.13,-89.26 376.88,-80.26 442,-80"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-91C362.12,-91 377.88,-82 442,-82"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-93C363.12,-92.74 378.87,-83.74 442,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-95C364.11,-94.47 379.86,-85.47 442,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-87C351.14,-87.53 366.89,-78.53 433,-78"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-89C352.13,-89.26 367.88,-80.26 433,-80"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-91C353.12,-91 368.88,-82 433,-82"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-93C354.12,-92.74 369.87,-83.74 433,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-95C355.11,-94.47 370.86,-85.47 433,-86"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-64C359.55,-65.14 374.85,-50.14 442,-49"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-66C360.95,-66.57 376.25,-51.57 442,-51"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-68C362.35,-68 377.65,-53 442,-53"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-70C363.75,-69.43 379.05,-54.43 442,-55"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-72C365.15,-70.86 380.45,-55.86 442,-57"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-64C350.55,-65.14 365.85,-50.14 433,-49"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-66C351.95,-66.57 367.25,-51.57 433,-51"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-68C353.35,-68 368.65,-53 433,-53"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-70C354.75,-69.43 370.05,-54.43 433,-55"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-72C356.15,-70.86 371.45,-55.86 433,-57"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-41C359.4,-42.71 374.04,-21.71 442,-20"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-43C361.04,-43.86 375.68,-22.86 442,-22"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-45C362.68,-45 377.32,-24 442,-24"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-47C364.32,-46.14 378.96,-25.14 442,-26"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-49C365.96,-47.29 380.6,-26.29 442,-28"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-41C350.4,-42.71 365.04,-21.71 433,-20"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-43C352.04,-43.86 366.68,-22.86 433,-22"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-45C353.68,-45 368.32,-24 433,-24"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-47C355.32,-46.14 369.96,-25.14 433,-26"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-49C356.96,-47.29 371.6,-26.29 433,-28"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="1112,-278 814,-278 814,-48 1112,-48 1112,-278"/>
<polygon fill="none" stroke="black" points="814,-255 814,-278 1112,-278 1112,-255 814,-255"/>
<text text-anchor="start" x="954" y="-262.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="814,-232 814,-255 1033,-255 1033,-232 814,-232"/>
<text text-anchor="start" x="818" y="-239.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1033,-232 1033,-255 1072,-255 1072,-232 1033,-232"/>
<text text-anchor="start" x="1037" y="-239.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1072,-232 1072,-255 1112,-255 1112,-232 1072,-232"/>
<text text-anchor="start" x="1076" y="-239.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="814,-209 814,-232 953,-232 953,-209 814,-209"/>
<text text-anchor="start" x="879.5" y="-216.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="953,-209 953,-232 1112,-232 1112,-209 953,-209"/>
<text text-anchor="start" x="1018.5" y="-216.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="814,-186 814,-209 953,-209 953,-186 814,-186"/>
<text text-anchor="start" x="879.5" y="-193.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="953,-186 953,-209 1112,-209 1112,-186 953,-186"/>
<text text-anchor="start" x="1020" y="-193.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="814,-163 814,-186 953,-186 953,-163 814,-163"/>
<text text-anchor="start" x="879.5" y="-170.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="953,-163 953,-186 1112,-186 1112,-163 953,-163"/>
<text text-anchor="start" x="1018.5" y="-170.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="814,-140 814,-163 953,-163 953,-140 814,-140"/>
<text text-anchor="start" x="879.5" y="-147.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="953,-140 953,-163 1112,-163 1112,-140 953,-140"/>
<text text-anchor="start" x="1018" y="-147.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="814,-117 814,-140 953,-140 953,-117 814,-117"/>
<text text-anchor="start" x="879.5" y="-124.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="953,-117 953,-140 1112,-140 1112,-117 953,-117"/>
<text text-anchor="start" x="1020" y="-124.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="814,-94 814,-117 953,-117 953,-94 814,-94"/>
<text text-anchor="start" x="879.5" y="-101.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="953,-94 953,-117 1112,-117 1112,-94 953,-94"/>
<text text-anchor="start" x="1020" y="-101.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="814,-71 814,-94 953,-94 953,-71 814,-71"/>
<text text-anchor="start" x="879.5" y="-78.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="953,-71 953,-94 1112,-94 1112,-71 953,-71"/>
<text text-anchor="start" x="1018" y="-78.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="814,-48 814,-71 953,-71 953,-48 814,-48"/>
<text text-anchor="start" x="879.5" y="-55.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="953,-48 953,-71 1112,-71 1112,-48 953,-48"/>
<text text-anchor="start" x="1020" y="-55.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="#ffffff" stroke="black" points="1089,-278 800,-278 800,-48 1089,-48 1089,-278"/>
<polygon fill="none" stroke="black" points="800.5,-255 800.5,-278 1089.5,-278 1089.5,-255 800.5,-255"/>
<text text-anchor="start" x="936.5" y="-262.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="800.5,-232 800.5,-255 1011.5,-255 1011.5,-232 800.5,-232"/>
<text text-anchor="start" x="804.5" y="-239.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1011.5,-232 1011.5,-255 1050.5,-255 1050.5,-232 1011.5,-232"/>
<text text-anchor="start" x="1015.5" y="-239.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1050.5,-232 1050.5,-255 1089.5,-255 1089.5,-232 1050.5,-232"/>
<text text-anchor="start" x="1054.5" y="-239.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="800.5,-209 800.5,-232 935.5,-232 935.5,-209 800.5,-209"/>
<text text-anchor="start" x="864" y="-216.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="935.5,-209 935.5,-232 1089.5,-232 1089.5,-209 935.5,-209"/>
<text text-anchor="start" x="998.5" y="-216.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="800.5,-186 800.5,-209 935.5,-209 935.5,-186 800.5,-186"/>
<text text-anchor="start" x="864" y="-193.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="935.5,-186 935.5,-209 1089.5,-209 1089.5,-186 935.5,-186"/>
<text text-anchor="start" x="1000.5" y="-193.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="800.5,-163 800.5,-186 935.5,-186 935.5,-163 800.5,-163"/>
<text text-anchor="start" x="864" y="-170.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="935.5,-163 935.5,-186 1089.5,-186 1089.5,-163 935.5,-163"/>
<text text-anchor="start" x="998.5" y="-170.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="800.5,-140 800.5,-163 935.5,-163 935.5,-140 800.5,-140"/>
<text text-anchor="start" x="864" y="-147.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="935.5,-140 935.5,-163 1089.5,-163 1089.5,-140 935.5,-140"/>
<text text-anchor="start" x="998.5" y="-147.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="800.5,-117 800.5,-140 935.5,-140 935.5,-117 800.5,-117"/>
<text text-anchor="start" x="864" y="-124.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="935.5,-117 935.5,-140 1089.5,-140 1089.5,-117 935.5,-117"/>
<text text-anchor="start" x="1000" y="-124.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="800.5,-94 800.5,-117 935.5,-117 935.5,-94 800.5,-94"/>
<text text-anchor="start" x="864" y="-101.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="935.5,-94 935.5,-117 1089.5,-117 1089.5,-94 935.5,-94"/>
<text text-anchor="start" x="1000.5" y="-101.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="800.5,-71 800.5,-94 935.5,-94 935.5,-71 800.5,-71"/>
<text text-anchor="start" x="864" y="-78.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="935.5,-71 935.5,-94 1089.5,-94 1089.5,-71 935.5,-71"/>
<text text-anchor="start" x="998.5" y="-78.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="800.5,-48 800.5,-71 935.5,-71 935.5,-48 800.5,-48"/>
<text text-anchor="start" x="864" y="-55.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="935.5,-48 935.5,-71 1089.5,-71 1089.5,-48 935.5,-48"/>
<text text-anchor="start" x="1000" y="-55.8" font-family="arial" font-size="14.00">DC&#45;</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-223C734.09,-226.4 742,-174.4 814,-171"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-225C736.07,-226.7 743.98,-174.7 814,-173"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-227C738.05,-227 745.95,-175 814,-175"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-229C740.02,-227.3 747.93,-175.3 814,-177"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-231C742,-227.6 749.91,-175.6 814,-179"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-223C720.09,-226.4 728,-174.4 800,-171"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-225C722.07,-226.7 729.98,-174.7 800,-173"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-227C724.05,-227 731.95,-175 800,-175"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-229C726.02,-227.3 733.93,-175.3 800,-177"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-231C728,-227.6 735.91,-175.6 800,-179"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-194C742.2,-198.36 733.83,-105.36 814,-101"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-196C744.19,-198.18 735.82,-105.18 814,-103"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-198C746.19,-198 737.81,-105 814,-105"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-200C748.18,-197.82 739.81,-104.82 814,-107"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-202C750.17,-197.64 741.8,-104.64 814,-109"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-194C728.2,-198.36 719.83,-105.36 800,-101"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-196C730.19,-198.18 721.82,-105.18 800,-103"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-198C732.19,-198 723.81,-105 800,-105"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-200C734.18,-197.82 725.81,-104.82 800,-107"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-202C736.17,-197.64 727.8,-104.64 800,-109"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-165C742,-168.4 749.91,-220.4 814,-217"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-167C740.02,-168.7 747.93,-220.7 814,-219"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-169C738.05,-169 745.95,-221 814,-221"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-171C736.07,-169.3 743.98,-221.3 814,-223"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-173C734.09,-169.6 742,-221.6 814,-225"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-165C728,-168.4 735.91,-220.4 800,-217"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-167C726.02,-168.7 733.93,-220.7 800,-219"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-169C724.05,-169 731.95,-221 800,-221"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-171C722.07,-169.3 729.98,-221.3 800,-223"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-173C720.09,-169.6 728,-221.6 800,-225"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-136C735.02,-139.59 741.02,-81.59 814,-78"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-138C737.01,-139.79 743.01,-81.79 814,-80"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-140C739,-140 745,-82 814,-82"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-142C740.99,-140.21 746.99,-82.21 814,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-144C742.98,-140.41 748.98,-82.41 814,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-136C721.02,-139.59 727.02,-81.59 800,-78"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-138C723.01,-139.79 729.01,-81.79 800,-80"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-140C725,-140 731,-82 800,-82"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-142C726.99,-140.21 732.99,-82.21 800,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-144C728.98,-140.41 734.98,-82.41 800,-86"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-107C734.09,-110.4 742,-58.4 814,-55"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-109C736.07,-110.7 743.98,-58.7 814,-57"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-111C738.05,-111 745.95,-59 814,-59"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-113C740.02,-111.3 747.93,-59.3 814,-61"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-115C742,-111.6 749.91,-59.6 814,-63"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-107C720.09,-110.4 728,-58.4 800,-55"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-109C722.07,-110.7 729.98,-58.7 800,-57"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-111C724.05,-111 731.95,-59 800,-59"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-113C726.02,-111.3 733.93,-59.3 800,-61"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-115C728,-111.6 735.91,-59.6 800,-63"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-78C756.12,-82.69 735.76,-198.69 814,-194"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-80C754.15,-82.35 733.79,-198.35 814,-196"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-82C752.18,-82 731.82,-198 814,-198"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-84C750.21,-81.65 729.85,-197.65 814,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-86C748.24,-81.31 727.88,-197.31 814,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-78C742.12,-82.69 721.76,-198.69 800,-194"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-80C740.15,-82.35 719.79,-198.35 800,-196"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-82C738.18,-82 717.82,-198 800,-198"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-84C736.21,-81.65 715.85,-197.65 800,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-86C734.24,-81.31 713.88,-197.31 800,-202"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-49C751.39,-53.44 740.56,-151.44 814,-147"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-51C749.4,-53.22 738.57,-151.22 814,-149"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-53C747.42,-53 736.58,-151 814,-151"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-55C745.43,-52.78 734.6,-150.78 814,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-57C743.44,-52.56 732.61,-150.56 814,-155"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-49C737.39,-53.44 726.56,-151.44 800,-147"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-51C735.4,-53.22 724.57,-151.22 800,-149"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-53C733.42,-53 722.58,-151 800,-151"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-55C731.43,-52.78 720.6,-150.78 800,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-57C729.44,-52.56 718.61,-150.56 800,-155"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-20C752.91,-24.53 739.02,-128.53 814,-124"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-22C750.93,-24.26 737.04,-128.26 814,-126"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-24C748.95,-24 735.05,-128 814,-128"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-26C746.96,-23.74 733.07,-127.74 814,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-28C744.98,-23.47 731.09,-127.47 814,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-20C738.91,-24.53 725.02,-128.53 800,-124"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-22C736.93,-24.26 723.04,-128.26 800,-126"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-24C734.95,-24 721.05,-128 800,-128"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-26C732.96,-23.74 719.07,-127.74 800,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-28C730.98,-23.47 717.09,-127.47 800,-132"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Cable, CAT5e, 8 x 24 AWG</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, CAT5e, 8 x 24 AWG</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Connector, Stewart Connector SS-37000-002, male, 8 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">2</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1, X2</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, Stewart Connector SS-37000-002, male, 8 pins</td>
<td class="bom_col_qty">2</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1, X2</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex10.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 144 KiB

486
examples/ex10.svg generated
View File

@ -1,327 +1,327 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="1120pt" height="324pt"
viewBox="0.00 0.00 1120.00 324.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="1097pt" height="324pt"
viewBox="0.00 0.00 1097.00 324.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 320)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-320 1116,-320 1116,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-320 1093,-320 1093,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="298,-264 0,-264 0,-34 298,-34 298,-264"/>
<polygon fill="none" stroke="black" points="0,-241 0,-264 298,-264 298,-241 0,-241"/>
<text text-anchor="start" x="140" y="-248.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-218 0,-241 219,-241 219,-218 0,-218"/>
<text text-anchor="start" x="4" y="-225.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="219,-218 219,-241 258,-241 258,-218 219,-218"/>
<text text-anchor="start" x="223" y="-225.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="258,-218 258,-241 298,-241 298,-218 258,-218"/>
<text text-anchor="start" x="262" y="-225.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-195 0,-218 160,-218 160,-195 0,-195"/>
<text text-anchor="start" x="66" y="-202.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="160,-195 160,-218 298,-218 298,-195 160,-195"/>
<text text-anchor="start" x="225" y="-202.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-172 0,-195 160,-195 160,-172 0,-172"/>
<text text-anchor="start" x="67.5" y="-179.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="160,-172 160,-195 298,-195 298,-172 160,-172"/>
<text text-anchor="start" x="225" y="-179.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-149 0,-172 160,-172 160,-149 0,-149"/>
<text text-anchor="start" x="66" y="-156.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="160,-149 160,-172 298,-172 298,-149 160,-149"/>
<text text-anchor="start" x="225" y="-156.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-126 0,-149 160,-149 160,-126 0,-126"/>
<text text-anchor="start" x="65.5" y="-133.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="160,-126 160,-149 298,-149 298,-126 160,-126"/>
<text text-anchor="start" x="225" y="-133.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0,-103 0,-126 160,-126 160,-103 0,-103"/>
<text text-anchor="start" x="67.5" y="-110.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="160,-103 160,-126 298,-126 298,-103 160,-103"/>
<text text-anchor="start" x="225" y="-110.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0,-80 0,-103 160,-103 160,-80 0,-80"/>
<text text-anchor="start" x="67.5" y="-87.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="160,-80 160,-103 298,-103 298,-80 160,-80"/>
<text text-anchor="start" x="225" y="-87.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0,-57 0,-80 160,-80 160,-57 0,-57"/>
<text text-anchor="start" x="65.5" y="-64.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="160,-57 160,-80 298,-80 298,-57 160,-57"/>
<text text-anchor="start" x="225" y="-64.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0,-34 0,-57 160,-57 160,-34 0,-34"/>
<text text-anchor="start" x="67.5" y="-41.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="160,-34 160,-57 298,-57 298,-34 160,-34"/>
<text text-anchor="start" x="225" y="-41.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="#ffffff" stroke="black" points="289,-264 0,-264 0,-34 289,-34 289,-264"/>
<polygon fill="none" stroke="black" points="0.5,-241 0.5,-264 289.5,-264 289.5,-241 0.5,-241"/>
<text text-anchor="start" x="136.5" y="-248.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-218 0.5,-241 211.5,-241 211.5,-218 0.5,-218"/>
<text text-anchor="start" x="4.5" y="-225.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="211.5,-218 211.5,-241 250.5,-241 250.5,-218 211.5,-218"/>
<text text-anchor="start" x="215.5" y="-225.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="250.5,-218 250.5,-241 289.5,-241 289.5,-218 250.5,-218"/>
<text text-anchor="start" x="254.5" y="-225.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-195 0.5,-218 155.5,-218 155.5,-195 0.5,-195"/>
<text text-anchor="start" x="64" y="-202.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="155.5,-195 155.5,-218 289.5,-218 289.5,-195 155.5,-195"/>
<text text-anchor="start" x="218.5" y="-202.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-172 0.5,-195 155.5,-195 155.5,-172 0.5,-172"/>
<text text-anchor="start" x="66" y="-179.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-172 155.5,-195 289.5,-195 289.5,-172 155.5,-172"/>
<text text-anchor="start" x="218.5" y="-179.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-149 0.5,-172 155.5,-172 155.5,-149 0.5,-149"/>
<text text-anchor="start" x="64" y="-156.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="155.5,-149 155.5,-172 289.5,-172 289.5,-149 155.5,-149"/>
<text text-anchor="start" x="218.5" y="-156.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-126 0.5,-149 155.5,-149 155.5,-126 0.5,-126"/>
<text text-anchor="start" x="64" y="-133.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="155.5,-126 155.5,-149 289.5,-149 289.5,-126 155.5,-126"/>
<text text-anchor="start" x="218.5" y="-133.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="0.5,-103 0.5,-126 155.5,-126 155.5,-103 0.5,-103"/>
<text text-anchor="start" x="65.5" y="-110.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-103 155.5,-126 289.5,-126 289.5,-103 155.5,-103"/>
<text text-anchor="start" x="218.5" y="-110.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="0.5,-80 0.5,-103 155.5,-103 155.5,-80 0.5,-80"/>
<text text-anchor="start" x="66" y="-87.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-80 155.5,-103 289.5,-103 289.5,-80 155.5,-80"/>
<text text-anchor="start" x="218.5" y="-87.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="0.5,-57 0.5,-80 155.5,-80 155.5,-57 0.5,-57"/>
<text text-anchor="start" x="64" y="-64.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="155.5,-57 155.5,-80 289.5,-80 289.5,-57 155.5,-57"/>
<text text-anchor="start" x="218.5" y="-64.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="0.5,-34 0.5,-57 155.5,-57 155.5,-34 0.5,-34"/>
<text text-anchor="start" x="65.5" y="-41.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="155.5,-34 155.5,-57 289.5,-57 289.5,-34 155.5,-34"/>
<text text-anchor="start" x="218.5" y="-41.8" font-family="arial" font-size="14.00">8</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="670,-316 442,-316 442,0 670,0 670,-316"/>
<polygon fill="none" stroke="black" points="442,-293 442,-316 670,-316 670,-293 442,-293"/>
<text text-anchor="start" x="545.5" y="-300.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="442,-270 442,-293 509,-293 509,-270 442,-270"/>
<text text-anchor="start" x="454" y="-277.8" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="509,-270 509,-293 548,-293 548,-270 509,-270"/>
<text text-anchor="start" x="521" y="-277.8" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="548,-270 548,-293 623,-293 623,-270 548,-270"/>
<text text-anchor="start" x="559.5" y="-277.8" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="623,-270 623,-293 670,-293 670,-270 623,-270"/>
<text text-anchor="start" x="634.5" y="-277.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="473" y="-256.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="444.5" y="-237.8" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="510" y="-237.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-237.8" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="transparent" points="442,-230 442,-232 670,-232 670,-230 442,-230"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-228 442,-230 670,-230 670,-228 442,-228"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-226 442,-228 670,-228 670,-226 442,-226"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-224 442,-226 670,-226 670,-224 442,-224"/>
<polygon fill="#000000" stroke="transparent" points="442,-222 442,-224 670,-224 670,-222 442,-222"/>
<text text-anchor="start" x="446.5" y="-208.8" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="522" y="-208.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-208.8" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-201 442,-203 670,-203 670,-201 442,-201"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-199 442,-201 670,-201 670,-199 442,-199"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-197 442,-199 670,-199 670,-197 442,-197"/>
<polygon fill="#00ff00" stroke="transparent" points="442,-195 442,-197 670,-197 670,-195 442,-195"/>
<polygon fill="#000000" stroke="transparent" points="442,-193 442,-195 670,-195 670,-193 442,-193"/>
<text text-anchor="start" x="444.5" y="-179.8" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="510" y="-179.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="606.5" y="-179.8" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="transparent" points="442,-172 442,-174 670,-174 670,-172 442,-172"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-170 442,-172 670,-172 670,-170 442,-170"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-168 442,-170 670,-170 670,-168 442,-168"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-166 442,-168 670,-168 670,-166 442,-166"/>
<polygon fill="#000000" stroke="transparent" points="442,-164 442,-166 670,-166 670,-164 442,-164"/>
<text text-anchor="start" x="444" y="-150.8" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="522.5" y="-150.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-150.8" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="transparent" points="442,-143 442,-145 670,-145 670,-143 442,-143"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-141 442,-143 670,-143 670,-141 442,-141"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-139 442,-141 670,-141 670,-139 442,-139"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-137 442,-139 670,-139 670,-137 442,-137"/>
<polygon fill="#000000" stroke="transparent" points="442,-135 442,-137 670,-137 670,-135 442,-135"/>
<text text-anchor="start" x="446" y="-121.8" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="511" y="-121.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-121.8" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-114 442,-116 670,-116 670,-114 442,-114"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-112 442,-114 670,-114 670,-112 442,-112"/>
<polygon fill="#0066ff" stroke="transparent" points="442,-110 442,-112 670,-112 670,-110 442,-110"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-108 442,-110 670,-110 670,-108 442,-108"/>
<polygon fill="#000000" stroke="transparent" points="442,-106 442,-108 670,-108 670,-106 442,-106"/>
<text text-anchor="start" x="446.5" y="-92.8" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="521.5" y="-92.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="608.5" y="-92.8" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-85 442,-87 670,-87 670,-85 442,-85"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-83 442,-85 670,-85 670,-83 442,-83"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-81 442,-83 670,-83 670,-81 442,-81"/>
<polygon fill="#ff8000" stroke="transparent" points="442,-79 442,-81 670,-81 670,-79 442,-79"/>
<polygon fill="#000000" stroke="transparent" points="442,-77 442,-79 670,-79 670,-77 442,-77"/>
<text text-anchor="start" x="444" y="-63.8" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="511" y="-63.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="606" y="-63.8" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="transparent" points="442,-56 442,-58 670,-58 670,-56 442,-56"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-54 442,-56 670,-56 670,-54 442,-54"/>
<polygon fill="#895956" stroke="transparent" points="442,-52 442,-54 670,-54 670,-52 442,-52"/>
<polygon fill="#ffffff" stroke="transparent" points="442,-50 442,-52 670,-52 670,-50 442,-50"/>
<polygon fill="#000000" stroke="transparent" points="442,-48 442,-50 670,-50 670,-48 442,-48"/>
<text text-anchor="start" x="446" y="-34.8" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="522.5" y="-34.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="608" y="-34.8" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="transparent" points="442,-27 442,-29 670,-29 670,-27 442,-27"/>
<polygon fill="#895956" stroke="transparent" points="442,-25 442,-27 670,-27 670,-25 442,-25"/>
<polygon fill="#895956" stroke="transparent" points="442,-23 442,-25 670,-25 670,-23 442,-23"/>
<polygon fill="#895956" stroke="transparent" points="442,-21 442,-23 670,-23 670,-21 442,-21"/>
<polygon fill="#000000" stroke="transparent" points="442,-19 442,-21 670,-21 670,-19 442,-19"/>
<text text-anchor="start" x="473" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="656,-316 433,-316 433,0 656,0 656,-316"/>
<polygon fill="none" stroke="black" points="433.5,-293 433.5,-316 656.5,-316 656.5,-293 433.5,-293"/>
<text text-anchor="start" x="534" y="-300.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="433.5,-270 433.5,-293 498.5,-293 498.5,-270 433.5,-270"/>
<text text-anchor="start" x="445" y="-277.8" font-family="arial" font-size="14.00">CAT5e</text>
<polygon fill="none" stroke="black" points="498.5,-270 498.5,-293 536.5,-293 536.5,-270 498.5,-270"/>
<text text-anchor="start" x="510" y="-277.8" font-family="arial" font-size="14.00">8x</text>
<polygon fill="none" stroke="black" points="536.5,-270 536.5,-293 610.5,-293 610.5,-270 536.5,-270"/>
<text text-anchor="start" x="547.5" y="-277.8" font-family="arial" font-size="14.00">24 AWG</text>
<polygon fill="none" stroke="black" points="610.5,-270 610.5,-293 656.5,-293 656.5,-270 610.5,-270"/>
<text text-anchor="start" x="621.5" y="-277.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="463.5" y="-256.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="436" y="-237.8" font-family="arial" font-size="14.00">X1:1:DA+</text>
<text text-anchor="start" x="500" y="-237.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WHGN &#160;&#160;&#160;</text>
<text text-anchor="start" x="595" y="-237.8" font-family="arial" font-size="14.00">X2:3:DA+</text>
<polygon fill="#000000" stroke="none" points="433.5,-230 433.5,-232 656.5,-232 656.5,-230 433.5,-230"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-228 433.5,-230 656.5,-230 656.5,-228 433.5,-228"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-226 433.5,-228 656.5,-228 656.5,-226 433.5,-226"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-224 433.5,-226 656.5,-226 656.5,-224 433.5,-224"/>
<polygon fill="#000000" stroke="none" points="433.5,-222 433.5,-224 656.5,-224 656.5,-222 433.5,-222"/>
<text text-anchor="start" x="438" y="-208.8" font-family="arial" font-size="14.00">X1:2:DA&#45;</text>
<text text-anchor="start" x="511.5" y="-208.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="597" y="-208.8" font-family="arial" font-size="14.00">X2:6:DA&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-201 433.5,-203 656.5,-203 656.5,-201 433.5,-201"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-199 433.5,-201 656.5,-201 656.5,-199 433.5,-199"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-197 433.5,-199 656.5,-199 656.5,-197 433.5,-197"/>
<polygon fill="#00ff00" stroke="none" points="433.5,-195 433.5,-197 656.5,-197 656.5,-195 433.5,-195"/>
<polygon fill="#000000" stroke="none" points="433.5,-193 433.5,-195 656.5,-195 656.5,-193 433.5,-193"/>
<text text-anchor="start" x="436" y="-179.8" font-family="arial" font-size="14.00">X1:3:DB+</text>
<text text-anchor="start" x="499.5" y="-179.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:WHOG &#160;&#160;&#160;</text>
<text text-anchor="start" x="595" y="-179.8" font-family="arial" font-size="14.00">X2:1:DB+</text>
<polygon fill="#000000" stroke="none" points="433.5,-172 433.5,-174 656.5,-174 656.5,-172 433.5,-172"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-170 433.5,-172 656.5,-172 656.5,-170 433.5,-170"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-168 433.5,-170 656.5,-170 656.5,-168 433.5,-168"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-166 433.5,-168 656.5,-168 656.5,-166 433.5,-166"/>
<polygon fill="#000000" stroke="none" points="433.5,-164 433.5,-166 656.5,-166 656.5,-164 433.5,-164"/>
<text text-anchor="start" x="435.5" y="-150.8" font-family="arial" font-size="14.00">X1:4:DC+</text>
<text text-anchor="start" x="513" y="-150.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="594.5" y="-150.8" font-family="arial" font-size="14.00">X2:7:DC+</text>
<polygon fill="#000000" stroke="none" points="433.5,-143 433.5,-145 656.5,-145 656.5,-143 433.5,-143"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-141 433.5,-143 656.5,-143 656.5,-141 433.5,-141"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-139 433.5,-141 656.5,-141 656.5,-139 433.5,-139"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-137 433.5,-139 656.5,-139 656.5,-137 433.5,-137"/>
<polygon fill="#000000" stroke="none" points="433.5,-135 433.5,-137 656.5,-137 656.5,-135 433.5,-135"/>
<text text-anchor="start" x="437.5" y="-121.8" font-family="arial" font-size="14.00">X1:5:DC&#45;</text>
<text text-anchor="start" x="501" y="-121.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;5:WHBU &#160;&#160;&#160;</text>
<text text-anchor="start" x="596.5" y="-121.8" font-family="arial" font-size="14.00">X2:8:DC&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-114 433.5,-116 656.5,-116 656.5,-114 433.5,-114"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-112 433.5,-114 656.5,-114 656.5,-112 433.5,-112"/>
<polygon fill="#0066ff" stroke="none" points="433.5,-110 433.5,-112 656.5,-112 656.5,-110 433.5,-110"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-108 433.5,-110 656.5,-110 656.5,-108 433.5,-108"/>
<polygon fill="#000000" stroke="none" points="433.5,-106 433.5,-108 656.5,-108 656.5,-106 433.5,-106"/>
<text text-anchor="start" x="438" y="-92.8" font-family="arial" font-size="14.00">X1:6:DB&#45;</text>
<text text-anchor="start" x="511" y="-92.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;6:OG &#160;&#160;&#160;</text>
<text text-anchor="start" x="597" y="-92.8" font-family="arial" font-size="14.00">X2:2:DB&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-85 433.5,-87 656.5,-87 656.5,-85 433.5,-85"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-83 433.5,-85 656.5,-85 656.5,-83 433.5,-83"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-81 433.5,-83 656.5,-83 656.5,-81 433.5,-81"/>
<polygon fill="#ff8000" stroke="none" points="433.5,-79 433.5,-81 656.5,-81 656.5,-79 433.5,-79"/>
<polygon fill="#000000" stroke="none" points="433.5,-77 433.5,-79 656.5,-79 656.5,-77 433.5,-77"/>
<text text-anchor="start" x="435.5" y="-63.8" font-family="arial" font-size="14.00">X1:7:DD+</text>
<text text-anchor="start" x="501" y="-63.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;7:WHBN &#160;&#160;&#160;</text>
<text text-anchor="start" x="594.5" y="-63.8" font-family="arial" font-size="14.00">X2:4:DD+</text>
<polygon fill="#000000" stroke="none" points="433.5,-56 433.5,-58 656.5,-58 656.5,-56 433.5,-56"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-54 433.5,-56 656.5,-56 656.5,-54 433.5,-54"/>
<polygon fill="#895956" stroke="none" points="433.5,-52 433.5,-54 656.5,-54 656.5,-52 433.5,-52"/>
<polygon fill="#ffffff" stroke="none" points="433.5,-50 433.5,-52 656.5,-52 656.5,-50 433.5,-50"/>
<polygon fill="#000000" stroke="none" points="433.5,-48 433.5,-50 656.5,-50 656.5,-48 433.5,-48"/>
<text text-anchor="start" x="437.5" y="-34.8" font-family="arial" font-size="14.00">X1:8:DD&#45;</text>
<text text-anchor="start" x="513" y="-34.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;8:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="596.5" y="-34.8" font-family="arial" font-size="14.00">X2:5:DD&#45;</text>
<polygon fill="#000000" stroke="none" points="433.5,-27 433.5,-29 656.5,-29 656.5,-27 433.5,-27"/>
<polygon fill="#895956" stroke="none" points="433.5,-25 433.5,-27 656.5,-27 656.5,-25 433.5,-25"/>
<polygon fill="#895956" stroke="none" points="433.5,-23 433.5,-25 656.5,-25 656.5,-23 433.5,-23"/>
<polygon fill="#895956" stroke="none" points="433.5,-21 433.5,-23 656.5,-23 656.5,-21 433.5,-21"/>
<polygon fill="#000000" stroke="none" points="433.5,-19 433.5,-21 656.5,-21 656.5,-19 433.5,-19"/>
<text text-anchor="start" x="463.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-203C365.83,-204.62 380.6,-224.62 442,-223"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-205C364.22,-205.81 378.99,-225.81 442,-225"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-207C362.61,-207 377.39,-227 442,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-209C361.01,-208.19 375.78,-228.19 442,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-211C359.4,-209.38 374.17,-229.38 442,-231"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-203C356.83,-204.62 371.6,-224.62 433,-223"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-205C355.22,-205.81 369.99,-225.81 433,-225"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-207C353.61,-207 368.39,-227 433,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-209C352.01,-208.19 366.78,-228.19 433,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-211C350.4,-209.38 365.17,-229.38 433,-231"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-180C364.99,-181.04 380.39,-195.04 442,-194"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-182C363.65,-182.52 379.04,-196.52 442,-196"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-184C362.3,-184 377.7,-198 442,-198"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M298,-186C360.96,-185.48 376.35,-199.48 442,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-188C359.61,-186.96 375.01,-200.96 442,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-180C355.99,-181.04 371.39,-195.04 433,-194"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-182C354.65,-182.52 370.04,-196.52 433,-196"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-184C353.3,-184 368.7,-198 433,-198"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M289,-186C351.96,-185.48 367.35,-199.48 433,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-188C350.61,-186.96 366.01,-200.96 433,-202"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-157C363.91,-157.43 379.71,-165.43 442,-165"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-159C363,-159.22 378.8,-167.22 442,-167"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-161C362.1,-161 377.9,-169 442,-169"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-163C361.2,-162.78 377,-170.78 442,-171"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-165C360.29,-164.57 376.09,-172.57 442,-173"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-157C354.91,-157.43 370.71,-165.43 433,-165"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-159C354,-159.22 369.8,-167.22 433,-167"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-161C353.1,-161 368.9,-169 433,-169"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-163C352.2,-162.78 368,-170.78 433,-171"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-165C351.29,-164.57 367.09,-172.57 433,-173"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-133C362.75,-133.07 378.72,-136.07 442,-136"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-135C362.38,-135.03 378.36,-138.03 442,-138"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-137C362.01,-137 377.99,-140 442,-140"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-139C361.64,-138.97 377.62,-141.97 442,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-141C361.28,-140.93 377.25,-143.93 442,-144"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-133C353.75,-133.07 369.72,-136.07 433,-136"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-135C353.38,-135.03 369.36,-138.03 433,-138"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-137C353.01,-137 368.99,-140 433,-140"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-139C352.64,-138.97 368.62,-141.97 433,-142"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-141C352.28,-140.93 368.25,-143.93 433,-144"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-110C361.28,-110.07 377.25,-107.07 442,-107"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-112C361.64,-112.03 377.62,-109.03 442,-109"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M298,-114C362.01,-114 377.99,-111 442,-111"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-116C362.38,-115.97 378.36,-112.97 442,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-118C362.75,-117.93 378.72,-114.93 442,-115"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-110C352.28,-110.07 368.25,-107.07 433,-107"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-112C352.64,-112.03 368.62,-109.03 433,-109"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M289,-114C353.01,-114 368.99,-111 433,-111"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-116C353.38,-115.97 369.36,-112.97 433,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-118C353.75,-117.93 369.72,-114.93 433,-115"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge11" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-87C360.14,-87.53 375.89,-78.53 442,-78"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-89C361.13,-89.26 376.88,-80.26 442,-80"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-91C362.12,-91 377.88,-82 442,-82"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M298,-93C363.12,-92.74 378.87,-83.74 442,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-95C364.11,-94.47 379.86,-85.47 442,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-87C351.14,-87.53 366.89,-78.53 433,-78"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-89C352.13,-89.26 367.88,-80.26 433,-80"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-91C353.12,-91 368.88,-82 433,-82"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M289,-93C354.12,-92.74 369.87,-83.74 433,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-95C355.11,-94.47 370.86,-85.47 433,-86"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge13" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-64C359.55,-65.14 374.85,-50.14 442,-49"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-66C360.95,-66.57 376.25,-51.57 442,-51"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-68C362.35,-68 377.65,-53 442,-53"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M298,-70C363.75,-69.43 379.05,-54.43 442,-55"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-72C365.15,-70.86 380.45,-55.86 442,-57"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-64C350.55,-65.14 365.85,-50.14 433,-49"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-66C351.95,-66.57 367.25,-51.57 433,-51"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-68C353.35,-68 368.65,-53 433,-53"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M289,-70C354.75,-69.43 370.05,-54.43 433,-55"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-72C356.15,-70.86 371.45,-55.86 433,-57"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge15" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-41C359.4,-42.71 374.04,-21.71 442,-20"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-43C361.04,-43.86 375.68,-22.86 442,-22"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-45C362.68,-45 377.32,-24 442,-24"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M298,-47C364.32,-46.14 378.96,-25.14 442,-26"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M298,-49C365.96,-47.29 380.6,-26.29 442,-28"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-41C350.4,-42.71 365.04,-21.71 433,-20"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-43C352.04,-43.86 366.68,-22.86 433,-22"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-45C353.68,-45 368.32,-24 433,-24"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M289,-47C355.32,-46.14 369.96,-25.14 433,-26"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M289,-49C356.96,-47.29 371.6,-26.29 433,-28"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="1112,-278 814,-278 814,-48 1112,-48 1112,-278"/>
<polygon fill="none" stroke="black" points="814,-255 814,-278 1112,-278 1112,-255 814,-255"/>
<text text-anchor="start" x="954" y="-262.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="814,-232 814,-255 1033,-255 1033,-232 814,-232"/>
<text text-anchor="start" x="818" y="-239.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1033,-232 1033,-255 1072,-255 1072,-232 1033,-232"/>
<text text-anchor="start" x="1037" y="-239.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1072,-232 1072,-255 1112,-255 1112,-232 1072,-232"/>
<text text-anchor="start" x="1076" y="-239.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="814,-209 814,-232 953,-232 953,-209 814,-209"/>
<text text-anchor="start" x="879.5" y="-216.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="953,-209 953,-232 1112,-232 1112,-209 953,-209"/>
<text text-anchor="start" x="1018.5" y="-216.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="814,-186 814,-209 953,-209 953,-186 814,-186"/>
<text text-anchor="start" x="879.5" y="-193.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="953,-186 953,-209 1112,-209 1112,-186 953,-186"/>
<text text-anchor="start" x="1020" y="-193.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="814,-163 814,-186 953,-186 953,-163 814,-163"/>
<text text-anchor="start" x="879.5" y="-170.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="953,-163 953,-186 1112,-186 1112,-163 953,-163"/>
<text text-anchor="start" x="1018.5" y="-170.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="814,-140 814,-163 953,-163 953,-140 814,-140"/>
<text text-anchor="start" x="879.5" y="-147.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="953,-140 953,-163 1112,-163 1112,-140 953,-140"/>
<text text-anchor="start" x="1018" y="-147.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="814,-117 814,-140 953,-140 953,-117 814,-117"/>
<text text-anchor="start" x="879.5" y="-124.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="953,-117 953,-140 1112,-140 1112,-117 953,-117"/>
<text text-anchor="start" x="1020" y="-124.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="814,-94 814,-117 953,-117 953,-94 814,-94"/>
<text text-anchor="start" x="879.5" y="-101.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="953,-94 953,-117 1112,-117 1112,-94 953,-94"/>
<text text-anchor="start" x="1020" y="-101.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="814,-71 814,-94 953,-94 953,-71 814,-71"/>
<text text-anchor="start" x="879.5" y="-78.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="953,-71 953,-94 1112,-94 1112,-71 953,-71"/>
<text text-anchor="start" x="1018" y="-78.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="814,-48 814,-71 953,-71 953,-48 814,-48"/>
<text text-anchor="start" x="879.5" y="-55.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="953,-48 953,-71 1112,-71 1112,-48 953,-48"/>
<text text-anchor="start" x="1020" y="-55.8" font-family="arial" font-size="14.00">DC&#45;</text>
<polygon fill="#ffffff" stroke="black" points="1089,-278 800,-278 800,-48 1089,-48 1089,-278"/>
<polygon fill="none" stroke="black" points="800.5,-255 800.5,-278 1089.5,-278 1089.5,-255 800.5,-255"/>
<text text-anchor="start" x="936.5" y="-262.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="800.5,-232 800.5,-255 1011.5,-255 1011.5,-232 800.5,-232"/>
<text text-anchor="start" x="804.5" y="-239.8" font-family="arial" font-size="14.00">Stewart Connector SS&#45;37000&#45;002</text>
<polygon fill="none" stroke="black" points="1011.5,-232 1011.5,-255 1050.5,-255 1050.5,-232 1011.5,-232"/>
<text text-anchor="start" x="1015.5" y="-239.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1050.5,-232 1050.5,-255 1089.5,-255 1089.5,-232 1050.5,-232"/>
<text text-anchor="start" x="1054.5" y="-239.8" font-family="arial" font-size="14.00">8&#45;pin</text>
<polygon fill="none" stroke="black" points="800.5,-209 800.5,-232 935.5,-232 935.5,-209 800.5,-209"/>
<text text-anchor="start" x="864" y="-216.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="935.5,-209 935.5,-232 1089.5,-232 1089.5,-209 935.5,-209"/>
<text text-anchor="start" x="998.5" y="-216.8" font-family="arial" font-size="14.00">DB+</text>
<polygon fill="none" stroke="black" points="800.5,-186 800.5,-209 935.5,-209 935.5,-186 800.5,-186"/>
<text text-anchor="start" x="864" y="-193.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="935.5,-186 935.5,-209 1089.5,-209 1089.5,-186 935.5,-186"/>
<text text-anchor="start" x="1000.5" y="-193.8" font-family="arial" font-size="14.00">DB&#45;</text>
<polygon fill="none" stroke="black" points="800.5,-163 800.5,-186 935.5,-186 935.5,-163 800.5,-163"/>
<text text-anchor="start" x="864" y="-170.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="935.5,-163 935.5,-186 1089.5,-186 1089.5,-163 935.5,-163"/>
<text text-anchor="start" x="998.5" y="-170.8" font-family="arial" font-size="14.00">DA+</text>
<polygon fill="none" stroke="black" points="800.5,-140 800.5,-163 935.5,-163 935.5,-140 800.5,-140"/>
<text text-anchor="start" x="864" y="-147.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="935.5,-140 935.5,-163 1089.5,-163 1089.5,-140 935.5,-140"/>
<text text-anchor="start" x="998.5" y="-147.8" font-family="arial" font-size="14.00">DD+</text>
<polygon fill="none" stroke="black" points="800.5,-117 800.5,-140 935.5,-140 935.5,-117 800.5,-117"/>
<text text-anchor="start" x="864" y="-124.8" font-family="arial" font-size="14.00">5</text>
<polygon fill="none" stroke="black" points="935.5,-117 935.5,-140 1089.5,-140 1089.5,-117 935.5,-117"/>
<text text-anchor="start" x="1000" y="-124.8" font-family="arial" font-size="14.00">DD&#45;</text>
<polygon fill="none" stroke="black" points="800.5,-94 800.5,-117 935.5,-117 935.5,-94 800.5,-94"/>
<text text-anchor="start" x="864" y="-101.8" font-family="arial" font-size="14.00">6</text>
<polygon fill="none" stroke="black" points="935.5,-94 935.5,-117 1089.5,-117 1089.5,-94 935.5,-94"/>
<text text-anchor="start" x="1000.5" y="-101.8" font-family="arial" font-size="14.00">DA&#45;</text>
<polygon fill="none" stroke="black" points="800.5,-71 800.5,-94 935.5,-94 935.5,-71 800.5,-71"/>
<text text-anchor="start" x="864" y="-78.8" font-family="arial" font-size="14.00">7</text>
<polygon fill="none" stroke="black" points="935.5,-71 935.5,-94 1089.5,-94 1089.5,-71 935.5,-71"/>
<text text-anchor="start" x="998.5" y="-78.8" font-family="arial" font-size="14.00">DC+</text>
<polygon fill="none" stroke="black" points="800.5,-48 800.5,-71 935.5,-71 935.5,-48 800.5,-48"/>
<text text-anchor="start" x="864" y="-55.8" font-family="arial" font-size="14.00">8</text>
<polygon fill="none" stroke="black" points="935.5,-48 935.5,-71 1089.5,-71 1089.5,-48 935.5,-48"/>
<text text-anchor="start" x="1000" y="-55.8" font-family="arial" font-size="14.00">DC&#45;</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-223C734.09,-226.4 742,-174.4 814,-171"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-225C736.07,-226.7 743.98,-174.7 814,-173"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-227C738.05,-227 745.95,-175 814,-175"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-229C740.02,-227.3 747.93,-175.3 814,-177"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-231C742,-227.6 749.91,-175.6 814,-179"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-223C720.09,-226.4 728,-174.4 800,-171"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-225C722.07,-226.7 729.98,-174.7 800,-173"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-227C724.05,-227 731.95,-175 800,-175"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-229C726.02,-227.3 733.93,-175.3 800,-177"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-231C728,-227.6 735.91,-175.6 800,-179"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-194C742.2,-198.36 733.83,-105.36 814,-101"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-196C744.19,-198.18 735.82,-105.18 814,-103"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-198C746.19,-198 737.81,-105 814,-105"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M670,-200C748.18,-197.82 739.81,-104.82 814,-107"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-202C750.17,-197.64 741.8,-104.64 814,-109"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-194C728.2,-198.36 719.83,-105.36 800,-101"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-196C730.19,-198.18 721.82,-105.18 800,-103"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-198C732.19,-198 723.81,-105 800,-105"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M656,-200C734.18,-197.82 725.81,-104.82 800,-107"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-202C736.17,-197.64 727.8,-104.64 800,-109"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-165C742,-168.4 749.91,-220.4 814,-217"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-167C740.02,-168.7 747.93,-220.7 814,-219"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-169C738.05,-169 745.95,-221 814,-221"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-171C736.07,-169.3 743.98,-221.3 814,-223"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-173C734.09,-169.6 742,-221.6 814,-225"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-165C728,-168.4 735.91,-220.4 800,-217"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-167C726.02,-168.7 733.93,-220.7 800,-219"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-169C724.05,-169 731.95,-221 800,-221"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-171C722.07,-169.3 729.98,-221.3 800,-223"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-173C720.09,-169.6 728,-221.6 800,-225"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-136C735.02,-139.59 741.02,-81.59 814,-78"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-138C737.01,-139.79 743.01,-81.79 814,-80"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-140C739,-140 745,-82 814,-82"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-142C740.99,-140.21 746.99,-82.21 814,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-144C742.98,-140.41 748.98,-82.41 814,-86"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-136C721.02,-139.59 727.02,-81.59 800,-78"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-138C723.01,-139.79 729.01,-81.79 800,-80"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-140C725,-140 731,-82 800,-82"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-142C726.99,-140.21 732.99,-82.21 800,-84"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-144C728.98,-140.41 734.98,-82.41 800,-86"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-107C734.09,-110.4 742,-58.4 814,-55"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-109C736.07,-110.7 743.98,-58.7 814,-57"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M670,-111C738.05,-111 745.95,-59 814,-59"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-113C740.02,-111.3 747.93,-59.3 814,-61"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-115C742,-111.6 749.91,-59.6 814,-63"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-107C720.09,-110.4 728,-58.4 800,-55"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-109C722.07,-110.7 729.98,-58.7 800,-57"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M656,-111C724.05,-111 731.95,-59 800,-59"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-113C726.02,-111.3 733.93,-59.3 800,-61"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-115C728,-111.6 735.91,-59.6 800,-63"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-78C756.12,-82.69 735.76,-198.69 814,-194"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-80C754.15,-82.35 733.79,-198.35 814,-196"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-82C752.18,-82 731.82,-198 814,-198"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M670,-84C750.21,-81.65 729.85,-197.65 814,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-86C748.24,-81.31 727.88,-197.31 814,-202"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-78C742.12,-82.69 721.76,-198.69 800,-194"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-80C740.15,-82.35 719.79,-198.35 800,-196"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-82C738.18,-82 717.82,-198 800,-198"/>
<path fill="none" stroke="#ff8000" stroke-width="2" d="M656,-84C736.21,-81.65 715.85,-197.65 800,-200"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-86C734.24,-81.31 713.88,-197.31 800,-202"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-49C751.39,-53.44 740.56,-151.44 814,-147"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-51C749.4,-53.22 738.57,-151.22 814,-149"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-53C747.42,-53 736.58,-151 814,-151"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M670,-55C745.43,-52.78 734.6,-150.78 814,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-57C743.44,-52.56 732.61,-150.56 814,-155"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-49C737.39,-53.44 726.56,-151.44 800,-147"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-51C735.4,-53.22 724.57,-151.22 800,-149"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-53C733.42,-53 722.58,-151 800,-151"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M656,-55C731.43,-52.78 720.6,-150.78 800,-153"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-57C729.44,-52.56 718.61,-150.56 800,-155"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-20C752.91,-24.53 739.02,-128.53 814,-124"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-22C750.93,-24.26 737.04,-128.26 814,-126"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-24C748.95,-24 735.05,-128 814,-128"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M670,-26C746.96,-23.74 733.07,-127.74 814,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M670,-28C744.98,-23.47 731.09,-127.47 814,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-20C738.91,-24.53 725.02,-128.53 800,-124"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-22C736.93,-24.26 723.04,-128.26 800,-126"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-24C734.95,-24 721.05,-128 800,-128"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M656,-26C732.96,-23.74 719.07,-127.74 800,-130"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M656,-28C730.98,-23.47 717.09,-127.47 800,-132"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

4
examples/ex11.bom.tsv generated Normal file
View File

@ -0,0 +1,4 @@
Id Description Qty Unit Designators
1 Cable, 4 wires, BK 0 m W1
2 Connector, Ferrule, GY 4
3 Connector, Screw connector, male, 4 pins, GN 1 X1
1 Id Description Qty Unit Designators
2 1 Cable, 4 wires, BK 0 m W1
3 2 Connector, Ferrule, GY 4
4 3 Connector, Screw connector, male, 4 pins, GN 1 X1

191
examples/ex11.gv generated Normal file
View File

@ -0,0 +1,191 @@
graph {
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__F_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__F_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
X1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Screw connector</td>
<td balign="left">male</td>
<td balign="left">4-pin</td>
<td balign="left">GN</td>
<td balign="left" bgcolor="#00FF00" width="4"></td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td port="p1l">1</td>
<td>A</td>
</tr>
<tr>
<td port="p2l">2</td>
<td>B</td>
</tr>
<tr>
<td port="p3l">3</td>
<td>C</td>
</tr>
<tr>
<td port="p4l">4</td>
<td>D</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#000000:#000000"]
W1:w1:e -- __F_1:w
edge [color="#000000:#ffffff:#000000"]
W1:w2:e -- __F_2:w
edge [color="#000000:#0066ff:#000000"]
W1:w3:e -- __F_3:w
edge [color="#000000:#895956:#000000"]
W1:w4:e -- __F_4:w
W1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">W1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
<td balign="left">BK</td>
<td balign="left" bgcolor="#000000" width="4"></td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td><!-- 1_in --></td>
<td>
1:BK
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td><!-- 2_in --></td>
<td>
2:WH
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td><!-- 3_in --></td>
<td>
3:BU
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#0066ff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td><!-- 4_in --></td>
<td>
4:BN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000" dir=forward style=dashed]
__F_1:e -- X1:p1l:w
edge [color="#000000" dir=forward style=dashed]
__F_2:e -- X1:p2l:w
edge [color="#000000" dir=forward style=dashed]
__F_3:e -- X1:p3l:w
edge [color="#000000" dir=forward style=dashed]
__F_4:e -- X1:p4l:w
}

245
examples/ex11.html generated Normal file
View File

@ -0,0 +1,245 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex11</title>
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex11</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="694pt" height="215pt"
viewBox="0.00 0.00 694.00 214.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 210.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-210.5 690,-210.5 690,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="317,-164 229,-164 229,-141 317,-141 317,-164"/>
<polygon fill="none" stroke="black" points="229,-140.5 229,-163.5 280,-163.5 280,-140.5 229,-140.5"/>
<text text-anchor="start" x="233" y="-148.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,-140.5 280,-163.5 309,-163.5 309,-140.5 280,-140.5"/>
<text text-anchor="start" x="284" y="-148.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,-140.5 309,-163.5 317,-163.5 317,-140.5 309,-140.5"/>
<polygon fill="none" stroke="black" points="309,-140.5 309,-163.5 317,-163.5 317,-140.5 309,-140.5"/>
</g>
<!-- X1 -->
<g id="node5" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="686,-174.5 461,-174.5 461,-36.5 686,-36.5 686,-174.5"/>
<polygon fill="none" stroke="black" points="461.5,-151.5 461.5,-174.5 686.5,-174.5 686.5,-151.5 461.5,-151.5"/>
<text text-anchor="start" x="565.5" y="-159.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="461.5,-128.5 461.5,-151.5 570.5,-151.5 570.5,-128.5 461.5,-128.5"/>
<text text-anchor="start" x="465.5" y="-136.3" font-family="arial" font-size="14.00">Screw connector</text>
<polygon fill="none" stroke="black" points="570.5,-128.5 570.5,-151.5 609.5,-151.5 609.5,-128.5 570.5,-128.5"/>
<text text-anchor="start" x="574.5" y="-136.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="609.5,-128.5 609.5,-151.5 648.5,-151.5 648.5,-128.5 609.5,-128.5"/>
<text text-anchor="start" x="613.5" y="-136.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="648.5,-128.5 648.5,-151.5 678.5,-151.5 678.5,-128.5 648.5,-128.5"/>
<text text-anchor="start" x="652.5" y="-136.3" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="none" points="678.5,-128.5 678.5,-151.5 686.5,-151.5 686.5,-128.5 678.5,-128.5"/>
<polygon fill="none" stroke="black" points="678.5,-128.5 678.5,-151.5 686.5,-151.5 686.5,-128.5 678.5,-128.5"/>
<polygon fill="none" stroke="black" points="461.5,-105.5 461.5,-128.5 573.5,-128.5 573.5,-105.5 461.5,-105.5"/>
<text text-anchor="start" x="513.5" y="-113.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="573.5,-105.5 573.5,-128.5 686.5,-128.5 686.5,-105.5 573.5,-105.5"/>
<text text-anchor="start" x="625" y="-113.3" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="461.5,-82.5 461.5,-105.5 573.5,-105.5 573.5,-82.5 461.5,-82.5"/>
<text text-anchor="start" x="513.5" y="-90.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="573.5,-82.5 573.5,-105.5 686.5,-105.5 686.5,-82.5 573.5,-82.5"/>
<text text-anchor="start" x="625" y="-90.3" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="461.5,-59.5 461.5,-82.5 573.5,-82.5 573.5,-59.5 461.5,-59.5"/>
<text text-anchor="start" x="513.5" y="-67.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="573.5,-59.5 573.5,-82.5 686.5,-82.5 686.5,-59.5 573.5,-59.5"/>
<text text-anchor="start" x="625" y="-67.3" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="461.5,-36.5 461.5,-59.5 573.5,-59.5 573.5,-36.5 461.5,-36.5"/>
<text text-anchor="start" x="513.5" y="-44.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="573.5,-36.5 573.5,-59.5 686.5,-59.5 686.5,-36.5 573.5,-36.5"/>
<text text-anchor="start" x="625" y="-44.3" font-family="arial" font-size="14.00">D</text>
</g>
<!-- __F_1&#45;&#45;X1 -->
<g id="edge5" class="edge">
<title>__F_1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-152.5C378.88,-152.5 393.45,-121.61 449.6,-117.87"/>
<polygon fill="#000000" stroke="#000000" points="449.61,-121.37 459.49,-117.55 449.38,-114.37 449.61,-121.37"/>
</g>
<!-- __F_2 -->
<g id="node2" class="node">
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="317,-117 229,-117 229,-94 317,-94 317,-117"/>
<polygon fill="none" stroke="black" points="229,-93.5 229,-116.5 280,-116.5 280,-93.5 229,-93.5"/>
<text text-anchor="start" x="233" y="-101.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,-93.5 280,-116.5 309,-116.5 309,-93.5 280,-93.5"/>
<text text-anchor="start" x="284" y="-101.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,-93.5 309,-116.5 317,-116.5 317,-93.5 309,-93.5"/>
<polygon fill="none" stroke="black" points="309,-93.5 309,-116.5 317,-116.5 317,-93.5 309,-93.5"/>
</g>
<!-- __F_2&#45;&#45;X1 -->
<g id="edge6" class="edge">
<title>__F_2:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-105.5C377.21,-105.5 394.64,-94.95 449.5,-93.63"/>
<polygon fill="#000000" stroke="#000000" points="449.53,-97.13 459.49,-93.52 449.45,-90.14 449.53,-97.13"/>
</g>
<!-- __F_3 -->
<g id="node3" class="node">
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="317,-70 229,-70 229,-47 317,-47 317,-70"/>
<polygon fill="none" stroke="black" points="229,-46.5 229,-69.5 280,-69.5 280,-46.5 229,-46.5"/>
<text text-anchor="start" x="233" y="-54.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,-46.5 280,-69.5 309,-69.5 309,-46.5 280,-46.5"/>
<text text-anchor="start" x="284" y="-54.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,-46.5 309,-69.5 317,-69.5 317,-46.5 309,-46.5"/>
<polygon fill="none" stroke="black" points="309,-46.5 309,-69.5 317,-69.5 317,-46.5 309,-46.5"/>
</g>
<!-- __F_3&#45;&#45;X1 -->
<g id="edge7" class="edge">
<title>__F_3:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-58.5C377.21,-58.5 394.64,-69.05 449.5,-70.37"/>
<polygon fill="#000000" stroke="#000000" points="449.45,-73.86 459.49,-70.48 449.53,-66.87 449.45,-73.86"/>
</g>
<!-- __F_4 -->
<g id="node4" class="node">
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="317,-23 229,-23 229,0 317,0 317,-23"/>
<polygon fill="none" stroke="black" points="229,0.5 229,-22.5 280,-22.5 280,0.5 229,0.5"/>
<text text-anchor="start" x="233" y="-7.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,0.5 280,-22.5 309,-22.5 309,0.5 280,0.5"/>
<text text-anchor="start" x="284" y="-7.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,0.5 309,-22.5 317,-22.5 317,0.5 309,0.5"/>
<polygon fill="none" stroke="black" points="309,0.5 309,-22.5 317,-22.5 317,0.5 309,0.5"/>
</g>
<!-- __F_4&#45;&#45;X1 -->
<g id="edge8" class="edge">
<title>__F_4:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-11.5C378.98,-11.5 393.37,-43.27 449.59,-47.12"/>
<polygon fill="#000000" stroke="#000000" points="449.38,-50.61 459.49,-47.45 449.61,-43.62 449.38,-50.61"/>
</g>
<!-- W1 -->
<g id="node6" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="85,-206.5 0,-206.5 0,-22.5 85,-22.5 85,-206.5"/>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 85.5,-206.5 85.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="32" y="-191.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 32.5,-183.5 32.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="9" y="-168.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="32.5,-160.5 32.5,-183.5 68.5,-183.5 68.5,-160.5 32.5,-160.5"/>
<text text-anchor="start" x="41" y="-168.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="68.5,-160.5 68.5,-183.5 85.5,-183.5 85.5,-160.5 68.5,-160.5"/>
<polygon fill="none" stroke="black" points="68.5,-160.5 68.5,-183.5 85.5,-183.5 85.5,-160.5 68.5,-160.5"/>
<text text-anchor="start" x="2.5" y="-147.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="13" y="-128.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-120.5 0.5,-122.5 85.5,-122.5 85.5,-120.5 0.5,-120.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-118.5 0.5,-120.5 85.5,-120.5 85.5,-118.5 0.5,-118.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-116.5 0.5,-118.5 85.5,-118.5 85.5,-116.5 0.5,-116.5"/>
<text text-anchor="start" x="10.5" y="-103.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-95.5 0.5,-97.5 85.5,-97.5 85.5,-95.5 0.5,-95.5"/>
<polygon fill="#ffffff" stroke="none" points="0.5,-93.5 0.5,-95.5 85.5,-95.5 85.5,-93.5 0.5,-93.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-91.5 0.5,-93.5 85.5,-93.5 85.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="13" y="-78.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-70.5 0.5,-72.5 85.5,-72.5 85.5,-70.5 0.5,-70.5"/>
<polygon fill="#0066ff" stroke="none" points="0.5,-68.5 0.5,-70.5 85.5,-70.5 85.5,-68.5 0.5,-68.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-66.5 0.5,-68.5 85.5,-68.5 85.5,-66.5 0.5,-66.5"/>
<text text-anchor="start" x="13" y="-53.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-45.5 0.5,-47.5 85.5,-47.5 85.5,-45.5 0.5,-45.5"/>
<polygon fill="#895956" stroke="none" points="0.5,-43.5 0.5,-45.5 85.5,-45.5 85.5,-43.5 0.5,-43.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-41.5 0.5,-43.5 85.5,-43.5 85.5,-41.5 0.5,-41.5"/>
<text text-anchor="start" x="2.5" y="-28.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;__F_1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;__F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-117.5C152.53,-118.78 165.21,-151.78 229,-150.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-119.5C150.66,-119.5 163.34,-152.5 229,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-121.5C148.79,-120.22 161.47,-153.22 229,-154.5"/>
</g>
<!-- W1&#45;&#45;__F_2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;__F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-92.5C150.34,-92.86 165.96,-103.86 229,-103.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M85,-94.5C149.19,-94.5 164.81,-105.5 229,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-96.5C148.04,-96.14 163.66,-107.14 229,-107.5"/>
</g>
<!-- W1&#45;&#45;__F_3 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;__F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-67.5C148.04,-67.86 163.66,-56.86 229,-56.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M85,-69.5C149.19,-69.5 164.81,-58.5 229,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-71.5C150.34,-71.14 165.96,-60.14 229,-60.5"/>
</g>
<!-- W1&#45;&#45;__F_4 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;__F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-42.5C148.79,-43.78 161.47,-10.78 229,-9.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M85,-44.5C150.66,-44.5 163.34,-11.5 229,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-46.5C152.53,-45.22 165.21,-12.22 229,-13.5"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<div id="bom">
<table class="bom">
<tr>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, 4 wires, BK</td>
<td class="bom_col_qty">0</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, Ferrule, GY</td>
<td class="bom_col_qty">4</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators"></td>
</tr>
<tr>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Connector, Screw connector, male, 4 pins, GN</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex11.png generated Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

172
examples/ex11.svg generated Normal file
View File

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="694pt" height="215pt"
viewBox="0.00 0.00 694.00 214.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 210.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-210.5 690,-210.5 690,4 -4,4"/>
<!-- __F_1 -->
<g id="node1" class="node">
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="317,-164 229,-164 229,-141 317,-141 317,-164"/>
<polygon fill="none" stroke="black" points="229,-140.5 229,-163.5 280,-163.5 280,-140.5 229,-140.5"/>
<text text-anchor="start" x="233" y="-148.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,-140.5 280,-163.5 309,-163.5 309,-140.5 280,-140.5"/>
<text text-anchor="start" x="284" y="-148.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,-140.5 309,-163.5 317,-163.5 317,-140.5 309,-140.5"/>
<polygon fill="none" stroke="black" points="309,-140.5 309,-163.5 317,-163.5 317,-140.5 309,-140.5"/>
</g>
<!-- X1 -->
<g id="node5" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="686,-174.5 461,-174.5 461,-36.5 686,-36.5 686,-174.5"/>
<polygon fill="none" stroke="black" points="461.5,-151.5 461.5,-174.5 686.5,-174.5 686.5,-151.5 461.5,-151.5"/>
<text text-anchor="start" x="565.5" y="-159.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="461.5,-128.5 461.5,-151.5 570.5,-151.5 570.5,-128.5 461.5,-128.5"/>
<text text-anchor="start" x="465.5" y="-136.3" font-family="arial" font-size="14.00">Screw connector</text>
<polygon fill="none" stroke="black" points="570.5,-128.5 570.5,-151.5 609.5,-151.5 609.5,-128.5 570.5,-128.5"/>
<text text-anchor="start" x="574.5" y="-136.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="609.5,-128.5 609.5,-151.5 648.5,-151.5 648.5,-128.5 609.5,-128.5"/>
<text text-anchor="start" x="613.5" y="-136.3" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="648.5,-128.5 648.5,-151.5 678.5,-151.5 678.5,-128.5 648.5,-128.5"/>
<text text-anchor="start" x="652.5" y="-136.3" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="none" points="678.5,-128.5 678.5,-151.5 686.5,-151.5 686.5,-128.5 678.5,-128.5"/>
<polygon fill="none" stroke="black" points="678.5,-128.5 678.5,-151.5 686.5,-151.5 686.5,-128.5 678.5,-128.5"/>
<polygon fill="none" stroke="black" points="461.5,-105.5 461.5,-128.5 573.5,-128.5 573.5,-105.5 461.5,-105.5"/>
<text text-anchor="start" x="513.5" y="-113.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="573.5,-105.5 573.5,-128.5 686.5,-128.5 686.5,-105.5 573.5,-105.5"/>
<text text-anchor="start" x="625" y="-113.3" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="461.5,-82.5 461.5,-105.5 573.5,-105.5 573.5,-82.5 461.5,-82.5"/>
<text text-anchor="start" x="513.5" y="-90.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="573.5,-82.5 573.5,-105.5 686.5,-105.5 686.5,-82.5 573.5,-82.5"/>
<text text-anchor="start" x="625" y="-90.3" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="461.5,-59.5 461.5,-82.5 573.5,-82.5 573.5,-59.5 461.5,-59.5"/>
<text text-anchor="start" x="513.5" y="-67.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="573.5,-59.5 573.5,-82.5 686.5,-82.5 686.5,-59.5 573.5,-59.5"/>
<text text-anchor="start" x="625" y="-67.3" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="461.5,-36.5 461.5,-59.5 573.5,-59.5 573.5,-36.5 461.5,-36.5"/>
<text text-anchor="start" x="513.5" y="-44.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="573.5,-36.5 573.5,-59.5 686.5,-59.5 686.5,-36.5 573.5,-36.5"/>
<text text-anchor="start" x="625" y="-44.3" font-family="arial" font-size="14.00">D</text>
</g>
<!-- __F_1&#45;&#45;X1 -->
<g id="edge5" class="edge">
<title>__F_1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-152.5C378.88,-152.5 393.45,-121.61 449.6,-117.87"/>
<polygon fill="#000000" stroke="#000000" points="449.61,-121.37 459.49,-117.55 449.38,-114.37 449.61,-121.37"/>
</g>
<!-- __F_2 -->
<g id="node2" class="node">
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="317,-117 229,-117 229,-94 317,-94 317,-117"/>
<polygon fill="none" stroke="black" points="229,-93.5 229,-116.5 280,-116.5 280,-93.5 229,-93.5"/>
<text text-anchor="start" x="233" y="-101.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,-93.5 280,-116.5 309,-116.5 309,-93.5 280,-93.5"/>
<text text-anchor="start" x="284" y="-101.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,-93.5 309,-116.5 317,-116.5 317,-93.5 309,-93.5"/>
<polygon fill="none" stroke="black" points="309,-93.5 309,-116.5 317,-116.5 317,-93.5 309,-93.5"/>
</g>
<!-- __F_2&#45;&#45;X1 -->
<g id="edge6" class="edge">
<title>__F_2:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-105.5C377.21,-105.5 394.64,-94.95 449.5,-93.63"/>
<polygon fill="#000000" stroke="#000000" points="449.53,-97.13 459.49,-93.52 449.45,-90.14 449.53,-97.13"/>
</g>
<!-- __F_3 -->
<g id="node3" class="node">
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="317,-70 229,-70 229,-47 317,-47 317,-70"/>
<polygon fill="none" stroke="black" points="229,-46.5 229,-69.5 280,-69.5 280,-46.5 229,-46.5"/>
<text text-anchor="start" x="233" y="-54.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,-46.5 280,-69.5 309,-69.5 309,-46.5 280,-46.5"/>
<text text-anchor="start" x="284" y="-54.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,-46.5 309,-69.5 317,-69.5 317,-46.5 309,-46.5"/>
<polygon fill="none" stroke="black" points="309,-46.5 309,-69.5 317,-69.5 317,-46.5 309,-46.5"/>
</g>
<!-- __F_3&#45;&#45;X1 -->
<g id="edge7" class="edge">
<title>__F_3:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-58.5C377.21,-58.5 394.64,-69.05 449.5,-70.37"/>
<polygon fill="#000000" stroke="#000000" points="449.45,-73.86 459.49,-70.48 449.53,-66.87 449.45,-73.86"/>
</g>
<!-- __F_4 -->
<g id="node4" class="node">
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="317,-23 229,-23 229,0 317,0 317,-23"/>
<polygon fill="none" stroke="black" points="229,0.5 229,-22.5 280,-22.5 280,0.5 229,0.5"/>
<text text-anchor="start" x="233" y="-7.3" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="280,0.5 280,-22.5 309,-22.5 309,0.5 280,0.5"/>
<text text-anchor="start" x="284" y="-7.3" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="309,0.5 309,-22.5 317,-22.5 317,0.5 309,0.5"/>
<polygon fill="none" stroke="black" points="309,0.5 309,-22.5 317,-22.5 317,0.5 309,0.5"/>
</g>
<!-- __F_4&#45;&#45;X1 -->
<g id="edge8" class="edge">
<title>__F_4:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M317,-11.5C378.98,-11.5 393.37,-43.27 449.59,-47.12"/>
<polygon fill="#000000" stroke="#000000" points="449.38,-50.61 459.49,-47.45 449.61,-43.62 449.38,-50.61"/>
</g>
<!-- W1 -->
<g id="node6" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="85,-206.5 0,-206.5 0,-22.5 85,-22.5 85,-206.5"/>
<polygon fill="none" stroke="black" points="0.5,-183.5 0.5,-206.5 85.5,-206.5 85.5,-183.5 0.5,-183.5"/>
<text text-anchor="start" x="32" y="-191.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0.5,-160.5 0.5,-183.5 32.5,-183.5 32.5,-160.5 0.5,-160.5"/>
<text text-anchor="start" x="9" y="-168.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="32.5,-160.5 32.5,-183.5 68.5,-183.5 68.5,-160.5 32.5,-160.5"/>
<text text-anchor="start" x="41" y="-168.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="68.5,-160.5 68.5,-183.5 85.5,-183.5 85.5,-160.5 68.5,-160.5"/>
<polygon fill="none" stroke="black" points="68.5,-160.5 68.5,-183.5 85.5,-183.5 85.5,-160.5 68.5,-160.5"/>
<text text-anchor="start" x="2.5" y="-147.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="13" y="-128.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-120.5 0.5,-122.5 85.5,-122.5 85.5,-120.5 0.5,-120.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-118.5 0.5,-120.5 85.5,-120.5 85.5,-118.5 0.5,-118.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-116.5 0.5,-118.5 85.5,-118.5 85.5,-116.5 0.5,-116.5"/>
<text text-anchor="start" x="10.5" y="-103.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-95.5 0.5,-97.5 85.5,-97.5 85.5,-95.5 0.5,-95.5"/>
<polygon fill="#ffffff" stroke="none" points="0.5,-93.5 0.5,-95.5 85.5,-95.5 85.5,-93.5 0.5,-93.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-91.5 0.5,-93.5 85.5,-93.5 85.5,-91.5 0.5,-91.5"/>
<text text-anchor="start" x="13" y="-78.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-70.5 0.5,-72.5 85.5,-72.5 85.5,-70.5 0.5,-70.5"/>
<polygon fill="#0066ff" stroke="none" points="0.5,-68.5 0.5,-70.5 85.5,-70.5 85.5,-68.5 0.5,-68.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-66.5 0.5,-68.5 85.5,-68.5 85.5,-66.5 0.5,-66.5"/>
<text text-anchor="start" x="13" y="-53.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="0.5,-45.5 0.5,-47.5 85.5,-47.5 85.5,-45.5 0.5,-45.5"/>
<polygon fill="#895956" stroke="none" points="0.5,-43.5 0.5,-45.5 85.5,-45.5 85.5,-43.5 0.5,-43.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-41.5 0.5,-43.5 85.5,-43.5 85.5,-41.5 0.5,-41.5"/>
<text text-anchor="start" x="2.5" y="-28.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;__F_1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;__F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-117.5C152.53,-118.78 165.21,-151.78 229,-150.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-119.5C150.66,-119.5 163.34,-152.5 229,-152.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-121.5C148.79,-120.22 161.47,-153.22 229,-154.5"/>
</g>
<!-- W1&#45;&#45;__F_2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;__F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-92.5C150.34,-92.86 165.96,-103.86 229,-103.5"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M85,-94.5C149.19,-94.5 164.81,-105.5 229,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-96.5C148.04,-96.14 163.66,-107.14 229,-107.5"/>
</g>
<!-- W1&#45;&#45;__F_3 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;__F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-67.5C148.04,-67.86 163.66,-56.86 229,-56.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M85,-69.5C149.19,-69.5 164.81,-58.5 229,-58.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-71.5C150.34,-71.14 165.96,-60.14 229,-60.5"/>
</g>
<!-- W1&#45;&#45;__F_4 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;__F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-42.5C148.79,-43.78 161.47,-10.78 229,-9.5"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M85,-44.5C150.66,-44.5 163.34,-11.5 229,-11.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M85,-46.5C152.53,-45.22 165.21,-12.22 229,-13.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

25
examples/ex11.yml Normal file
View File

@ -0,0 +1,25 @@
# based on @stmaxed's example in #134
connectors:
X1: &X
type: Screw connector
subtype: male
color: GN
pincount: 4
pinlabels: [A, B, C, D]
F:
style: simple
type: Ferrule
color: GY
cables:
W:
color: BK
colors: [BK, WH, BU, BN]
connections:
- # ferrules + connector X1
- W.W1: [1-4]
- F.
- -->
- X1: [1-4]

7
examples/ex12.bom.tsv generated Normal file
View File

@ -0,0 +1,7 @@
Id Description Qty Unit Designators
1 Connector, Dupont 2.54mm, female, 5 pins, BK 1 X2
2 Connector, Dupont 2.54mm, male, 5 pins, BK 1 X1
3 Wire, BK 0.4 m W1, W2
4 Wire, BU 0.4 m W1, W2
5 Wire, GN 0.4 m W1, W2
6 Wire, RD 0.4 m W1, W2
1 Id Description Qty Unit Designators
2 1 Connector, Dupont 2.54mm, female, 5 pins, BK 1 X2
3 2 Connector, Dupont 2.54mm, male, 5 pins, BK 1 X1
4 3 Wire, BK 0.4 m W1, W2
5 4 Wire, BU 0.4 m W1, W2
6 5 Wire, GN 0.4 m W1, W2
7 6 Wire, RD 0.4 m W1, W2

269
examples/ex12.gv generated Normal file
View File

@ -0,0 +1,269 @@
graph {
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
X1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Dupont 2.54mm</td>
<td balign="left">male</td>
<td balign="left">5-pin</td>
<td balign="left">BK</td>
<td balign="left" bgcolor="#000000" width="4"></td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td port="p1l">1</td>
</tr>
<tr>
<td port="p2l">2</td>
</tr>
<tr>
<td port="p3l">3</td>
</tr>
<tr>
<td port="p4l">4</td>
</tr>
<tr>
<td port="p5l">5</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
X2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X2</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Dupont 2.54mm</td>
<td balign="left">female</td>
<td balign="left">5-pin</td>
<td balign="left">BK</td>
<td balign="left" bgcolor="#000000" width="4"></td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td port="p1r">1</td>
</tr>
<tr>
<td port="p2r">2</td>
</tr>
<tr>
<td port="p3r">3</td>
</tr>
<tr>
<td port="p4r">4</td>
</tr>
<tr>
<td port="p5r">5</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ff0000:#000000"]
W1:w1:e -- X1:p1l:w
edge [color="#000000:#000000:#000000"]
W1:w2:e -- X1:p2l:w
edge [color="#000000:#0066ff:#000000"]
W1:w3:e -- X1:p3l:w
edge [color="#000000:#00ff00:#000000"]
W1:w4:e -- X1:p4l:w
W1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">W1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
<td balign="left">0.2 m</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td><!-- 1_in --></td>
<td>
RD
</td>
<td>X1:1</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ff0000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td><!-- 2_in --></td>
<td>
BK
</td>
<td>X1:2</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td><!-- 3_in --></td>
<td>
BU
</td>
<td>X1:3</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#0066ff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td><!-- 4_in --></td>
<td>
GN
</td>
<td>X1:4</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style="filled,dashed"]
edge [color="#000000:#ff0000:#000000"]
X2:p1r:e -- W2:w1:w
edge [color="#000000:#000000:#000000"]
X2:p2r:e -- W2:w2:w
edge [color="#000000:#0066ff:#000000"]
X2:p3r:e -- W2:w3:w
edge [color="#000000:#00ff00:#000000"]
X2:p4r:e -- W2:w4:w
W2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">W2</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
<td balign="left">0.2 m</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td>X2:1</td>
<td>
RD
</td>
<td><!-- 1_out --></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ff0000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X2:2</td>
<td>
BK
</td>
<td><!-- 2_out --></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X2:3</td>
<td>
BU
</td>
<td><!-- 3_out --></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#0066ff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X2:4</td>
<td>
GN
</td>
<td><!-- 4_out --></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style="filled,dashed"]
edge [color="#000000:#000000" dir=forward style=dashed]
X1:e -- X2:w
}

289
examples/ex12.html generated Normal file
View File

@ -0,0 +1,289 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex12</title>
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex12</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="1083pt" height="201pt"
viewBox="0.00 0.00 1083.00 200.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 196.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-196.5 1079,-196.5 1079,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="462,-161 243,-161 243,0 462,0 462,-161"/>
<polygon fill="none" stroke="black" points="243.5,-137.5 243.5,-160.5 462.5,-160.5 462.5,-137.5 243.5,-137.5"/>
<text text-anchor="start" x="344.5" y="-145.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="243.5,-114.5 243.5,-137.5 349.5,-137.5 349.5,-114.5 243.5,-114.5"/>
<text text-anchor="start" x="247.5" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="349.5,-114.5 349.5,-137.5 388.5,-137.5 388.5,-114.5 349.5,-114.5"/>
<text text-anchor="start" x="353.5" y="-122.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="388.5,-114.5 388.5,-137.5 427.5,-137.5 427.5,-114.5 388.5,-114.5"/>
<text text-anchor="start" x="392.5" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="427.5,-114.5 427.5,-137.5 454.5,-137.5 454.5,-114.5 427.5,-114.5"/>
<text text-anchor="start" x="431.5" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="454.5,-114.5 454.5,-137.5 462.5,-137.5 462.5,-114.5 454.5,-114.5"/>
<polygon fill="none" stroke="black" points="454.5,-114.5 454.5,-137.5 462.5,-137.5 462.5,-114.5 454.5,-114.5"/>
<polygon fill="none" stroke="black" points="243.5,-91.5 243.5,-114.5 462.5,-114.5 462.5,-91.5 243.5,-91.5"/>
<text text-anchor="start" x="349" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="243.5,-68.5 243.5,-91.5 462.5,-91.5 462.5,-68.5 243.5,-68.5"/>
<text text-anchor="start" x="349" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="243.5,-45.5 243.5,-68.5 462.5,-68.5 462.5,-45.5 243.5,-45.5"/>
<text text-anchor="start" x="349" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="243.5,-22.5 243.5,-45.5 462.5,-45.5 462.5,-22.5 243.5,-22.5"/>
<text text-anchor="start" x="349" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="243.5,0.5 243.5,-22.5 462.5,-22.5 462.5,0.5 243.5,0.5"/>
<text text-anchor="start" x="349" y="-7.3" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="836,-161 606,-161 606,0 836,0 836,-161"/>
<polygon fill="none" stroke="black" points="606,-137.5 606,-160.5 836,-160.5 836,-137.5 606,-137.5"/>
<text text-anchor="start" x="712.5" y="-145.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="606,-114.5 606,-137.5 712,-137.5 712,-114.5 606,-114.5"/>
<text text-anchor="start" x="610" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="712,-114.5 712,-137.5 762,-137.5 762,-114.5 712,-114.5"/>
<text text-anchor="start" x="716" y="-122.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="762,-114.5 762,-137.5 801,-137.5 801,-114.5 762,-114.5"/>
<text text-anchor="start" x="766" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="801,-114.5 801,-137.5 828,-137.5 828,-114.5 801,-114.5"/>
<text text-anchor="start" x="805" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="828,-114.5 828,-137.5 836,-137.5 836,-114.5 828,-114.5"/>
<polygon fill="none" stroke="black" points="828,-114.5 828,-137.5 836,-137.5 836,-114.5 828,-114.5"/>
<polygon fill="none" stroke="black" points="606,-91.5 606,-114.5 836,-114.5 836,-91.5 606,-91.5"/>
<text text-anchor="start" x="717" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="606,-68.5 606,-91.5 836,-91.5 836,-68.5 606,-68.5"/>
<text text-anchor="start" x="717" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="606,-45.5 606,-68.5 836,-68.5 836,-45.5 606,-45.5"/>
<text text-anchor="start" x="717" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="606,-22.5 606,-45.5 836,-45.5 836,-22.5 606,-22.5"/>
<text text-anchor="start" x="717" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="606,0.5 606,-22.5 836,-22.5 836,0.5 606,0.5"/>
<text text-anchor="start" x="717" y="-7.3" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X1&#45;&#45;X2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M462,-79.5C522,-79.5 539.81,-79.5 594.54,-79.5"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M462,-81.5C522,-81.5 539.81,-81.5 594.54,-81.5"/>
<polygon fill="#000000" stroke="#000000" points="594.49,-84 604.49,-80.5 594.49,-77 594.49,-84"/>
</g>
<!-- W2 -->
<g id="node4" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1075,-192.5 980,-192.5 980,-8.5 1075,-8.5 1075,-192.5"/>
<polygon fill="none" stroke="black" points="980.5,-169.5 980.5,-192.5 1075.5,-192.5 1075.5,-169.5 980.5,-169.5"/>
<text text-anchor="start" x="1017" y="-177.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="980.5,-146.5 980.5,-169.5 1018.5,-169.5 1018.5,-146.5 980.5,-146.5"/>
<text text-anchor="start" x="992" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1018.5,-146.5 1018.5,-169.5 1075.5,-169.5 1075.5,-146.5 1018.5,-146.5"/>
<text text-anchor="start" x="1029.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="994.5" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="982.5" y="-114.3" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="1015" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-106.5 980.5,-108.5 1075.5,-108.5 1075.5,-106.5 980.5,-106.5"/>
<polygon fill="#ff0000" stroke="none" points="980.5,-104.5 980.5,-106.5 1075.5,-106.5 1075.5,-104.5 980.5,-104.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-102.5 980.5,-104.5 1075.5,-104.5 1075.5,-102.5 980.5,-102.5"/>
<text text-anchor="start" x="982.5" y="-89.3" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="1016" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-81.5 980.5,-83.5 1075.5,-83.5 1075.5,-81.5 980.5,-81.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-79.5 980.5,-81.5 1075.5,-81.5 1075.5,-79.5 980.5,-79.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-77.5 980.5,-79.5 1075.5,-79.5 1075.5,-77.5 980.5,-77.5"/>
<text text-anchor="start" x="982.5" y="-64.3" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="1015.5" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-56.5 980.5,-58.5 1075.5,-58.5 1075.5,-56.5 980.5,-56.5"/>
<polygon fill="#0066ff" stroke="none" points="980.5,-54.5 980.5,-56.5 1075.5,-56.5 1075.5,-54.5 980.5,-54.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-52.5 980.5,-54.5 1075.5,-54.5 1075.5,-52.5 980.5,-52.5"/>
<text text-anchor="start" x="982.5" y="-39.3" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="1014.5" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-31.5 980.5,-33.5 1075.5,-33.5 1075.5,-31.5 980.5,-31.5"/>
<polygon fill="#00ff00" stroke="none" points="980.5,-29.5 980.5,-31.5 1075.5,-31.5 1075.5,-29.5 980.5,-29.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-27.5 980.5,-29.5 1075.5,-29.5 1075.5,-27.5 980.5,-27.5"/>
<text text-anchor="start" x="994.5" y="-14.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-101.5C900.25,-101.52 916.24,-103.52 980,-103.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M836,-103.5C900.01,-103.5 915.99,-105.5 980,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-105.5C899.76,-105.48 915.75,-107.48 980,-107.5"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge6" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-77.5C900.13,-77.5 916.12,-78.5 980,-78.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-79.5C900,-79.5 916,-80.5 980,-80.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-81.5C899.88,-81.5 915.87,-82.5 980,-82.5"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-54.5C899.88,-54.5 915.87,-53.5 980,-53.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M836,-56.5C900,-56.5 916,-55.5 980,-55.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-58.5C900.13,-58.5 916.12,-57.5 980,-57.5"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge8" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-31.5C899.64,-31.53 915.62,-28.53 980,-28.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M836,-33.5C900.01,-33.5 915.99,-30.5 980,-30.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-35.5C900.38,-35.47 916.36,-32.47 980,-32.5"/>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="99,-192.5 0,-192.5 0,-8.5 99,-8.5 99,-192.5"/>
<polygon fill="none" stroke="black" points="0.5,-169.5 0.5,-192.5 99.5,-192.5 99.5,-169.5 0.5,-169.5"/>
<text text-anchor="start" x="39" y="-177.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0.5,-146.5 0.5,-169.5 40.5,-169.5 40.5,-146.5 0.5,-146.5"/>
<text text-anchor="start" x="13" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="40.5,-146.5 40.5,-169.5 99.5,-169.5 99.5,-146.5 40.5,-146.5"/>
<text text-anchor="start" x="52.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="2.5" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="11" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-114.3" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="0.5,-106.5 0.5,-108.5 99.5,-108.5 99.5,-106.5 0.5,-106.5"/>
<polygon fill="#ff0000" stroke="none" points="0.5,-104.5 0.5,-106.5 99.5,-106.5 99.5,-104.5 0.5,-104.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-102.5 0.5,-104.5 99.5,-104.5 99.5,-102.5 0.5,-102.5"/>
<text text-anchor="start" x="12" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-89.3" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="0.5,-81.5 0.5,-83.5 99.5,-83.5 99.5,-81.5 0.5,-81.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-79.5 0.5,-81.5 99.5,-81.5 99.5,-79.5 0.5,-79.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-77.5 0.5,-79.5 99.5,-79.5 99.5,-77.5 0.5,-77.5"/>
<text text-anchor="start" x="11.5" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-64.3" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="0.5,-56.5 0.5,-58.5 99.5,-58.5 99.5,-56.5 0.5,-56.5"/>
<polygon fill="#0066ff" stroke="none" points="0.5,-54.5 0.5,-56.5 99.5,-56.5 99.5,-54.5 0.5,-54.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-52.5 0.5,-54.5 99.5,-54.5 99.5,-52.5 0.5,-52.5"/>
<text text-anchor="start" x="10.5" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-39.3" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="0.5,-31.5 0.5,-33.5 99.5,-33.5 99.5,-31.5 0.5,-31.5"/>
<polygon fill="#00ff00" stroke="none" points="0.5,-29.5 0.5,-31.5 99.5,-31.5 99.5,-29.5 0.5,-29.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-27.5 0.5,-29.5 99.5,-29.5 99.5,-27.5 0.5,-27.5"/>
<text text-anchor="start" x="2.5" y="-14.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-103.5C162.76,-103.52 178.75,-101.52 243,-101.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M99,-105.5C163.01,-105.5 178.99,-103.5 243,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-107.5C163.25,-107.48 179.24,-105.48 243,-105.5"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-78.5C162.88,-78.5 178.87,-77.5 243,-77.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-80.5C163,-80.5 179,-79.5 243,-79.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-82.5C163.13,-82.5 179.12,-81.5 243,-81.5"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-53.5C163.13,-53.5 179.12,-54.5 243,-54.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M99,-55.5C163,-55.5 179,-56.5 243,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-57.5C162.88,-57.5 178.87,-58.5 243,-58.5"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-28.5C163.38,-28.53 179.36,-31.53 243,-31.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M99,-30.5C163.01,-30.5 178.99,-33.5 243,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-32.5C162.64,-32.47 178.62,-35.47 243,-35.5"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<div id="bom">
<table class="bom">
<tr>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Connector, Dupont 2.54mm, female, 5 pins, BK</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X2</td>
</tr>
<tr>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, Dupont 2.54mm, male, 5 pins, BK</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1</td>
</tr>
<tr>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Wire, BK</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
<tr>
<td class="bom_col_id">4</td>
<td class="bom_col_description">Wire, BU</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
<tr>
<td class="bom_col_id">5</td>
<td class="bom_col_description">Wire, GN</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
<tr>
<td class="bom_col_id">6</td>
<td class="bom_col_description">Wire, RD</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2</td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex12.png generated Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

195
examples/ex12.svg generated Normal file
View File

@ -0,0 +1,195 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="1083pt" height="201pt"
viewBox="0.00 0.00 1083.00 200.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 196.5)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-196.5 1079,-196.5 1079,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="462,-161 243,-161 243,0 462,0 462,-161"/>
<polygon fill="none" stroke="black" points="243.5,-137.5 243.5,-160.5 462.5,-160.5 462.5,-137.5 243.5,-137.5"/>
<text text-anchor="start" x="344.5" y="-145.3" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="243.5,-114.5 243.5,-137.5 349.5,-137.5 349.5,-114.5 243.5,-114.5"/>
<text text-anchor="start" x="247.5" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="349.5,-114.5 349.5,-137.5 388.5,-137.5 388.5,-114.5 349.5,-114.5"/>
<text text-anchor="start" x="353.5" y="-122.3" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="388.5,-114.5 388.5,-137.5 427.5,-137.5 427.5,-114.5 388.5,-114.5"/>
<text text-anchor="start" x="392.5" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="427.5,-114.5 427.5,-137.5 454.5,-137.5 454.5,-114.5 427.5,-114.5"/>
<text text-anchor="start" x="431.5" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="454.5,-114.5 454.5,-137.5 462.5,-137.5 462.5,-114.5 454.5,-114.5"/>
<polygon fill="none" stroke="black" points="454.5,-114.5 454.5,-137.5 462.5,-137.5 462.5,-114.5 454.5,-114.5"/>
<polygon fill="none" stroke="black" points="243.5,-91.5 243.5,-114.5 462.5,-114.5 462.5,-91.5 243.5,-91.5"/>
<text text-anchor="start" x="349" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="243.5,-68.5 243.5,-91.5 462.5,-91.5 462.5,-68.5 243.5,-68.5"/>
<text text-anchor="start" x="349" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="243.5,-45.5 243.5,-68.5 462.5,-68.5 462.5,-45.5 243.5,-45.5"/>
<text text-anchor="start" x="349" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="243.5,-22.5 243.5,-45.5 462.5,-45.5 462.5,-22.5 243.5,-22.5"/>
<text text-anchor="start" x="349" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="243.5,0.5 243.5,-22.5 462.5,-22.5 462.5,0.5 243.5,0.5"/>
<text text-anchor="start" x="349" y="-7.3" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="836,-161 606,-161 606,0 836,0 836,-161"/>
<polygon fill="none" stroke="black" points="606,-137.5 606,-160.5 836,-160.5 836,-137.5 606,-137.5"/>
<text text-anchor="start" x="712.5" y="-145.3" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="606,-114.5 606,-137.5 712,-137.5 712,-114.5 606,-114.5"/>
<text text-anchor="start" x="610" y="-122.3" font-family="arial" font-size="14.00">Dupont 2.54mm</text>
<polygon fill="none" stroke="black" points="712,-114.5 712,-137.5 762,-137.5 762,-114.5 712,-114.5"/>
<text text-anchor="start" x="716" y="-122.3" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="762,-114.5 762,-137.5 801,-137.5 801,-114.5 762,-114.5"/>
<text text-anchor="start" x="766" y="-122.3" font-family="arial" font-size="14.00">5&#45;pin</text>
<polygon fill="none" stroke="black" points="801,-114.5 801,-137.5 828,-137.5 828,-114.5 801,-114.5"/>
<text text-anchor="start" x="805" y="-122.3" font-family="arial" font-size="14.00">BK</text>
<polygon fill="#000000" stroke="none" points="828,-114.5 828,-137.5 836,-137.5 836,-114.5 828,-114.5"/>
<polygon fill="none" stroke="black" points="828,-114.5 828,-137.5 836,-137.5 836,-114.5 828,-114.5"/>
<polygon fill="none" stroke="black" points="606,-91.5 606,-114.5 836,-114.5 836,-91.5 606,-91.5"/>
<text text-anchor="start" x="717" y="-99.3" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="606,-68.5 606,-91.5 836,-91.5 836,-68.5 606,-68.5"/>
<text text-anchor="start" x="717" y="-76.3" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="606,-45.5 606,-68.5 836,-68.5 836,-45.5 606,-45.5"/>
<text text-anchor="start" x="717" y="-53.3" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="606,-22.5 606,-45.5 836,-45.5 836,-22.5 606,-22.5"/>
<text text-anchor="start" x="717" y="-30.3" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="606,0.5 606,-22.5 836,-22.5 836,0.5 606,0.5"/>
<text text-anchor="start" x="717" y="-7.3" font-family="arial" font-size="14.00">5</text>
</g>
<!-- X1&#45;&#45;X2 -->
<g id="edge9" class="edge">
<title>X1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M462,-79.5C522,-79.5 539.81,-79.5 594.54,-79.5"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M462,-81.5C522,-81.5 539.81,-81.5 594.54,-81.5"/>
<polygon fill="#000000" stroke="#000000" points="594.49,-84 604.49,-80.5 594.49,-77 594.49,-84"/>
</g>
<!-- W2 -->
<g id="node4" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="1075,-192.5 980,-192.5 980,-8.5 1075,-8.5 1075,-192.5"/>
<polygon fill="none" stroke="black" points="980.5,-169.5 980.5,-192.5 1075.5,-192.5 1075.5,-169.5 980.5,-169.5"/>
<text text-anchor="start" x="1017" y="-177.3" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="980.5,-146.5 980.5,-169.5 1018.5,-169.5 1018.5,-146.5 980.5,-146.5"/>
<text text-anchor="start" x="992" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1018.5,-146.5 1018.5,-169.5 1075.5,-169.5 1075.5,-146.5 1018.5,-146.5"/>
<text text-anchor="start" x="1029.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="994.5" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="982.5" y="-114.3" font-family="arial" font-size="14.00">X2:1</text>
<text text-anchor="start" x="1015" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-106.5 980.5,-108.5 1075.5,-108.5 1075.5,-106.5 980.5,-106.5"/>
<polygon fill="#ff0000" stroke="none" points="980.5,-104.5 980.5,-106.5 1075.5,-106.5 1075.5,-104.5 980.5,-104.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-102.5 980.5,-104.5 1075.5,-104.5 1075.5,-102.5 980.5,-102.5"/>
<text text-anchor="start" x="982.5" y="-89.3" font-family="arial" font-size="14.00">X2:2</text>
<text text-anchor="start" x="1016" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-81.5 980.5,-83.5 1075.5,-83.5 1075.5,-81.5 980.5,-81.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-79.5 980.5,-81.5 1075.5,-81.5 1075.5,-79.5 980.5,-79.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-77.5 980.5,-79.5 1075.5,-79.5 1075.5,-77.5 980.5,-77.5"/>
<text text-anchor="start" x="982.5" y="-64.3" font-family="arial" font-size="14.00">X2:3</text>
<text text-anchor="start" x="1015.5" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-56.5 980.5,-58.5 1075.5,-58.5 1075.5,-56.5 980.5,-56.5"/>
<polygon fill="#0066ff" stroke="none" points="980.5,-54.5 980.5,-56.5 1075.5,-56.5 1075.5,-54.5 980.5,-54.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-52.5 980.5,-54.5 1075.5,-54.5 1075.5,-52.5 980.5,-52.5"/>
<text text-anchor="start" x="982.5" y="-39.3" font-family="arial" font-size="14.00">X2:4</text>
<text text-anchor="start" x="1014.5" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="980.5,-31.5 980.5,-33.5 1075.5,-33.5 1075.5,-31.5 980.5,-31.5"/>
<polygon fill="#00ff00" stroke="none" points="980.5,-29.5 980.5,-31.5 1075.5,-31.5 1075.5,-29.5 980.5,-29.5"/>
<polygon fill="#000000" stroke="none" points="980.5,-27.5 980.5,-29.5 1075.5,-29.5 1075.5,-27.5 980.5,-27.5"/>
<text text-anchor="start" x="994.5" y="-14.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge5" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-101.5C900.25,-101.52 916.24,-103.52 980,-103.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M836,-103.5C900.01,-103.5 915.99,-105.5 980,-105.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-105.5C899.76,-105.48 915.75,-107.48 980,-107.5"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge6" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-77.5C900.13,-77.5 916.12,-78.5 980,-78.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-79.5C900,-79.5 916,-80.5 980,-80.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-81.5C899.88,-81.5 915.87,-82.5 980,-82.5"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge7" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-54.5C899.88,-54.5 915.87,-53.5 980,-53.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M836,-56.5C900,-56.5 916,-55.5 980,-55.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-58.5C900.13,-58.5 916.12,-57.5 980,-57.5"/>
</g>
<!-- X2&#45;&#45;W2 -->
<g id="edge8" class="edge">
<title>X2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-31.5C899.64,-31.53 915.62,-28.53 980,-28.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M836,-33.5C900.01,-33.5 915.99,-30.5 980,-30.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M836,-35.5C900.38,-35.47 916.36,-32.47 980,-32.5"/>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" stroke-dasharray="5,2" points="99,-192.5 0,-192.5 0,-8.5 99,-8.5 99,-192.5"/>
<polygon fill="none" stroke="black" points="0.5,-169.5 0.5,-192.5 99.5,-192.5 99.5,-169.5 0.5,-169.5"/>
<text text-anchor="start" x="39" y="-177.3" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="0.5,-146.5 0.5,-169.5 40.5,-169.5 40.5,-146.5 0.5,-146.5"/>
<text text-anchor="start" x="13" y="-154.3" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="40.5,-146.5 40.5,-169.5 99.5,-169.5 99.5,-146.5 40.5,-146.5"/>
<text text-anchor="start" x="52.5" y="-154.3" font-family="arial" font-size="14.00">0.2 m</text>
<text text-anchor="start" x="2.5" y="-133.3" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="11" y="-114.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;RD &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-114.3" font-family="arial" font-size="14.00">X1:1</text>
<polygon fill="#000000" stroke="none" points="0.5,-106.5 0.5,-108.5 99.5,-108.5 99.5,-106.5 0.5,-106.5"/>
<polygon fill="#ff0000" stroke="none" points="0.5,-104.5 0.5,-106.5 99.5,-106.5 99.5,-104.5 0.5,-104.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-102.5 0.5,-104.5 99.5,-104.5 99.5,-102.5 0.5,-102.5"/>
<text text-anchor="start" x="12" y="-89.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-89.3" font-family="arial" font-size="14.00">X1:2</text>
<polygon fill="#000000" stroke="none" points="0.5,-81.5 0.5,-83.5 99.5,-83.5 99.5,-81.5 0.5,-81.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-79.5 0.5,-81.5 99.5,-81.5 99.5,-79.5 0.5,-79.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-77.5 0.5,-79.5 99.5,-79.5 99.5,-77.5 0.5,-77.5"/>
<text text-anchor="start" x="11.5" y="-64.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;BU &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-64.3" font-family="arial" font-size="14.00">X1:3</text>
<polygon fill="#000000" stroke="none" points="0.5,-56.5 0.5,-58.5 99.5,-58.5 99.5,-56.5 0.5,-56.5"/>
<polygon fill="#0066ff" stroke="none" points="0.5,-54.5 0.5,-56.5 99.5,-56.5 99.5,-54.5 0.5,-54.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-52.5 0.5,-54.5 99.5,-54.5 99.5,-52.5 0.5,-52.5"/>
<text text-anchor="start" x="10.5" y="-39.3" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="69.5" y="-39.3" font-family="arial" font-size="14.00">X1:4</text>
<polygon fill="#000000" stroke="none" points="0.5,-31.5 0.5,-33.5 99.5,-33.5 99.5,-31.5 0.5,-31.5"/>
<polygon fill="#00ff00" stroke="none" points="0.5,-29.5 0.5,-31.5 99.5,-31.5 99.5,-29.5 0.5,-29.5"/>
<polygon fill="#000000" stroke="none" points="0.5,-27.5 0.5,-29.5 99.5,-29.5 99.5,-27.5 0.5,-27.5"/>
<text text-anchor="start" x="2.5" y="-14.3" font-family="arial" font-size="14.00"> </text>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge1" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-103.5C162.76,-103.52 178.75,-101.52 243,-101.5"/>
<path fill="none" stroke="#ff0000" stroke-width="2" d="M99,-105.5C163.01,-105.5 178.99,-103.5 243,-103.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-107.5C163.25,-107.48 179.24,-105.48 243,-105.5"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-78.5C162.88,-78.5 178.87,-77.5 243,-77.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-80.5C163,-80.5 179,-79.5 243,-79.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-82.5C163.13,-82.5 179.12,-81.5 243,-81.5"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge3" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-53.5C163.13,-53.5 179.12,-54.5 243,-54.5"/>
<path fill="none" stroke="#0066ff" stroke-width="2" d="M99,-55.5C163,-55.5 179,-56.5 243,-56.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-57.5C162.88,-57.5 178.87,-58.5 243,-58.5"/>
</g>
<!-- W1&#45;&#45;X1 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-28.5C163.38,-28.53 179.36,-31.53 243,-31.5"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M99,-30.5C163.01,-30.5 178.99,-33.5 243,-33.5"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M99,-32.5C162.64,-32.47 178.62,-35.47 243,-35.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

25
examples/ex12.yml Normal file
View File

@ -0,0 +1,25 @@
# based on @MSBGit's example in #134
connectors:
X1: &dupont
type: Dupont 2.54mm
subtype: male
pincount: 5
color: BK
X2:
<<: *dupont
subtype: female
cables:
W:
category: bundle
colors: [RD, BK, BU, GN]
length: 0.2
connections:
-
- W.W1: [1-4]
- X1: [1-4]
- ==>
- X2: [1-4]
- W.W2: [1-4]

4
examples/ex13.bom.tsv generated Normal file
View File

@ -0,0 +1,4 @@
Id Description Qty Unit Designators
1 Cable, 4 wires 0 m C1, C2, C3
2 Connector, 4 pins 3 X1, X2, X3
3 Connector, ferrule 4
1 Id Description Qty Unit Designators
2 1 Cable, 4 wires 0 m C1, C2, C3
3 2 Connector, 4 pins 3 X1, X2, X3
4 3 Connector, ferrule 4

433
examples/ex13.gv generated Normal file
View File

@ -0,0 +1,433 @@
graph {
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
X1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4-pin</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td>A</td>
<td port="p1r">1</td>
</tr>
<tr>
<td>B</td>
<td port="p2r">2</td>
</tr>
<tr>
<td>C</td>
<td port="p3r">3</td>
</tr>
<tr>
<td>D</td>
<td port="p4r">4</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
F1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">ferrule</td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
F2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">ferrule</td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
F3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">ferrule</td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
F4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">ferrule</td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
X2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X2</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4-pin</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td port="p1l">1</td>
<td>A</td>
</tr>
<tr>
<td port="p2l">2</td>
<td>B</td>
</tr>
<tr>
<td port="p3l">3</td>
<td>C</td>
</tr>
<tr>
<td port="p4l">4</td>
<td>D</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
X3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X3</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4-pin</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td port="p1l">1</td>
<td>A</td>
</tr>
<tr>
<td port="p2l">2</td>
<td>B</td>
</tr>
<tr>
<td port="p3l">3</td>
<td>C</td>
</tr>
<tr>
<td port="p4l">4</td>
<td>D</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
X1:p1r:e -- C1:w1:w
C1:w1:e -- F1:w
edge [color="#000000:#895956:#000000"]
X1:p2r:e -- C1:w2:w
C1:w2:e -- F2:w
edge [color="#000000:#00ff00:#000000"]
X1:p3r:e -- C1:w3:w
C1:w3:e -- F3:w
edge [color="#000000:#ffff00:#000000"]
X1:p4r:e -- C1:w4:w
C1:w4:e -- F4:w
C1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">C1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td>X1:1:A</td>
<td>
1:WH
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X1:2:B</td>
<td>
2:BN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X1:3:C</td>
<td>
3:GN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X1:4:D</td>
<td>
4:YE
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
F1:e -- C2:w1:w
C2:w1:e -- X2:p1l:w
edge [color="#000000:#895956:#000000"]
F2:e -- C2:w2:w
C2:w2:e -- X2:p2l:w
edge [color="#000000:#00ff00:#000000"]
F3:e -- C2:w3:w
C2:w3:e -- X2:p3l:w
edge [color="#000000:#ffff00:#000000"]
F4:e -- C2:w4:w
C2:w4:e -- X2:p4l:w
C2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">C2</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td></td>
<td>
1:WH
</td>
<td>X2:1:A</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
2:BN
</td>
<td>X2:2:B</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
3:GN
</td>
<td>X2:3:C</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
4:YE
</td>
<td>X2:4:D</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
F1:e -- C3:w1:w
C3:w1:e -- X3:p1l:w
edge [color="#000000:#895956:#000000"]
F2:e -- C3:w2:w
C3:w2:e -- X3:p2l:w
edge [color="#000000:#00ff00:#000000"]
F3:e -- C3:w3:w
C3:w3:e -- X3:p3l:w
edge [color="#000000:#ffff00:#000000"]
F4:e -- C3:w4:w
C3:w4:e -- X3:p4l:w
C3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">C3</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td></td>
<td>
1:WH
</td>
<td>X3:1:A</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
2:BN
</td>
<td>X3:2:B</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
3:GN
</td>
<td>X3:3:C</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
4:YE
</td>
<td>X3:4:D</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
}

449
examples/ex13.html generated Normal file
View File

@ -0,0 +1,449 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex13</title>
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex13</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="959pt" height="400pt"
viewBox="0.00 0.00 959.00 400.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 396)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-396 955,-396 955,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="39,-256 0,-256 0,-118 39,-118 39,-256"/>
<polygon fill="none" stroke="black" points="0.5,-233 0.5,-256 39.5,-256 39.5,-233 0.5,-233"/>
<text text-anchor="start" x="11.5" y="-240.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-210 0.5,-233 39.5,-233 39.5,-210 0.5,-210"/>
<text text-anchor="start" x="4.5" y="-217.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-187 0.5,-210 21.5,-210 21.5,-187 0.5,-187"/>
<text text-anchor="start" x="6" y="-194.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="21.5,-187 21.5,-210 39.5,-210 39.5,-187 21.5,-187"/>
<text text-anchor="start" x="26.5" y="-194.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-164 0.5,-187 21.5,-187 21.5,-164 0.5,-164"/>
<text text-anchor="start" x="6" y="-171.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="21.5,-164 21.5,-187 39.5,-187 39.5,-164 21.5,-164"/>
<text text-anchor="start" x="26.5" y="-171.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-141 0.5,-164 21.5,-164 21.5,-141 0.5,-141"/>
<text text-anchor="start" x="6" y="-148.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="21.5,-141 21.5,-164 39.5,-164 39.5,-141 21.5,-141"/>
<text text-anchor="start" x="26.5" y="-148.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-118 0.5,-141 21.5,-141 21.5,-118 0.5,-118"/>
<text text-anchor="start" x="6" y="-125.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="21.5,-118 21.5,-141 39.5,-141 39.5,-118 21.5,-118"/>
<text text-anchor="start" x="26.5" y="-125.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- C1 -->
<g id="node8" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="306,-288 183,-288 183,-104 306,-104 306,-288"/>
<polygon fill="none" stroke="black" points="183.5,-265 183.5,-288 306.5,-288 306.5,-265 183.5,-265"/>
<text text-anchor="start" x="236" y="-272.8" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="183.5,-242 183.5,-265 306.5,-265 306.5,-242 183.5,-242"/>
<text text-anchor="start" x="237.5" y="-249.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="204.5" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="186" y="-209.8" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="231.5" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-202 183.5,-204 306.5,-204 306.5,-202 183.5,-202"/>
<polygon fill="#ffffff" stroke="none" points="183.5,-200 183.5,-202 306.5,-202 306.5,-200 183.5,-200"/>
<polygon fill="#000000" stroke="none" points="183.5,-198 183.5,-200 306.5,-200 306.5,-198 183.5,-198"/>
<text text-anchor="start" x="186" y="-184.8" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="234" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-177 183.5,-179 306.5,-179 306.5,-177 183.5,-177"/>
<polygon fill="#895956" stroke="none" points="183.5,-175 183.5,-177 306.5,-177 306.5,-175 183.5,-175"/>
<polygon fill="#000000" stroke="none" points="183.5,-173 183.5,-175 306.5,-175 306.5,-173 183.5,-173"/>
<text text-anchor="start" x="185.5" y="-159.8" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="232.5" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-152 183.5,-154 306.5,-154 306.5,-152 183.5,-152"/>
<polygon fill="#00ff00" stroke="none" points="183.5,-150 183.5,-152 306.5,-152 306.5,-150 183.5,-150"/>
<polygon fill="#000000" stroke="none" points="183.5,-148 183.5,-150 306.5,-150 306.5,-148 183.5,-148"/>
<text text-anchor="start" x="185.5" y="-134.8" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="234" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-127 183.5,-129 306.5,-129 306.5,-127 183.5,-127"/>
<polygon fill="#ffff00" stroke="none" points="183.5,-125 183.5,-127 306.5,-127 306.5,-125 183.5,-125"/>
<polygon fill="#000000" stroke="none" points="183.5,-123 183.5,-125 306.5,-125 306.5,-123 183.5,-123"/>
<text text-anchor="start" x="204.5" y="-109.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-197C103.25,-197.02 119.24,-199.02 183,-199"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M39,-199C103.01,-199 118.99,-201 183,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-201C102.76,-200.98 118.75,-202.98 183,-203"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-173C103.13,-173 119.12,-174 183,-174"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M39,-175C103,-175 119,-176 183,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-177C102.88,-177 118.87,-178 183,-178"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-150C102.88,-150 118.87,-149 183,-149"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M39,-152C103,-152 119,-151 183,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-154C103.13,-154 119.12,-153 183,-153"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-127C102.64,-127.03 118.62,-124.03 183,-124"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M39,-129C103.01,-129 118.99,-126 183,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-131C103.38,-130.97 119.36,-127.97 183,-128"/>
</g>
<!-- F1 -->
<g id="node2" class="node">
<title>F1</title>
<polygon fill="#ffffff" stroke="black" points="497,-245.5 450,-245.5 450,-222.5 497,-222.5 497,-245.5"/>
<polygon fill="none" stroke="black" points="450.5,-222 450.5,-245 497.5,-245 497.5,-222 450.5,-222"/>
<text text-anchor="start" x="454.5" y="-229.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- C2 -->
<g id="node9" class="node">
<title>C2</title>
<polygon fill="#ffffff" stroke="black" points="768,-392 641,-392 641,-208 768,-208 768,-392"/>
<polygon fill="none" stroke="black" points="641.5,-369 641.5,-392 768.5,-392 768.5,-369 641.5,-369"/>
<text text-anchor="start" x="696" y="-376.8" font-family="arial" font-size="14.00">C2</text>
<polygon fill="none" stroke="black" points="641.5,-346 641.5,-369 768.5,-369 768.5,-346 641.5,-346"/>
<text text-anchor="start" x="697.5" y="-353.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="643.5" y="-332.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="651.5" y="-313.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-313.8" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="none" points="641.5,-306 641.5,-308 768.5,-308 768.5,-306 641.5,-306"/>
<polygon fill="#ffffff" stroke="none" points="641.5,-304 641.5,-306 768.5,-306 768.5,-304 641.5,-304"/>
<polygon fill="#000000" stroke="none" points="641.5,-302 641.5,-304 768.5,-304 768.5,-302 641.5,-302"/>
<text text-anchor="start" x="654" y="-288.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-288.8" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="none" points="641.5,-281 641.5,-283 768.5,-283 768.5,-281 641.5,-281"/>
<polygon fill="#895956" stroke="none" points="641.5,-279 641.5,-281 768.5,-281 768.5,-279 641.5,-279"/>
<polygon fill="#000000" stroke="none" points="641.5,-277 641.5,-279 768.5,-279 768.5,-277 641.5,-277"/>
<text text-anchor="start" x="652.5" y="-263.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-263.8" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="none" points="641.5,-256 641.5,-258 768.5,-258 768.5,-256 641.5,-256"/>
<polygon fill="#00ff00" stroke="none" points="641.5,-254 641.5,-256 768.5,-256 768.5,-254 641.5,-254"/>
<polygon fill="#000000" stroke="none" points="641.5,-252 641.5,-254 768.5,-254 768.5,-252 641.5,-252"/>
<text text-anchor="start" x="654" y="-238.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-238.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="641.5,-231 641.5,-233 768.5,-233 768.5,-231 641.5,-231"/>
<polygon fill="#ffff00" stroke="none" points="641.5,-229 641.5,-231 768.5,-231 768.5,-229 641.5,-229"/>
<polygon fill="#000000" stroke="none" points="641.5,-227 641.5,-229 768.5,-229 768.5,-227 641.5,-227"/>
<text text-anchor="start" x="643.5" y="-213.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C2 -->
<g id="edge9" class="edge">
<title>F1:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-232C570.36,-233.96 571.64,-304.96 641,-303"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M497,-234C568.36,-234 569.64,-305 641,-305"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-236C566.36,-234.04 567.64,-305.04 641,-307"/>
</g>
<!-- C3 -->
<g id="node10" class="node">
<title>C3</title>
<polygon fill="#ffffff" stroke="black" points="768,-184 641,-184 641,0 768,0 768,-184"/>
<polygon fill="none" stroke="black" points="641.5,-161 641.5,-184 768.5,-184 768.5,-161 641.5,-161"/>
<text text-anchor="start" x="696" y="-168.8" font-family="arial" font-size="14.00">C3</text>
<polygon fill="none" stroke="black" points="641.5,-138 641.5,-161 768.5,-161 768.5,-138 641.5,-138"/>
<text text-anchor="start" x="697.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="643.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="651.5" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-105.8" font-family="arial" font-size="14.00">X3:1:A</text>
<polygon fill="#000000" stroke="none" points="641.5,-98 641.5,-100 768.5,-100 768.5,-98 641.5,-98"/>
<polygon fill="#ffffff" stroke="none" points="641.5,-96 641.5,-98 768.5,-98 768.5,-96 641.5,-96"/>
<polygon fill="#000000" stroke="none" points="641.5,-94 641.5,-96 768.5,-96 768.5,-94 641.5,-94"/>
<text text-anchor="start" x="654" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-80.8" font-family="arial" font-size="14.00">X3:2:B</text>
<polygon fill="#000000" stroke="none" points="641.5,-73 641.5,-75 768.5,-75 768.5,-73 641.5,-73"/>
<polygon fill="#895956" stroke="none" points="641.5,-71 641.5,-73 768.5,-73 768.5,-71 641.5,-71"/>
<polygon fill="#000000" stroke="none" points="641.5,-69 641.5,-71 768.5,-71 768.5,-69 641.5,-69"/>
<text text-anchor="start" x="652.5" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:C</text>
<polygon fill="#000000" stroke="none" points="641.5,-48 641.5,-50 768.5,-50 768.5,-48 641.5,-48"/>
<polygon fill="#00ff00" stroke="none" points="641.5,-46 641.5,-48 768.5,-48 768.5,-46 641.5,-46"/>
<polygon fill="#000000" stroke="none" points="641.5,-44 641.5,-46 768.5,-46 768.5,-44 641.5,-44"/>
<text text-anchor="start" x="654" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:D</text>
<polygon fill="#000000" stroke="none" points="641.5,-23 641.5,-25 768.5,-25 768.5,-23 641.5,-23"/>
<polygon fill="#ffff00" stroke="none" points="641.5,-21 641.5,-23 768.5,-23 768.5,-21 641.5,-21"/>
<polygon fill="#000000" stroke="none" points="641.5,-19 641.5,-21 768.5,-21 768.5,-19 641.5,-19"/>
<text text-anchor="start" x="643.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C3 -->
<g id="edge17" class="edge">
<title>F1:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-232C583.39,-234.46 550.72,-97.46 641,-95"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M497,-234C585.34,-234 552.66,-97 641,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-236C587.28,-233.54 554.61,-96.54 641,-99"/>
</g>
<!-- F2 -->
<g id="node3" class="node">
<title>F2</title>
<polygon fill="#ffffff" stroke="black" points="497,-198.5 450,-198.5 450,-175.5 497,-175.5 497,-198.5"/>
<polygon fill="none" stroke="black" points="450.5,-175 450.5,-198 497.5,-198 497.5,-175 450.5,-175"/>
<text text-anchor="start" x="454.5" y="-182.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F2&#45;&#45;C2 -->
<g id="edge11" class="edge">
<title>F2:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-185C575.18,-187.18 566.81,-280.18 641,-278"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M497,-187C573.19,-187 564.81,-280 641,-280"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-189C571.19,-186.82 562.82,-279.82 641,-282"/>
</g>
<!-- F2&#45;&#45;C3 -->
<g id="edge19" class="edge">
<title>F2:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-185C576.93,-187.34 557.12,-72.34 641,-70"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M497,-187C578.9,-187 559.1,-72 641,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-189C580.88,-186.66 561.07,-71.66 641,-74"/>
</g>
<!-- F3 -->
<g id="node4" class="node">
<title>F3</title>
<polygon fill="#ffffff" stroke="black" points="497,-151.5 450,-151.5 450,-128.5 497,-128.5 497,-151.5"/>
<polygon fill="none" stroke="black" points="450.5,-128 450.5,-151 497.5,-151 497.5,-128 450.5,-128"/>
<text text-anchor="start" x="454.5" y="-135.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F3&#45;&#45;C2 -->
<g id="edge13" class="edge">
<title>F3:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-138C580.88,-140.34 561.07,-255.34 641,-253"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M497,-140C578.9,-140 559.1,-255 641,-255"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-142C576.93,-139.66 557.12,-254.66 641,-257"/>
</g>
<!-- F3&#45;&#45;C3 -->
<g id="edge21" class="edge">
<title>F3:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-138C571.19,-140.18 562.82,-47.18 641,-45"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M497,-140C573.19,-140 564.81,-47 641,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-142C575.18,-139.82 566.81,-46.82 641,-49"/>
</g>
<!-- F4 -->
<g id="node5" class="node">
<title>F4</title>
<polygon fill="#ffffff" stroke="black" points="497,-104.5 450,-104.5 450,-81.5 497,-81.5 497,-104.5"/>
<polygon fill="none" stroke="black" points="450.5,-81 450.5,-104 497.5,-104 497.5,-81 450.5,-81"/>
<text text-anchor="start" x="454.5" y="-88.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F4&#45;&#45;C2 -->
<g id="edge15" class="edge">
<title>F4:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-91C587.28,-93.46 554.61,-230.46 641,-228"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M497,-93C585.34,-93 552.66,-230 641,-230"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-95C583.39,-92.54 550.72,-229.54 641,-232"/>
</g>
<!-- F4&#45;&#45;C3 -->
<g id="edge23" class="edge">
<title>F4:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-91C566.36,-92.96 567.64,-21.96 641,-20"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M497,-93C568.36,-93 569.64,-22 641,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-95C570.36,-93.04 571.64,-22.04 641,-24"/>
</g>
<!-- X2 -->
<g id="node6" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="951,-360 912,-360 912,-222 951,-222 951,-360"/>
<polygon fill="none" stroke="black" points="912.5,-337 912.5,-360 951.5,-360 951.5,-337 912.5,-337"/>
<text text-anchor="start" x="923.5" y="-344.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="912.5,-314 912.5,-337 951.5,-337 951.5,-314 912.5,-314"/>
<text text-anchor="start" x="916.5" y="-321.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="912.5,-291 912.5,-314 931.5,-314 931.5,-291 912.5,-291"/>
<text text-anchor="start" x="918" y="-298.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="931.5,-291 931.5,-314 951.5,-314 951.5,-291 931.5,-291"/>
<text text-anchor="start" x="936.5" y="-298.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="912.5,-268 912.5,-291 931.5,-291 931.5,-268 912.5,-268"/>
<text text-anchor="start" x="918" y="-275.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="931.5,-268 931.5,-291 951.5,-291 951.5,-268 931.5,-268"/>
<text text-anchor="start" x="936.5" y="-275.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="912.5,-245 912.5,-268 931.5,-268 931.5,-245 912.5,-245"/>
<text text-anchor="start" x="918" y="-252.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="931.5,-245 931.5,-268 951.5,-268 951.5,-245 931.5,-245"/>
<text text-anchor="start" x="936.5" y="-252.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="912.5,-222 912.5,-245 931.5,-245 931.5,-222 912.5,-222"/>
<text text-anchor="start" x="918" y="-229.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="931.5,-222 931.5,-245 951.5,-245 951.5,-222 931.5,-222"/>
<text text-anchor="start" x="936.5" y="-229.8" font-family="arial" font-size="14.00">D</text>
</g>
<!-- X3 -->
<g id="node7" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="951,-152 912,-152 912,-14 951,-14 951,-152"/>
<polygon fill="none" stroke="black" points="912.5,-129 912.5,-152 951.5,-152 951.5,-129 912.5,-129"/>
<text text-anchor="start" x="923.5" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="912.5,-106 912.5,-129 951.5,-129 951.5,-106 912.5,-106"/>
<text text-anchor="start" x="916.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="912.5,-83 912.5,-106 931.5,-106 931.5,-83 912.5,-83"/>
<text text-anchor="start" x="918" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="931.5,-83 931.5,-106 951.5,-106 951.5,-83 931.5,-83"/>
<text text-anchor="start" x="936.5" y="-90.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="912.5,-60 912.5,-83 931.5,-83 931.5,-60 912.5,-60"/>
<text text-anchor="start" x="918" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="931.5,-60 931.5,-83 951.5,-83 951.5,-60 931.5,-60"/>
<text text-anchor="start" x="936.5" y="-67.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="912.5,-37 912.5,-60 931.5,-60 931.5,-37 912.5,-37"/>
<text text-anchor="start" x="918" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="931.5,-37 931.5,-60 951.5,-60 951.5,-37 931.5,-37"/>
<text text-anchor="start" x="936.5" y="-44.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="912.5,-14 912.5,-37 931.5,-37 931.5,-14 912.5,-14"/>
<text text-anchor="start" x="918" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="931.5,-14 931.5,-37 951.5,-37 951.5,-14 931.5,-14"/>
<text text-anchor="start" x="936.5" y="-21.8" font-family="arial" font-size="14.00">D</text>
</g>
<!-- C1&#45;&#45;F1 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;F1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-199C373.53,-200.28 386.21,-233.28 450,-232"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M306,-201C371.66,-201 384.34,-234 450,-234"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-203C369.79,-201.72 382.47,-234.72 450,-236"/>
</g>
<!-- C1&#45;&#45;F2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;F2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-174C371.34,-174.36 386.96,-185.36 450,-185"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M306,-176C370.19,-176 385.81,-187 450,-187"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-178C369.04,-177.64 384.66,-188.64 450,-189"/>
</g>
<!-- C1&#45;&#45;F3 -->
<g id="edge6" class="edge">
<title>C1:e&#45;&#45;F3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-149C369.04,-149.36 384.66,-138.36 450,-138"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M306,-151C370.19,-151 385.81,-140 450,-140"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-153C371.34,-152.64 386.96,-141.64 450,-142"/>
</g>
<!-- C1&#45;&#45;F4 -->
<g id="edge8" class="edge">
<title>C1:e&#45;&#45;F4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-124C369.79,-125.28 382.47,-92.28 450,-91"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M306,-126C371.66,-126 384.34,-93 450,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-128C373.53,-126.72 386.21,-93.72 450,-95"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-303C831.76,-303.02 847.75,-301.02 912,-301"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M768,-305C832.01,-305 847.99,-303 912,-303"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-307C832.25,-306.98 848.24,-304.98 912,-305"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-278C831.88,-278 847.87,-277 912,-277"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M768,-280C832,-280 848,-279 912,-279"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-282C832.13,-282 848.12,-281 912,-281"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-253C832.13,-253 848.12,-254 912,-254"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M768,-255C832,-255 848,-256 912,-256"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-257C831.88,-257 847.87,-258 912,-258"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-228C832.38,-228.03 848.36,-231.03 912,-231"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M768,-230C832.01,-230 847.99,-233 912,-233"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-232C831.64,-231.97 847.62,-234.97 912,-235"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge18" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-95C831.76,-95.02 847.75,-93.02 912,-93"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M768,-97C832.01,-97 847.99,-95 912,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-99C832.25,-98.98 848.24,-96.98 912,-97"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge20" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-70C831.88,-70 847.87,-69 912,-69"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M768,-72C832,-72 848,-71 912,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-74C832.13,-74 848.12,-73 912,-73"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge22" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-45C832.13,-45 848.12,-46 912,-46"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M768,-47C832,-47 848,-48 912,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-49C831.88,-49 847.87,-50 912,-50"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge24" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-20C832.38,-20.03 848.36,-23.03 912,-23"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M768,-22C832.01,-22 847.99,-25 912,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-24C831.64,-23.97 847.62,-26.97 912,-27"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<div id="bom">
<table class="bom">
<tr>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, 4 wires</td>
<td class="bom_col_qty">0</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">C1, C2, C3</td>
</tr>
<tr>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, 4 pins</td>
<td class="bom_col_qty">3</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1, X2, X3</td>
</tr>
<tr>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Connector, ferrule</td>
<td class="bom_col_qty">4</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators"></td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex13.png generated Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

376
examples/ex13.svg generated Normal file
View File

@ -0,0 +1,376 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="959pt" height="400pt"
viewBox="0.00 0.00 959.00 400.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 396)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-396 955,-396 955,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="39,-256 0,-256 0,-118 39,-118 39,-256"/>
<polygon fill="none" stroke="black" points="0.5,-233 0.5,-256 39.5,-256 39.5,-233 0.5,-233"/>
<text text-anchor="start" x="11.5" y="-240.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-210 0.5,-233 39.5,-233 39.5,-210 0.5,-210"/>
<text text-anchor="start" x="4.5" y="-217.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-187 0.5,-210 21.5,-210 21.5,-187 0.5,-187"/>
<text text-anchor="start" x="6" y="-194.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="21.5,-187 21.5,-210 39.5,-210 39.5,-187 21.5,-187"/>
<text text-anchor="start" x="26.5" y="-194.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-164 0.5,-187 21.5,-187 21.5,-164 0.5,-164"/>
<text text-anchor="start" x="6" y="-171.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="21.5,-164 21.5,-187 39.5,-187 39.5,-164 21.5,-164"/>
<text text-anchor="start" x="26.5" y="-171.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-141 0.5,-164 21.5,-164 21.5,-141 0.5,-141"/>
<text text-anchor="start" x="6" y="-148.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="21.5,-141 21.5,-164 39.5,-164 39.5,-141 21.5,-141"/>
<text text-anchor="start" x="26.5" y="-148.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-118 0.5,-141 21.5,-141 21.5,-118 0.5,-118"/>
<text text-anchor="start" x="6" y="-125.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="21.5,-118 21.5,-141 39.5,-141 39.5,-118 21.5,-118"/>
<text text-anchor="start" x="26.5" y="-125.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- C1 -->
<g id="node8" class="node">
<title>C1</title>
<polygon fill="#ffffff" stroke="black" points="306,-288 183,-288 183,-104 306,-104 306,-288"/>
<polygon fill="none" stroke="black" points="183.5,-265 183.5,-288 306.5,-288 306.5,-265 183.5,-265"/>
<text text-anchor="start" x="236" y="-272.8" font-family="arial" font-size="14.00">C1</text>
<polygon fill="none" stroke="black" points="183.5,-242 183.5,-265 306.5,-265 306.5,-242 183.5,-242"/>
<text text-anchor="start" x="237.5" y="-249.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="204.5" y="-228.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="186" y="-209.8" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="231.5" y="-209.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-202 183.5,-204 306.5,-204 306.5,-202 183.5,-202"/>
<polygon fill="#ffffff" stroke="none" points="183.5,-200 183.5,-202 306.5,-202 306.5,-200 183.5,-200"/>
<polygon fill="#000000" stroke="none" points="183.5,-198 183.5,-200 306.5,-200 306.5,-198 183.5,-198"/>
<text text-anchor="start" x="186" y="-184.8" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="234" y="-184.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-177 183.5,-179 306.5,-179 306.5,-177 183.5,-177"/>
<polygon fill="#895956" stroke="none" points="183.5,-175 183.5,-177 306.5,-177 306.5,-175 183.5,-175"/>
<polygon fill="#000000" stroke="none" points="183.5,-173 183.5,-175 306.5,-175 306.5,-173 183.5,-173"/>
<text text-anchor="start" x="185.5" y="-159.8" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="232.5" y="-159.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-152 183.5,-154 306.5,-154 306.5,-152 183.5,-152"/>
<polygon fill="#00ff00" stroke="none" points="183.5,-150 183.5,-152 306.5,-152 306.5,-150 183.5,-150"/>
<polygon fill="#000000" stroke="none" points="183.5,-148 183.5,-150 306.5,-150 306.5,-148 183.5,-148"/>
<text text-anchor="start" x="185.5" y="-134.8" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="234" y="-134.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="183.5,-127 183.5,-129 306.5,-129 306.5,-127 183.5,-127"/>
<polygon fill="#ffff00" stroke="none" points="183.5,-125 183.5,-127 306.5,-127 306.5,-125 183.5,-125"/>
<polygon fill="#000000" stroke="none" points="183.5,-123 183.5,-125 306.5,-125 306.5,-123 183.5,-123"/>
<text text-anchor="start" x="204.5" y="-109.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-197C103.25,-197.02 119.24,-199.02 183,-199"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M39,-199C103.01,-199 118.99,-201 183,-201"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-201C102.76,-200.98 118.75,-202.98 183,-203"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-173C103.13,-173 119.12,-174 183,-174"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M39,-175C103,-175 119,-176 183,-176"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-177C102.88,-177 118.87,-178 183,-178"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-150C102.88,-150 118.87,-149 183,-149"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M39,-152C103,-152 119,-151 183,-151"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-154C103.13,-154 119.12,-153 183,-153"/>
</g>
<!-- X1&#45;&#45;C1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;C1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-127C102.64,-127.03 118.62,-124.03 183,-124"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M39,-129C103.01,-129 118.99,-126 183,-126"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-131C103.38,-130.97 119.36,-127.97 183,-128"/>
</g>
<!-- F1 -->
<g id="node2" class="node">
<title>F1</title>
<polygon fill="#ffffff" stroke="black" points="497,-245.5 450,-245.5 450,-222.5 497,-222.5 497,-245.5"/>
<polygon fill="none" stroke="black" points="450.5,-222 450.5,-245 497.5,-245 497.5,-222 450.5,-222"/>
<text text-anchor="start" x="454.5" y="-229.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- C2 -->
<g id="node9" class="node">
<title>C2</title>
<polygon fill="#ffffff" stroke="black" points="768,-392 641,-392 641,-208 768,-208 768,-392"/>
<polygon fill="none" stroke="black" points="641.5,-369 641.5,-392 768.5,-392 768.5,-369 641.5,-369"/>
<text text-anchor="start" x="696" y="-376.8" font-family="arial" font-size="14.00">C2</text>
<polygon fill="none" stroke="black" points="641.5,-346 641.5,-369 768.5,-369 768.5,-346 641.5,-346"/>
<text text-anchor="start" x="697.5" y="-353.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="643.5" y="-332.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="651.5" y="-313.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-313.8" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="none" points="641.5,-306 641.5,-308 768.5,-308 768.5,-306 641.5,-306"/>
<polygon fill="#ffffff" stroke="none" points="641.5,-304 641.5,-306 768.5,-306 768.5,-304 641.5,-304"/>
<polygon fill="#000000" stroke="none" points="641.5,-302 641.5,-304 768.5,-304 768.5,-302 641.5,-302"/>
<text text-anchor="start" x="654" y="-288.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-288.8" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="none" points="641.5,-281 641.5,-283 768.5,-283 768.5,-281 641.5,-281"/>
<polygon fill="#895956" stroke="none" points="641.5,-279 641.5,-281 768.5,-281 768.5,-279 641.5,-279"/>
<polygon fill="#000000" stroke="none" points="641.5,-277 641.5,-279 768.5,-279 768.5,-277 641.5,-277"/>
<text text-anchor="start" x="652.5" y="-263.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-263.8" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="none" points="641.5,-256 641.5,-258 768.5,-258 768.5,-256 641.5,-256"/>
<polygon fill="#00ff00" stroke="none" points="641.5,-254 641.5,-256 768.5,-256 768.5,-254 641.5,-254"/>
<polygon fill="#000000" stroke="none" points="641.5,-252 641.5,-254 768.5,-254 768.5,-252 641.5,-252"/>
<text text-anchor="start" x="654" y="-238.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-238.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="641.5,-231 641.5,-233 768.5,-233 768.5,-231 641.5,-231"/>
<polygon fill="#ffff00" stroke="none" points="641.5,-229 641.5,-231 768.5,-231 768.5,-229 641.5,-229"/>
<polygon fill="#000000" stroke="none" points="641.5,-227 641.5,-229 768.5,-229 768.5,-227 641.5,-227"/>
<text text-anchor="start" x="643.5" y="-213.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C2 -->
<g id="edge9" class="edge">
<title>F1:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-232C570.36,-233.96 571.64,-304.96 641,-303"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M497,-234C568.36,-234 569.64,-305 641,-305"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-236C566.36,-234.04 567.64,-305.04 641,-307"/>
</g>
<!-- C3 -->
<g id="node10" class="node">
<title>C3</title>
<polygon fill="#ffffff" stroke="black" points="768,-184 641,-184 641,0 768,0 768,-184"/>
<polygon fill="none" stroke="black" points="641.5,-161 641.5,-184 768.5,-184 768.5,-161 641.5,-161"/>
<text text-anchor="start" x="696" y="-168.8" font-family="arial" font-size="14.00">C3</text>
<polygon fill="none" stroke="black" points="641.5,-138 641.5,-161 768.5,-161 768.5,-138 641.5,-138"/>
<text text-anchor="start" x="697.5" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<text text-anchor="start" x="643.5" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="651.5" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-105.8" font-family="arial" font-size="14.00">X3:1:A</text>
<polygon fill="#000000" stroke="none" points="641.5,-98 641.5,-100 768.5,-100 768.5,-98 641.5,-98"/>
<polygon fill="#ffffff" stroke="none" points="641.5,-96 641.5,-98 768.5,-98 768.5,-96 641.5,-96"/>
<polygon fill="#000000" stroke="none" points="641.5,-94 641.5,-96 768.5,-96 768.5,-94 641.5,-94"/>
<text text-anchor="start" x="654" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="725" y="-80.8" font-family="arial" font-size="14.00">X3:2:B</text>
<polygon fill="#000000" stroke="none" points="641.5,-73 641.5,-75 768.5,-75 768.5,-73 641.5,-73"/>
<polygon fill="#895956" stroke="none" points="641.5,-71 641.5,-73 768.5,-73 768.5,-71 641.5,-71"/>
<polygon fill="#000000" stroke="none" points="641.5,-69 641.5,-71 768.5,-71 768.5,-69 641.5,-69"/>
<text text-anchor="start" x="652.5" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-55.8" font-family="arial" font-size="14.00">X3:3:C</text>
<polygon fill="#000000" stroke="none" points="641.5,-48 641.5,-50 768.5,-50 768.5,-48 641.5,-48"/>
<polygon fill="#00ff00" stroke="none" points="641.5,-46 641.5,-48 768.5,-48 768.5,-46 641.5,-46"/>
<polygon fill="#000000" stroke="none" points="641.5,-44 641.5,-46 768.5,-46 768.5,-44 641.5,-44"/>
<text text-anchor="start" x="654" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="724.5" y="-30.8" font-family="arial" font-size="14.00">X3:4:D</text>
<polygon fill="#000000" stroke="none" points="641.5,-23 641.5,-25 768.5,-25 768.5,-23 641.5,-23"/>
<polygon fill="#ffff00" stroke="none" points="641.5,-21 641.5,-23 768.5,-23 768.5,-21 641.5,-21"/>
<polygon fill="#000000" stroke="none" points="641.5,-19 641.5,-21 768.5,-21 768.5,-19 641.5,-19"/>
<text text-anchor="start" x="643.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- F1&#45;&#45;C3 -->
<g id="edge17" class="edge">
<title>F1:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-232C583.39,-234.46 550.72,-97.46 641,-95"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M497,-234C585.34,-234 552.66,-97 641,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-236C587.28,-233.54 554.61,-96.54 641,-99"/>
</g>
<!-- F2 -->
<g id="node3" class="node">
<title>F2</title>
<polygon fill="#ffffff" stroke="black" points="497,-198.5 450,-198.5 450,-175.5 497,-175.5 497,-198.5"/>
<polygon fill="none" stroke="black" points="450.5,-175 450.5,-198 497.5,-198 497.5,-175 450.5,-175"/>
<text text-anchor="start" x="454.5" y="-182.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F2&#45;&#45;C2 -->
<g id="edge11" class="edge">
<title>F2:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-185C575.18,-187.18 566.81,-280.18 641,-278"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M497,-187C573.19,-187 564.81,-280 641,-280"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-189C571.19,-186.82 562.82,-279.82 641,-282"/>
</g>
<!-- F2&#45;&#45;C3 -->
<g id="edge19" class="edge">
<title>F2:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-185C576.93,-187.34 557.12,-72.34 641,-70"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M497,-187C578.9,-187 559.1,-72 641,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-189C580.88,-186.66 561.07,-71.66 641,-74"/>
</g>
<!-- F3 -->
<g id="node4" class="node">
<title>F3</title>
<polygon fill="#ffffff" stroke="black" points="497,-151.5 450,-151.5 450,-128.5 497,-128.5 497,-151.5"/>
<polygon fill="none" stroke="black" points="450.5,-128 450.5,-151 497.5,-151 497.5,-128 450.5,-128"/>
<text text-anchor="start" x="454.5" y="-135.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F3&#45;&#45;C2 -->
<g id="edge13" class="edge">
<title>F3:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-138C580.88,-140.34 561.07,-255.34 641,-253"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M497,-140C578.9,-140 559.1,-255 641,-255"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-142C576.93,-139.66 557.12,-254.66 641,-257"/>
</g>
<!-- F3&#45;&#45;C3 -->
<g id="edge21" class="edge">
<title>F3:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-138C571.19,-140.18 562.82,-47.18 641,-45"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M497,-140C573.19,-140 564.81,-47 641,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-142C575.18,-139.82 566.81,-46.82 641,-49"/>
</g>
<!-- F4 -->
<g id="node5" class="node">
<title>F4</title>
<polygon fill="#ffffff" stroke="black" points="497,-104.5 450,-104.5 450,-81.5 497,-81.5 497,-104.5"/>
<polygon fill="none" stroke="black" points="450.5,-81 450.5,-104 497.5,-104 497.5,-81 450.5,-81"/>
<text text-anchor="start" x="454.5" y="-88.8" font-family="arial" font-size="14.00">ferrule</text>
</g>
<!-- F4&#45;&#45;C2 -->
<g id="edge15" class="edge">
<title>F4:e&#45;&#45;C2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-91C587.28,-93.46 554.61,-230.46 641,-228"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M497,-93C585.34,-93 552.66,-230 641,-230"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-95C583.39,-92.54 550.72,-229.54 641,-232"/>
</g>
<!-- F4&#45;&#45;C3 -->
<g id="edge23" class="edge">
<title>F4:e&#45;&#45;C3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-91C566.36,-92.96 567.64,-21.96 641,-20"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M497,-93C568.36,-93 569.64,-22 641,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M497,-95C570.36,-93.04 571.64,-22.04 641,-24"/>
</g>
<!-- X2 -->
<g id="node6" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="951,-360 912,-360 912,-222 951,-222 951,-360"/>
<polygon fill="none" stroke="black" points="912.5,-337 912.5,-360 951.5,-360 951.5,-337 912.5,-337"/>
<text text-anchor="start" x="923.5" y="-344.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="912.5,-314 912.5,-337 951.5,-337 951.5,-314 912.5,-314"/>
<text text-anchor="start" x="916.5" y="-321.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="912.5,-291 912.5,-314 931.5,-314 931.5,-291 912.5,-291"/>
<text text-anchor="start" x="918" y="-298.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="931.5,-291 931.5,-314 951.5,-314 951.5,-291 931.5,-291"/>
<text text-anchor="start" x="936.5" y="-298.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="912.5,-268 912.5,-291 931.5,-291 931.5,-268 912.5,-268"/>
<text text-anchor="start" x="918" y="-275.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="931.5,-268 931.5,-291 951.5,-291 951.5,-268 931.5,-268"/>
<text text-anchor="start" x="936.5" y="-275.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="912.5,-245 912.5,-268 931.5,-268 931.5,-245 912.5,-245"/>
<text text-anchor="start" x="918" y="-252.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="931.5,-245 931.5,-268 951.5,-268 951.5,-245 931.5,-245"/>
<text text-anchor="start" x="936.5" y="-252.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="912.5,-222 912.5,-245 931.5,-245 931.5,-222 912.5,-222"/>
<text text-anchor="start" x="918" y="-229.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="931.5,-222 931.5,-245 951.5,-245 951.5,-222 931.5,-222"/>
<text text-anchor="start" x="936.5" y="-229.8" font-family="arial" font-size="14.00">D</text>
</g>
<!-- X3 -->
<g id="node7" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="951,-152 912,-152 912,-14 951,-14 951,-152"/>
<polygon fill="none" stroke="black" points="912.5,-129 912.5,-152 951.5,-152 951.5,-129 912.5,-129"/>
<text text-anchor="start" x="923.5" y="-136.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="912.5,-106 912.5,-129 951.5,-129 951.5,-106 912.5,-106"/>
<text text-anchor="start" x="916.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="912.5,-83 912.5,-106 931.5,-106 931.5,-83 912.5,-83"/>
<text text-anchor="start" x="918" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="931.5,-83 931.5,-106 951.5,-106 951.5,-83 931.5,-83"/>
<text text-anchor="start" x="936.5" y="-90.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="912.5,-60 912.5,-83 931.5,-83 931.5,-60 912.5,-60"/>
<text text-anchor="start" x="918" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="931.5,-60 931.5,-83 951.5,-83 951.5,-60 931.5,-60"/>
<text text-anchor="start" x="936.5" y="-67.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="912.5,-37 912.5,-60 931.5,-60 931.5,-37 912.5,-37"/>
<text text-anchor="start" x="918" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="931.5,-37 931.5,-60 951.5,-60 951.5,-37 931.5,-37"/>
<text text-anchor="start" x="936.5" y="-44.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="912.5,-14 912.5,-37 931.5,-37 931.5,-14 912.5,-14"/>
<text text-anchor="start" x="918" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="931.5,-14 931.5,-37 951.5,-37 951.5,-14 931.5,-14"/>
<text text-anchor="start" x="936.5" y="-21.8" font-family="arial" font-size="14.00">D</text>
</g>
<!-- C1&#45;&#45;F1 -->
<g id="edge2" class="edge">
<title>C1:e&#45;&#45;F1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-199C373.53,-200.28 386.21,-233.28 450,-232"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M306,-201C371.66,-201 384.34,-234 450,-234"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-203C369.79,-201.72 382.47,-234.72 450,-236"/>
</g>
<!-- C1&#45;&#45;F2 -->
<g id="edge4" class="edge">
<title>C1:e&#45;&#45;F2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-174C371.34,-174.36 386.96,-185.36 450,-185"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M306,-176C370.19,-176 385.81,-187 450,-187"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-178C369.04,-177.64 384.66,-188.64 450,-189"/>
</g>
<!-- C1&#45;&#45;F3 -->
<g id="edge6" class="edge">
<title>C1:e&#45;&#45;F3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-149C369.04,-149.36 384.66,-138.36 450,-138"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M306,-151C370.19,-151 385.81,-140 450,-140"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-153C371.34,-152.64 386.96,-141.64 450,-142"/>
</g>
<!-- C1&#45;&#45;F4 -->
<g id="edge8" class="edge">
<title>C1:e&#45;&#45;F4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-124C369.79,-125.28 382.47,-92.28 450,-91"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M306,-126C371.66,-126 384.34,-93 450,-93"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M306,-128C373.53,-126.72 386.21,-93.72 450,-95"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge10" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-303C831.76,-303.02 847.75,-301.02 912,-301"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M768,-305C832.01,-305 847.99,-303 912,-303"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-307C832.25,-306.98 848.24,-304.98 912,-305"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge12" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-278C831.88,-278 847.87,-277 912,-277"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M768,-280C832,-280 848,-279 912,-279"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-282C832.13,-282 848.12,-281 912,-281"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge14" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-253C832.13,-253 848.12,-254 912,-254"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M768,-255C832,-255 848,-256 912,-256"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-257C831.88,-257 847.87,-258 912,-258"/>
</g>
<!-- C2&#45;&#45;X2 -->
<g id="edge16" class="edge">
<title>C2:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-228C832.38,-228.03 848.36,-231.03 912,-231"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M768,-230C832.01,-230 847.99,-233 912,-233"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-232C831.64,-231.97 847.62,-234.97 912,-235"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge18" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-95C831.76,-95.02 847.75,-93.02 912,-93"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M768,-97C832.01,-97 847.99,-95 912,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-99C832.25,-98.98 848.24,-96.98 912,-97"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge20" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-70C831.88,-70 847.87,-69 912,-69"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M768,-72C832,-72 848,-71 912,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-74C832.13,-74 848.12,-73 912,-73"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge22" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-45C832.13,-45 848.12,-46 912,-46"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M768,-47C832,-47 848,-48 912,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-49C831.88,-49 847.87,-50 912,-50"/>
</g>
<!-- C3&#45;&#45;X3 -->
<g id="edge24" class="edge">
<title>C3:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-20C832.38,-20.03 848.36,-23.03 912,-23"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M768,-22C832.01,-22 847.99,-25 912,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M768,-24C831.64,-23.97 847.62,-26.97 912,-27"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

26
examples/ex13.yml Normal file
View File

@ -0,0 +1,26 @@
# based on @formatc1702's example in #184
connectors:
X:
pincount: 4
pinlabels: [A, B, C, D]
F:
style: simple
type: ferrule
cables:
C:
wirecount: 4
color_code: DIN
connections:
-
- X.X1: [1-4]
- C.C1: [1-4]
- [F.F1, F.F2, F.F3, F.F4] # generate new instances of F and assign designators
- C.C2: [1-4]
- X.X2: [1-4]
-
- [F1, F2, F3, F4] # use previously assigned designators
- C.C3: [1-4]
- X.X3: [1-4]

8
examples/ex14.bom.tsv generated Normal file
View File

@ -0,0 +1,8 @@
Id Description Qty Unit Designators
1 Cable, 1 wires 0.1 m
2 Cable, 4 wires 0.4 m W1, W2, W21, W3
3 Connector, Ferrule, GY 4
4 Connector, JST SM, female, 4 pins 1 X2
5 Connector, JST SM, male, 4 pins 2 X1, X3
6 Connector, Screw terminal connector, 4 pins, GN 1 X4
7 Connector, Splice, CU 8
1 Id Description Qty Unit Designators
2 1 Cable, 1 wires 0.1 m
3 2 Cable, 4 wires 0.4 m W1, W2, W21, W3
4 3 Connector, Ferrule, GY 4
5 4 Connector, JST SM, female, 4 pins 1 X2
6 5 Connector, JST SM, male, 4 pins 2 X1, X3
7 6 Connector, Screw terminal connector, 4 pins, GN 1 X4
8 7 Connector, Splice, CU 8

717
examples/ex14.gv generated Normal file
View File

@ -0,0 +1,717 @@
graph {
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]
edge [fontname=arial style=bold]
X1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">JST SM</td>
<td balign="left">male</td>
<td balign="left">4-pin</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td>A</td>
<td port="p1r">1</td>
</tr>
<tr>
<td>B</td>
<td port="p2r">2</td>
</tr>
<tr>
<td>C</td>
<td port="p3r">3</td>
</tr>
<tr>
<td>D</td>
<td port="p4r">4</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__S_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__S_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
S1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__S_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__S_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__S_5 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__S_6 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__S_7 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Splice</td>
<td balign="left">CU</td>
<td balign="left" bgcolor="#D6775E" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
X2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X2</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">JST SM</td>
<td balign="left">female</td>
<td balign="left">4-pin</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td port="p1l">1</td>
<td>A</td>
</tr>
<tr>
<td port="p2l">2</td>
<td>B</td>
</tr>
<tr>
<td port="p3l">3</td>
<td>C</td>
</tr>
<tr>
<td port="p4l">4</td>
<td>D</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
X3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X3</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">JST SM</td>
<td balign="left">male</td>
<td balign="left">4-pin</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td>A</td>
<td port="p1r">1</td>
</tr>
<tr>
<td>B</td>
<td port="p2r">2</td>
</tr>
<tr>
<td>C</td>
<td port="p3r">3</td>
</tr>
<tr>
<td>D</td>
<td port="p4r">4</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__F_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__F_2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__F_3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
__F_4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Ferrule</td>
<td balign="left">GY</td>
<td balign="left" bgcolor="#999999" width="4"></td>
</tr></table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
X4 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">X4</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">Screw terminal connector</td>
<td balign="left">4-pin</td>
<td balign="left">GN</td>
<td balign="left" bgcolor="#00FF00" width="4"></td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1">
<tr>
<td port="p1l">1</td>
<td>W</td>
</tr>
<tr>
<td port="p2l">2</td>
<td>X</td>
</tr>
<tr>
<td port="p3l">3</td>
<td>Y</td>
</tr>
<tr>
<td port="p4l">4</td>
<td>Z</td>
</tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
X1:p4r:e -- W1:w1:w
W1:w1:e -- __S_1:w
edge [color="#000000:#895956:#000000"]
X1:p3r:e -- W1:w2:w
W1:w2:e -- __S_2:w
edge [color="#000000:#00ff00:#000000"]
X1:p2r:e -- W1:w3:w
W1:w3:e -- S1:w
edge [color="#000000:#ffff00:#000000"]
X1:p1r:e -- W1:w4:w
W1:w4:e -- __S_3:w
W1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">W1</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
<td balign="left">0.1 m</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td>X1:4:D</td>
<td>
1:WH
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X1:3:C</td>
<td>
2:BN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X1:2:B</td>
<td>
3:GN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X1:1:A</td>
<td>
4:YE
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
__S_1:e -- W2:w1:w
W2:w1:e -- __S_4:w
edge [color="#000000:#895956:#000000"]
__S_2:e -- W2:w2:w
W2:w2:e -- __S_5:w
edge [color="#000000:#00ff00:#000000"]
S1:e -- W2:w3:w
W2:w3:e -- __S_6:w
edge [color="#000000:#ffff00:#000000"]
__S_3:e -- W2:w4:w
W2:w4:e -- __S_7:w
W2 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">W2</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
<td balign="left">0.1 m</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td></td>
<td>
1:WH
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
2:BN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
3:GN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
4:YE
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
__S_4:e -- W21:w1:w
W21:w1:e -- X2:p1l:w
edge [color="#000000:#895956:#000000"]
__S_5:e -- W21:w2:w
W21:w2:e -- X2:p2l:w
edge [color="#000000:#00ff00:#000000"]
__S_6:e -- W21:w3:w
W21:w3:e -- X2:p3l:w
edge [color="#000000:#ffff00:#000000"]
__S_7:e -- W21:w4:w
W21:w4:e -- X2:p4l:w
W21 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">W21</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
<td balign="left">0.1 m</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td></td>
<td>
1:WH
</td>
<td>X2:1:A</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
2:BN
</td>
<td>X2:2:B</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
3:GN
</td>
<td>X2:3:C</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
4:YE
</td>
<td>X2:4:D</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#ffffff:#000000"]
X3:p1r:e -- W3:w1:w
W3:w1:e -- __F_1:w
edge [color="#000000:#895956:#000000"]
X3:p2r:e -- W3:w2:w
W3:w2:e -- __F_2:w
edge [color="#000000:#00ff00:#000000"]
X3:p3r:e -- W3:w3:w
W3:w3:e -- __F_3:w
edge [color="#000000:#ffff00:#000000"]
X3:p4r:e -- W3:w4:w
W3:w4:e -- __F_4:w
W3 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">W3</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">4x</td>
<td balign="left">0.1 m</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td>X3:1:A</td>
<td>
1:WH
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffffff" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X3:2:B</td>
<td>
2:BN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w2" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#895956" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X3:3:C</td>
<td>
3:GN
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w3" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#00ff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr>
<td>X3:4:D</td>
<td>
4:YE
</td>
<td></td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w4" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#ffff00" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#000000:#000000"]
S1:e -- __WIRE_1:w1:w
__WIRE_1:w1:e -- X2:p4l:w
__WIRE_1 [label=<
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>
<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>
<td balign="left">1x</td>
<td balign="left">0.1 m</td>
</tr></table>
</td></tr>
<tr><td>
<table border="0" cellspacing="0" cellborder="0">
<tr><td>&nbsp;</td></tr>
<tr>
<td></td>
<td>
1:BK
</td>
<td>X2:4:D</td>
</tr>
<tr>
<td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w1" height="6">
<table cellspacing="0" cellborder="0" border="0">
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
<tr><td colspan="3" cellpadding="0" height="2" bgcolor="#000000" border="0"></td></tr>
</table>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
</table>
</td></tr>
</table>
> fillcolor="#FFFFFF" shape=box style=filled]
edge [color="#000000:#000000" dir=both style=dashed]
X2:e -- X3:w
edge [color="#000000" dir=forward style=dashed]
__F_1:e -- X4:p2l:w
edge [color="#000000" dir=forward style=dashed]
__F_2:e -- X4:p1l:w
edge [color="#000000" dir=forward style=dashed]
__F_3:e -- X4:p4l:w
edge [color="#000000" dir=forward style=dashed]
__F_4:e -- X4:p3l:w
}

777
examples/ex14.html generated Normal file
View File

@ -0,0 +1,777 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>ex14</title>
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>ex14</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="2811pt" height="302pt"
viewBox="0.00 0.00 2811.00 302.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 298)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-298 2807,-298 2807,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="135,-229 0,-229 0,-91 135,-91 135,-229"/>
<polygon fill="none" stroke="black" points="0.5,-206 0.5,-229 135.5,-229 135.5,-206 0.5,-206"/>
<text text-anchor="start" x="59.5" y="-213.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-183 0.5,-206 57.5,-206 57.5,-183 0.5,-183"/>
<text text-anchor="start" x="4.5" y="-190.8" font-family="arial" font-size="14.00">JST SM</text>
<polygon fill="none" stroke="black" points="57.5,-183 57.5,-206 96.5,-206 96.5,-183 57.5,-183"/>
<text text-anchor="start" x="61.5" y="-190.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="96.5,-183 96.5,-206 135.5,-206 135.5,-183 96.5,-183"/>
<text text-anchor="start" x="100.5" y="-190.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-160 0.5,-183 69.5,-183 69.5,-160 0.5,-160"/>
<text text-anchor="start" x="30" y="-167.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="69.5,-160 69.5,-183 135.5,-183 135.5,-160 69.5,-160"/>
<text text-anchor="start" x="98.5" y="-167.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-137 0.5,-160 69.5,-160 69.5,-137 0.5,-137"/>
<text text-anchor="start" x="30" y="-144.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="69.5,-137 69.5,-160 135.5,-160 135.5,-137 69.5,-137"/>
<text text-anchor="start" x="98.5" y="-144.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-114 0.5,-137 69.5,-137 69.5,-114 0.5,-114"/>
<text text-anchor="start" x="30" y="-121.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="69.5,-114 69.5,-137 135.5,-137 135.5,-114 69.5,-114"/>
<text text-anchor="start" x="98.5" y="-121.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-91 0.5,-114 69.5,-114 69.5,-91 0.5,-91"/>
<text text-anchor="start" x="30" y="-98.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="69.5,-91 69.5,-114 135.5,-114 135.5,-91 69.5,-91"/>
<text text-anchor="start" x="98.5" y="-98.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node17" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="402,-261 279,-261 279,-77 402,-77 402,-261"/>
<polygon fill="none" stroke="black" points="279.5,-238 279.5,-261 402.5,-261 402.5,-238 279.5,-238"/>
<text text-anchor="start" x="330" y="-245.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="279.5,-215 279.5,-238 331.5,-238 331.5,-215 279.5,-215"/>
<text text-anchor="start" x="298" y="-222.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="331.5,-215 331.5,-238 402.5,-238 402.5,-215 331.5,-215"/>
<text text-anchor="start" x="349.5" y="-222.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="300.5" y="-201.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="281.5" y="-182.8" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="327.5" y="-182.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-175 279.5,-177 402.5,-177 402.5,-175 279.5,-175"/>
<polygon fill="#ffffff" stroke="none" points="279.5,-173 279.5,-175 402.5,-175 402.5,-173 279.5,-173"/>
<polygon fill="#000000" stroke="none" points="279.5,-171 279.5,-173 402.5,-173 402.5,-171 279.5,-171"/>
<text text-anchor="start" x="281.5" y="-157.8" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="330" y="-157.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-150 279.5,-152 402.5,-152 402.5,-150 279.5,-150"/>
<polygon fill="#895956" stroke="none" points="279.5,-148 279.5,-150 402.5,-150 402.5,-148 279.5,-148"/>
<polygon fill="#000000" stroke="none" points="279.5,-146 279.5,-148 402.5,-148 402.5,-146 279.5,-146"/>
<text text-anchor="start" x="282" y="-132.8" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="328.5" y="-132.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-125 279.5,-127 402.5,-127 402.5,-125 279.5,-125"/>
<polygon fill="#00ff00" stroke="none" points="279.5,-123 279.5,-125 402.5,-125 402.5,-123 279.5,-123"/>
<polygon fill="#000000" stroke="none" points="279.5,-121 279.5,-123 402.5,-123 402.5,-121 279.5,-121"/>
<text text-anchor="start" x="282" y="-107.8" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="330" y="-107.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-100 279.5,-102 402.5,-102 402.5,-100 279.5,-100"/>
<polygon fill="#ffff00" stroke="none" points="279.5,-98 279.5,-100 402.5,-100 402.5,-98 279.5,-98"/>
<polygon fill="#000000" stroke="none" points="279.5,-96 279.5,-98 402.5,-98 402.5,-96 279.5,-96"/>
<text text-anchor="start" x="300.5" y="-82.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-100C208.55,-101.98 209.45,-173.98 279,-172"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M135,-102C206.55,-102 207.45,-174 279,-174"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-104C204.55,-102.02 205.45,-174.02 279,-176"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-123C201.6,-123.98 215.84,-147.98 279,-147"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M135,-125C199.88,-125 214.12,-149 279,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-127C198.16,-126.02 212.4,-150.02 279,-151"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-146C198.16,-146.98 212.4,-122.98 279,-122"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M135,-148C199.88,-148 214.12,-124 279,-124"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-150C201.6,-149.02 215.84,-125.02 279,-126"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-170C204.75,-171.99 205.25,-98.99 279,-97"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M135,-172C206.75,-172 207.25,-99 279,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-174C208.75,-172.01 209.25,-99.01 279,-101"/>
</g>
<!-- __S_1 -->
<g id="node2" class="node">
<title>__S_1</title>
<polygon fill="#ffffff" stroke="black" points="627,-218.5 546,-218.5 546,-195.5 627,-195.5 627,-218.5"/>
<polygon fill="none" stroke="black" points="546.5,-195 546.5,-218 591.5,-218 591.5,-195 546.5,-195"/>
<text text-anchor="start" x="550.5" y="-202.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-195 591.5,-218 619.5,-218 619.5,-195 591.5,-195"/>
<text text-anchor="start" x="595.5" y="-202.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-195 619.5,-218 627.5,-218 627.5,-195 619.5,-195"/>
<polygon fill="none" stroke="black" points="619.5,-195 619.5,-218 627.5,-218 627.5,-195 619.5,-195"/>
</g>
<!-- W2 -->
<g id="node18" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" points="856,-272 771,-272 771,-88 856,-88 856,-272"/>
<polygon fill="none" stroke="black" points="771.5,-249 771.5,-272 856.5,-272 856.5,-249 771.5,-249"/>
<text text-anchor="start" x="803" y="-256.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="771.5,-226 771.5,-249 804.5,-249 804.5,-226 771.5,-226"/>
<text text-anchor="start" x="780.5" y="-233.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="804.5,-226 804.5,-249 856.5,-249 856.5,-226 804.5,-226"/>
<text text-anchor="start" x="813" y="-233.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="773.5" y="-212.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="781.5" y="-193.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-186 771.5,-188 856.5,-188 856.5,-186 771.5,-186"/>
<polygon fill="#ffffff" stroke="none" points="771.5,-184 771.5,-186 856.5,-186 856.5,-184 771.5,-184"/>
<polygon fill="#000000" stroke="none" points="771.5,-182 771.5,-184 856.5,-184 856.5,-182 771.5,-182"/>
<text text-anchor="start" x="784" y="-168.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-161 771.5,-163 856.5,-163 856.5,-161 771.5,-161"/>
<polygon fill="#895956" stroke="none" points="771.5,-159 771.5,-161 856.5,-161 856.5,-159 771.5,-159"/>
<polygon fill="#000000" stroke="none" points="771.5,-157 771.5,-159 856.5,-159 856.5,-157 771.5,-157"/>
<text text-anchor="start" x="782.5" y="-143.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-136 771.5,-138 856.5,-138 856.5,-136 771.5,-136"/>
<polygon fill="#00ff00" stroke="none" points="771.5,-134 771.5,-136 856.5,-136 856.5,-134 771.5,-134"/>
<polygon fill="#000000" stroke="none" points="771.5,-132 771.5,-134 856.5,-134 856.5,-132 771.5,-132"/>
<text text-anchor="start" x="784" y="-118.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-111 771.5,-113 856.5,-113 856.5,-111 771.5,-111"/>
<polygon fill="#ffff00" stroke="none" points="771.5,-109 771.5,-111 856.5,-111 856.5,-109 771.5,-109"/>
<polygon fill="#000000" stroke="none" points="771.5,-107 771.5,-109 856.5,-109 856.5,-107 771.5,-107"/>
<text text-anchor="start" x="773.5" y="-93.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- __S_1&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>__S_1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-205C690.07,-205.9 704.59,-183.9 771,-183"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M627,-207C691.74,-207 706.26,-185 771,-185"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-209C693.41,-208.1 707.93,-186.1 771,-187"/>
</g>
<!-- __S_2 -->
<g id="node3" class="node">
<title>__S_2</title>
<polygon fill="#ffffff" stroke="black" points="627,-171.5 546,-171.5 546,-148.5 627,-148.5 627,-171.5"/>
<polygon fill="none" stroke="black" points="546.5,-148 546.5,-171 591.5,-171 591.5,-148 546.5,-148"/>
<text text-anchor="start" x="550.5" y="-155.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-148 591.5,-171 619.5,-171 619.5,-148 591.5,-148"/>
<text text-anchor="start" x="595.5" y="-155.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-148 619.5,-171 627.5,-171 627.5,-148 619.5,-148"/>
<polygon fill="none" stroke="black" points="619.5,-148 619.5,-171 627.5,-171 627.5,-148 619.5,-148"/>
</g>
<!-- __S_2&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>__S_2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-158C691,-158 707,-158 771,-158"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M627,-160C691,-160 707,-160 771,-160"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-162C691,-162 707,-162 771,-162"/>
</g>
<!-- S1 -->
<g id="node4" class="node">
<title>S1</title>
<polygon fill="#ffffff" stroke="black" points="627,-124.5 546,-124.5 546,-101.5 627,-101.5 627,-124.5"/>
<polygon fill="none" stroke="black" points="546.5,-101 546.5,-124 591.5,-124 591.5,-101 546.5,-101"/>
<text text-anchor="start" x="550.5" y="-108.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-101 591.5,-124 619.5,-124 619.5,-101 591.5,-101"/>
<text text-anchor="start" x="595.5" y="-108.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-101 619.5,-124 627.5,-124 627.5,-101 619.5,-101"/>
<polygon fill="none" stroke="black" points="619.5,-101 619.5,-124 627.5,-124 627.5,-101 619.5,-101"/>
</g>
<!-- S1&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>S1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-111C693.41,-111.9 707.93,-133.9 771,-133"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M627,-113C691.74,-113 706.26,-135 771,-135"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-115C690.07,-114.1 704.59,-136.1 771,-137"/>
</g>
<!-- __WIRE_1 -->
<g id="node21" class="node">
<title>__WIRE_1</title>
<polygon fill="#ffffff" stroke="black" points="1349.5,-86 1227.5,-86 1227.5,0 1349.5,0 1349.5,-86"/>
<polygon fill="none" stroke="black" points="1227.5,-63 1227.5,-86 1278.5,-86 1278.5,-63 1227.5,-63"/>
<text text-anchor="start" x="1245.5" y="-70.8" font-family="arial" font-size="14.00">1x</text>
<polygon fill="none" stroke="black" points="1278.5,-63 1278.5,-86 1349.5,-86 1349.5,-63 1278.5,-63"/>
<text text-anchor="start" x="1296.5" y="-70.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="1229.5" y="-49.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1237.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1305.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="1227.5,-23 1227.5,-25 1349.5,-25 1349.5,-23 1227.5,-23"/>
<polygon fill="#000000" stroke="none" points="1227.5,-21 1227.5,-23 1349.5,-23 1349.5,-21 1227.5,-21"/>
<polygon fill="#000000" stroke="none" points="1227.5,-19 1227.5,-21 1349.5,-21 1349.5,-19 1227.5,-19"/>
<text text-anchor="start" x="1229.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- S1&#45;&#45;__WIRE_1 -->
<g id="edge33" class="edge">
<title>S1:e&#45;&#45;__WIRE_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-111C691.31,-112.08 704.27,-87.21 770.63,-74.03 970.78,-36.65 1022.02,-20.1 1226.5,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-113C693.08,-113 706.05,-88.14 771,-76 971.39,-38.55 1022.64,-22 1226.5,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-115C694.85,-113.92 707.82,-89.06 771.37,-77.97 972.01,-40.45 1023.25,-23.9 1226.5,-24"/>
</g>
<!-- __S_3 -->
<g id="node5" class="node">
<title>__S_3</title>
<polygon fill="#ffffff" stroke="black" points="627,-77.5 546,-77.5 546,-54.5 627,-54.5 627,-77.5"/>
<polygon fill="none" stroke="black" points="546.5,-54 546.5,-77 591.5,-77 591.5,-54 546.5,-54"/>
<text text-anchor="start" x="550.5" y="-61.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-54 591.5,-77 619.5,-77 619.5,-54 591.5,-54"/>
<text text-anchor="start" x="595.5" y="-61.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-54 619.5,-77 627.5,-77 627.5,-54 619.5,-54"/>
<polygon fill="none" stroke="black" points="619.5,-54 619.5,-77 627.5,-77 627.5,-54 619.5,-54"/>
</g>
<!-- __S_3&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>__S_3:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-64C695.87,-65.55 706.03,-109.55 771,-108"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M627,-66C693.92,-66 704.08,-110 771,-110"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-68C691.97,-66.45 702.13,-110.45 771,-112"/>
</g>
<!-- __S_4 -->
<g id="node6" class="node">
<title>__S_4</title>
<polygon fill="#ffffff" stroke="black" points="1081,-240.5 1000,-240.5 1000,-217.5 1081,-217.5 1081,-240.5"/>
<polygon fill="none" stroke="black" points="1000.5,-217 1000.5,-240 1045.5,-240 1045.5,-217 1000.5,-217"/>
<text text-anchor="start" x="1004.5" y="-224.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-217 1045.5,-240 1073.5,-240 1073.5,-217 1045.5,-217"/>
<text text-anchor="start" x="1049.5" y="-224.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-217 1073.5,-240 1081.5,-240 1081.5,-217 1073.5,-217"/>
<polygon fill="none" stroke="black" points="1073.5,-217 1073.5,-240 1081.5,-240 1081.5,-217 1073.5,-217"/>
</g>
<!-- W21 -->
<g id="node19" class="node">
<title>W21</title>
<polygon fill="#ffffff" stroke="black" points="1352,-294 1225,-294 1225,-110 1352,-110 1352,-294"/>
<polygon fill="none" stroke="black" points="1225.5,-271 1225.5,-294 1352.5,-294 1352.5,-271 1225.5,-271"/>
<text text-anchor="start" x="1274.5" y="-278.8" font-family="arial" font-size="14.00">W21</text>
<polygon fill="none" stroke="black" points="1225.5,-248 1225.5,-271 1279.5,-271 1279.5,-248 1225.5,-248"/>
<text text-anchor="start" x="1245" y="-255.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1279.5,-248 1279.5,-271 1352.5,-271 1352.5,-248 1279.5,-248"/>
<text text-anchor="start" x="1298.5" y="-255.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="1227.5" y="-234.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1235.5" y="-215.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="1309" y="-215.8" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="none" points="1225.5,-208 1225.5,-210 1352.5,-210 1352.5,-208 1225.5,-208"/>
<polygon fill="#ffffff" stroke="none" points="1225.5,-206 1225.5,-208 1352.5,-208 1352.5,-206 1225.5,-206"/>
<polygon fill="#000000" stroke="none" points="1225.5,-204 1225.5,-206 1352.5,-206 1352.5,-204 1225.5,-204"/>
<text text-anchor="start" x="1238" y="-190.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="1309" y="-190.8" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="none" points="1225.5,-183 1225.5,-185 1352.5,-185 1352.5,-183 1225.5,-183"/>
<polygon fill="#895956" stroke="none" points="1225.5,-181 1225.5,-183 1352.5,-183 1352.5,-181 1225.5,-181"/>
<polygon fill="#000000" stroke="none" points="1225.5,-179 1225.5,-181 1352.5,-181 1352.5,-179 1225.5,-179"/>
<text text-anchor="start" x="1236.5" y="-165.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="1308.5" y="-165.8" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="none" points="1225.5,-158 1225.5,-160 1352.5,-160 1352.5,-158 1225.5,-158"/>
<polygon fill="#00ff00" stroke="none" points="1225.5,-156 1225.5,-158 1352.5,-158 1352.5,-156 1225.5,-156"/>
<polygon fill="#000000" stroke="none" points="1225.5,-154 1225.5,-156 1352.5,-156 1352.5,-154 1225.5,-154"/>
<text text-anchor="start" x="1238" y="-140.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1308.5" y="-140.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="1225.5,-133 1225.5,-135 1352.5,-135 1352.5,-133 1225.5,-133"/>
<polygon fill="#ffff00" stroke="none" points="1225.5,-131 1225.5,-133 1352.5,-133 1352.5,-131 1225.5,-131"/>
<polygon fill="#000000" stroke="none" points="1225.5,-129 1225.5,-131 1352.5,-131 1352.5,-129 1225.5,-129"/>
<text text-anchor="start" x="1227.5" y="-115.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- __S_4&#45;&#45;W21 -->
<g id="edge17" class="edge">
<title>__S_4:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-227C1144.07,-227.9 1158.59,-205.9 1225,-205"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M1081,-229C1145.74,-229 1160.26,-207 1225,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-231C1147.41,-230.1 1161.93,-208.1 1225,-209"/>
</g>
<!-- __S_5 -->
<g id="node7" class="node">
<title>__S_5</title>
<polygon fill="#ffffff" stroke="black" points="1081,-193.5 1000,-193.5 1000,-170.5 1081,-170.5 1081,-193.5"/>
<polygon fill="none" stroke="black" points="1000.5,-170 1000.5,-193 1045.5,-193 1045.5,-170 1000.5,-170"/>
<text text-anchor="start" x="1004.5" y="-177.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-170 1045.5,-193 1073.5,-193 1073.5,-170 1045.5,-170"/>
<text text-anchor="start" x="1049.5" y="-177.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-170 1073.5,-193 1081.5,-193 1081.5,-170 1073.5,-170"/>
<polygon fill="none" stroke="black" points="1073.5,-170 1073.5,-193 1081.5,-193 1081.5,-170 1073.5,-170"/>
</g>
<!-- __S_5&#45;&#45;W21 -->
<g id="edge19" class="edge">
<title>__S_5:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-180C1145,-180 1161,-180 1225,-180"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M1081,-182C1145,-182 1161,-182 1225,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-184C1145,-184 1161,-184 1225,-184"/>
</g>
<!-- __S_6 -->
<g id="node8" class="node">
<title>__S_6</title>
<polygon fill="#ffffff" stroke="black" points="1081,-146.5 1000,-146.5 1000,-123.5 1081,-123.5 1081,-146.5"/>
<polygon fill="none" stroke="black" points="1000.5,-123 1000.5,-146 1045.5,-146 1045.5,-123 1000.5,-123"/>
<text text-anchor="start" x="1004.5" y="-130.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-123 1045.5,-146 1073.5,-146 1073.5,-123 1045.5,-123"/>
<text text-anchor="start" x="1049.5" y="-130.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-123 1073.5,-146 1081.5,-146 1081.5,-123 1073.5,-123"/>
<polygon fill="none" stroke="black" points="1073.5,-123 1073.5,-146 1081.5,-146 1081.5,-123 1073.5,-123"/>
</g>
<!-- __S_6&#45;&#45;W21 -->
<g id="edge21" class="edge">
<title>__S_6:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-133C1147.41,-133.9 1161.93,-155.9 1225,-155"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M1081,-135C1145.74,-135 1160.26,-157 1225,-157"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-137C1144.07,-136.1 1158.59,-158.1 1225,-159"/>
</g>
<!-- __S_7 -->
<g id="node9" class="node">
<title>__S_7</title>
<polygon fill="#ffffff" stroke="black" points="1081,-99.5 1000,-99.5 1000,-76.5 1081,-76.5 1081,-99.5"/>
<polygon fill="none" stroke="black" points="1000.5,-76 1000.5,-99 1045.5,-99 1045.5,-76 1000.5,-76"/>
<text text-anchor="start" x="1004.5" y="-83.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-76 1045.5,-99 1073.5,-99 1073.5,-76 1045.5,-76"/>
<text text-anchor="start" x="1049.5" y="-83.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-76 1073.5,-99 1081.5,-99 1081.5,-76 1073.5,-76"/>
<polygon fill="none" stroke="black" points="1073.5,-76 1073.5,-99 1081.5,-99 1081.5,-76 1073.5,-76"/>
</g>
<!-- __S_7&#45;&#45;W21 -->
<g id="edge23" class="edge">
<title>__S_7:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-86C1149.87,-87.55 1160.03,-131.55 1225,-130"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1081,-88C1147.92,-88 1158.08,-132 1225,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-90C1145.97,-88.45 1156.13,-132.45 1225,-134"/>
</g>
<!-- X2 -->
<g id="node10" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="1642,-261 1496,-261 1496,-123 1642,-123 1642,-261"/>
<polygon fill="none" stroke="black" points="1496,-238 1496,-261 1642,-261 1642,-238 1496,-238"/>
<text text-anchor="start" x="1560.5" y="-245.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="1496,-215 1496,-238 1553,-238 1553,-215 1496,-215"/>
<text text-anchor="start" x="1500" y="-222.8" font-family="arial" font-size="14.00">JST SM</text>
<polygon fill="none" stroke="black" points="1553,-215 1553,-238 1603,-238 1603,-215 1553,-215"/>
<text text-anchor="start" x="1557" y="-222.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1603,-215 1603,-238 1642,-238 1642,-215 1603,-215"/>
<text text-anchor="start" x="1607" y="-222.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1496,-192 1496,-215 1568,-215 1568,-192 1496,-192"/>
<text text-anchor="start" x="1528" y="-199.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1568,-192 1568,-215 1642,-215 1642,-192 1568,-192"/>
<text text-anchor="start" x="1600" y="-199.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="1496,-169 1496,-192 1568,-192 1568,-169 1496,-169"/>
<text text-anchor="start" x="1528" y="-176.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1568,-169 1568,-192 1642,-192 1642,-169 1568,-169"/>
<text text-anchor="start" x="1600" y="-176.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="1496,-146 1496,-169 1568,-169 1568,-146 1496,-146"/>
<text text-anchor="start" x="1528" y="-153.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1568,-146 1568,-169 1642,-169 1642,-146 1568,-146"/>
<text text-anchor="start" x="1600" y="-153.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="1496,-123 1496,-146 1568,-146 1568,-123 1496,-123"/>
<text text-anchor="start" x="1528" y="-130.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1568,-123 1568,-146 1642,-146 1642,-123 1568,-123"/>
<text text-anchor="start" x="1600" y="-130.8" font-family="arial" font-size="14.00">D</text>
</g>
<!-- X3 -->
<g id="node11" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="1921,-261 1786,-261 1786,-123 1921,-123 1921,-261"/>
<polygon fill="none" stroke="black" points="1786.5,-238 1786.5,-261 1921.5,-261 1921.5,-238 1786.5,-238"/>
<text text-anchor="start" x="1845.5" y="-245.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1786.5,-215 1786.5,-238 1843.5,-238 1843.5,-215 1786.5,-215"/>
<text text-anchor="start" x="1790.5" y="-222.8" font-family="arial" font-size="14.00">JST SM</text>
<polygon fill="none" stroke="black" points="1843.5,-215 1843.5,-238 1882.5,-238 1882.5,-215 1843.5,-215"/>
<text text-anchor="start" x="1847.5" y="-222.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1882.5,-215 1882.5,-238 1921.5,-238 1921.5,-215 1882.5,-215"/>
<text text-anchor="start" x="1886.5" y="-222.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1786.5,-192 1786.5,-215 1855.5,-215 1855.5,-192 1786.5,-192"/>
<text text-anchor="start" x="1816" y="-199.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="1855.5,-192 1855.5,-215 1921.5,-215 1921.5,-192 1855.5,-192"/>
<text text-anchor="start" x="1884.5" y="-199.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1786.5,-169 1786.5,-192 1855.5,-192 1855.5,-169 1786.5,-169"/>
<text text-anchor="start" x="1816" y="-176.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="1855.5,-169 1855.5,-192 1921.5,-192 1921.5,-169 1855.5,-169"/>
<text text-anchor="start" x="1884.5" y="-176.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1786.5,-146 1786.5,-169 1855.5,-169 1855.5,-146 1786.5,-146"/>
<text text-anchor="start" x="1816" y="-153.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="1855.5,-146 1855.5,-169 1921.5,-169 1921.5,-146 1855.5,-146"/>
<text text-anchor="start" x="1884.5" y="-153.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1786.5,-123 1786.5,-146 1855.5,-146 1855.5,-123 1786.5,-123"/>
<text text-anchor="start" x="1816" y="-130.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="1855.5,-123 1855.5,-146 1921.5,-146 1921.5,-123 1855.5,-123"/>
<text text-anchor="start" x="1884.5" y="-130.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- X2&#45;&#45;X3 -->
<g id="edge35" class="edge">
<title>X2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1653.46,-191C1704.55,-191 1723.47,-191 1774.58,-191"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1653.46,-193C1704.55,-193 1723.47,-193 1774.58,-193"/>
<polygon fill="#000000" stroke="#000000" points="1653.51,-188.5 1643.51,-192 1653.51,-195.5 1653.51,-188.5"/>
<polygon fill="#000000" stroke="#000000" points="1774.49,-195.5 1784.49,-192 1774.49,-188.5 1774.49,-195.5"/>
</g>
<!-- W3 -->
<g id="node20" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" points="2188,-293 2065,-293 2065,-109 2188,-109 2188,-293"/>
<polygon fill="none" stroke="black" points="2065.5,-270 2065.5,-293 2188.5,-293 2188.5,-270 2065.5,-270"/>
<text text-anchor="start" x="2116" y="-277.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="2065.5,-247 2065.5,-270 2117.5,-270 2117.5,-247 2065.5,-247"/>
<text text-anchor="start" x="2084" y="-254.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="2117.5,-247 2117.5,-270 2188.5,-270 2188.5,-247 2117.5,-247"/>
<text text-anchor="start" x="2135.5" y="-254.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="2086.5" y="-233.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="2068" y="-214.8" font-family="arial" font-size="14.00">X3:1:A</text>
<text text-anchor="start" x="2113.5" y="-214.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-207 2065.5,-209 2188.5,-209 2188.5,-207 2065.5,-207"/>
<polygon fill="#ffffff" stroke="none" points="2065.5,-205 2065.5,-207 2188.5,-207 2188.5,-205 2065.5,-205"/>
<polygon fill="#000000" stroke="none" points="2065.5,-203 2065.5,-205 2188.5,-205 2188.5,-203 2065.5,-203"/>
<text text-anchor="start" x="2068" y="-189.8" font-family="arial" font-size="14.00">X3:2:B</text>
<text text-anchor="start" x="2116" y="-189.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-182 2065.5,-184 2188.5,-184 2188.5,-182 2065.5,-182"/>
<polygon fill="#895956" stroke="none" points="2065.5,-180 2065.5,-182 2188.5,-182 2188.5,-180 2065.5,-180"/>
<polygon fill="#000000" stroke="none" points="2065.5,-178 2065.5,-180 2188.5,-180 2188.5,-178 2065.5,-178"/>
<text text-anchor="start" x="2067.5" y="-164.8" font-family="arial" font-size="14.00">X3:3:C</text>
<text text-anchor="start" x="2114.5" y="-164.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-157 2065.5,-159 2188.5,-159 2188.5,-157 2065.5,-157"/>
<polygon fill="#00ff00" stroke="none" points="2065.5,-155 2065.5,-157 2188.5,-157 2188.5,-155 2065.5,-155"/>
<polygon fill="#000000" stroke="none" points="2065.5,-153 2065.5,-155 2188.5,-155 2188.5,-153 2065.5,-153"/>
<text text-anchor="start" x="2067.5" y="-139.8" font-family="arial" font-size="14.00">X3:4:D</text>
<text text-anchor="start" x="2116" y="-139.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-132 2065.5,-134 2188.5,-134 2188.5,-132 2065.5,-132"/>
<polygon fill="#ffff00" stroke="none" points="2065.5,-130 2065.5,-132 2188.5,-132 2188.5,-130 2065.5,-130"/>
<polygon fill="#000000" stroke="none" points="2065.5,-128 2065.5,-130 2188.5,-130 2188.5,-128 2065.5,-128"/>
<text text-anchor="start" x="2086.5" y="-114.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge25" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-202C1985.25,-202.02 2001.24,-204.02 2065,-204"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M1921,-204C1985.01,-204 2000.99,-206 2065,-206"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-206C1984.76,-205.98 2000.75,-207.98 2065,-208"/>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge27" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-178C1985.13,-178 2001.12,-179 2065,-179"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M1921,-180C1985,-180 2001,-181 2065,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-182C1984.88,-182 2000.87,-183 2065,-183"/>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge29" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-155C1984.88,-155 2000.87,-154 2065,-154"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M1921,-157C1985,-157 2001,-156 2065,-156"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-159C1985.13,-159 2001.12,-158 2065,-158"/>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge31" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-132C1984.64,-132.03 2000.62,-129.03 2065,-129"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1921,-134C1985.01,-134 2000.99,-131 2065,-131"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-136C1985.38,-135.97 2001.36,-132.97 2065,-133"/>
</g>
<!-- __F_1 -->
<g id="node12" class="node">
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="2420,-203.5 2332,-203.5 2332,-180.5 2420,-180.5 2420,-203.5"/>
<polygon fill="none" stroke="black" points="2332,-180 2332,-203 2383,-203 2383,-180 2332,-180"/>
<text text-anchor="start" x="2336" y="-187.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-180 2383,-203 2412,-203 2412,-180 2383,-180"/>
<text text-anchor="start" x="2387" y="-187.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-180 2412,-203 2420,-203 2420,-180 2412,-180"/>
<polygon fill="none" stroke="black" points="2412,-180 2412,-203 2420,-203 2420,-180 2412,-180"/>
</g>
<!-- X4 -->
<g id="node16" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="2803,-261 2564,-261 2564,-123 2803,-123 2803,-261"/>
<polygon fill="none" stroke="black" points="2564.5,-238 2564.5,-261 2803.5,-261 2803.5,-238 2564.5,-238"/>
<text text-anchor="start" x="2675.5" y="-245.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="2564.5,-215 2564.5,-238 2726.5,-238 2726.5,-215 2564.5,-215"/>
<text text-anchor="start" x="2568.5" y="-222.8" font-family="arial" font-size="14.00">Screw terminal connector</text>
<polygon fill="none" stroke="black" points="2726.5,-215 2726.5,-238 2765.5,-238 2765.5,-215 2726.5,-215"/>
<text text-anchor="start" x="2730.5" y="-222.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="2765.5,-215 2765.5,-238 2795.5,-238 2795.5,-215 2765.5,-215"/>
<text text-anchor="start" x="2769.5" y="-222.8" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="none" points="2795.5,-215 2795.5,-238 2803.5,-238 2803.5,-215 2795.5,-215"/>
<polygon fill="none" stroke="black" points="2795.5,-215 2795.5,-238 2803.5,-238 2803.5,-215 2795.5,-215"/>
<polygon fill="none" stroke="black" points="2564.5,-192 2564.5,-215 2681.5,-215 2681.5,-192 2564.5,-192"/>
<text text-anchor="start" x="2619" y="-199.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="2681.5,-192 2681.5,-215 2803.5,-215 2803.5,-192 2681.5,-192"/>
<text text-anchor="start" x="2735.5" y="-199.8" font-family="arial" font-size="14.00">W</text>
<polygon fill="none" stroke="black" points="2564.5,-169 2564.5,-192 2681.5,-192 2681.5,-169 2564.5,-169"/>
<text text-anchor="start" x="2619" y="-176.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="2681.5,-169 2681.5,-192 2803.5,-192 2803.5,-169 2681.5,-169"/>
<text text-anchor="start" x="2737.5" y="-176.8" font-family="arial" font-size="14.00">X</text>
<polygon fill="none" stroke="black" points="2564.5,-146 2564.5,-169 2681.5,-169 2681.5,-146 2564.5,-146"/>
<text text-anchor="start" x="2619" y="-153.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="2681.5,-146 2681.5,-169 2803.5,-169 2803.5,-146 2681.5,-146"/>
<text text-anchor="start" x="2737.5" y="-153.8" font-family="arial" font-size="14.00">Y</text>
<polygon fill="none" stroke="black" points="2564.5,-123 2564.5,-146 2681.5,-146 2681.5,-123 2564.5,-123"/>
<text text-anchor="start" x="2619" y="-130.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="2681.5,-123 2681.5,-146 2803.5,-146 2803.5,-123 2681.5,-123"/>
<text text-anchor="start" x="2738" y="-130.8" font-family="arial" font-size="14.00">Z</text>
</g>
<!-- __F_1&#45;&#45;X4 -->
<g id="edge36" class="edge">
<title>__F_1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-192C2480.21,-192 2497.64,-181.45 2552.5,-180.13"/>
<polygon fill="#000000" stroke="#000000" points="2552.53,-183.63 2562.49,-180.02 2552.45,-176.64 2552.53,-183.63"/>
</g>
<!-- __F_2 -->
<g id="node13" class="node">
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="2420,-250.5 2332,-250.5 2332,-227.5 2420,-227.5 2420,-250.5"/>
<polygon fill="none" stroke="black" points="2332,-227 2332,-250 2383,-250 2383,-227 2332,-227"/>
<text text-anchor="start" x="2336" y="-234.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-227 2383,-250 2412,-250 2412,-227 2383,-227"/>
<text text-anchor="start" x="2387" y="-234.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-227 2412,-250 2420,-250 2420,-227 2412,-227"/>
<polygon fill="none" stroke="black" points="2412,-227 2412,-250 2420,-250 2420,-227 2412,-227"/>
</g>
<!-- __F_2&#45;&#45;X4 -->
<g id="edge37" class="edge">
<title>__F_2:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-239C2481.88,-239 2496.45,-208.11 2552.6,-204.37"/>
<polygon fill="#000000" stroke="#000000" points="2552.61,-207.87 2562.49,-204.05 2552.38,-200.87 2552.61,-207.87"/>
</g>
<!-- __F_3 -->
<g id="node14" class="node">
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="2420,-109.5 2332,-109.5 2332,-86.5 2420,-86.5 2420,-109.5"/>
<polygon fill="none" stroke="black" points="2332,-86 2332,-109 2383,-109 2383,-86 2332,-86"/>
<text text-anchor="start" x="2336" y="-93.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-86 2383,-109 2412,-109 2412,-86 2383,-86"/>
<text text-anchor="start" x="2387" y="-93.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-86 2412,-109 2420,-109 2420,-86 2412,-86"/>
<polygon fill="none" stroke="black" points="2412,-86 2412,-109 2420,-109 2420,-86 2412,-86"/>
</g>
<!-- __F_3&#45;&#45;X4 -->
<g id="edge38" class="edge">
<title>__F_3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-98C2481.98,-98 2496.37,-129.77 2552.59,-133.62"/>
<polygon fill="#000000" stroke="#000000" points="2552.38,-137.11 2562.49,-133.95 2552.61,-130.12 2552.38,-137.11"/>
</g>
<!-- __F_4 -->
<g id="node15" class="node">
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="2420,-156.5 2332,-156.5 2332,-133.5 2420,-133.5 2420,-156.5"/>
<polygon fill="none" stroke="black" points="2332,-133 2332,-156 2383,-156 2383,-133 2332,-133"/>
<text text-anchor="start" x="2336" y="-140.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-133 2383,-156 2412,-156 2412,-133 2383,-133"/>
<text text-anchor="start" x="2387" y="-140.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-133 2412,-156 2420,-156 2420,-133 2412,-133"/>
<polygon fill="none" stroke="black" points="2412,-133 2412,-156 2420,-156 2420,-133 2412,-133"/>
</g>
<!-- __F_4&#45;&#45;X4 -->
<g id="edge39" class="edge">
<title>__F_4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-145C2480.21,-145 2497.64,-155.55 2552.5,-156.87"/>
<polygon fill="#000000" stroke="#000000" points="2552.45,-160.36 2562.49,-156.98 2552.53,-153.37 2552.45,-160.36"/>
</g>
<!-- W1&#45;&#45;__S_1 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;__S_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-172C469.53,-173.28 482.21,-206.28 546,-205"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M402,-174C467.66,-174 480.34,-207 546,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-176C465.79,-174.72 478.47,-207.72 546,-209"/>
</g>
<!-- W1&#45;&#45;__S_2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;__S_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-147C467.34,-147.36 482.96,-158.36 546,-158"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M402,-149C466.19,-149 481.81,-160 546,-160"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-151C465.04,-150.64 480.66,-161.64 546,-162"/>
</g>
<!-- W1&#45;&#45;S1 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;S1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-122C465.04,-122.36 480.66,-111.36 546,-111"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M402,-124C466.19,-124 481.81,-113 546,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-126C467.34,-125.64 482.96,-114.64 546,-115"/>
</g>
<!-- W1&#45;&#45;__S_3 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;__S_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-97C465.79,-98.28 478.47,-65.28 546,-64"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M402,-99C467.66,-99 480.34,-66 546,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-101C469.53,-99.72 482.21,-66.72 546,-68"/>
</g>
<!-- W2&#45;&#45;__S_4 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;__S_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-183C924.87,-184.55 935.03,-228.55 1000,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M856,-185C922.92,-185 933.08,-229 1000,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-187C920.97,-185.45 931.13,-229.45 1000,-231"/>
</g>
<!-- W2&#45;&#45;__S_5 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;__S_5:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-158C922.41,-158.9 936.93,-180.9 1000,-180"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M856,-160C920.74,-160 935.26,-182 1000,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-162C919.07,-161.1 933.59,-183.1 1000,-184"/>
</g>
<!-- W2&#45;&#45;__S_6 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;__S_6:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-133C920,-133 936,-133 1000,-133"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M856,-135C920,-135 936,-135 1000,-135"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-137C920,-137 936,-137 1000,-137"/>
</g>
<!-- W2&#45;&#45;__S_7 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;__S_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-108C919.07,-108.9 933.59,-86.9 1000,-86"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M856,-110C920.74,-110 935.26,-88 1000,-88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-112C922.41,-111.1 936.93,-89.1 1000,-90"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge18" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-205C1415.64,-205.03 1431.62,-202.03 1496,-202"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M1352,-207C1416.01,-207 1431.99,-204 1496,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-209C1416.38,-208.97 1432.36,-205.97 1496,-206"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge20" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-180C1415.76,-180.02 1431.75,-178.02 1496,-178"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M1352,-182C1416.01,-182 1431.99,-180 1496,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-184C1416.25,-183.98 1432.24,-181.98 1496,-182"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge22" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-155C1416,-155 1432,-155 1496,-155"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M1352,-157C1416,-157 1432,-157 1496,-157"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-159C1416,-159 1432,-159 1496,-159"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge24" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-130C1416.25,-130.02 1432.24,-132.02 1496,-132"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1352,-132C1416.01,-132 1431.99,-134 1496,-134"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-134C1415.76,-133.98 1431.75,-135.98 1496,-136"/>
</g>
<!-- W3&#45;&#45;__F_1 -->
<g id="edge26" class="edge">
<title>W3:e&#45;&#45;__F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-204C2250.96,-204.52 2266.35,-190.52 2332,-190"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M2188,-206C2252.3,-206 2267.7,-192 2332,-192"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-208C2253.65,-207.48 2269.04,-193.48 2332,-194"/>
</g>
<!-- W3&#45;&#45;__F_2 -->
<g id="edge28" class="edge">
<title>W3:e&#45;&#45;__F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-179C2258.99,-180.79 2264.99,-238.79 2332,-237"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M2188,-181C2257,-181 2263,-239 2332,-239"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-183C2255.01,-181.21 2261.01,-239.21 2332,-241"/>
</g>
<!-- W3&#45;&#45;__F_3 -->
<g id="edge30" class="edge">
<title>W3:e&#45;&#45;__F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-154C2255.01,-155.79 2261.01,-97.79 2332,-96"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M2188,-156C2257,-156 2263,-98 2332,-98"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-158C2258.99,-156.21 2264.99,-98.21 2332,-100"/>
</g>
<!-- W3&#45;&#45;__F_4 -->
<g id="edge32" class="edge">
<title>W3:e&#45;&#45;__F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-129C2253.65,-129.52 2269.04,-143.52 2332,-143"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M2188,-131C2252.3,-131 2267.7,-145 2332,-145"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-133C2250.96,-132.48 2266.35,-146.48 2332,-147"/>
</g>
<!-- __WIRE_1&#45;&#45;X2 -->
<g id="edge34" class="edge">
<title>__WIRE_1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1350.5,-20C1434.08,-22.31 1416.37,-134.31 1496,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1350.5,-22C1432.11,-22 1414.39,-134 1496,-134"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1350.5,-24C1430.13,-21.69 1412.42,-133.69 1496,-136"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<div id="bom">
<table class="bom">
<tr>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, 1 wires</td>
<td class="bom_col_qty">0.1</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators"></td>
</tr>
<tr>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Cable, 4 wires</td>
<td class="bom_col_qty">0.4</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1, W2, W21, W3</td>
</tr>
<tr>
<td class="bom_col_id">3</td>
<td class="bom_col_description">Connector, Ferrule, GY</td>
<td class="bom_col_qty">4</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators"></td>
</tr>
<tr>
<td class="bom_col_id">4</td>
<td class="bom_col_description">Connector, JST SM, female, 4 pins</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X2</td>
</tr>
<tr>
<td class="bom_col_id">5</td>
<td class="bom_col_description">Connector, JST SM, male, 4 pins</td>
<td class="bom_col_qty">2</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1, X3</td>
</tr>
<tr>
<td class="bom_col_id">6</td>
<td class="bom_col_description">Connector, Screw terminal connector, 4 pins, GN</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X4</td>
</tr>
<tr>
<td class="bom_col_id">7</td>
<td class="bom_col_description">Connector, Splice, CU</td>
<td class="bom_col_qty">8</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators"></td>
</tr>
</table>
</div>
</body></html>

BIN
examples/ex14.png generated Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

676
examples/ex14.svg generated Normal file
View File

@ -0,0 +1,676 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="2811pt" height="302pt"
viewBox="0.00 0.00 2811.00 302.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 298)">
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-298 2807,-298 2807,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="135,-229 0,-229 0,-91 135,-91 135,-229"/>
<polygon fill="none" stroke="black" points="0.5,-206 0.5,-229 135.5,-229 135.5,-206 0.5,-206"/>
<text text-anchor="start" x="59.5" y="-213.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-183 0.5,-206 57.5,-206 57.5,-183 0.5,-183"/>
<text text-anchor="start" x="4.5" y="-190.8" font-family="arial" font-size="14.00">JST SM</text>
<polygon fill="none" stroke="black" points="57.5,-183 57.5,-206 96.5,-206 96.5,-183 57.5,-183"/>
<text text-anchor="start" x="61.5" y="-190.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="96.5,-183 96.5,-206 135.5,-206 135.5,-183 96.5,-183"/>
<text text-anchor="start" x="100.5" y="-190.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-160 0.5,-183 69.5,-183 69.5,-160 0.5,-160"/>
<text text-anchor="start" x="30" y="-167.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="69.5,-160 69.5,-183 135.5,-183 135.5,-160 69.5,-160"/>
<text text-anchor="start" x="98.5" y="-167.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0.5,-137 0.5,-160 69.5,-160 69.5,-137 0.5,-137"/>
<text text-anchor="start" x="30" y="-144.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="69.5,-137 69.5,-160 135.5,-160 135.5,-137 69.5,-137"/>
<text text-anchor="start" x="98.5" y="-144.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0.5,-114 0.5,-137 69.5,-137 69.5,-114 0.5,-114"/>
<text text-anchor="start" x="30" y="-121.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="69.5,-114 69.5,-137 135.5,-137 135.5,-114 69.5,-114"/>
<text text-anchor="start" x="98.5" y="-121.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0.5,-91 0.5,-114 69.5,-114 69.5,-91 0.5,-91"/>
<text text-anchor="start" x="30" y="-98.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="69.5,-91 69.5,-114 135.5,-114 135.5,-91 69.5,-91"/>
<text text-anchor="start" x="98.5" y="-98.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node17" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="402,-261 279,-261 279,-77 402,-77 402,-261"/>
<polygon fill="none" stroke="black" points="279.5,-238 279.5,-261 402.5,-261 402.5,-238 279.5,-238"/>
<text text-anchor="start" x="330" y="-245.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="279.5,-215 279.5,-238 331.5,-238 331.5,-215 279.5,-215"/>
<text text-anchor="start" x="298" y="-222.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="331.5,-215 331.5,-238 402.5,-238 402.5,-215 331.5,-215"/>
<text text-anchor="start" x="349.5" y="-222.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="300.5" y="-201.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="281.5" y="-182.8" font-family="arial" font-size="14.00">X1:4:D</text>
<text text-anchor="start" x="327.5" y="-182.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-175 279.5,-177 402.5,-177 402.5,-175 279.5,-175"/>
<polygon fill="#ffffff" stroke="none" points="279.5,-173 279.5,-175 402.5,-175 402.5,-173 279.5,-173"/>
<polygon fill="#000000" stroke="none" points="279.5,-171 279.5,-173 402.5,-173 402.5,-171 279.5,-171"/>
<text text-anchor="start" x="281.5" y="-157.8" font-family="arial" font-size="14.00">X1:3:C</text>
<text text-anchor="start" x="330" y="-157.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-150 279.5,-152 402.5,-152 402.5,-150 279.5,-150"/>
<polygon fill="#895956" stroke="none" points="279.5,-148 279.5,-150 402.5,-150 402.5,-148 279.5,-148"/>
<polygon fill="#000000" stroke="none" points="279.5,-146 279.5,-148 402.5,-148 402.5,-146 279.5,-146"/>
<text text-anchor="start" x="282" y="-132.8" font-family="arial" font-size="14.00">X1:2:B</text>
<text text-anchor="start" x="328.5" y="-132.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-125 279.5,-127 402.5,-127 402.5,-125 279.5,-125"/>
<polygon fill="#00ff00" stroke="none" points="279.5,-123 279.5,-125 402.5,-125 402.5,-123 279.5,-123"/>
<polygon fill="#000000" stroke="none" points="279.5,-121 279.5,-123 402.5,-123 402.5,-121 279.5,-121"/>
<text text-anchor="start" x="282" y="-107.8" font-family="arial" font-size="14.00">X1:1:A</text>
<text text-anchor="start" x="330" y="-107.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="279.5,-100 279.5,-102 402.5,-102 402.5,-100 279.5,-100"/>
<polygon fill="#ffff00" stroke="none" points="279.5,-98 279.5,-100 402.5,-100 402.5,-98 279.5,-98"/>
<polygon fill="#000000" stroke="none" points="279.5,-96 279.5,-98 402.5,-98 402.5,-96 279.5,-96"/>
<text text-anchor="start" x="300.5" y="-82.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-100C208.55,-101.98 209.45,-173.98 279,-172"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M135,-102C206.55,-102 207.45,-174 279,-174"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-104C204.55,-102.02 205.45,-174.02 279,-176"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-123C201.6,-123.98 215.84,-147.98 279,-147"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M135,-125C199.88,-125 214.12,-149 279,-149"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-127C198.16,-126.02 212.4,-150.02 279,-151"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-146C198.16,-146.98 212.4,-122.98 279,-122"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M135,-148C199.88,-148 214.12,-124 279,-124"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-150C201.6,-149.02 215.84,-125.02 279,-126"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-170C204.75,-171.99 205.25,-98.99 279,-97"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M135,-172C206.75,-172 207.25,-99 279,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M135,-174C208.75,-172.01 209.25,-99.01 279,-101"/>
</g>
<!-- __S_1 -->
<g id="node2" class="node">
<title>__S_1</title>
<polygon fill="#ffffff" stroke="black" points="627,-218.5 546,-218.5 546,-195.5 627,-195.5 627,-218.5"/>
<polygon fill="none" stroke="black" points="546.5,-195 546.5,-218 591.5,-218 591.5,-195 546.5,-195"/>
<text text-anchor="start" x="550.5" y="-202.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-195 591.5,-218 619.5,-218 619.5,-195 591.5,-195"/>
<text text-anchor="start" x="595.5" y="-202.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-195 619.5,-218 627.5,-218 627.5,-195 619.5,-195"/>
<polygon fill="none" stroke="black" points="619.5,-195 619.5,-218 627.5,-218 627.5,-195 619.5,-195"/>
</g>
<!-- W2 -->
<g id="node18" class="node">
<title>W2</title>
<polygon fill="#ffffff" stroke="black" points="856,-272 771,-272 771,-88 856,-88 856,-272"/>
<polygon fill="none" stroke="black" points="771.5,-249 771.5,-272 856.5,-272 856.5,-249 771.5,-249"/>
<text text-anchor="start" x="803" y="-256.8" font-family="arial" font-size="14.00">W2</text>
<polygon fill="none" stroke="black" points="771.5,-226 771.5,-249 804.5,-249 804.5,-226 771.5,-226"/>
<text text-anchor="start" x="780.5" y="-233.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="804.5,-226 804.5,-249 856.5,-249 856.5,-226 804.5,-226"/>
<text text-anchor="start" x="813" y="-233.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="773.5" y="-212.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="781.5" y="-193.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-186 771.5,-188 856.5,-188 856.5,-186 771.5,-186"/>
<polygon fill="#ffffff" stroke="none" points="771.5,-184 771.5,-186 856.5,-186 856.5,-184 771.5,-184"/>
<polygon fill="#000000" stroke="none" points="771.5,-182 771.5,-184 856.5,-184 856.5,-182 771.5,-182"/>
<text text-anchor="start" x="784" y="-168.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-161 771.5,-163 856.5,-163 856.5,-161 771.5,-161"/>
<polygon fill="#895956" stroke="none" points="771.5,-159 771.5,-161 856.5,-161 856.5,-159 771.5,-159"/>
<polygon fill="#000000" stroke="none" points="771.5,-157 771.5,-159 856.5,-159 856.5,-157 771.5,-157"/>
<text text-anchor="start" x="782.5" y="-143.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-136 771.5,-138 856.5,-138 856.5,-136 771.5,-136"/>
<polygon fill="#00ff00" stroke="none" points="771.5,-134 771.5,-136 856.5,-136 856.5,-134 771.5,-134"/>
<polygon fill="#000000" stroke="none" points="771.5,-132 771.5,-134 856.5,-134 856.5,-132 771.5,-132"/>
<text text-anchor="start" x="784" y="-118.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="771.5,-111 771.5,-113 856.5,-113 856.5,-111 771.5,-111"/>
<polygon fill="#ffff00" stroke="none" points="771.5,-109 771.5,-111 856.5,-111 856.5,-109 771.5,-109"/>
<polygon fill="#000000" stroke="none" points="771.5,-107 771.5,-109 856.5,-109 856.5,-107 771.5,-107"/>
<text text-anchor="start" x="773.5" y="-93.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- __S_1&#45;&#45;W2 -->
<g id="edge9" class="edge">
<title>__S_1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-205C690.07,-205.9 704.59,-183.9 771,-183"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M627,-207C691.74,-207 706.26,-185 771,-185"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-209C693.41,-208.1 707.93,-186.1 771,-187"/>
</g>
<!-- __S_2 -->
<g id="node3" class="node">
<title>__S_2</title>
<polygon fill="#ffffff" stroke="black" points="627,-171.5 546,-171.5 546,-148.5 627,-148.5 627,-171.5"/>
<polygon fill="none" stroke="black" points="546.5,-148 546.5,-171 591.5,-171 591.5,-148 546.5,-148"/>
<text text-anchor="start" x="550.5" y="-155.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-148 591.5,-171 619.5,-171 619.5,-148 591.5,-148"/>
<text text-anchor="start" x="595.5" y="-155.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-148 619.5,-171 627.5,-171 627.5,-148 619.5,-148"/>
<polygon fill="none" stroke="black" points="619.5,-148 619.5,-171 627.5,-171 627.5,-148 619.5,-148"/>
</g>
<!-- __S_2&#45;&#45;W2 -->
<g id="edge11" class="edge">
<title>__S_2:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-158C691,-158 707,-158 771,-158"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M627,-160C691,-160 707,-160 771,-160"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-162C691,-162 707,-162 771,-162"/>
</g>
<!-- S1 -->
<g id="node4" class="node">
<title>S1</title>
<polygon fill="#ffffff" stroke="black" points="627,-124.5 546,-124.5 546,-101.5 627,-101.5 627,-124.5"/>
<polygon fill="none" stroke="black" points="546.5,-101 546.5,-124 591.5,-124 591.5,-101 546.5,-101"/>
<text text-anchor="start" x="550.5" y="-108.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-101 591.5,-124 619.5,-124 619.5,-101 591.5,-101"/>
<text text-anchor="start" x="595.5" y="-108.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-101 619.5,-124 627.5,-124 627.5,-101 619.5,-101"/>
<polygon fill="none" stroke="black" points="619.5,-101 619.5,-124 627.5,-124 627.5,-101 619.5,-101"/>
</g>
<!-- S1&#45;&#45;W2 -->
<g id="edge13" class="edge">
<title>S1:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-111C693.41,-111.9 707.93,-133.9 771,-133"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M627,-113C691.74,-113 706.26,-135 771,-135"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-115C690.07,-114.1 704.59,-136.1 771,-137"/>
</g>
<!-- __WIRE_1 -->
<g id="node21" class="node">
<title>__WIRE_1</title>
<polygon fill="#ffffff" stroke="black" points="1349.5,-86 1227.5,-86 1227.5,0 1349.5,0 1349.5,-86"/>
<polygon fill="none" stroke="black" points="1227.5,-63 1227.5,-86 1278.5,-86 1278.5,-63 1227.5,-63"/>
<text text-anchor="start" x="1245.5" y="-70.8" font-family="arial" font-size="14.00">1x</text>
<polygon fill="none" stroke="black" points="1278.5,-63 1278.5,-86 1349.5,-86 1349.5,-63 1278.5,-63"/>
<text text-anchor="start" x="1296.5" y="-70.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="1229.5" y="-49.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1237.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:BK &#160;&#160;&#160;</text>
<text text-anchor="start" x="1305.5" y="-30.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="1227.5,-23 1227.5,-25 1349.5,-25 1349.5,-23 1227.5,-23"/>
<polygon fill="#000000" stroke="none" points="1227.5,-21 1227.5,-23 1349.5,-23 1349.5,-21 1227.5,-21"/>
<polygon fill="#000000" stroke="none" points="1227.5,-19 1227.5,-21 1349.5,-21 1349.5,-19 1227.5,-19"/>
<text text-anchor="start" x="1229.5" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- S1&#45;&#45;__WIRE_1 -->
<g id="edge33" class="edge">
<title>S1:e&#45;&#45;__WIRE_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-111C691.31,-112.08 704.27,-87.21 770.63,-74.03 970.78,-36.65 1022.02,-20.1 1226.5,-20"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-113C693.08,-113 706.05,-88.14 771,-76 971.39,-38.55 1022.64,-22 1226.5,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-115C694.85,-113.92 707.82,-89.06 771.37,-77.97 972.01,-40.45 1023.25,-23.9 1226.5,-24"/>
</g>
<!-- __S_3 -->
<g id="node5" class="node">
<title>__S_3</title>
<polygon fill="#ffffff" stroke="black" points="627,-77.5 546,-77.5 546,-54.5 627,-54.5 627,-77.5"/>
<polygon fill="none" stroke="black" points="546.5,-54 546.5,-77 591.5,-77 591.5,-54 546.5,-54"/>
<text text-anchor="start" x="550.5" y="-61.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="591.5,-54 591.5,-77 619.5,-77 619.5,-54 591.5,-54"/>
<text text-anchor="start" x="595.5" y="-61.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="619.5,-54 619.5,-77 627.5,-77 627.5,-54 619.5,-54"/>
<polygon fill="none" stroke="black" points="619.5,-54 619.5,-77 627.5,-77 627.5,-54 619.5,-54"/>
</g>
<!-- __S_3&#45;&#45;W2 -->
<g id="edge15" class="edge">
<title>__S_3:e&#45;&#45;W2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-64C695.87,-65.55 706.03,-109.55 771,-108"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M627,-66C693.92,-66 704.08,-110 771,-110"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M627,-68C691.97,-66.45 702.13,-110.45 771,-112"/>
</g>
<!-- __S_4 -->
<g id="node6" class="node">
<title>__S_4</title>
<polygon fill="#ffffff" stroke="black" points="1081,-240.5 1000,-240.5 1000,-217.5 1081,-217.5 1081,-240.5"/>
<polygon fill="none" stroke="black" points="1000.5,-217 1000.5,-240 1045.5,-240 1045.5,-217 1000.5,-217"/>
<text text-anchor="start" x="1004.5" y="-224.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-217 1045.5,-240 1073.5,-240 1073.5,-217 1045.5,-217"/>
<text text-anchor="start" x="1049.5" y="-224.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-217 1073.5,-240 1081.5,-240 1081.5,-217 1073.5,-217"/>
<polygon fill="none" stroke="black" points="1073.5,-217 1073.5,-240 1081.5,-240 1081.5,-217 1073.5,-217"/>
</g>
<!-- W21 -->
<g id="node19" class="node">
<title>W21</title>
<polygon fill="#ffffff" stroke="black" points="1352,-294 1225,-294 1225,-110 1352,-110 1352,-294"/>
<polygon fill="none" stroke="black" points="1225.5,-271 1225.5,-294 1352.5,-294 1352.5,-271 1225.5,-271"/>
<text text-anchor="start" x="1274.5" y="-278.8" font-family="arial" font-size="14.00">W21</text>
<polygon fill="none" stroke="black" points="1225.5,-248 1225.5,-271 1279.5,-271 1279.5,-248 1225.5,-248"/>
<text text-anchor="start" x="1245" y="-255.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="1279.5,-248 1279.5,-271 1352.5,-271 1352.5,-248 1279.5,-248"/>
<text text-anchor="start" x="1298.5" y="-255.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="1227.5" y="-234.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="1235.5" y="-215.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<text text-anchor="start" x="1309" y="-215.8" font-family="arial" font-size="14.00">X2:1:A</text>
<polygon fill="#000000" stroke="none" points="1225.5,-208 1225.5,-210 1352.5,-210 1352.5,-208 1225.5,-208"/>
<polygon fill="#ffffff" stroke="none" points="1225.5,-206 1225.5,-208 1352.5,-208 1352.5,-206 1225.5,-206"/>
<polygon fill="#000000" stroke="none" points="1225.5,-204 1225.5,-206 1352.5,-206 1352.5,-204 1225.5,-204"/>
<text text-anchor="start" x="1238" y="-190.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<text text-anchor="start" x="1309" y="-190.8" font-family="arial" font-size="14.00">X2:2:B</text>
<polygon fill="#000000" stroke="none" points="1225.5,-183 1225.5,-185 1352.5,-185 1352.5,-183 1225.5,-183"/>
<polygon fill="#895956" stroke="none" points="1225.5,-181 1225.5,-183 1352.5,-183 1352.5,-181 1225.5,-181"/>
<polygon fill="#000000" stroke="none" points="1225.5,-179 1225.5,-181 1352.5,-181 1352.5,-179 1225.5,-179"/>
<text text-anchor="start" x="1236.5" y="-165.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<text text-anchor="start" x="1308.5" y="-165.8" font-family="arial" font-size="14.00">X2:3:C</text>
<polygon fill="#000000" stroke="none" points="1225.5,-158 1225.5,-160 1352.5,-160 1352.5,-158 1225.5,-158"/>
<polygon fill="#00ff00" stroke="none" points="1225.5,-156 1225.5,-158 1352.5,-158 1352.5,-156 1225.5,-156"/>
<polygon fill="#000000" stroke="none" points="1225.5,-154 1225.5,-156 1352.5,-156 1352.5,-154 1225.5,-154"/>
<text text-anchor="start" x="1238" y="-140.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<text text-anchor="start" x="1308.5" y="-140.8" font-family="arial" font-size="14.00">X2:4:D</text>
<polygon fill="#000000" stroke="none" points="1225.5,-133 1225.5,-135 1352.5,-135 1352.5,-133 1225.5,-133"/>
<polygon fill="#ffff00" stroke="none" points="1225.5,-131 1225.5,-133 1352.5,-133 1352.5,-131 1225.5,-131"/>
<polygon fill="#000000" stroke="none" points="1225.5,-129 1225.5,-131 1352.5,-131 1352.5,-129 1225.5,-129"/>
<text text-anchor="start" x="1227.5" y="-115.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- __S_4&#45;&#45;W21 -->
<g id="edge17" class="edge">
<title>__S_4:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-227C1144.07,-227.9 1158.59,-205.9 1225,-205"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M1081,-229C1145.74,-229 1160.26,-207 1225,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-231C1147.41,-230.1 1161.93,-208.1 1225,-209"/>
</g>
<!-- __S_5 -->
<g id="node7" class="node">
<title>__S_5</title>
<polygon fill="#ffffff" stroke="black" points="1081,-193.5 1000,-193.5 1000,-170.5 1081,-170.5 1081,-193.5"/>
<polygon fill="none" stroke="black" points="1000.5,-170 1000.5,-193 1045.5,-193 1045.5,-170 1000.5,-170"/>
<text text-anchor="start" x="1004.5" y="-177.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-170 1045.5,-193 1073.5,-193 1073.5,-170 1045.5,-170"/>
<text text-anchor="start" x="1049.5" y="-177.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-170 1073.5,-193 1081.5,-193 1081.5,-170 1073.5,-170"/>
<polygon fill="none" stroke="black" points="1073.5,-170 1073.5,-193 1081.5,-193 1081.5,-170 1073.5,-170"/>
</g>
<!-- __S_5&#45;&#45;W21 -->
<g id="edge19" class="edge">
<title>__S_5:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-180C1145,-180 1161,-180 1225,-180"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M1081,-182C1145,-182 1161,-182 1225,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-184C1145,-184 1161,-184 1225,-184"/>
</g>
<!-- __S_6 -->
<g id="node8" class="node">
<title>__S_6</title>
<polygon fill="#ffffff" stroke="black" points="1081,-146.5 1000,-146.5 1000,-123.5 1081,-123.5 1081,-146.5"/>
<polygon fill="none" stroke="black" points="1000.5,-123 1000.5,-146 1045.5,-146 1045.5,-123 1000.5,-123"/>
<text text-anchor="start" x="1004.5" y="-130.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-123 1045.5,-146 1073.5,-146 1073.5,-123 1045.5,-123"/>
<text text-anchor="start" x="1049.5" y="-130.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-123 1073.5,-146 1081.5,-146 1081.5,-123 1073.5,-123"/>
<polygon fill="none" stroke="black" points="1073.5,-123 1073.5,-146 1081.5,-146 1081.5,-123 1073.5,-123"/>
</g>
<!-- __S_6&#45;&#45;W21 -->
<g id="edge21" class="edge">
<title>__S_6:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-133C1147.41,-133.9 1161.93,-155.9 1225,-155"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M1081,-135C1145.74,-135 1160.26,-157 1225,-157"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-137C1144.07,-136.1 1158.59,-158.1 1225,-159"/>
</g>
<!-- __S_7 -->
<g id="node9" class="node">
<title>__S_7</title>
<polygon fill="#ffffff" stroke="black" points="1081,-99.5 1000,-99.5 1000,-76.5 1081,-76.5 1081,-99.5"/>
<polygon fill="none" stroke="black" points="1000.5,-76 1000.5,-99 1045.5,-99 1045.5,-76 1000.5,-76"/>
<text text-anchor="start" x="1004.5" y="-83.8" font-family="arial" font-size="14.00">Splice</text>
<polygon fill="none" stroke="black" points="1045.5,-76 1045.5,-99 1073.5,-99 1073.5,-76 1045.5,-76"/>
<text text-anchor="start" x="1049.5" y="-83.8" font-family="arial" font-size="14.00">CU</text>
<polygon fill="#d6775e" stroke="none" points="1073.5,-76 1073.5,-99 1081.5,-99 1081.5,-76 1073.5,-76"/>
<polygon fill="none" stroke="black" points="1073.5,-76 1073.5,-99 1081.5,-99 1081.5,-76 1073.5,-76"/>
</g>
<!-- __S_7&#45;&#45;W21 -->
<g id="edge23" class="edge">
<title>__S_7:e&#45;&#45;W21:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-86C1149.87,-87.55 1160.03,-131.55 1225,-130"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1081,-88C1147.92,-88 1158.08,-132 1225,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1081,-90C1145.97,-88.45 1156.13,-132.45 1225,-134"/>
</g>
<!-- X2 -->
<g id="node10" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="1642,-261 1496,-261 1496,-123 1642,-123 1642,-261"/>
<polygon fill="none" stroke="black" points="1496,-238 1496,-261 1642,-261 1642,-238 1496,-238"/>
<text text-anchor="start" x="1560.5" y="-245.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="1496,-215 1496,-238 1553,-238 1553,-215 1496,-215"/>
<text text-anchor="start" x="1500" y="-222.8" font-family="arial" font-size="14.00">JST SM</text>
<polygon fill="none" stroke="black" points="1553,-215 1553,-238 1603,-238 1603,-215 1553,-215"/>
<text text-anchor="start" x="1557" y="-222.8" font-family="arial" font-size="14.00">female</text>
<polygon fill="none" stroke="black" points="1603,-215 1603,-238 1642,-238 1642,-215 1603,-215"/>
<text text-anchor="start" x="1607" y="-222.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1496,-192 1496,-215 1568,-215 1568,-192 1496,-192"/>
<text text-anchor="start" x="1528" y="-199.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1568,-192 1568,-215 1642,-215 1642,-192 1568,-192"/>
<text text-anchor="start" x="1600" y="-199.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="1496,-169 1496,-192 1568,-192 1568,-169 1496,-169"/>
<text text-anchor="start" x="1528" y="-176.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1568,-169 1568,-192 1642,-192 1642,-169 1568,-169"/>
<text text-anchor="start" x="1600" y="-176.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="1496,-146 1496,-169 1568,-169 1568,-146 1496,-146"/>
<text text-anchor="start" x="1528" y="-153.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1568,-146 1568,-169 1642,-169 1642,-146 1568,-146"/>
<text text-anchor="start" x="1600" y="-153.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="1496,-123 1496,-146 1568,-146 1568,-123 1496,-123"/>
<text text-anchor="start" x="1528" y="-130.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="1568,-123 1568,-146 1642,-146 1642,-123 1568,-123"/>
<text text-anchor="start" x="1600" y="-130.8" font-family="arial" font-size="14.00">D</text>
</g>
<!-- X3 -->
<g id="node11" class="node">
<title>X3</title>
<polygon fill="#ffffff" stroke="black" points="1921,-261 1786,-261 1786,-123 1921,-123 1921,-261"/>
<polygon fill="none" stroke="black" points="1786.5,-238 1786.5,-261 1921.5,-261 1921.5,-238 1786.5,-238"/>
<text text-anchor="start" x="1845.5" y="-245.8" font-family="arial" font-size="14.00">X3</text>
<polygon fill="none" stroke="black" points="1786.5,-215 1786.5,-238 1843.5,-238 1843.5,-215 1786.5,-215"/>
<text text-anchor="start" x="1790.5" y="-222.8" font-family="arial" font-size="14.00">JST SM</text>
<polygon fill="none" stroke="black" points="1843.5,-215 1843.5,-238 1882.5,-238 1882.5,-215 1843.5,-215"/>
<text text-anchor="start" x="1847.5" y="-222.8" font-family="arial" font-size="14.00">male</text>
<polygon fill="none" stroke="black" points="1882.5,-215 1882.5,-238 1921.5,-238 1921.5,-215 1882.5,-215"/>
<text text-anchor="start" x="1886.5" y="-222.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="1786.5,-192 1786.5,-215 1855.5,-215 1855.5,-192 1786.5,-192"/>
<text text-anchor="start" x="1816" y="-199.8" font-family="arial" font-size="14.00">A</text>
<polygon fill="none" stroke="black" points="1855.5,-192 1855.5,-215 1921.5,-215 1921.5,-192 1855.5,-192"/>
<text text-anchor="start" x="1884.5" y="-199.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="1786.5,-169 1786.5,-192 1855.5,-192 1855.5,-169 1786.5,-169"/>
<text text-anchor="start" x="1816" y="-176.8" font-family="arial" font-size="14.00">B</text>
<polygon fill="none" stroke="black" points="1855.5,-169 1855.5,-192 1921.5,-192 1921.5,-169 1855.5,-169"/>
<text text-anchor="start" x="1884.5" y="-176.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="1786.5,-146 1786.5,-169 1855.5,-169 1855.5,-146 1786.5,-146"/>
<text text-anchor="start" x="1816" y="-153.8" font-family="arial" font-size="14.00">C</text>
<polygon fill="none" stroke="black" points="1855.5,-146 1855.5,-169 1921.5,-169 1921.5,-146 1855.5,-146"/>
<text text-anchor="start" x="1884.5" y="-153.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="1786.5,-123 1786.5,-146 1855.5,-146 1855.5,-123 1786.5,-123"/>
<text text-anchor="start" x="1816" y="-130.8" font-family="arial" font-size="14.00">D</text>
<polygon fill="none" stroke="black" points="1855.5,-123 1855.5,-146 1921.5,-146 1921.5,-123 1855.5,-123"/>
<text text-anchor="start" x="1884.5" y="-130.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- X2&#45;&#45;X3 -->
<g id="edge35" class="edge">
<title>X2:e&#45;&#45;X3:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1653.46,-191C1704.55,-191 1723.47,-191 1774.58,-191"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1653.46,-193C1704.55,-193 1723.47,-193 1774.58,-193"/>
<polygon fill="#000000" stroke="#000000" points="1653.51,-188.5 1643.51,-192 1653.51,-195.5 1653.51,-188.5"/>
<polygon fill="#000000" stroke="#000000" points="1774.49,-195.5 1784.49,-192 1774.49,-188.5 1774.49,-195.5"/>
</g>
<!-- W3 -->
<g id="node20" class="node">
<title>W3</title>
<polygon fill="#ffffff" stroke="black" points="2188,-293 2065,-293 2065,-109 2188,-109 2188,-293"/>
<polygon fill="none" stroke="black" points="2065.5,-270 2065.5,-293 2188.5,-293 2188.5,-270 2065.5,-270"/>
<text text-anchor="start" x="2116" y="-277.8" font-family="arial" font-size="14.00">W3</text>
<polygon fill="none" stroke="black" points="2065.5,-247 2065.5,-270 2117.5,-270 2117.5,-247 2065.5,-247"/>
<text text-anchor="start" x="2084" y="-254.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="2117.5,-247 2117.5,-270 2188.5,-270 2188.5,-247 2117.5,-247"/>
<text text-anchor="start" x="2135.5" y="-254.8" font-family="arial" font-size="14.00">0.1 m</text>
<text text-anchor="start" x="2086.5" y="-233.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="2068" y="-214.8" font-family="arial" font-size="14.00">X3:1:A</text>
<text text-anchor="start" x="2113.5" y="-214.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1:WH &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-207 2065.5,-209 2188.5,-209 2188.5,-207 2065.5,-207"/>
<polygon fill="#ffffff" stroke="none" points="2065.5,-205 2065.5,-207 2188.5,-207 2188.5,-205 2065.5,-205"/>
<polygon fill="#000000" stroke="none" points="2065.5,-203 2065.5,-205 2188.5,-205 2188.5,-203 2065.5,-203"/>
<text text-anchor="start" x="2068" y="-189.8" font-family="arial" font-size="14.00">X3:2:B</text>
<text text-anchor="start" x="2116" y="-189.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2:BN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-182 2065.5,-184 2188.5,-184 2188.5,-182 2065.5,-182"/>
<polygon fill="#895956" stroke="none" points="2065.5,-180 2065.5,-182 2188.5,-182 2188.5,-180 2065.5,-180"/>
<polygon fill="#000000" stroke="none" points="2065.5,-178 2065.5,-180 2188.5,-180 2188.5,-178 2065.5,-178"/>
<text text-anchor="start" x="2067.5" y="-164.8" font-family="arial" font-size="14.00">X3:3:C</text>
<text text-anchor="start" x="2114.5" y="-164.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3:GN &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-157 2065.5,-159 2188.5,-159 2188.5,-157 2065.5,-157"/>
<polygon fill="#00ff00" stroke="none" points="2065.5,-155 2065.5,-157 2188.5,-157 2188.5,-155 2065.5,-155"/>
<polygon fill="#000000" stroke="none" points="2065.5,-153 2065.5,-155 2188.5,-155 2188.5,-153 2065.5,-153"/>
<text text-anchor="start" x="2067.5" y="-139.8" font-family="arial" font-size="14.00">X3:4:D</text>
<text text-anchor="start" x="2116" y="-139.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4:YE &#160;&#160;&#160;</text>
<polygon fill="#000000" stroke="none" points="2065.5,-132 2065.5,-134 2188.5,-134 2188.5,-132 2065.5,-132"/>
<polygon fill="#ffff00" stroke="none" points="2065.5,-130 2065.5,-132 2188.5,-132 2188.5,-130 2065.5,-130"/>
<polygon fill="#000000" stroke="none" points="2065.5,-128 2065.5,-130 2188.5,-130 2188.5,-128 2065.5,-128"/>
<text text-anchor="start" x="2086.5" y="-114.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge25" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-202C1985.25,-202.02 2001.24,-204.02 2065,-204"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M1921,-204C1985.01,-204 2000.99,-206 2065,-206"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-206C1984.76,-205.98 2000.75,-207.98 2065,-208"/>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge27" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-178C1985.13,-178 2001.12,-179 2065,-179"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M1921,-180C1985,-180 2001,-181 2065,-181"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-182C1984.88,-182 2000.87,-183 2065,-183"/>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge29" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-155C1984.88,-155 2000.87,-154 2065,-154"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M1921,-157C1985,-157 2001,-156 2065,-156"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-159C1985.13,-159 2001.12,-158 2065,-158"/>
</g>
<!-- X3&#45;&#45;W3 -->
<g id="edge31" class="edge">
<title>X3:e&#45;&#45;W3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-132C1984.64,-132.03 2000.62,-129.03 2065,-129"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1921,-134C1985.01,-134 2000.99,-131 2065,-131"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1921,-136C1985.38,-135.97 2001.36,-132.97 2065,-133"/>
</g>
<!-- __F_1 -->
<g id="node12" class="node">
<title>__F_1</title>
<polygon fill="#ffffff" stroke="black" points="2420,-203.5 2332,-203.5 2332,-180.5 2420,-180.5 2420,-203.5"/>
<polygon fill="none" stroke="black" points="2332,-180 2332,-203 2383,-203 2383,-180 2332,-180"/>
<text text-anchor="start" x="2336" y="-187.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-180 2383,-203 2412,-203 2412,-180 2383,-180"/>
<text text-anchor="start" x="2387" y="-187.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-180 2412,-203 2420,-203 2420,-180 2412,-180"/>
<polygon fill="none" stroke="black" points="2412,-180 2412,-203 2420,-203 2420,-180 2412,-180"/>
</g>
<!-- X4 -->
<g id="node16" class="node">
<title>X4</title>
<polygon fill="#ffffff" stroke="black" points="2803,-261 2564,-261 2564,-123 2803,-123 2803,-261"/>
<polygon fill="none" stroke="black" points="2564.5,-238 2564.5,-261 2803.5,-261 2803.5,-238 2564.5,-238"/>
<text text-anchor="start" x="2675.5" y="-245.8" font-family="arial" font-size="14.00">X4</text>
<polygon fill="none" stroke="black" points="2564.5,-215 2564.5,-238 2726.5,-238 2726.5,-215 2564.5,-215"/>
<text text-anchor="start" x="2568.5" y="-222.8" font-family="arial" font-size="14.00">Screw terminal connector</text>
<polygon fill="none" stroke="black" points="2726.5,-215 2726.5,-238 2765.5,-238 2765.5,-215 2726.5,-215"/>
<text text-anchor="start" x="2730.5" y="-222.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="2765.5,-215 2765.5,-238 2795.5,-238 2795.5,-215 2765.5,-215"/>
<text text-anchor="start" x="2769.5" y="-222.8" font-family="arial" font-size="14.00">GN</text>
<polygon fill="#00ff00" stroke="none" points="2795.5,-215 2795.5,-238 2803.5,-238 2803.5,-215 2795.5,-215"/>
<polygon fill="none" stroke="black" points="2795.5,-215 2795.5,-238 2803.5,-238 2803.5,-215 2795.5,-215"/>
<polygon fill="none" stroke="black" points="2564.5,-192 2564.5,-215 2681.5,-215 2681.5,-192 2564.5,-192"/>
<text text-anchor="start" x="2619" y="-199.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="2681.5,-192 2681.5,-215 2803.5,-215 2803.5,-192 2681.5,-192"/>
<text text-anchor="start" x="2735.5" y="-199.8" font-family="arial" font-size="14.00">W</text>
<polygon fill="none" stroke="black" points="2564.5,-169 2564.5,-192 2681.5,-192 2681.5,-169 2564.5,-169"/>
<text text-anchor="start" x="2619" y="-176.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="2681.5,-169 2681.5,-192 2803.5,-192 2803.5,-169 2681.5,-169"/>
<text text-anchor="start" x="2737.5" y="-176.8" font-family="arial" font-size="14.00">X</text>
<polygon fill="none" stroke="black" points="2564.5,-146 2564.5,-169 2681.5,-169 2681.5,-146 2564.5,-146"/>
<text text-anchor="start" x="2619" y="-153.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="2681.5,-146 2681.5,-169 2803.5,-169 2803.5,-146 2681.5,-146"/>
<text text-anchor="start" x="2737.5" y="-153.8" font-family="arial" font-size="14.00">Y</text>
<polygon fill="none" stroke="black" points="2564.5,-123 2564.5,-146 2681.5,-146 2681.5,-123 2564.5,-123"/>
<text text-anchor="start" x="2619" y="-130.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="none" stroke="black" points="2681.5,-123 2681.5,-146 2803.5,-146 2803.5,-123 2681.5,-123"/>
<text text-anchor="start" x="2738" y="-130.8" font-family="arial" font-size="14.00">Z</text>
</g>
<!-- __F_1&#45;&#45;X4 -->
<g id="edge36" class="edge">
<title>__F_1:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-192C2480.21,-192 2497.64,-181.45 2552.5,-180.13"/>
<polygon fill="#000000" stroke="#000000" points="2552.53,-183.63 2562.49,-180.02 2552.45,-176.64 2552.53,-183.63"/>
</g>
<!-- __F_2 -->
<g id="node13" class="node">
<title>__F_2</title>
<polygon fill="#ffffff" stroke="black" points="2420,-250.5 2332,-250.5 2332,-227.5 2420,-227.5 2420,-250.5"/>
<polygon fill="none" stroke="black" points="2332,-227 2332,-250 2383,-250 2383,-227 2332,-227"/>
<text text-anchor="start" x="2336" y="-234.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-227 2383,-250 2412,-250 2412,-227 2383,-227"/>
<text text-anchor="start" x="2387" y="-234.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-227 2412,-250 2420,-250 2420,-227 2412,-227"/>
<polygon fill="none" stroke="black" points="2412,-227 2412,-250 2420,-250 2420,-227 2412,-227"/>
</g>
<!-- __F_2&#45;&#45;X4 -->
<g id="edge37" class="edge">
<title>__F_2:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-239C2481.88,-239 2496.45,-208.11 2552.6,-204.37"/>
<polygon fill="#000000" stroke="#000000" points="2552.61,-207.87 2562.49,-204.05 2552.38,-200.87 2552.61,-207.87"/>
</g>
<!-- __F_3 -->
<g id="node14" class="node">
<title>__F_3</title>
<polygon fill="#ffffff" stroke="black" points="2420,-109.5 2332,-109.5 2332,-86.5 2420,-86.5 2420,-109.5"/>
<polygon fill="none" stroke="black" points="2332,-86 2332,-109 2383,-109 2383,-86 2332,-86"/>
<text text-anchor="start" x="2336" y="-93.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-86 2383,-109 2412,-109 2412,-86 2383,-86"/>
<text text-anchor="start" x="2387" y="-93.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-86 2412,-109 2420,-109 2420,-86 2412,-86"/>
<polygon fill="none" stroke="black" points="2412,-86 2412,-109 2420,-109 2420,-86 2412,-86"/>
</g>
<!-- __F_3&#45;&#45;X4 -->
<g id="edge38" class="edge">
<title>__F_3:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-98C2481.98,-98 2496.37,-129.77 2552.59,-133.62"/>
<polygon fill="#000000" stroke="#000000" points="2552.38,-137.11 2562.49,-133.95 2552.61,-130.12 2552.38,-137.11"/>
</g>
<!-- __F_4 -->
<g id="node15" class="node">
<title>__F_4</title>
<polygon fill="#ffffff" stroke="black" points="2420,-156.5 2332,-156.5 2332,-133.5 2420,-133.5 2420,-156.5"/>
<polygon fill="none" stroke="black" points="2332,-133 2332,-156 2383,-156 2383,-133 2332,-133"/>
<text text-anchor="start" x="2336" y="-140.8" font-family="arial" font-size="14.00">Ferrule</text>
<polygon fill="none" stroke="black" points="2383,-133 2383,-156 2412,-156 2412,-133 2383,-133"/>
<text text-anchor="start" x="2387" y="-140.8" font-family="arial" font-size="14.00">GY</text>
<polygon fill="#999999" stroke="none" points="2412,-133 2412,-156 2420,-156 2420,-133 2412,-133"/>
<polygon fill="none" stroke="black" points="2412,-133 2412,-156 2420,-156 2420,-133 2412,-133"/>
</g>
<!-- __F_4&#45;&#45;X4 -->
<g id="edge39" class="edge">
<title>__F_4:e&#45;&#45;X4:w</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M2420,-145C2480.21,-145 2497.64,-155.55 2552.5,-156.87"/>
<polygon fill="#000000" stroke="#000000" points="2552.45,-160.36 2562.49,-156.98 2552.53,-153.37 2552.45,-160.36"/>
</g>
<!-- W1&#45;&#45;__S_1 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;__S_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-172C469.53,-173.28 482.21,-206.28 546,-205"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M402,-174C467.66,-174 480.34,-207 546,-207"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-176C465.79,-174.72 478.47,-207.72 546,-209"/>
</g>
<!-- W1&#45;&#45;__S_2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;__S_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-147C467.34,-147.36 482.96,-158.36 546,-158"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M402,-149C466.19,-149 481.81,-160 546,-160"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-151C465.04,-150.64 480.66,-161.64 546,-162"/>
</g>
<!-- W1&#45;&#45;S1 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;S1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-122C465.04,-122.36 480.66,-111.36 546,-111"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M402,-124C466.19,-124 481.81,-113 546,-113"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-126C467.34,-125.64 482.96,-114.64 546,-115"/>
</g>
<!-- W1&#45;&#45;__S_3 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;__S_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-97C465.79,-98.28 478.47,-65.28 546,-64"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M402,-99C467.66,-99 480.34,-66 546,-66"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M402,-101C469.53,-99.72 482.21,-66.72 546,-68"/>
</g>
<!-- W2&#45;&#45;__S_4 -->
<g id="edge10" class="edge">
<title>W2:e&#45;&#45;__S_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-183C924.87,-184.55 935.03,-228.55 1000,-227"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M856,-185C922.92,-185 933.08,-229 1000,-229"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-187C920.97,-185.45 931.13,-229.45 1000,-231"/>
</g>
<!-- W2&#45;&#45;__S_5 -->
<g id="edge12" class="edge">
<title>W2:e&#45;&#45;__S_5:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-158C922.41,-158.9 936.93,-180.9 1000,-180"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M856,-160C920.74,-160 935.26,-182 1000,-182"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-162C919.07,-161.1 933.59,-183.1 1000,-184"/>
</g>
<!-- W2&#45;&#45;__S_6 -->
<g id="edge14" class="edge">
<title>W2:e&#45;&#45;__S_6:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-133C920,-133 936,-133 1000,-133"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M856,-135C920,-135 936,-135 1000,-135"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-137C920,-137 936,-137 1000,-137"/>
</g>
<!-- W2&#45;&#45;__S_7 -->
<g id="edge16" class="edge">
<title>W2:e&#45;&#45;__S_7:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-108C919.07,-108.9 933.59,-86.9 1000,-86"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M856,-110C920.74,-110 935.26,-88 1000,-88"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M856,-112C922.41,-111.1 936.93,-89.1 1000,-90"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge18" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-205C1415.64,-205.03 1431.62,-202.03 1496,-202"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M1352,-207C1416.01,-207 1431.99,-204 1496,-204"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-209C1416.38,-208.97 1432.36,-205.97 1496,-206"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge20" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-180C1415.76,-180.02 1431.75,-178.02 1496,-178"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M1352,-182C1416.01,-182 1431.99,-180 1496,-180"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-184C1416.25,-183.98 1432.24,-181.98 1496,-182"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge22" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-155C1416,-155 1432,-155 1496,-155"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M1352,-157C1416,-157 1432,-157 1496,-157"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-159C1416,-159 1432,-159 1496,-159"/>
</g>
<!-- W21&#45;&#45;X2 -->
<g id="edge24" class="edge">
<title>W21:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-130C1416.25,-130.02 1432.24,-132.02 1496,-132"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M1352,-132C1416.01,-132 1431.99,-134 1496,-134"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1352,-134C1415.76,-133.98 1431.75,-135.98 1496,-136"/>
</g>
<!-- W3&#45;&#45;__F_1 -->
<g id="edge26" class="edge">
<title>W3:e&#45;&#45;__F_1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-204C2250.96,-204.52 2266.35,-190.52 2332,-190"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M2188,-206C2252.3,-206 2267.7,-192 2332,-192"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-208C2253.65,-207.48 2269.04,-193.48 2332,-194"/>
</g>
<!-- W3&#45;&#45;__F_2 -->
<g id="edge28" class="edge">
<title>W3:e&#45;&#45;__F_2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-179C2258.99,-180.79 2264.99,-238.79 2332,-237"/>
<path fill="none" stroke="#895956" stroke-width="2" d="M2188,-181C2257,-181 2263,-239 2332,-239"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-183C2255.01,-181.21 2261.01,-239.21 2332,-241"/>
</g>
<!-- W3&#45;&#45;__F_3 -->
<g id="edge30" class="edge">
<title>W3:e&#45;&#45;__F_3:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-154C2255.01,-155.79 2261.01,-97.79 2332,-96"/>
<path fill="none" stroke="#00ff00" stroke-width="2" d="M2188,-156C2257,-156 2263,-98 2332,-98"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-158C2258.99,-156.21 2264.99,-98.21 2332,-100"/>
</g>
<!-- W3&#45;&#45;__F_4 -->
<g id="edge32" class="edge">
<title>W3:e&#45;&#45;__F_4:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-129C2253.65,-129.52 2269.04,-143.52 2332,-143"/>
<path fill="none" stroke="#ffff00" stroke-width="2" d="M2188,-131C2252.3,-131 2267.7,-145 2332,-145"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M2188,-133C2250.96,-132.48 2266.35,-146.48 2332,-147"/>
</g>
<!-- __WIRE_1&#45;&#45;X2 -->
<g id="edge34" class="edge">
<title>__WIRE_1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M1350.5,-20C1434.08,-22.31 1416.37,-134.31 1496,-132"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1350.5,-22C1432.11,-22 1414.39,-134 1496,-134"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M1350.5,-24C1430.13,-21.69 1412.42,-133.69 1496,-136"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 49 KiB

55
examples/ex14.yml Normal file
View File

@ -0,0 +1,55 @@
connectors:
JSTMALE: &JST_SM # use generic names here, assign designators at generation time
type: JST SM
subtype: male
pincount: 4
pinlabels: [A, B, C, D]
JSTFEMALE:
<<: *JST_SM # easily create JSTMALE's matching connector
subtype: female
X4: # this connector is only used once, use fixed designator here already
type: Screw terminal connector
pincount: 4
color: GN
pinlabels: [W, X, Y, Z]
S:
style: simple
type: Splice
color: CU
F:
style: simple
type: Ferrule
color: GY
cables:
CABLE:
wirecount: 4
color_code: DIN
length: 0.1
WIRE:
wirecount: 1
colors: [BK]
length: 0.1
connections:
-
- JSTMALE.X1: [4-1] # use `.` syntax to generate a new instance of JSTMALE, named X1
- CABLE.W1: [1-4] # same syntax for cables
- [S., S., S.S1, S.] # splice W1 and W2 together; only wire #3 needs a user-defined designator
- CABLE.W2: [1-4]
- S. # test shorthand, auto-get required number of ferrules from context
- CABLE.W21: [1-4]
- JSTFEMALE.X2: [1-4]
- <=> # mate X2 and X3
- JSTMALE.X3: [1-4]
- CABLE.W3: [1-4]
- [F., F., F., F.]
- --> # insert ferrules into screw terminal connector
- X4: [2,1,4,3] # X4 does not require auto-generation, thus no `.` syntax here
-
- S1: [1] # reuse previously generated splice
# TODO: Make it work with `- F1` only, making pin 1 is implied
- WIRE.: [1] # We don't care about a simple wire's designator, auto-generate please!
# TODO: Make it work with `- W.W4: 1`, dropping the need for `[]`
- X2: [4]

View File

@ -60,3 +60,27 @@
[Source](ex10.yml) - [Bill of Materials](ex10.bom.tsv)
## Example 11
![](ex11.png)
[Source](ex11.yml) - [Bill of Materials](ex11.bom.tsv)
## Example 12
![](ex12.png)
[Source](ex12.yml) - [Bill of Materials](ex12.bom.tsv)
## Example 13
![](ex13.png)
[Source](ex13.yml) - [Bill of Materials](ex13.bom.tsv)
## Example 14
![](ex14.png)
[Source](ex14.yml) - [Bill of Materials](ex14.bom.tsv)

2
pyproject.toml Normal file
View File

@ -0,0 +1,2 @@
[tool.isort]
profile = "black"

View File

@ -1,3 +1,4 @@
click
graphviz
pillow
pyyaml

View File

@ -1,47 +1,45 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
from setuptools import setup, find_packages
from pathlib import Path
from src.wireviz import __version__, CMD_NAME, APP_URL
from setuptools import find_packages, setup
# Utility function to read the README file.
# Used for the long_description. It's nice, because now 1) we have a top level
# README file and 2) it's easier to type in the README file than to put a raw
# string in below ...
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
from src.wireviz import APP_URL, CMD_NAME, __version__
README_PATH = Path(__file__).parent / "docs" / "README.md"
setup(
name=CMD_NAME,
version=__version__,
author='Daniel Rojas',
author="Daniel Rojas",
# author_email='',
description='Easily document cables and wiring harnesses',
long_description=read(os.path.join(os.path.dirname(__file__), 'docs/README.md')),
long_description_content_type='text/markdown',
description="Easily document cables and wiring harnesses",
long_description=open(README_PATH).read(),
long_description_content_type="text/markdown",
install_requires=[
'pyyaml',
'pillow',
'graphviz',
"click",
"pyyaml",
"pillow",
"graphviz",
],
license='GPLv3',
keywords='cable connector hardware harness wiring wiring-diagram wiring-harness',
license="GPLv3",
keywords="cable connector hardware harness wiring wiring-diagram wiring-harness",
url=APP_URL,
package_dir={'': 'src'},
packages=find_packages('src'),
package_dir={"": "src"},
packages=find_packages("src"),
entry_points={
'console_scripts': ['wireviz=wireviz.wireviz:main'],
"console_scripts": [
"wireviz=wireviz.wv_cli:wireviz",
],
},
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Console',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Topic :: Utilities',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
"Development Status :: 4 - Beta",
"Environment :: Console",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Topic :: Utilities",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
],
)

View File

@ -1,47 +1,63 @@
# -*- coding: utf-8 -*-
from typing import Dict, List, Optional, Tuple, Union
from dataclasses import dataclass, field, InitVar
from dataclasses import InitVar, dataclass, field
from enum import Enum, auto
from pathlib import Path
from typing import Dict, List, Optional, Tuple, Union
from wireviz.wv_helper import int2tuple, aspect_ratio
from wireviz.wv_colors import Color, Colors, ColorMode, ColorScheme, COLOR_CODES
from wireviz.wv_colors import COLOR_CODES, Color, ColorMode, Colors, ColorScheme
from wireviz.wv_helper import aspect_ratio, int2tuple
# Each type alias have their legal values described in comments - validation might be implemented in the future
PlainText = str # Text not containing HTML tags nor newlines
Hypertext = str # Text possibly including HTML hyperlinks that are removed in all outputs except HTML output
MultilineHypertext = str # Hypertext possibly also including newlines to break lines in diagram output
MultilineHypertext = (
str # Hypertext possibly also including newlines to break lines in diagram output
)
Designator = PlainText # Case insensitive unique name of connector or cable
# Literal type aliases below are commented to avoid requiring python 3.8
ConnectorMultiplier = PlainText # = Literal['pincount', 'populated']
CableMultiplier = PlainText # = Literal['wirecount', 'terminations', 'length', 'total_length']
ConnectorMultiplier = PlainText # = Literal['pincount', 'populated', 'unpopulated']
CableMultiplier = (
PlainText # = Literal['wirecount', 'terminations', 'length', 'total_length']
)
ImageScale = PlainText # = Literal['false', 'true', 'width', 'height', 'both']
# Type combinations
Pin = Union[int, PlainText] # Pin identifier
PinIndex = int # Zero-based pin index
Wire = Union[int, PlainText] # Wire number or Literal['s'] for shield
NoneOrMorePinIndices = Union[PinIndex, Tuple[PinIndex, ...], None] # None, one, or a tuple of zero-based pin indices
NoneOrMorePins = Union[
Pin, Tuple[Pin, ...], None
] # None, one, or a tuple of pin identifiers
NoneOrMorePinIndices = Union[
PinIndex, Tuple[PinIndex, ...], None
] # None, one, or a tuple of zero-based pin indices
OneOrMoreWires = Union[Wire, Tuple[Wire, ...]] # One or a tuple of wires
# Metadata can contain whatever is needed by the HTML generation/template.
MetadataKeys = PlainText # Literal['title', 'description', 'notes', ...]
Side = Enum("Side", "LEFT RIGHT")
class Metadata(dict):
pass
@dataclass
class Options:
fontname: PlainText = 'arial'
bgcolor: Color = 'WH'
bgcolor_node: Optional[Color] = 'WH'
fontname: PlainText = "arial"
bgcolor: Color = "WH"
bgcolor_node: Optional[Color] = "WH"
bgcolor_connector: Optional[Color] = None
bgcolor_cable: Optional[Color] = None
bgcolor_bundle: Optional[Color] = None
color_mode: ColorMode = 'SHORT'
color_mode: ColorMode = "SHORT"
mini_bom_mode: bool = True
template_separator: str = "."
def __post_init__(self):
if not self.bgcolor_node:
@ -62,7 +78,6 @@ class Tweak:
@dataclass
class Image:
gv_dir: InitVar[Path] # Directory of .gv file injected as context during parsing
# Attributes of the image object <img>:
src: str
scale: Optional[ImageScale] = None
@ -75,26 +90,29 @@ class Image:
caption: Optional[MultilineHypertext] = None
# See also HTML doc at https://graphviz.org/doc/info/shapes.html#html
def __post_init__(self, gv_dir):
def __post_init__(self):
if self.fixedsize is None:
# Default True if any dimension specified unless self.scale also is specified.
self.fixedsize = (self.width or self.height) and self.scale is None
if self.scale is None:
self.scale = "false" if not self.width and not self.height \
else "both" if self.width and self.height \
else "true" # When only one dimension is specified.
if not self.width and not self.height:
self.scale = "false"
elif self.width and self.height:
self.scale = "both"
else:
self.scale = "true" # When only one dimension is specified.
if self.fixedsize:
# If only one dimension is specified, compute the other
# because Graphviz requires both when fixedsize=True.
if self.height:
if not self.width:
self.width = self.height * aspect_ratio(gv_dir.joinpath(self.src))
self.width = self.height * aspect_ratio(self.src)
else:
if self.width:
self.height = self.width / aspect_ratio(gv_dir.joinpath(self.src))
self.height = self.width / aspect_ratio(self.src)
@dataclass
@ -113,7 +131,10 @@ class AdditionalComponent:
@property
def description(self) -> str:
return self.type.rstrip() + (f', {self.subtype.rstrip()}' if self.subtype else '')
t = self.type.rstrip()
st = f", {self.subtype.rstrip()}" if self.subtype else ""
t = t + st
return t
@dataclass
@ -140,7 +161,6 @@ class Connector:
show_name: Optional[bool] = None
show_pincount: Optional[bool] = None
hide_disconnected_pins: bool = False
autogenerate: bool = False
loops: List[List[Pin]] = field(default_factory=list)
ignore_in_bom: bool = False
additional_components: List[AdditionalComponent] = field(default_factory=list)
@ -154,52 +174,72 @@ class Connector:
self.ports_right = False
self.visible_pins = {}
if self.style == 'simple':
if self.style == "simple":
if self.pincount and self.pincount > 1:
raise Exception('Connectors with style set to simple may only have one pin')
raise Exception(
"Connectors with style set to simple may only have one pin"
)
self.pincount = 1
if not self.pincount:
self.pincount = max(len(self.pins), len(self.pinlabels), len(self.pincolors))
self.pincount = max(
len(self.pins), len(self.pinlabels), len(self.pincolors)
)
if not self.pincount:
raise Exception('You need to specify at least one, pincount, pins, pinlabels, or pincolors')
raise Exception(
"You need to specify at least one, pincount, pins, pinlabels, or pincolors"
)
# create default list for pins (sequential) if not specified
if not self.pins:
self.pins = list(range(1, self.pincount + 1))
if len(self.pins) != len(set(self.pins)):
raise Exception('Pins are not unique')
raise Exception("Pins are not unique")
if self.show_name is None:
self.show_name = not self.autogenerate # hide auto-generated designators by default
# hide designators for simple and for auto-generated connectors by default
self.show_name = self.style != "simple" and self.name[0:2] != "__"
if self.show_pincount is None:
self.show_pincount = self.style != 'simple' # hide pincount for simple (1 pin) connectors by default
# hide pincount for simple (1 pin) connectors by default
self.show_pincount = self.style != "simple"
for loop in self.loops:
# TODO: check that pins to connect actually exist
# TODO: allow using pin labels in addition to pin numbers, just like when defining regular connections
# TODO: include properties of wire used to create the loop
if len(loop) != 2:
raise Exception('Loops must be between exactly two pins!')
raise Exception("Loops must be between exactly two pins!")
for pin in loop:
if pin not in self.pins:
raise Exception(f'Unknown loop pin "{pin}" for connector "{self.name}"!')
# Make sure loop connected pins are not hidden.
self.activate_pin(pin)
for i, item in enumerate(self.additional_components):
if isinstance(item, dict):
self.additional_components[i] = AdditionalComponent(**item)
def activate_pin(self, pin: Pin) -> None:
def activate_pin(self, pin: Pin, side: Side) -> None:
self.visible_pins[pin] = True
if side == Side.LEFT:
self.ports_left = True
elif side == Side.RIGHT:
self.ports_right = True
def get_qty_multiplier(self, qty_multiplier: Optional[ConnectorMultiplier]) -> int:
if not qty_multiplier:
return 1
elif qty_multiplier == 'pincount':
elif qty_multiplier == "pincount":
return self.pincount
elif qty_multiplier == 'populated':
elif qty_multiplier == "populated":
return sum(self.visible_pins.values())
elif qty_multiplier == 'unpopulated':
return max(0, self.pincount - sum(self.visible_pins.values()))
else:
raise ValueError(f'invalid qty multiplier parameter for connector {qty_multiplier}')
raise ValueError(
f"invalid qty multiplier parameter for connector {qty_multiplier}"
)
@dataclass
@ -227,7 +267,7 @@ class Cable:
colors: List[Colors] = field(default_factory=list)
wirelabels: List[Wire] = field(default_factory=list)
color_code: Optional[ColorScheme] = None
show_name: bool = True
show_name: Optional[bool] = None
show_wirecount: bool = True
show_wirenumbers: Optional[bool] = None
ignore_in_bom: bool = False
@ -240,50 +280,59 @@ class Cable:
if isinstance(self.gauge, str): # gauge and unit specified
try:
g, u = self.gauge.split(' ')
g, u = self.gauge.split(" ")
except Exception:
raise Exception(f'Cable {self.name} gauge={self.gauge} - Gauge must be a number, or number and unit separated by a space')
raise Exception(
f"Cable {self.name} gauge={self.gauge} - Gauge must be a number, or number and unit separated by a space"
)
self.gauge = g
if self.gauge_unit is not None:
print(f'Warning: Cable {self.name} gauge_unit={self.gauge_unit} is ignored because its gauge contains {u}')
if u.upper() == 'AWG':
print(
f"Warning: Cable {self.name} gauge_unit={self.gauge_unit} is ignored because its gauge contains {u}"
)
if u.upper() == "AWG":
self.gauge_unit = u.upper()
else:
self.gauge_unit = u.replace('mm2', 'mm\u00B2')
self.gauge_unit = u.replace("mm2", "mm\u00B2")
elif self.gauge is not None: # gauge specified, assume mm2
if self.gauge_unit is None:
self.gauge_unit = 'mm\u00B2'
self.gauge_unit = "mm\u00B2"
else:
pass # gauge not specified
if isinstance(self.length, str): # length and unit specified
try:
L, u = self.length.split(' ')
L, u = self.length.split(" ")
L = float(L)
except Exception:
raise Exception(f'Cable {self.name} length={self.length} - Length must be a number, or number and unit separated by a space')
raise Exception(
f"Cable {self.name} length={self.length} - Length must be a number, or number and unit separated by a space"
)
self.length = L
if self.length_unit is not None:
print(f'Warning: Cable {self.name} length_unit={self.length_unit} is ignored because its length contains {u}')
print(
f"Warning: Cable {self.name} length_unit={self.length_unit} is ignored because its length contains {u}"
)
self.length_unit = u
elif not any(isinstance(self.length, t) for t in [int, float]):
raise Exception(f'Cable {self.name} length has a non-numeric value')
raise Exception(f"Cable {self.name} length has a non-numeric value")
elif self.length_unit is None:
self.length_unit = 'm'
self.length_unit = "m"
self.connections = []
if self.wirecount: # number of wires explicitly defined
if self.colors: # use custom color palette (partly or looped if needed)
pass
elif self.color_code: # use standard color palette (partly or looped if needed)
elif self.color_code:
# use standard color palette (partly or looped if needed)
if self.color_code not in COLOR_CODES:
raise Exception('Unknown color code')
raise Exception("Unknown color code")
self.colors = COLOR_CODES[self.color_code]
else: # no colors defined, add dummy colors
self.colors = [''] * self.wirecount
self.colors = [""] * self.wirecount
# make color code loop around if more wires than colors
if self.wirecount > len(self.colors):
@ -293,12 +342,16 @@ class Cable:
self.colors = self.colors[: self.wirecount]
else: # wirecount implicit in length of color list
if not self.colors:
raise Exception('Unknown number of wires. Must specify wirecount or colors (implicit length)')
raise Exception(
"Unknown number of wires. Must specify wirecount or colors (implicit length)"
)
self.wirecount = len(self.colors)
if self.wirelabels:
if self.shield and 's' in self.wirelabels:
raise Exception('"s" may not be used as a wire label for a shielded cable.')
if self.shield and "s" in self.wirelabels:
raise Exception(
'"s" may not be used as a wire label for a shielded cable.'
)
# if lists of part numbers are provided check this is a bundle and that it matches the wirecount.
for idfield in [self.manufacturer, self.mpn, self.supplier, self.spn, self.pn]:
@ -306,48 +359,79 @@ class Cable:
if self.category == "bundle":
# check the length
if len(idfield) != self.wirecount:
raise Exception('lists of part data must match wirecount')
raise Exception("lists of part data must match wirecount")
else:
raise Exception('lists of part data are only supported for bundles')
raise Exception("lists of part data are only supported for bundles")
if self.show_name is None:
# hide designators for auto-generated cables by default
self.show_name = self.name[0:2] != "__"
# by default, show wire numbers for cables, hide for bundles
if self.show_wirenumbers is None:
self.show_wirenumbers = self.category != 'bundle'
# by default, show wire numbers for cables, hide for bundles
self.show_wirenumbers = self.category != "bundle"
for i, item in enumerate(self.additional_components):
if isinstance(item, dict):
self.additional_components[i] = AdditionalComponent(**item)
# The *_pin arguments accept a tuple, but it seems not in use with the current code.
def connect(self, from_name: Optional[Designator], from_pin: NoneOrMorePinIndices, via_wire: OneOrMoreWires,
to_name: Optional[Designator], to_pin: NoneOrMorePinIndices) -> None:
def connect(
self,
from_name: Optional[Designator],
from_pin: NoneOrMorePinIndices,
via_wire: OneOrMoreWires,
to_name: Optional[Designator],
to_pin: NoneOrMorePinIndices,
) -> None:
from_pin = int2tuple(from_pin)
via_wire = int2tuple(via_wire)
to_pin = int2tuple(to_pin)
if len(from_pin) != len(to_pin):
raise Exception('from_pin must have the same number of elements as to_pin')
raise Exception("from_pin must have the same number of elements as to_pin")
for i, _ in enumerate(from_pin):
self.connections.append(Connection(from_name, from_pin[i], via_wire[i], to_name, to_pin[i]))
self.connections.append(
Connection(from_name, from_pin[i], via_wire[i], to_name, to_pin[i])
)
def get_qty_multiplier(self, qty_multiplier: Optional[CableMultiplier]) -> float:
if not qty_multiplier:
return 1
elif qty_multiplier == 'wirecount':
elif qty_multiplier == "wirecount":
return self.wirecount
elif qty_multiplier == 'terminations':
elif qty_multiplier == "terminations":
return len(self.connections)
elif qty_multiplier == 'length':
elif qty_multiplier == "length":
return self.length
elif qty_multiplier == 'total_length':
elif qty_multiplier == "total_length":
return self.length * self.wirecount
else:
raise ValueError(f'invalid qty multiplier parameter for cable {qty_multiplier}')
raise ValueError(
f"invalid qty multiplier parameter for cable {qty_multiplier}"
)
@dataclass
class Connection:
from_name: Optional[Designator]
from_port: Optional[PinIndex]
from_pin: Optional[Pin]
via_port: Wire
to_name: Optional[Designator]
to_port: Optional[PinIndex]
to_pin: Optional[Pin]
@dataclass
class MatePin:
from_name: Designator
from_pin: Pin
to_name: Designator
to_pin: Pin
shape: str
@dataclass
class MateComponent:
from_name: Designator
to_name: Designator
shape: str

View File

@ -1,25 +1,57 @@
# -*- coding: utf-8 -*-
from graphviz import Graph
from collections import Counter
from typing import Any, List, Union
from dataclasses import dataclass
from pathlib import Path
from itertools import zip_longest
import re
from collections import Counter
from dataclasses import dataclass
from itertools import zip_longest
from pathlib import Path
from typing import Any, List, Union
from wireviz import wv_colors, __version__, APP_NAME, APP_URL
from wireviz.DataClasses import Metadata, Options, Tweak, Connector, Cable
from graphviz import Graph
from wireviz import APP_NAME, APP_URL, __version__, wv_colors
from wireviz.DataClasses import (
Cable,
Connector,
MateComponent,
MatePin,
Metadata,
Options,
Tweak,
Side,
)
from wireviz.svgembed import embed_svg_images_file
from wireviz.wv_bom import (
HEADER_MPN,
HEADER_PN,
HEADER_SPN,
bom_list,
component_table_entry,
generate_bom,
get_additional_component_table,
pn_info_string,
)
from wireviz.wv_colors import get_color_hex, translate_color
from wireviz.wv_gv_html import nested_html_table, \
html_bgcolor_attr, html_bgcolor, html_colorbar, \
html_image, html_caption, remove_links, html_line_breaks
from wireviz.wv_bom import pn_info_string, component_table_entry, \
get_additional_component_table, bom_list, generate_bom, \
HEADER_PN, HEADER_MPN, HEADER_SPN
from wireviz.wv_gv_html import (
html_bgcolor,
html_bgcolor_attr,
html_caption,
html_colorbar,
html_image,
html_line_breaks,
nested_html_table,
remove_links,
)
from wireviz.wv_helper import (
awg_equiv,
flatten2d,
is_arrow,
mm2_equiv,
open_file_read,
open_file_write,
tuplelist2tsv,
)
from wireviz.wv_html import generate_html_output
from wireviz.wv_helper import awg_equiv, mm2_equiv, tuplelist2tsv, flatten2d, \
open_file_read, open_file_write
@dataclass
@ -31,6 +63,7 @@ class Harness:
def __post_init__(self):
self.connectors = {}
self.cables = {}
self.mates = []
self._bom = [] # Internal Cache for generated bom
self.additional_bom_items = []
@ -40,10 +73,26 @@ class Harness:
def add_cable(self, name: str, *args, **kwargs) -> None:
self.cables[name] = Cable(name, *args, **kwargs)
def add_mate_pin(self, from_name, from_pin, to_name, to_pin, arrow_type) -> None:
self.mates.append(MatePin(from_name, from_pin, to_name, to_pin, arrow_type))
self.connectors[from_name].activate_pin(from_pin, Side.RIGHT)
self.connectors[to_name].activate_pin(to_pin, Side.LEFT)
def add_mate_component(self, from_name, to_name, arrow_type) -> None:
self.mates.append(MateComponent(from_name, to_name, arrow_type))
def add_bom_item(self, item: dict) -> None:
self.additional_bom_items.append(item)
def connect(self, from_name: str, from_pin: (int, str), via_name: str, via_wire: (int, str), to_name: str, to_pin: (int, str)) -> None:
def connect(
self,
from_name: str,
from_pin: (int, str),
via_name: str,
via_wire: (int, str),
to_name: str,
to_pin: (int, str),
) -> None:
# check from and to connectors
for (name, pin) in zip([from_name, to_name], [from_pin, to_pin]):
if name is not None and name in self.connectors:
@ -51,11 +100,13 @@ class Harness:
# check if provided name is ambiguous
if pin in connector.pins and pin in connector.pinlabels:
if connector.pins.index(pin) != connector.pinlabels.index(pin):
raise Exception(f'{name}:{pin} is defined both in pinlabels and pins, for different pins.')
raise Exception(
f"{name}:{pin} is defined both in pinlabels and pins, for different pins."
)
# TODO: Maybe issue a warning if present in both lists but referencing the same pin?
if pin in connector.pinlabels:
if connector.pinlabels.count(pin) > 1:
raise Exception(f'{name}:{pin} is defined more than once.')
raise Exception(f"{name}:{pin} is defined more than once.")
index = connector.pinlabels.index(pin)
pin = connector.pins[index] # map pin name to pin number
if name == from_name:
@ -63,7 +114,7 @@ class Harness:
if name == to_name:
to_pin = pin
if not pin in connector.pins:
raise Exception(f'{name}:{pin} not found.')
raise Exception(f"{name}:{pin} not found.")
# check via cable
if via_name in self.cables:
@ -71,51 +122,56 @@ class Harness:
# check if provided name is ambiguous
if via_wire in cable.colors and via_wire in cable.wirelabels:
if cable.colors.index(via_wire) != cable.wirelabels.index(via_wire):
raise Exception(f'{via_name}:{via_wire} is defined both in colors and wirelabels, for different wires.')
raise Exception(
f"{via_name}:{via_wire} is defined both in colors and wirelabels, for different wires."
)
# TODO: Maybe issue a warning if present in both lists but referencing the same wire?
if via_wire in cable.colors:
if cable.colors.count(via_wire) > 1:
raise Exception(f'{via_name}:{via_wire} is used for more than one wire.')
via_wire = cable.colors.index(via_wire) + 1 # list index starts at 0, wire IDs start at 1
raise Exception(
f"{via_name}:{via_wire} is used for more than one wire."
)
# list index starts at 0, wire IDs start at 1
via_wire = cable.colors.index(via_wire) + 1
elif via_wire in cable.wirelabels:
if cable.wirelabels.count(via_wire) > 1:
raise Exception(f'{via_name}:{via_wire} is used for more than one wire.')
via_wire = cable.wirelabels.index(via_wire) + 1 # list index starts at 0, wire IDs start at 1
raise Exception(
f"{via_name}:{via_wire} is used for more than one wire."
)
via_wire = (
cable.wirelabels.index(via_wire) + 1
) # list index starts at 0, wire IDs start at 1
from_pin_id = self.connectors[from_name].pins.index(from_pin) if from_pin is not None else None
to_pin_id = self.connectors[to_name].pins.index(to_pin) if to_pin is not None else None
self.cables[via_name].connect(from_name, from_pin_id, via_wire, to_name, to_pin_id)
# perform the actual connection
self.cables[via_name].connect(from_name, from_pin, via_wire, to_name, to_pin)
if from_name in self.connectors:
self.connectors[from_name].activate_pin(from_pin)
self.connectors[from_name].activate_pin(from_pin, Side.RIGHT)
if to_name in self.connectors:
self.connectors[to_name].activate_pin(to_pin)
self.connectors[to_name].activate_pin(to_pin, Side.LEFT)
def create_graph(self) -> Graph:
dot = Graph()
dot.body.append(f'// Graph generated by {APP_NAME} {__version__}\n')
dot.body.append(f'// {APP_URL}\n')
dot.attr('graph', rankdir='LR',
ranksep='2',
dot.body.append(f"// Graph generated by {APP_NAME} {__version__}\n")
dot.body.append(f"// {APP_URL}\n")
dot.attr(
"graph",
rankdir="LR",
ranksep="2",
bgcolor=wv_colors.translate_color(self.options.bgcolor, "HEX"),
nodesep='0.33',
fontname=self.options.fontname)
dot.attr('node',
shape='none',
width='0', height='0', margin='0', # Actual size of the node is entirely determined by the label.
style='filled',
nodesep="0.33",
fontname=self.options.fontname,
)
dot.attr(
"node",
shape="none",
width="0",
height="0",
margin="0", # Actual size of the node is entirely determined by the label.
style="filled",
fillcolor=wv_colors.translate_color(self.options.bgcolor_node, "HEX"),
fontname=self.options.fontname)
dot.attr('edge', style='bold',
fontname=self.options.fontname)
# prepare ports on connectors depending on which side they will connect
for _, cable in self.cables.items():
for connection_color in cable.connections:
if connection_color.from_port is not None: # connect to left
self.connectors[connection_color.from_name].ports_right = True
if connection_color.to_port is not None: # connect to right
self.connectors[connection_color.to_name].ports_left = True
fontname=self.options.fontname,
)
dot.attr("edge", style="bold", fontname=self.options.fontname)
for connector in self.connectors.values():
@ -124,7 +180,7 @@ class Harness:
connector.ports_left = True # Use left side pins.
html = []
# fmt: off
rows = [[f'{html_bgcolor(connector.bgcolor_title)}{remove_links(connector.name)}'
if connector.show_name else None],
[pn_info_string(HEADER_PN, None, remove_links(connector.pn)),
@ -138,78 +194,106 @@ class Harness:
'<!-- connector table -->' if connector.style != 'simple' else None,
[html_image(connector.image)],
[html_caption(connector.image)]]
# fmt: on
rows.extend(get_additional_component_table(self, connector))
rows.append([html_line_breaks(connector.notes)])
html.extend(nested_html_table(rows, html_bgcolor_attr(connector.bgcolor)))
if connector.style != 'simple':
if connector.style != "simple":
pinhtml = []
pinhtml.append('<table border="0" cellspacing="0" cellpadding="3" cellborder="1">')
pinhtml.append(
'<table border="0" cellspacing="0" cellpadding="3" cellborder="1">'
)
for pinindex, (pinname, pinlabel, pincolor) in enumerate(zip_longest(connector.pins, connector.pinlabels, connector.pincolors)):
if connector.hide_disconnected_pins and not connector.visible_pins.get(pinname, False):
for pinindex, (pinname, pinlabel, pincolor) in enumerate(
zip_longest(
connector.pins, connector.pinlabels, connector.pincolors
)
):
if (
connector.hide_disconnected_pins
and not connector.visible_pins.get(pinname, False)
):
continue
pinhtml.append(' <tr>')
pinhtml.append(" <tr>")
if connector.ports_left:
pinhtml.append(f' <td port="p{pinindex+1}l">{pinname}</td>')
if pinlabel:
pinhtml.append(f' <td>{pinlabel}</td>')
pinhtml.append(f" <td>{pinlabel}</td>")
if connector.pincolors:
if pincolor in wv_colors._color_hex.keys():
# fmt: off
pinhtml.append(f' <td sides="tbl">{translate_color(pincolor, self.options.color_mode)}</td>')
pinhtml.append( ' <td sides="tbr">')
pinhtml.append( ' <table border="0" cellborder="1"><tr>')
pinhtml.append(f' <td bgcolor="{wv_colors.translate_color(pincolor, "HEX")}" width="8" height="8" fixedsize="true"></td>')
pinhtml.append( ' </tr></table>')
pinhtml.append( ' </td>')
# fmt: on
else:
pinhtml.append(' <td colspan="2"></td>')
if connector.ports_right:
pinhtml.append(f' <td port="p{pinindex+1}r">{pinname}</td>')
pinhtml.append(' </tr>')
pinhtml.append(" </tr>")
pinhtml.append(' </table>')
pinhtml.append(" </table>")
html = [row.replace('<!-- connector table -->', '\n'.join(pinhtml)) for row in html]
html = [
row.replace("<!-- connector table -->", "\n".join(pinhtml))
for row in html
]
html = '\n'.join(html)
dot.node(connector.name, label=f'<\n{html}\n>', shape='box', style='filled',
fillcolor=translate_color(self.options.bgcolor_connector, "HEX"))
html = "\n".join(html)
dot.node(
connector.name,
label=f"<\n{html}\n>",
shape="box",
style="filled",
fillcolor=translate_color(self.options.bgcolor_connector, "HEX"),
)
if len(connector.loops) > 0:
dot.attr('edge', color='#000000:#ffffff:#000000')
dot.attr("edge", color="#000000:#ffffff:#000000")
if connector.ports_left:
loop_side = 'l'
loop_dir = 'w'
loop_side = "l"
loop_dir = "w"
elif connector.ports_right:
loop_side = 'r'
loop_dir = 'e'
loop_side = "r"
loop_dir = "e"
else:
raise Exception('No side for loops')
raise Exception("No side for loops")
for loop in connector.loops:
dot.edge(f'{connector.name}:p{loop[0]}{loop_side}:{loop_dir}',
f'{connector.name}:p{loop[1]}{loop_side}:{loop_dir}')
dot.edge(
f"{connector.name}:p{loop[0]}{loop_side}:{loop_dir}",
f"{connector.name}:p{loop[1]}{loop_side}:{loop_dir}",
)
# determine if there are double- or triple-colored wires in the harness;
# if so, pad single-color wires to make all wires of equal thickness
pad = any(len(colorstr) > 2 for cable in self.cables.values() for colorstr in cable.colors)
pad = any(
len(colorstr) > 2
for cable in self.cables.values()
for colorstr in cable.colors
)
for cable in self.cables.values():
html = []
awg_fmt = ''
awg_fmt = ""
if cable.show_equiv:
# Only convert units we actually know about, i.e. currently
# mm2 and awg --- other units _are_ technically allowed,
# and passed through as-is.
if cable.gauge_unit =='mm\u00B2':
awg_fmt = f' ({awg_equiv(cable.gauge)} AWG)'
elif cable.gauge_unit.upper() == 'AWG':
awg_fmt = f' ({mm2_equiv(cable.gauge)} mm\u00B2)'
if cable.gauge_unit == "mm\u00B2":
awg_fmt = f" ({awg_equiv(cable.gauge)} AWG)"
elif cable.gauge_unit.upper() == "AWG":
awg_fmt = f" ({mm2_equiv(cable.gauge)} mm\u00B2)"
# fmt: off
rows = [[f'{html_bgcolor(cable.bgcolor_title)}{remove_links(cable.name)}'
if cable.show_name else None],
[pn_info_string(HEADER_PN, None,
@ -230,218 +314,391 @@ class Harness:
'<!-- wire table -->',
[html_image(cable.image)],
[html_caption(cable.image)]]
# fmt: on
rows.extend(get_additional_component_table(self, cable))
rows.append([html_line_breaks(cable.notes)])
html.extend(nested_html_table(rows, html_bgcolor_attr(cable.bgcolor)))
wirehtml = []
wirehtml.append('<table border="0" cellspacing="0" cellborder="0">') # conductor table
wirehtml.append(' <tr><td>&nbsp;</td></tr>')
# conductor table
wirehtml.append('<table border="0" cellspacing="0" cellborder="0">')
wirehtml.append(" <tr><td>&nbsp;</td></tr>")
for i, (connection_color, wirelabel) in enumerate(zip_longest(cable.colors, cable.wirelabels), 1):
wirehtml.append(' <tr>')
wirehtml.append(f' <td><!-- {i}_in --></td>')
wirehtml.append(f' <td>')
for i, (connection_color, wirelabel) in enumerate(
zip_longest(cable.colors, cable.wirelabels), 1
):
wirehtml.append(" <tr>")
wirehtml.append(f" <td><!-- {i}_in --></td>")
wirehtml.append(f" <td>")
wireinfo = []
if cable.show_wirenumbers:
wireinfo.append(str(i))
colorstr = wv_colors.translate_color(connection_color, self.options.color_mode)
colorstr = wv_colors.translate_color(
connection_color, self.options.color_mode
)
if colorstr:
wireinfo.append(colorstr)
if cable.wirelabels:
wireinfo.append(wirelabel if wirelabel is not None else '')
wireinfo.append(wirelabel if wirelabel is not None else "")
wirehtml.append(f' {":".join(wireinfo)}')
wirehtml.append(f' </td>')
wirehtml.append(f' <td><!-- {i}_out --></td>')
wirehtml.append(' </tr>')
wirehtml.append(f" </td>")
wirehtml.append(f" <td><!-- {i}_out --></td>")
wirehtml.append(" </tr>")
# fmt: off
bgcolors = ['#000000'] + get_color_hex(connection_color, pad=pad) + ['#000000']
wirehtml.append(f' <tr>')
wirehtml.append(f" <tr>")
wirehtml.append(f' <td colspan="3" border="0" cellspacing="0" cellpadding="0" port="w{i}" height="{(2 * len(bgcolors))}">')
wirehtml.append(' <table cellspacing="0" cellborder="0" border="0">')
for j, bgcolor in enumerate(bgcolors[::-1]): # Reverse to match the curved wires when more than 2 colors
wirehtml.append(f' <tr><td colspan="3" cellpadding="0" height="2" bgcolor="{bgcolor if bgcolor != "" else wv_colors.default_color}" border="0"></td></tr>')
wirehtml.append(' </table>')
wirehtml.append(' </td>')
wirehtml.append(' </tr>')
if cable.category == 'bundle': # for bundles individual wires can have part information
wirehtml.append(" </table>")
wirehtml.append(" </td>")
wirehtml.append(" </tr>")
# fmt: on
# for bundles, individual wires can have part information
if cable.category == "bundle":
# create a list of wire parameters
wireidentification = []
if isinstance(cable.pn, list):
wireidentification.append(pn_info_string(HEADER_PN, None, remove_links(cable.pn[i - 1])))
manufacturer_info = pn_info_string(HEADER_MPN,
cable.manufacturer[i - 1] if isinstance(cable.manufacturer, list) else None,
cable.mpn[i - 1] if isinstance(cable.mpn, list) else None)
supplier_info = pn_info_string(HEADER_SPN,
cable.supplier[i - 1] if isinstance(cable.supplier, list) else None,
cable.spn[i - 1] if isinstance(cable.spn, list) else None)
wireidentification.append(
pn_info_string(
HEADER_PN, None, remove_links(cable.pn[i - 1])
)
)
manufacturer_info = pn_info_string(
HEADER_MPN,
cable.manufacturer[i - 1]
if isinstance(cable.manufacturer, list)
else None,
cable.mpn[i - 1] if isinstance(cable.mpn, list) else None,
)
supplier_info = pn_info_string(
HEADER_SPN,
cable.supplier[i - 1]
if isinstance(cable.supplier, list)
else None,
cable.spn[i - 1] if isinstance(cable.spn, list) else None,
)
if manufacturer_info:
wireidentification.append(html_line_breaks(manufacturer_info))
if supplier_info:
wireidentification.append(html_line_breaks(supplier_info))
# print parameters into a table row under the wire
if len(wireidentification) > 0:
# fmt: off
wirehtml.append(' <tr><td colspan="3">')
wirehtml.append(' <table border="0" cellspacing="0" cellborder="0"><tr>')
for attrib in wireidentification:
wirehtml.append(f' <td>{attrib}</td>')
wirehtml.append(' </tr></table>')
wirehtml.append(' </td></tr>')
wirehtml.append(f" <td>{attrib}</td>")
wirehtml.append(" </tr></table>")
wirehtml.append(" </td></tr>")
# fmt: on
if cable.shield:
wirehtml.append(' <tr><td>&nbsp;</td></tr>') # spacer
wirehtml.append(' <tr>')
wirehtml.append(' <td><!-- s_in --></td>')
wirehtml.append(' <td>Shield</td>')
wirehtml.append(' <td><!-- s_out --></td>')
wirehtml.append(' </tr>')
wirehtml.append(" <tr><td>&nbsp;</td></tr>") # spacer
wirehtml.append(" <tr>")
wirehtml.append(" <td><!-- s_in --></td>")
wirehtml.append(" <td>Shield</td>")
wirehtml.append(" <td><!-- s_out --></td>")
wirehtml.append(" </tr>")
if isinstance(cable.shield, str):
# shield is shown with specified color and black borders
shield_color_hex = wv_colors.get_color_hex(cable.shield)[0]
attributes = f'height="6" bgcolor="{shield_color_hex}" border="2" sides="tb"'
attributes = (
f'height="6" bgcolor="{shield_color_hex}" border="2" sides="tb"'
)
else:
# shield is shown as a thin black wire
attributes = f'height="2" bgcolor="#000000" border="0"'
# fmt: off
wirehtml.append(f' <tr><td colspan="3" cellpadding="0" {attributes} port="ws"></td></tr>')
# fmt: on
wirehtml.append(' <tr><td>&nbsp;</td></tr>')
wirehtml.append(' </table>')
wirehtml.append(" <tr><td>&nbsp;</td></tr>")
wirehtml.append(" </table>")
html = [row.replace('<!-- wire table -->', '\n'.join(wirehtml)) for row in html]
html = [
row.replace("<!-- wire table -->", "\n".join(wirehtml)) for row in html
]
# connections
for connection in cable.connections:
if isinstance(connection.via_port, int): # check if it's an actual wire and not a shield
dot.attr('edge', color=':'.join(['#000000'] + wv_colors.get_color_hex(cable.colors[connection.via_port - 1], pad=pad) + ['#000000']))
if isinstance(connection.via_port, int):
# check if it's an actual wire and not a shield
dot.attr(
"edge",
color=":".join(
["#000000"]
+ wv_colors.get_color_hex(
cable.colors[connection.via_port - 1], pad=pad
)
+ ["#000000"]
),
)
else: # it's a shield connection
# shield is shown with specified color and black borders, or as a thin black wire otherwise
dot.attr('edge', color=':'.join(['#000000', shield_color_hex, '#000000']) if isinstance(cable.shield, str) else '#000000')
if connection.from_port is not None: # connect to left
dot.attr(
"edge",
color=":".join(["#000000", shield_color_hex, "#000000"])
if isinstance(cable.shield, str)
else "#000000",
)
if connection.from_pin is not None: # connect to left
from_connector = self.connectors[connection.from_name]
from_port = f':p{connection.from_port+1}r' if from_connector.style != 'simple' else ''
code_left_1 = f'{connection.from_name}{from_port}:e'
code_left_2 = f'{cable.name}:w{connection.via_port}:w'
from_pin_index = from_connector.pins.index(connection.from_pin)
from_port_str = (
f":p{from_pin_index+1}r"
if from_connector.style != "simple"
else ""
)
code_left_1 = f"{connection.from_name}{from_port_str}:e"
code_left_2 = f"{cable.name}:w{connection.via_port}:w"
dot.edge(code_left_1, code_left_2)
if from_connector.show_name:
from_info = [str(connection.from_name), str(self.connectors[connection.from_name].pins[connection.from_port])]
from_info = [
str(connection.from_name),
str(connection.from_pin),
]
if from_connector.pinlabels:
pinlabel = from_connector.pinlabels[connection.from_port]
if pinlabel != '':
pinlabel = from_connector.pinlabels[from_pin_index]
if pinlabel != "":
from_info.append(pinlabel)
from_string = ':'.join(from_info)
from_string = ":".join(from_info)
else:
from_string = ''
html = [row.replace(f'<!-- {connection.via_port}_in -->', from_string) for row in html]
if connection.to_port is not None: # connect to right
from_string = ""
html = [
row.replace(f"<!-- {connection.via_port}_in -->", from_string)
for row in html
]
if connection.to_pin is not None: # connect to right
to_connector = self.connectors[connection.to_name]
code_right_1 = f'{cable.name}:w{connection.via_port}:e'
to_port = f':p{connection.to_port+1}l' if self.connectors[connection.to_name].style != 'simple' else ''
code_right_2 = f'{connection.to_name}{to_port}:w'
to_pin_index = to_connector.pins.index(connection.to_pin)
to_port_str = (
f":p{to_pin_index+1}l" if to_connector.style != "simple" else ""
)
code_right_1 = f"{cable.name}:w{connection.via_port}:e"
code_right_2 = f"{connection.to_name}{to_port_str}:w"
dot.edge(code_right_1, code_right_2)
if to_connector.show_name:
to_info = [str(connection.to_name), str(self.connectors[connection.to_name].pins[connection.to_port])]
to_info = [str(connection.to_name), str(connection.to_pin)]
if to_connector.pinlabels:
pinlabel = to_connector.pinlabels[connection.to_port]
if pinlabel != '':
pinlabel = to_connector.pinlabels[to_pin_index]
if pinlabel != "":
to_info.append(pinlabel)
to_string = ':'.join(to_info)
to_string = ":".join(to_info)
else:
to_string = ''
html = [row.replace(f'<!-- {connection.via_port}_out -->', to_string) for row in html]
to_string = ""
html = [
row.replace(f"<!-- {connection.via_port}_out -->", to_string)
for row in html
]
style, bgcolor = ('filled,dashed', self.options.bgcolor_bundle) if cable.category == 'bundle' else \
('filled', self.options.bgcolor_cable)
html = '\n'.join(html)
dot.node(cable.name, label=f'<\n{html}\n>', shape='box',
style=style, fillcolor=translate_color(bgcolor, "HEX"))
style, bgcolor = (
("filled,dashed", self.options.bgcolor_bundle)
if cable.category == "bundle"
else ("filled", self.options.bgcolor_cable)
)
html = "\n".join(html)
dot.node(
cable.name,
label=f"<\n{html}\n>",
shape="box",
style=style,
fillcolor=translate_color(bgcolor, "HEX"),
)
def typecheck(name: str, value: Any, expect: type) -> None:
if not isinstance(value, expect):
raise Exception(f'Unexpected value type of {name}: Expected {expect}, got {type(value)}\n{value}')
raise Exception(
f"Unexpected value type of {name}: Expected {expect}, got {type(value)}\n{value}"
)
# TODO?: Differ between override attributes and HTML?
if self.tweak.override is not None:
typecheck('tweak.override', self.tweak.override, dict)
typecheck("tweak.override", self.tweak.override, dict)
for k, d in self.tweak.override.items():
typecheck(f'tweak.override.{k} key', k, str)
typecheck(f'tweak.override.{k} value', d, dict)
typecheck(f"tweak.override.{k} key", k, str)
typecheck(f"tweak.override.{k} value", d, dict)
for a, v in d.items():
typecheck(f'tweak.override.{k}.{a} key', a, str)
typecheck(f'tweak.override.{k}.{a} value', v, (str, type(None)))
typecheck(f"tweak.override.{k}.{a} key", a, str)
typecheck(f"tweak.override.{k}.{a} value", v, (str, type(None)))
# Override generated attributes of selected entries matching tweak.override.
for i, entry in enumerate(dot.body):
if isinstance(entry, str):
# Find a possibly quoted keyword after leading TAB(s) and followed by [ ].
match = re.match(r'^\t*(")?((?(1)[^"]|[^ "])+)(?(1)") \[.*\]$', entry, re.S)
match = re.match(
r'^\t*(")?((?(1)[^"]|[^ "])+)(?(1)") \[.*\]$', entry, re.S
)
keyword = match and match[2]
if keyword in self.tweak.override.keys():
for attr, value in self.tweak.override[keyword].items():
if value is None:
entry, n_subs = re.subn(f'( +)?{attr}=("[^"]*"|[^] ]*)(?(1)| *)', '', entry)
entry, n_subs = re.subn(
f'( +)?{attr}=("[^"]*"|[^] ]*)(?(1)| *)', "", entry
)
if n_subs < 1:
print(f'Harness.create_graph() warning: {attr} not found in {keyword}!')
print(
f"Harness.create_graph() warning: {attr} not found in {keyword}!"
)
elif n_subs > 1:
print(f'Harness.create_graph() warning: {attr} removed {n_subs} times in {keyword}!')
print(
f"Harness.create_graph() warning: {attr} removed {n_subs} times in {keyword}!"
)
continue
if len(value) == 0 or ' ' in value:
value = value.replace('"', r'\"')
if len(value) == 0 or " " in value:
value = value.replace('"', r"\"")
value = f'"{value}"'
entry, n_subs = re.subn(f'{attr}=("[^"]*"|[^] ]*)', f'{attr}={value}', entry)
entry, n_subs = re.subn(
f'{attr}=("[^"]*"|[^] ]*)', f"{attr}={value}", entry
)
if n_subs < 1:
# If attr not found, then append it
entry = re.sub(r'\]$', f' {attr}={value}]', entry)
entry = re.sub(r"\]$", f" {attr}={value}]", entry)
elif n_subs > 1:
print(f'Harness.create_graph() warning: {attr} overridden {n_subs} times in {keyword}!')
print(
f"Harness.create_graph() warning: {attr} overridden {n_subs} times in {keyword}!"
)
dot.body[i] = entry
if self.tweak.append is not None:
if isinstance(self.tweak.append, list):
for i, element in enumerate(self.tweak.append, 1):
typecheck(f'tweak.append[{i}]', element, str)
typecheck(f"tweak.append[{i}]", element, str)
dot.body.extend(self.tweak.append)
else:
typecheck('tweak.append', self.tweak.append, str)
typecheck("tweak.append", self.tweak.append, str)
dot.body.append(self.tweak.append)
for mate in self.mates:
if mate.shape[0] == "<" and mate.shape[-1] == ">":
dir = "both"
elif mate.shape[0] == "<":
dir = "back"
elif mate.shape[-1] == ">":
dir = "forward"
else:
dir = "none"
if isinstance(mate, MatePin):
color = "#000000"
elif isinstance(mate, MateComponent):
color = "#000000:#000000"
else:
raise Exception(f"{mate} is an unknown mate")
from_connector = self.connectors[mate.from_name]
if (
isinstance(mate, MatePin)
and self.connectors[mate.from_name].style != "simple"
):
from_pin_index = from_connector.pins.index(mate.from_pin)
from_port_str = f":p{from_pin_index+1}r"
else: # MateComponent or style == 'simple'
from_port_str = ""
if (
isinstance(mate, MatePin)
and self.connectors[mate.to_name].style != "simple"
):
to_pin_index = to_connector.pins.index(mate.to_pin)
to_port_str = (
f":p{to_pin_index+1}l"
if isinstance(mate, MatePin)
and self.connectors[mate.to_name].style != "simple"
else ""
)
else: # MateComponent or style == 'simple'
to_port_str = ""
code_from = f"{mate.from_name}{from_port_str}:e"
to_connector = self.connectors[mate.to_name]
code_to = f"{mate.to_name}{to_port_str}:w"
dot.attr("edge", color=color, style="dashed", dir=dir)
dot.edge(code_from, code_to)
return dot
# cache for the GraphViz Graph object
# do not access directly, use self.graph instead
_graph = None
@property
def graph(self):
if not self._graph: # no cached graph exists, generate one
self._graph = self.create_graph()
return self._graph # return cached graph
@property
def png(self):
from io import BytesIO
graph = self.create_graph()
graph = self.graph
data = BytesIO()
data.write(graph.pipe(format='png'))
data.write(graph.pipe(format="png"))
data.seek(0)
return data.read()
@property
def svg(self):
from io import BytesIO
graph = self.create_graph()
data = BytesIO()
data.write(graph.pipe(format='svg'))
data.seek(0)
return data.read()
graph = self.graph
return embed_svg_images(graph.pipe(format="svg").decode("utf-8"), Path.cwd())
def output(self, filename: (str, Path), view: bool = False, cleanup: bool = True, fmt: tuple = ('pdf', )) -> None:
def output(
self,
filename: (str, Path),
view: bool = False,
cleanup: bool = True,
fmt: tuple = ("html", "png", "svg", "tsv"),
) -> None:
# graphical output
graph = self.graph
svg_already_exists = Path(
f"{filename}.svg"
).exists() # if SVG already exists, do not delete later
# graphical output
graph = self.create_graph()
for f in fmt:
if f in ("png", "svg", "html"):
if f == "html": # if HTML format is specified,
f = "svg" # generate SVG for embedding into HTML
# SVG file will be renamed/deleted later
_filename = f"{filename}.tmp" if f == "svg" else filename
# TODO: prevent rendering SVG twice when both SVG and HTML are specified
graph.format = f
graph.render(filename=filename, view=view, cleanup=cleanup)
graph.save(filename=f'{filename}.gv')
# bom output
graph.render(filename=_filename, view=view, cleanup=cleanup)
# embed images into SVG output
if "svg" in fmt or "html" in fmt:
embed_svg_images_file(f"{filename}.tmp.svg")
# GraphViz output
if "gv" in fmt:
graph.save(filename=f"{filename}.gv")
# BOM output
bomlist = bom_list(self.bom())
with open_file_write(f'{filename}.bom.tsv') as file:
file.write(tuplelist2tsv(bomlist))
if "tsv" in fmt:
open_file_write(f"{filename}.bom.tsv").write(tuplelist2tsv(bomlist))
if "csv" in fmt:
# TODO: implement CSV output (preferrably using CSV library)
print("CSV output is not yet supported")
# HTML output
if "html" in fmt:
generate_html_output(filename, bomlist, self.metadata, self.options)
# PDF output
if "pdf" in fmt:
# TODO: implement PDF output
print("PDF output is not yet supported")
# delete SVG if not needed
if "html" in fmt and not "svg" in fmt:
# SVG file was just needed to generate HTML
Path(f"{filename}.tmp.svg").unlink()
elif "svg" in fmt:
Path(f"{filename}.tmp.svg").replace(f"{filename}.svg")
def bom(self):
if not self._bom:

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# Please don't import anything in this file to avoid issues when it is imported in setup.py
__version__ = '0.3.2'
__version__ = "0.4"
CMD_NAME = 'wireviz' # Lower case command and module name
APP_NAME = 'WireViz' # Application name in texts meant to be human readable
APP_URL = 'https://github.com/formatc1702/WireViz'
CMD_NAME = "wireviz" # Lower case command and module name
APP_NAME = "WireViz" # Application name in texts meant to be human readable
APP_URL = "https://github.com/formatc1702/WireViz"

View File

@ -2,46 +2,48 @@
# -*- coding: utf-8 -*-
import argparse
import sys
import os
import sys
from pathlib import Path
script_path = Path(__file__).absolute()
sys.path.insert(0, str(script_path.parent.parent)) # to find wireviz module
from wireviz import wireviz, __version__, APP_NAME
from wv_helper import open_file_write, open_file_read, open_file_append
from wv_helper import open_file_append, open_file_read, open_file_write
from wireviz import APP_NAME, __version__, wireviz
dir = script_path.parent.parent.parent
readme = 'readme.md'
readme = "readme.md"
groups = {
'examples': {
'path': dir / 'examples',
'prefix': 'ex',
"examples": {
"path": dir / "examples",
"prefix": "ex",
readme: [], # Include no files
'title': 'Example Gallery',
"title": "Example Gallery",
},
'tutorial' : {
'path': dir / 'tutorial',
'prefix': 'tutorial',
readme: ['md', 'yml'], # Include .md and .yml files
'title': f'{APP_NAME} Tutorial',
"tutorial": {
"path": dir / "tutorial",
"prefix": "tutorial",
readme: ["md", "yml"], # Include .md and .yml files
"title": f"{APP_NAME} Tutorial",
},
'demos' : {
'path': dir / 'examples',
'prefix': 'demo',
"demos": {
"path": dir / "examples",
"prefix": "demo",
},
}
input_extensions = ['.yml']
extensions_not_containing_graphviz_output = ['.gv', '.bom.tsv']
extensions_containing_graphviz_output = ['.png', '.svg', '.html']
generated_extensions = extensions_not_containing_graphviz_output + extensions_containing_graphviz_output
input_extensions = [".yml"]
extensions_not_containing_graphviz_output = [".gv", ".bom.tsv"]
extensions_containing_graphviz_output = [".png", ".svg", ".html"]
generated_extensions = (
extensions_not_containing_graphviz_output + extensions_containing_graphviz_output
)
def collect_filenames(description, groupkey, ext_list):
path = groups[groupkey]['path']
path = groups[groupkey]["path"]
patterns = [f"{groups[groupkey]['prefix']}*{ext}" for ext in ext_list]
if ext_list != input_extensions and readme in groups[groupkey]:
patterns.append(readme)
@ -52,107 +54,141 @@ def collect_filenames(description, groupkey, ext_list):
def build_generated(groupkeys):
for key in groupkeys:
# preparation
path = groups[key]['path']
path = groups[key]["path"]
build_readme = readme in groups[key]
if build_readme:
include_readme = 'md' in groups[key][readme]
include_source = 'yml' in groups[key][readme]
include_readme = "md" in groups[key][readme]
include_source = "yml" in groups[key][readme]
with open_file_write(path / readme) as out:
out.write(f'# {groups[key]["title"]}\n\n')
# collect and iterate input YAML files
for yaml_file in collect_filenames('Building', key, input_extensions):
for yaml_file in collect_filenames("Building", key, input_extensions):
print(f' "{yaml_file}"')
wireviz.parse_file(yaml_file)
wireviz.parse(yaml_file, output_formats=("gv", "html", "png", "svg", "tsv"))
if build_readme:
i = ''.join(filter(str.isdigit, yaml_file.stem))
i = "".join(filter(str.isdigit, yaml_file.stem))
with open_file_append(path / readme) as out:
if include_readme:
with open_file_read(yaml_file.with_suffix('.md')) as info:
with open_file_read(yaml_file.with_suffix(".md")) as info:
for line in info:
out.write(line.replace('## ', f'## {i} - '))
out.write('\n\n')
out.write(line.replace("## ", f"## {i} - "))
out.write("\n\n")
else:
out.write(f'## Example {i}\n')
out.write(f"## Example {i}\n")
if include_source:
with open_file_read(yaml_file) as src:
out.write('```yaml\n')
out.write("```yaml\n")
for line in src:
out.write(line)
out.write('```\n')
out.write('\n')
out.write("```\n")
out.write("\n")
out.write(f'![]({yaml_file.stem}.png)\n\n')
out.write(f'[Source]({yaml_file.name}) - [Bill of Materials]({yaml_file.stem}.bom.tsv)\n\n\n')
out.write(f"![]({yaml_file.stem}.png)\n\n")
out.write(
f"[Source]({yaml_file.name}) - [Bill of Materials]({yaml_file.stem}.bom.tsv)\n\n\n"
)
def clean_generated(groupkeys):
for key in groupkeys:
# collect and remove files
for filename in collect_filenames('Cleaning', key, generated_extensions):
for filename in collect_filenames("Cleaning", key, generated_extensions):
if filename.is_file():
print(f' rm "{filename}"')
os.remove(filename)
Path(filename).unlink()
def compare_generated(groupkeys, branch = '', include_graphviz_output = False):
def compare_generated(groupkeys, branch="", include_graphviz_output=False):
if branch:
branch = f' {branch.strip()}'
compare_extensions = generated_extensions if include_graphviz_output else extensions_not_containing_graphviz_output
branch = f" {branch.strip()}"
compare_extensions = (
generated_extensions
if include_graphviz_output
else extensions_not_containing_graphviz_output
)
for key in groupkeys:
# collect and compare files
for filename in collect_filenames('Comparing', key, compare_extensions):
for filename in collect_filenames("Comparing", key, compare_extensions):
cmd = f'git --no-pager diff{branch} -- "{filename}"'
print(f' {cmd}')
print(f" {cmd}")
os.system(cmd)
def restore_generated(groupkeys, branch = ''):
def restore_generated(groupkeys, branch=""):
if branch:
branch = f' {branch.strip()}'
branch = f" {branch.strip()}"
for key in groupkeys:
# collect input YAML files
filename_list = collect_filenames('Restoring', key, input_extensions)
filename_list = collect_filenames("Restoring", key, input_extensions)
# collect files to restore
filename_list = [fn.with_suffix(ext) for fn in filename_list for ext in generated_extensions]
filename_list = [
fn.with_suffix(ext) for fn in filename_list for ext in generated_extensions
]
if readme in groups[key]:
filename_list.append(groups[key]['path'] / readme)
filename_list.append(groups[key]["path"] / readme)
# restore files
for filename in filename_list:
cmd = f'git checkout{branch} -- "{filename}"'
print(f' {cmd}')
print(f" {cmd}")
os.system(cmd)
def parse_args():
parser = argparse.ArgumentParser(description=f'{APP_NAME} Example Manager',)
parser.add_argument('-V', '--version', action='version', version=f'%(prog)s - {APP_NAME} {__version__}')
parser.add_argument('action', nargs='?', action='store',
choices=['build','clean','compare','diff','restore'], default='build',
help='what to do with the generated files (default: build)')
parser.add_argument('-c', '--compare-graphviz-output', action='store_true',
help='the Graphviz output is also compared (default: False)')
parser.add_argument('-b', '--branch', action='store', default='',
help='branch or commit to compare with or restore from')
parser.add_argument('-g', '--groups', nargs='+',
choices=groups.keys(), default=groups.keys(),
help='the groups of generated files (default: all)')
parser = argparse.ArgumentParser(
description=f"{APP_NAME} Example Manager",
)
parser.add_argument(
"-V",
"--version",
action="version",
version=f"%(prog)s - {APP_NAME} {__version__}",
)
parser.add_argument(
"action",
nargs="?",
action="store",
choices=["build", "clean", "compare", "diff", "restore"],
default="build",
help="what to do with the generated files (default: build)",
)
parser.add_argument(
"-c",
"--compare-graphviz-output",
action="store_true",
help="the Graphviz output is also compared (default: False)",
)
parser.add_argument(
"-b",
"--branch",
action="store",
default="",
help="branch or commit to compare with or restore from",
)
parser.add_argument(
"-g",
"--groups",
nargs="+",
choices=groups.keys(),
default=groups.keys(),
help="the groups of generated files (default: all)",
)
return parser.parse_args()
def main():
args = parse_args()
if args.action == 'build':
if args.action == "build":
build_generated(args.groups)
elif args.action == 'clean':
elif args.action == "clean":
clean_generated(args.groups)
elif args.action == 'compare' or args.action == 'diff':
elif args.action == "compare" or args.action == "diff":
compare_generated(args.groups, args.branch, args.compare_graphviz_output)
elif args.action == 'restore':
elif args.action == "restore":
restore_generated(args.groups, args.branch)
if __name__ == '__main__':
if __name__ == "__main__":
main()

52
src/wireviz/svgembed.py Normal file
View File

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
import base64
import re
from pathlib import Path
from typing import Union
mime_subtype_replacements = {"jpg": "jpeg", "tif": "tiff"}
def embed_svg_images(svg_in: str, base_path: Union[str, Path] = Path.cwd()) -> str:
images_b64 = {} # cache of base64-encoded images
def image_tag(pre: str, url: str, post: str) -> str:
return f'<image{pre} xlink:href="{url}"{post}>'
def replace(match: re.Match) -> str:
imgurl = match["URL"]
if not imgurl in images_b64: # only encode/cache every unique URL once
imgurl_abs = (Path(base_path) / imgurl).resolve()
image = imgurl_abs.read_bytes()
images_b64[imgurl] = base64.b64encode(image).decode("utf-8")
return image_tag(
match["PRE"] or "",
f"data:image/{get_mime_subtype(imgurl)};base64, {images_b64[imgurl]}",
match["POST"] or "",
)
pattern = re.compile(
image_tag(r"(?P<PRE> [^>]*?)?", r'(?P<URL>[^"]*?)', r"(?P<POST> [^>]*?)?"),
re.IGNORECASE,
)
return pattern.sub(replace, svg_in)
def get_mime_subtype(filename: Union[str, Path]) -> str:
mime_subtype = Path(filename).suffix.lstrip(".").lower()
if mime_subtype in mime_subtype_replacements:
mime_subtype = mime_subtype_replacements[mime_subtype]
return mime_subtype
def embed_svg_images_file(
filename_in: Union[str, Path], overwrite: bool = True
) -> None:
filename_in = Path(filename_in).resolve()
filename_out = filename_in.with_suffix(".b64.svg")
filename_out.write_text(
embed_svg_images(filename_in.read_text(), filename_in.parent)
)
if overwrite:
filename_out.replace(filename_in)

286
src/wireviz/templates/din-6771.html generated Normal file
View File

@ -0,0 +1,286 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="generator" content="<!-- %generator% -->">
<title><!-- %title% --></title>
<style>
body {
font-family: <!-- %fontname% -->;
background-color: <!-- %bgcolor% -->;
}
table, td, th, #frame {
border: 0.35mm solid black; /* line weight based on DIN 15 */
}
table {
padding: 0;
border-bottom: 0;
border-right: 0;
border-spacing: 0mm;
}
td, th {
border-top: 0;
border-left: 0;
overflow: hidden;
/* display: inline-block; */
white-space: nowrap;
font-size: 2.8mm;
}
/* Canvas size based on DIN 823 / DIN 6771 / EN ISO 5457 */
#frame {
position: relative;
}
.A4, .sheetsize_default { /* portrait */
width: 180mm;
height: 277mm;
}
.A3 { /* landscape */
width: 390mm;
height: 277mm;
}
.A2 { /* landscape */
width: 564mm;
height: 400mm;
}
#diagram {
position: relative;
top: 0;
left: 0;
max-width: 100%;
height: calc(100% - 13 * 4.25mm);
/* TODO: auto-adapt to height of title block + BOM table;
BOM table might be above (A4) or to the left (A3 and larger) of the title block */
text-align: center;
vertical-align: middle;
}
#diagram svg, #diagram img {
max-width: 95%;
max-height: 100%;
position: relative;
top: 50%;
transform: translateY(-50%);
}
#titleblock {
position: absolute;
bottom: 0mm;
right: -0mm;
}
#titleblock table {
width: 180mm;
height: 38.25mm;
}
#titleblock tr, #bom tr {
height: 4.25mm;
}
.A4 #bom { /* BOM on top of title block */
position: absolute;
bottom: 38.25mm;
right: 0;
}
.A3 #bom, .A2 #bom { /* BOM to the left of title block */
position: absolute;
bottom: 0mm;
left: 0mm;
}
#bom table {
width:180mm;
}
#bom th, td {
text-align: left;
}
#bom .bom_col_id {
text-align: center;
}
#bom .bom_col_qty {
text-align: right;
}
.name {
width: 16mm;
}
.date {
width: 10mm;
}
.revno {
text-align: center;
width: 6mm;
}
.changelog {
width: 22mm;
}
.process {
width: 18mm;
}
.title {
width: 82mm;
font-size: 5.6mm;
text-align: center;
white-space: normal;
}
.company {
font-size: 4mm;
text-align: center;
white-space: normal;
}
.partno {
font-size: 4mm;
text-align: center;
white-space: normal;
}
.sheetno {
width: 12.75mm;
text-align: center;
}
</style>
<style type="text/css" media="print">
@page {
size: auto;
margin: 0;
}
/* TODO: auto-adjust based on portrait (larger margin on left) or landscape (larger margin on top) */
#page {
margin: 10mm;
margin-left: 20mm;
}
</style>
</head>
<body>
<div id="page">
<div id="frame" class="sheetsize_default">
<div id="diagram">
<div id="description">
<!-- %description% -->
</div>
<!-- %diagram% -->
<div id="notes">
<!-- %notes% -->
</div>
</div>
<div id="bom">
<!-- %bom_reversed% -->
</div>
<div id="titleblock">
<table>
<tr>
<td class="revno"><!-- %revisions_8% --></td>
<td class="changelog"><!-- %revisions_8_changelog% --></td>
<td class="date"><!-- %revisions_8_date% --></td>
<td class="name"><!-- %revisions_8_name% --></td>
<td class="process"></td>
<td class="date">Date</td>
<td class="name">Name</td>
<td class="title" colspan="3" rowspan="5"><!-- %title% --></td>
</tr>
<tr>
<td class="revno"><!-- %revisions_7% --></td>
<td><!-- %revisions_7_changelog% --></td>
<td><!-- %revisions_7_date% --></td>
<td><!-- %revisions_7_name% --></td>
<td><!-- %authors_1% --></td>
<td><!-- %authors_1_date% --></td>
<td><!-- %authors_1_name% --></td>
</tr>
<tr>
<td class="revno"><!-- %revisions_6% --></td>
<td><!-- %revisions_6_changelog% --></td>
<td><!-- %revisions_6_date% --></td>
<td><!-- %revisions_6_name% --></td>
<td><!-- %authors_2% --></td>
<td><!-- %authors_2_date% --></td>
<td><!-- %authors_2_name% --></td>
</tr>
<tr>
<td class="revno"><!-- %revisions_5% --></td>
<td><!-- %revisions_5_changelog% --></td>
<td><!-- %revisions_5_date% --></td>
<td><!-- %revisions_5_name% --></td>
<td><!-- %authors_3% --></td>
<td><!-- %authors_3_date% --></td>
<td><!-- %authors_3_name% --></td>
</tr>
<tr>
<td class="revno"><!-- %revisions_4% --></td>
<td><!-- %revisions_4_changelog% --></td>
<td><!-- %revisions_4_date% --></td>
<td><!-- %revisions_4_name% --></td>
<td colspan="2"></td>
<td></td>
</tr>
<tr>
<td class="revno"><!-- %revisions_3% --></td>
<td><!-- %revisions_3_changelog% --></td>
<td><!-- %revisions_3_date% --></td>
<td><!-- %revisions_3_name% --></td>
<td class="company" colspan="3" rowspan="3"><!-- %company% --></td>
<td class="partno" colspan="2" rowspan="3"><!-- %pn% --></td>
<td class="sheetno" rowspan="2">Sheet<br /><!-- %sheet_current% --></td>
</tr>
<tr>
<td class="revno"><!-- %revisions_2% --></td>
<td><!-- %revisions_2_changelog% --></td>
<td><!-- %revisions_2_date% --></td>
<td><!-- %revisions_2_name% --></td>
</tr>
<tr>
<td class="revno"><!-- %revisions_1% --></td>
<td><!-- %revisions_1_changelog% --></td>
<td><!-- %revisions_1_date% --></td>
<td><!-- %revisions_1_name% --></td>
<td class="sheetno">of <!-- %sheet_total% --></td>
</tr>
<tr>
<td>Rev</td>
<td>Changelog</td>
<td>Date</td>
<td>Name</td>
<td colspan="3"></td>
<td></td>
<td colspan="2"></td>
</tr>
</table>
</div> <!-- /titleblock -->
</div> <!-- /frame -->
</div> <!-- /page -->
</body>
</html>

45
src/wireviz/templates/simple.html generated Normal file
View File

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="<!-- %generator% -->">
<title><!-- %title% --></title>
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:<!-- %fontname% -->;background-color:<!-- %bgcolor% -->">
<h1><!-- %title% --></h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- %diagram% -->
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<div id="bom">
<!-- %bom% -->
</div>
</body></html>

View File

@ -1,200 +1,387 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import argparse
import os
from pathlib import Path
import sys
from typing import Any, Tuple
from pathlib import Path
from typing import Any, Dict, List, Tuple, Union
import yaml
if __name__ == '__main__':
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
if __name__ == "__main__":
sys.path.insert(0, str(Path(__file__).parent.parent)) # add src/wireviz to PATH
from wireviz import __version__
from wireviz.DataClasses import Metadata, Options, Tweak
from wireviz.Harness import Harness
from wireviz.wv_helper import expand, open_file_read
def parse(yaml_input: str, file_out: (str, Path) = None, return_types: (None, str, Tuple[str]) = None) -> Any:
"""
Parses yaml input string and does the high-level harness conversion
:param yaml_input: a string containing the yaml input data
:param file_out:
:param return_types: if None, then returns None; if the value is a string, then a
corresponding data format will be returned; if the value is a tuple of strings,
then for every valid format in the `return_types` tuple, another return type
will be generated and returned in the same order; currently supports:
- "png" - will return the PNG data
- "svg" - will return the SVG data
- "harness" - will return the `Harness` instance
"""
yaml_data = yaml.safe_load(yaml_input)
harness = Harness(
metadata = Metadata(**yaml_data.get('metadata', {})),
options = Options(**yaml_data.get('options', {})),
tweak = Tweak(**yaml_data.get('tweak', {})),
from wireviz.wv_helper import (
expand,
get_single_key_and_value,
is_arrow,
open_file_read,
smart_file_resolve,
)
def parse(
inp: Union[Path, str, Dict],
return_types: Union[None, str, Tuple[str]] = None,
output_formats: Union[None, str, Tuple[str]] = None,
output_dir: Union[str, Path] = None,
output_name: Union[None, str] = None,
image_paths: Union[Path, str, List] = [],
) -> Any:
"""
This function takes an input, parses it as a WireViz Harness file,
and outputs the result as one or more files and/or as a function return value
Accepted inputs:
* A path to a YAML source file to parse
* A string containing the YAML data to parse
* A Python Dict containing the pre-parsed YAML data
Supported return types:
* "png": the diagram as raw PNG data
* "svg": the diagram as raw SVG data
* "harness": the diagram as a Harness Python object
Supported output formats:
* "csv": the BOM, as a comma-separated text file
* "gv": the diagram, as a GraphViz source file
* "html": the diagram and (depending on the template) the BOM, as a HTML file
* "png": the diagram, as a PNG raster image
* "pdf": the diagram and (depending on the template) the BOM, as a PDF file
* "svg": the diagram, as a SVG vector image
* "tsv": the BOM, as a tab-separated text file
Args:
inp (Path | str | Dict):
The input to be parsed (see above for accepted inputs).
return_types (optional):
One of the supported return types (see above), or a tuple of multiple return types.
If set to None, no output is returned by the function.
output_formats (optional):
One of the supported output types (see above), or a tuple of multiple output formats.
If set to None, no files are generated.
output_dir (Path | str, optional):
The directory to place the generated output files.
Defaults to inp's parent directory, or cwd if inp is not a path.
output_name (str, optional):
The name to use for the generated output files (without extension).
Defaults to inp's file name (without extension).
Required parameter if inp is not a path.
image_paths (Path | str | List, optional):
Paths to use when resolving any image paths included in the data.
Note: If inp is a path to a YAML file,
its parent directory will automatically be included in the list.
Returns:
Depending on the return_types parameter, may return:
* None
* one of the following, or a tuple containing two or more of the following:
* PNG data
* SVG data
* a Harness object
"""
if not output_formats and not return_types:
raise Exception("No output formats or return types specified")
yaml_data, yaml_file = _get_yaml_data_and_path(inp)
if output_formats:
# need to write data to file, determine output directory and filename
output_dir = _get_output_dir(yaml_file, output_dir)
output_name = _get_output_name(yaml_file, output_name)
output_file = output_dir / output_name
if yaml_file:
# if reading from file, ensure that input file's parent directory is included in image_paths
default_image_path = yaml_file.parent.resolve()
if not default_image_path in [Path(x).resolve() for x in image_paths]:
image_paths.append(default_image_path)
# define variables =========================================================
# containers for parsed component data and connection sets
template_connectors = {}
template_cables = {}
connection_sets = []
# actual harness
harness = Harness(
metadata=Metadata(**yaml_data.get("metadata", {})),
options=Options(**yaml_data.get("options", {})),
tweak=Tweak(**yaml_data.get("tweak", {})),
)
# others
# store mapping of components to their respective template
designators_and_templates = {}
# keep track of auto-generated designators to avoid duplicates
autogenerated_designators = {}
# When title is not given, either deduce it from filename, or use default text.
if 'title' not in harness.metadata:
if file_out is None:
if yaml_file is None:
harness.metadata['title'] = "WireViz diagram and BOM"
else:
harness.metadata['title'] = Path(file_out).stem
harness.metadata['title'] = Path(yaml_file).stem
# add items
sections = ['connectors', 'cables', 'connections']
# parse YAML input file ====================================================
sections = ["connectors", "cables", "connections"]
types = [dict, dict, list]
for sec, ty in zip(sections, types):
if sec in yaml_data and type(yaml_data[sec]) == ty:
if len(yaml_data[sec]) > 0:
if sec in yaml_data and type(yaml_data[sec]) == ty: # section exists
if len(yaml_data[sec]) > 0: # section has contents
if ty == dict:
for key, attribs in yaml_data[sec].items():
# The Image dataclass might need to open an image file with a relative path.
image = attribs.get('image')
image = attribs.get("image")
if isinstance(image, dict):
image['gv_dir'] = Path(file_out if file_out else '').parent # Inject context
if sec == 'connectors':
if not attribs.get('autogenerate', False):
harness.add_connector(name=key, **attribs)
elif sec == 'cables':
harness.add_cable(name=key, **attribs)
else:
pass # section exists but is empty
image_path = image["src"]
if image_path and not Path(image_path).is_absolute():
# resolve relative image path
image["src"] = smart_file_resolve(
image_path, image_paths
)
if sec == "connectors":
template_connectors[key] = attribs
elif sec == "cables":
template_cables[key] = attribs
else: # section exists but is empty
pass
else: # section does not exist, create empty section
if ty == dict:
yaml_data[sec] = {}
elif ty == list:
yaml_data[sec] = []
# add connections
connection_sets = yaml_data["connections"]
def check_designators(what, where): # helper function
for i, x in enumerate(what):
if x not in yaml_data[where[i]]:
return False
return True
# go through connection sets, generate and connect components ==============
autogenerated_ids = {}
for connection in yaml_data['connections']:
# find first component (potentially nested inside list or dict)
first_item = connection[0]
if isinstance(first_item, list):
first_item = first_item[0]
elif isinstance(first_item, dict):
first_item = list(first_item.keys())[0]
elif isinstance(first_item, str):
pass
template_separator_char = harness.options.template_separator
# check which section the first item belongs to
alternating_sections = ['connectors','cables']
for index, section in enumerate(alternating_sections):
if first_item in yaml_data[section]:
expected_index = index
break
def resolve_designator(inp, separator):
if separator in inp: # generate a new instance of an item
if inp.count(separator) > 1:
raise Exception(f"{inp} - Found more than one separator ({separator})")
template, designator = inp.split(separator)
if designator == "":
autogenerated_designators[template] = (
autogenerated_designators.get(template, 0) + 1
)
designator = f"__{template}_{autogenerated_designators[template]}"
# check if redefining existing component to different template
if designator in designators_and_templates:
if designators_and_templates[designator] != template:
raise Exception(
f"Trying to redefine {designator} from {designators_and_templates[designator]} to {template}"
)
else:
raise Exception('First item not found anywhere.')
expected_index = 1 - expected_index # flip once since it is flipped back at the *beginning* of every loop
designators_and_templates[designator] = template
else:
template, designator = (inp, inp)
if designator in designators_and_templates:
pass # referencing an exiting connector, no need to add again
else:
designators_and_templates[designator] = template
return (template, designator)
# check that all iterable items (lists and dicts) are the same length
# and that they are alternating between connectors and cables/bundles, starting with either
itemcount = None
for item in connection:
expected_index = 1 - expected_index # make sure items alternate between connectors and cables
expected_section = alternating_sections[expected_index]
if isinstance(item, list):
itemcount_new = len(item)
for subitem in item:
if not subitem in yaml_data[expected_section]:
raise Exception(f'{subitem} is not in {expected_section}')
elif isinstance(item, dict):
if len(item.keys()) != 1:
raise Exception('Dicts may contain only one key here!')
itemcount_new = len(expand(list(item.values())[0]))
subitem = list(item.keys())[0]
if not subitem in yaml_data[expected_section]:
raise Exception(f'{subitem} is not in {expected_section}')
elif isinstance(item, str):
if not item in yaml_data[expected_section]:
raise Exception(f'{item} is not in {expected_section}')
continue
if itemcount is not None and itemcount_new != itemcount:
raise Exception('All lists and dict lists must be the same length!')
itemcount = itemcount_new
if itemcount is None:
raise Exception('No item revealed the number of connections to make!')
# utilities to check for alternating connectors and cables/arrows ==========
# populate connection list
connection_list = []
for i, item in enumerate(connection):
if isinstance(item, str): # one single-pin component was specified
sublist = []
for i in range(1, itemcount + 1):
if yaml_data['connectors'][item].get('autogenerate'):
autogenerated_ids[item] = autogenerated_ids.get(item, 0) + 1
new_id = f'_{item}_{autogenerated_ids[item]}'
harness.add_connector(new_id, **yaml_data['connectors'][item])
sublist.append([new_id, 1])
else:
sublist.append([item, 1])
connection_list.append(sublist)
elif isinstance(item, list): # a list of single-pin components were specified
sublist = []
for subitem in item:
if yaml_data['connectors'][subitem].get('autogenerate'):
autogenerated_ids[subitem] = autogenerated_ids.get(subitem, 0) + 1
new_id = f'_{subitem}_{autogenerated_ids[subitem]}'
harness.add_connector(new_id, **yaml_data['connectors'][subitem])
sublist.append([new_id, 1])
else:
sublist.append([subitem, 1])
connection_list.append(sublist)
elif isinstance(item, dict): # a component with multiple pins was specified
sublist = []
id = list(item.keys())[0]
pins = expand(list(item.values())[0])
for pin in pins:
sublist.append([id, pin])
connection_list.append(sublist)
else:
raise Exception('Unexpected item in connection list')
alternating_types = ["connector", "cable/arrow"]
expected_type = None
# actually connect components using connection list
for i, item in enumerate(connection_list):
id = item[0][0] # TODO: make more elegant/robust/pythonic
if id in harness.cables:
for j, con in enumerate(item):
if i == 0: # list started with a cable, no connector to join on left side
from_name = None
from_pin = None
def check_type(designator, template, actual_type):
nonlocal expected_type
if not expected_type: # each connection set may start with either section
expected_type = actual_type
if actual_type != expected_type: # did not alternate
raise Exception(
f'Expected {expected_type}, but "{designator}" ("{template}") is {actual_type}'
)
def alternate_type(): # flip between connector and cable/arrow
nonlocal expected_type
expected_type = alternating_types[1 - alternating_types.index(expected_type)]
for connection_set in connection_sets:
# figure out number of parallel connections within this set
connectioncount = []
for entry in connection_set:
if isinstance(entry, list):
connectioncount.append(len(entry))
elif isinstance(entry, dict):
connectioncount.append(len(expand(list(entry.values())[0])))
# e.g.: - X1: [1-4,6] yields 5
else:
from_name = connection_list[i-1][j][0]
from_pin = connection_list[i-1][j][1]
via_name = item[j][0]
via_pin = item[j][1]
if i == len(connection_list) - 1: # list ends with a cable, no connector to join on right side
to_name = None
to_pin = None
pass # strings do not reveal connectioncount
if not any(connectioncount):
# no item in the list revealed connection count;
# assume connection count is 1
connectioncount = [1]
# Example: The following is a valid connection set,
# even though no item reveals the connection count;
# the count is not needed because only a component-level mate happens.
# -
# - CONNECTOR
# - ==>
# - CONNECTOR
# check that all entries are the same length
if len(set(connectioncount)) > 1:
raise Exception(
"All items in connection set must reference the same number of connections"
)
# all entries are the same length, connection count is set
connectioncount = connectioncount[0]
# expand string entries to list entries of correct length
for index, entry in enumerate(connection_set):
if isinstance(entry, str):
connection_set[index] = [entry] * connectioncount
# resolve all designators
for index, entry in enumerate(connection_set):
if isinstance(entry, list):
for subindex, item in enumerate(entry):
template, designator = resolve_designator(
item, template_separator_char
)
connection_set[index][subindex] = designator
elif isinstance(entry, dict):
key = list(entry.keys())[0]
template, designator = resolve_designator(key, template_separator_char)
value = entry[key]
connection_set[index] = {designator: value}
else:
to_name = connection_list[i+1][j][0]
to_pin = connection_list[i+1][j][1]
harness.connect(from_name, from_pin, via_name, via_pin, to_name, to_pin)
pass # string entries have been expanded in previous step
# expand all pin lists
for index, entry in enumerate(connection_set):
if isinstance(entry, list):
connection_set[index] = [{designator: 1} for designator in entry]
elif isinstance(entry, dict):
designator = list(entry.keys())[0]
pinlist = expand(entry[designator])
connection_set[index] = [{designator: pin} for pin in pinlist]
else:
pass # string entries have been expanded in previous step
# Populate wiring harness ==============================================
expected_type = None # reset check for alternating types
# at the beginning of every connection set
# since each set may begin with either type
# generate components
for entry in connection_set:
for item in entry:
designator = list(item.keys())[0]
template = designators_and_templates[designator]
if designator in harness.connectors: # existing connector instance
check_type(designator, template, "connector")
elif template in template_connectors.keys():
# generate new connector instance from template
check_type(designator, template, "connector")
harness.add_connector(
name=designator, **template_connectors[template]
)
elif designator in harness.cables: # existing cable instance
check_type(designator, template, "cable/arrow")
elif template in template_cables.keys():
# generate new cable instance from template
check_type(designator, template, "cable/arrow")
harness.add_cable(name=designator, **template_cables[template])
elif is_arrow(designator):
check_type(designator, template, "cable/arrow")
# arrows do not need to be generated here
else:
raise Exception(
f"{template} is an unknown template/designator/arrow."
)
alternate_type() # entries in connection set must alternate between connectors and cables/arrows
# transpose connection set list
# before: one item per component, one subitem per connection in set
# after: one item per connection in set, one subitem per component
connection_set = list(map(list, zip(*connection_set)))
# connect components
for index_entry, entry in enumerate(connection_set):
for index_item, item in enumerate(entry):
designator = list(item.keys())[0]
if designator in harness.cables:
if index_item == 0:
# list started with a cable, no connector to join on left side
from_name, from_pin = (None, None)
else:
from_name, from_pin = get_single_key_and_value(
entry[index_item - 1]
)
via_name, via_pin = (designator, item[designator])
if index_item == len(entry) - 1:
# list ends with a cable, no connector to join on right side
to_name, to_pin = (None, None)
else:
to_name, to_pin = get_single_key_and_value(
entry[index_item + 1]
)
harness.connect(
from_name, from_pin, via_name, via_pin, to_name, to_pin
)
elif is_arrow(designator):
if index_item == 0: # list starts with an arrow
raise Exception(
"An arrow cannot be at the start of a connection set"
)
elif index_item == len(entry) - 1: # list ends with an arrow
raise Exception(
"An arrow cannot be at the end of a connection set"
)
from_name, from_pin = get_single_key_and_value(
entry[index_item - 1]
)
via_name, via_pin = (designator, None)
to_name, to_pin = get_single_key_and_value(entry[index_item + 1])
if "-" in designator: # mate pin by pin
harness.add_mate_pin(
from_name, from_pin, to_name, to_pin, designator
)
elif "=" in designator and index_entry == 0:
# mate two connectors as a whole
harness.add_mate_component(from_name, to_name, designator)
# warn about unused templates
proposed_components = list(template_connectors.keys()) + list(
template_cables.keys()
)
used_components = set(designators_and_templates.values())
forgotten_components = [c for c in proposed_components if not c in used_components]
if len(forgotten_components) > 0:
print(
"Warning: The following components are not referenced in any connection set:"
)
print(", ".join(forgotten_components))
# harness population completed =============================================
if "additional_bom_items" in yaml_data:
for line in yaml_data["additional_bom_items"]:
harness.add_bom_item(line)
if file_out is not None:
harness.output(filename=file_out, fmt=('png', 'svg'), view=False)
if output_formats:
harness.output(filename=output_file, fmt=output_formats, view=False)
if return_types is not None:
if return_types:
returns = []
if isinstance(return_types, str): # only one return type speficied
return_types = [return_types]
@ -202,69 +389,66 @@ def parse(yaml_input: str, file_out: (str, Path) = None, return_types: (None, st
return_types = [t.lower() for t in return_types]
for rt in return_types:
if rt == 'png':
if rt == "png":
returns.append(harness.png)
if rt == 'svg':
if rt == "svg":
returns.append(harness.svg)
if rt == 'harness':
if rt == "harness":
returns.append(harness)
return tuple(returns) if len(returns) != 1 else returns[0]
def parse_file(yaml_file: str, file_out: (str, Path) = None) -> None:
with open_file_read(yaml_file) as file:
yaml_input = file.read()
if not file_out:
fn, fext = os.path.splitext(yaml_file)
file_out = fn
file_out = os.path.abspath(file_out)
parse(yaml_input, file_out=file_out)
def _get_yaml_data_and_path(inp: Union[str, Path, Dict]) -> (Dict, Path):
# determine whether inp is a file path, a YAML string, or a Dict
if not isinstance(inp, Dict): # received a str or a Path
try:
yaml_path = Path(inp).expanduser().resolve(strict=True)
# if no FileNotFoundError exception happens, get file contents
yaml_str = open_file_read(yaml_path).read()
except (FileNotFoundError, OSError) as e:
# if inp is a long YAML string, Pathlib will raise OSError: [errno.ENAMETOOLONG]
# when trying to expand and resolve it as a path.
# Catch this error, but raise any others
from errno import ENAMETOOLONG
if type(e) is OSError and e.errno != ENAMETOOLONG:
raise e
# file does not exist; assume inp is a YAML string
yaml_str = inp
yaml_path = None
yaml_data = yaml.safe_load(yaml_str)
else:
# received a Dict, use as-is
yaml_data = inp
yaml_path = None
return yaml_data, yaml_path
def parse_cmdline():
parser = argparse.ArgumentParser(
description='Generate cable and wiring harness documentation from YAML descriptions',
)
parser.add_argument('-V', '--version', action='version', version='%(prog)s ' + __version__)
parser.add_argument('input_file', action='store', type=str, metavar='YAML_FILE')
parser.add_argument('-o', '--output_file', action='store', type=str, metavar='OUTPUT')
# Not implemented: parser.add_argument('--generate-bom', action='store_true', default=True)
parser.add_argument('--prepend-file', action='store', type=str, metavar='YAML_FILE')
return parser.parse_args()
def _get_output_dir(input_file: Path, default_output_dir: Path) -> Path:
if default_output_dir: # user-specified output directory
output_dir = Path(default_output_dir)
else: # auto-determine appropriate output directory
if input_file: # input comes from a file; place output in same directory
output_dir = input_file.parent
else: # input comes from str or Dict; fall back to cwd
output_dir = Path.cwd()
return output_dir.resolve()
def _get_output_name(input_file: Path, default_output_name: Path) -> str:
if default_output_name: # user-specified output name
output_name = default_output_name
else: # auto-determine appropriate output name
if input_file: # input comes from a file; use same file stem
output_name = input_file.stem
else: # input comes from str or Dict; no fallback available
raise Exception("No output file name provided")
return output_name
def main():
args = parse_cmdline()
if not os.path.exists(args.input_file):
print(f'Error: input file {args.input_file} inaccessible or does not exist, check path')
sys.exit(1)
with open_file_read(args.input_file) as fh:
yaml_input = fh.read()
if args.prepend_file:
if not os.path.exists(args.prepend_file):
print(f'Error: prepend input file {args.prepend_file} inaccessible or does not exist, check path')
sys.exit(1)
with open_file_read(args.prepend_file) as fh:
prepend = fh.read()
yaml_input = prepend + yaml_input
if not args.output_file:
file_out = args.input_file
pre, _ = os.path.splitext(file_out)
file_out = pre # extension will be added by graphviz output function
else:
file_out = args.output_file
file_out = os.path.abspath(file_out)
parse(yaml_input, file_out=file_out)
print("When running from the command line, please use wv_cli.py instead.")
if __name__ == '__main__':
if __name__ == "__main__":
main()

View File

@ -9,76 +9,110 @@ from wireviz.wv_colors import translate_color
from wireviz.wv_gv_html import html_bgcolor_attr, html_line_breaks
from wireviz.wv_helper import clean_whitespace
BOM_COLUMNS_ALWAYS = ('id', 'description', 'qty', 'unit', 'designators')
BOM_COLUMNS_OPTIONAL = ('pn', 'manufacturer', 'mpn', 'supplier', 'spn')
BOM_COLUMNS_IN_KEY = ('description', 'unit') + BOM_COLUMNS_OPTIONAL
BOM_COLUMNS_ALWAYS = ("id", "description", "qty", "unit", "designators")
BOM_COLUMNS_OPTIONAL = ("pn", "manufacturer", "mpn", "supplier", "spn")
BOM_COLUMNS_IN_KEY = ("description", "unit") + BOM_COLUMNS_OPTIONAL
HEADER_PN = 'P/N'
HEADER_MPN = 'MPN'
HEADER_SPN = 'SPN'
HEADER_PN = "P/N"
HEADER_MPN = "MPN"
HEADER_SPN = "SPN"
BOMKey = Tuple[str, ...]
BOMColumn = str # = Literal[*BOM_COLUMNS_ALWAYS, *BOM_COLUMNS_OPTIONAL]
BOMEntry = Dict[BOMColumn, Union[str, int, float, List[str], None]]
def optional_fields(part: Union[Connector, Cable, AdditionalComponent]) -> BOMEntry:
"""Return part field values for the optional BOM columns as a dict."""
part = asdict(part)
return {field: part.get(field) for field in BOM_COLUMNS_OPTIONAL}
def get_additional_component_table(harness: "Harness", component: Union[Connector, Cable]) -> List[str]:
def get_additional_component_table(
harness: "Harness", component: Union[Connector, Cable]
) -> List[str]:
"""Return a list of diagram node table row strings with additional components."""
rows = []
if component.additional_components:
rows.append(["Additional components"])
for part in component.additional_components:
# Ignore components that have qty 0
for part in [part for part in component.additional_components if component.get_qty_multiplier(part.qty_multiplier)]:
common_args = {
'qty': part.qty * component.get_qty_multiplier(part.qty_multiplier),
'unit': part.unit,
'bgcolor': part.bgcolor,
"qty": part.qty * component.get_qty_multiplier(part.qty_multiplier),
"unit": part.unit,
"bgcolor": part.bgcolor,
}
if harness.options.mini_bom_mode:
id = get_bom_index(harness.bom(), bom_entry_key({**asdict(part), 'description': part.description}))
rows.append(component_table_entry(f'#{id} ({part.type.rstrip()})', **common_args))
id = get_bom_index(
harness.bom(),
bom_entry_key({**asdict(part), "description": part.description}),
)
rows.append(
component_table_entry(
f"#{id} ({part.type.rstrip()})", **common_args
)
)
else:
rows.append(component_table_entry(part.description, **common_args, **optional_fields(part)))
rows.append(
component_table_entry(
part.description, **common_args, **optional_fields(part)
)
)
return rows
def get_additional_component_bom(component: Union[Connector, Cable]) -> List[BOMEntry]:
"""Return a list of BOM entries with additional components."""
bom_entries = []
for part in component.additional_components:
bom_entries.append({
'description': part.description,
'qty': part.qty * component.get_qty_multiplier(part.qty_multiplier),
'unit': part.unit,
'designators': component.name if component.show_name else None,
# Ignore components that have qty 0
for part in [part for part in component.additional_components if component.get_qty_multiplier(part.qty_multiplier)]:
bom_entries.append(
{
"description": part.description,
"qty": part.qty * component.get_qty_multiplier(part.qty_multiplier),
"unit": part.unit,
"designators": component.name if component.show_name else None,
**optional_fields(part),
})
}
)
return bom_entries
def bom_entry_key(entry: BOMEntry) -> BOMKey:
"""Return a tuple of string values from the dict that must be equal to join BOM entries."""
if 'key' not in entry:
entry['key'] = tuple(clean_whitespace(make_str(entry.get(c))) for c in BOM_COLUMNS_IN_KEY)
return entry['key']
if "key" not in entry:
entry["key"] = tuple(
clean_whitespace(make_str(entry.get(c))) for c in BOM_COLUMNS_IN_KEY
)
return entry["key"]
def generate_bom(harness: "Harness") -> List[BOMEntry]:
"""Return a list of BOM entries generated from the harness."""
from wireviz.Harness import Harness # Local import to avoid circular imports
bom_entries = []
# connectors
for connector in harness.connectors.values():
if not connector.ignore_in_bom:
description = ('Connector'
+ (f', {connector.type}' if connector.type else '')
+ (f', {connector.subtype}' if connector.subtype else '')
+ (f', {connector.pincount} pins' if connector.show_pincount else '')
+ (f', {translate_color(connector.color, harness.options.color_mode)}' if connector.color else ''))
bom_entries.append({
'description': description, 'designators': connector.name if connector.show_name else None,
description = (
"Connector"
+ (f", {connector.type}" if connector.type else "")
+ (f", {connector.subtype}" if connector.subtype else "")
+ (f", {connector.pincount} pins" if connector.show_pincount else "")
+ (
f", {translate_color(connector.color, harness.options.color_mode)}"
if connector.color
else ""
)
)
bom_entries.append(
{
"description": description,
"designators": connector.name if connector.show_name else None,
**optional_fields(connector),
})
}
)
# add connectors aditional components to bom
bom_entries.extend(get_additional_component_bom(connector))
@ -87,29 +121,58 @@ def generate_bom(harness: "Harness") -> List[BOMEntry]:
# TODO: If category can have other non-empty values than 'bundle', maybe it should be part of description?
for cable in harness.cables.values():
if not cable.ignore_in_bom:
if cable.category != 'bundle':
if cable.category != "bundle":
# process cable as a single entity
description = ('Cable'
+ (f', {cable.type}' if cable.type else '')
+ (f', {cable.wirecount}')
+ (f' x {cable.gauge} {cable.gauge_unit}' if cable.gauge else ' wires')
+ ( ' shielded' if cable.shield else '')
+ (f', {translate_color(cable.color, harness.options.color_mode)}' if cable.color else ''))
bom_entries.append({
'description': description, 'qty': cable.length, 'unit': cable.length_unit, 'designators': cable.name if cable.show_name else None,
description = (
"Cable"
+ (f", {cable.type}" if cable.type else "")
+ (f", {cable.wirecount}")
+ (
f" x {cable.gauge} {cable.gauge_unit}"
if cable.gauge
else " wires"
)
+ (" shielded" if cable.shield else "")
+ (
f", {translate_color(cable.color, harness.options.color_mode)}"
if cable.color
else ""
)
)
bom_entries.append(
{
"description": description,
"qty": cable.length,
"unit": cable.length_unit,
"designators": cable.name if cable.show_name else None,
**optional_fields(cable),
})
}
)
else:
# add each wire from the bundle to the bom
for index, color in enumerate(cable.colors):
description = ('Wire'
+ (f', {cable.type}' if cable.type else '')
+ (f', {cable.gauge} {cable.gauge_unit}' if cable.gauge else '')
+ (f', {translate_color(color, harness.options.color_mode)}' if color else ''))
bom_entries.append({
'description': description, 'qty': cable.length, 'unit': cable.length_unit, 'designators': cable.name if cable.show_name else None,
**{k: index_if_list(v, index) for k, v in optional_fields(cable).items()},
})
description = (
"Wire"
+ (f", {cable.type}" if cable.type else "")
+ (f", {cable.gauge} {cable.gauge_unit}" if cable.gauge else "")
+ (
f", {translate_color(color, harness.options.color_mode)}"
if color
else ""
)
)
bom_entries.append(
{
"description": description,
"qty": cable.length,
"unit": cable.length_unit,
"designators": cable.name if cable.show_name else None,
**{
k: index_if_list(v, index)
for k, v in optional_fields(cable).items()
},
}
)
# add cable/bundles aditional components to bom
bom_entries.extend(get_additional_component_bom(cable))
@ -118,41 +181,58 @@ def generate_bom(harness: "Harness") -> List[BOMEntry]:
bom_entries.extend(harness.additional_bom_items)
# remove line breaks if present and cleanup any resulting whitespace issues
bom_entries = [{k: clean_whitespace(v) for k, v in entry.items()} for entry in bom_entries]
bom_entries = [
{k: clean_whitespace(v) for k, v in entry.items()} for entry in bom_entries
]
# deduplicate bom
bom = []
for _, group in groupby(sorted(bom_entries, key=bom_entry_key), key=bom_entry_key):
group_entries = list(group)
designators = sum((make_list(entry.get('designators')) for entry in group_entries), [])
total_qty = sum(entry.get('qty', 1) for entry in group_entries)
bom.append({**group_entries[0], 'qty': round(total_qty, 3), 'designators': sorted(set(designators))})
designators = sum(
(make_list(entry.get("designators")) for entry in group_entries), []
)
total_qty = sum(entry.get("qty", 1) for entry in group_entries)
bom.append(
{
**group_entries[0],
"qty": round(total_qty, 3),
"designators": sorted(set(designators)),
}
)
# add an incrementing id to each bom entry
return [{**entry, 'id': index} for index, entry in enumerate(bom, 1)]
return [{**entry, "id": index} for index, entry in enumerate(bom, 1)]
def get_bom_index(bom: List[BOMEntry], target: BOMKey) -> int:
"""Return id of BOM entry or raise exception if not found."""
for entry in bom:
if bom_entry_key(entry) == target:
return entry['id']
raise Exception('Internal error: No BOM entry found matching: ' + '|'.join(target))
return entry["id"]
raise Exception("Internal error: No BOM entry found matching: " + "|".join(target))
def bom_list(bom: List[BOMEntry]) -> List[List[str]]:
"""Return list of BOM rows as lists of column strings with headings in top row."""
keys = list(BOM_COLUMNS_ALWAYS) # Always include this fixed set of BOM columns.
for fieldname in BOM_COLUMNS_OPTIONAL: # Include only those optional BOM columns that are in use.
for fieldname in BOM_COLUMNS_OPTIONAL:
# Include only those optional BOM columns that are in use.
if any(entry.get(fieldname) for entry in bom):
keys.append(fieldname)
# Custom mapping from internal name to BOM column headers.
# Headers not specified here are generated by capitilising the internal name.
bom_headings = {
'pn': HEADER_PN,
'mpn': HEADER_MPN,
'spn': HEADER_SPN,
"pn": HEADER_PN,
"mpn": HEADER_MPN,
"spn": HEADER_SPN,
}
return ([[bom_headings.get(k, k.capitalize()) for k in keys]] + # Create header row with key names
[[make_str(entry.get(k)) for k in keys] for entry in bom]) # Create string list for each entry row
return [
[bom_headings.get(k, k.capitalize()) for k in keys]
] + [ # Create header row with key names
[make_str(entry.get(k)) for k in keys] for entry in bom
] # Create string list for each entry row
def component_table_entry(
type: str,
@ -171,33 +251,41 @@ def component_table_entry(
pn_info_string(HEADER_MPN, manufacturer, mpn),
pn_info_string(HEADER_SPN, supplier, spn),
]
output = (f'{qty}'
+ (f' {unit}' if unit else '')
+ f' x {type}'
+ ('<br/>' if any(part_number_list) else '')
+ (', '.join([pn for pn in part_number_list if pn])))
output = (
f"{qty}"
+ (f" {unit}" if unit else "")
+ f" x {type}"
+ ("<br/>" if any(part_number_list) else "")
+ (", ".join([pn for pn in part_number_list if pn]))
)
# format the above output as left aligned text in a single visible cell
# indent is set to two to match the indent in the generated html table
return f'''<table border="0" cellspacing="0" cellpadding="3" cellborder="1"{html_bgcolor_attr(bgcolor)}><tr>
return f"""<table border="0" cellspacing="0" cellpadding="3" cellborder="1"{html_bgcolor_attr(bgcolor)}><tr>
<td align="left" balign="left">{html_line_breaks(output)}</td>
</tr></table>'''
</tr></table>"""
def pn_info_string(header: str, name: Optional[str], number: Optional[str]) -> Optional[str]:
def pn_info_string(
header: str, name: Optional[str], number: Optional[str]
) -> Optional[str]:
"""Return the company name and/or the part number in one single string or None otherwise."""
number = str(number).strip() if number is not None else ''
number = str(number).strip() if number is not None else ""
if name or number:
return f'{name if name else header}{": " + number if number else ""}'
else:
return None
def index_if_list(value: Any, index: int) -> Any:
"""Return the value indexed if it is a list, or simply the value otherwise."""
return value[index] if isinstance(value, list) else value
def make_list(value: Any) -> list:
"""Return value if a list, empty list if None, or single element list otherwise."""
return value if isinstance(value, list) else [] if value is None else [value]
def make_str(value: Any) -> str:
"""Return comma separated elements if a list, empty string if None, or value as a string otherwise."""
return ', '.join(str(element) for element in make_list(value))
return ", ".join(str(element) for element in make_list(value))

149
src/wireviz/wv_cli.py Normal file
View File

@ -0,0 +1,149 @@
# -*- coding: utf-8 -*-
import os
import sys
from pathlib import Path
import click
if __name__ == "__main__":
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
import wireviz.wireviz as wv
from wireviz import APP_NAME, __version__
from wireviz.wv_helper import open_file_read
format_codes = {
"c": "csv",
"g": "gv",
"h": "html",
"p": "png",
"P": "pdf",
"s": "svg",
"t": "tsv",
}
epilog = "The -f or --format option accepts a string containing one or more of the "
epilog += "following characters to specify which file types to output:\n"
epilog += ", ".join([f"{key} ({value.upper()})" for key, value in format_codes.items()])
@click.command(epilog=epilog, no_args_is_help=True)
@click.argument("file", nargs=-1)
@click.option(
"-f",
"--format",
default="hpst",
type=str,
show_default=True,
help="Output formats (see below).",
)
@click.option(
"-p",
"--prepend",
default=[],
multiple=True,
type=Path,
help="YAML file to prepend to the input file (optional).",
)
@click.option(
"-o",
"--output-dir",
default=None,
type=Path,
help="Directory to use for output files, if different from input file directory.",
)
@click.option(
"-O",
"--output-name",
default=None,
type=str,
help="File name (without extension) to use for output files, if different from input file name.",
)
@click.option(
"-V",
"--version",
is_flag=True,
default=False,
help=f"Output {APP_NAME} version and exit.",
)
def wireviz(file, format, prepend, output_dir, output_name, version):
"""
Parses the provided FILE and generates the specified outputs.
"""
print()
print(f"{APP_NAME} {__version__}")
if version:
return # print version number only and exit
# get list of files
try:
_ = iter(file)
except TypeError:
filepaths = [file]
else:
filepaths = list(file)
# determine output formats
output_formats = []
for code in format:
if code in format_codes:
output_formats.append(format_codes[code])
else:
raise Exception(f"Unknown output format: {code}")
output_formats = tuple(sorted(set(output_formats)))
output_formats_str = (
f'[{"|".join(output_formats)}]'
if len(output_formats) > 1
else output_formats[0]
)
# check prepend file
if len(prepend) > 0:
prepend_input = ""
for prepend_file in prepend:
prepend_file = Path(prepend_file)
if not prepend_file.exists():
raise Exception(f"File does not exist:\n{prepend_file}")
print("Prepend file:", prepend_file)
prepend_input += open_file_read(prepend_file).read() + "\n"
else:
prepend_input = ""
# run WireVIz on each input file
for file in filepaths:
file = Path(file)
if not file.exists():
raise Exception(f"File does not exist:\n{file}")
# file_out = file.with_suffix("") if not output_file else output_file
_output_dir = file.parent if not output_dir else output_dir
_output_name = file.stem if not output_name else output_name
print("Input file: ", file)
print(
"Output file: ", f"{Path(_output_dir / _output_name)}.{output_formats_str}"
)
yaml_input = open_file_read(file).read()
file_dir = file.parent
yaml_input = prepend_input + yaml_input
image_paths = {file_dir}
for p in prepend:
image_paths.add(Path(p).parent)
wv.parse(
yaml_input,
output_formats=output_formats,
output_dir=_output_dir,
output_name=_output_name,
image_paths=list(image_paths),
)
print()
if __name__ == "__main__":
wireviz()

View File

@ -3,139 +3,152 @@
from typing import Dict, List
COLOR_CODES = {
'DIN': ['WH', 'BN', 'GN', 'YE', 'GY', 'PK', 'BU', 'RD', 'BK', 'VT', 'GYPK', 'RDBU', 'WHGN', 'BNGN', 'WHYE', 'YEBN',
'WHGY', 'GYBN', 'WHPK', 'PKBN', 'WHBU', 'BNBU', 'WHRD', 'BNRD', 'WHBK', 'BNBK', 'GYGN', 'YEGY', 'PKGN',
'YEPK', 'GNBU', 'YEBU', 'GNRD', 'YERD', 'GNBK', 'YEBK', 'GYBU', 'PKBU', 'GYRD', 'PKRD', 'GYBK', 'PKBK',
'BUBK', 'RDBK', 'WHBNBK', 'YEGNBK', 'GYPKBK', 'RDBUBK', 'WHGNBK', 'BNGNBK', 'WHYEBK', 'YEBNBK', 'WHGYBK',
'GYBNBK', 'WHPKBK', 'PKBNBK', 'WHBUBK', 'BNBUBK', 'WHRDBK', 'BNRDBK'],
'IEC': ['BN', 'RD', 'OG', 'YE', 'GN', 'BU', 'VT', 'GY', 'WH', 'BK'],
'BW': ['BK', 'WH'],
# fmt: off
"DIN": [
"WH", "BN", "GN", "YE", "GY", "PK", "BU", "RD", "BK", "VT", "GYPK", "RDBU",
"WHGN", "BNGN", "WHYE", "YEBN", "WHGY", "GYBN", "WHPK", "PKBN", "WHBU", "BNBU",
"WHRD", "BNRD", "WHBK", "BNBK", "GYGN", "YEGY", "PKGN", "YEPK", "GNBU", "YEBU",
"GNRD", "YERD", "GNBK", "YEBK", "GYBU", "PKBU", "GYRD", "PKRD", "GYBK", "PKBK",
"BUBK", "RDBK", "WHBNBK", "YEGNBK", "GYPKBK", "RDBUBK", "WHGNBK", "BNGNBK",
"WHYEBK", "YEBNBK", "WHGYBK", "GYBNBK", "WHPKBK", "PKBNBK", "WHBUBK",
"BNBUBK", "WHRDBK", "BNRDBK",
],
# fmt: on
"IEC": ["BN", "RD", "OG", "YE", "GN", "BU", "VT", "GY", "WH", "BK"],
"BW": ["BK", "WH"],
# 25-pair color code - see also https://en.wikipedia.org/wiki/25-pair_color_code
# 5 major colors (WH,RD,BK,YE,VT) combined with 5 minor colors (BU,OG,GN,BN,SL).
# Each POTS pair tip (+) had major/minor color, and ring (-) had minor/major color.
'TEL': [ # 25x2: Ring and then tip of each pair
'BUWH', 'WHBU', 'OGWH', 'WHOG', 'GNWH', 'WHGN', 'BNWH', 'WHBN', 'SLWH', 'WHSL',
'BURD', 'RDBU', 'OGRD', 'RDOG', 'GNRD', 'RDGN', 'BNRD', 'RDBN', 'SLRD', 'RDSL',
'BUBK', 'BKBU', 'OGBK', 'BKOG', 'GNBK', 'BKGN', 'BNBK', 'BKBN', 'SLBK', 'BKSL',
'BUYE', 'YEBU', 'OGYE', 'YEOG', 'GNYE', 'YEGN', 'BNYE', 'YEBN', 'SLYE', 'YESL',
'BUVT', 'VTBU', 'OGVT', 'VTOG', 'GNVT', 'VTGN', 'BNVT', 'VTBN', 'SLVT', 'VTSL'],
'TELALT': [ # 25x2: Tip and then ring of each pair
'WHBU', 'BU', 'WHOG', 'OG', 'WHGN', 'GN', 'WHBN', 'BN', 'WHSL', 'SL',
'RDBU', 'BURD', 'RDOG', 'OGRD', 'RDGN', 'GNRD', 'RDBN', 'BNRD', 'RDSL', 'SLRD',
'BKBU', 'BUBK', 'BKOG', 'OGBK', 'BKGN', 'GNBK', 'BKBN', 'BNBK', 'BKSL', 'SLBK',
'YEBU', 'BUYE', 'YEOG', 'OGYE', 'YEGN', 'GNYE', 'YEBN', 'BNYE', 'YESL', 'SLYE',
'VTBU', 'BUVT', 'VTOG', 'OGVT', 'VTGN', 'GNVT', 'VTBN', 'BNVT', 'VTSL', 'SLVT'],
'T568A': ['WHGN', 'GN', 'WHOG', 'BU', 'WHBU', 'OG', 'WHBN', 'BN'],
'T568B': ['WHOG', 'OG', 'WHGN', 'BU', 'WHBU', 'GN', 'WHBN', 'BN'],
# fmt: off
"TEL": [ # 25x2: Ring and then tip of each pair
"BUWH", "WHBU", "OGWH", "WHOG", "GNWH", "WHGN", "BNWH", "WHBN", "SLWH", "WHSL",
"BURD", "RDBU", "OGRD", "RDOG", "GNRD", "RDGN", "BNRD", "RDBN", "SLRD", "RDSL",
"BUBK", "BKBU", "OGBK", "BKOG", "GNBK", "BKGN", "BNBK", "BKBN", "SLBK", "BKSL",
"BUYE", "YEBU", "OGYE", "YEOG", "GNYE", "YEGN", "BNYE", "YEBN", "SLYE", "YESL",
"BUVT", "VTBU", "OGVT", "VTOG", "GNVT", "VTGN", "BNVT", "VTBN", "SLVT", "VTSL",
],
"TELALT": [ # 25x2: Tip and then ring of each pair
"WHBU", "BU", "WHOG", "OG", "WHGN", "GN", "WHBN", "BN", "WHSL", "SL",
"RDBU", "BURD", "RDOG", "OGRD", "RDGN", "GNRD", "RDBN", "BNRD", "RDSL", "SLRD",
"BKBU", "BUBK", "BKOG", "OGBK", "BKGN", "GNBK", "BKBN", "BNBK", "BKSL", "SLBK",
"YEBU", "BUYE", "YEOG", "OGYE", "YEGN", "GNYE", "YEBN", "BNYE", "YESL", "SLYE",
"VTBU", "BUVT", "VTOG", "OGVT", "VTGN", "GNVT", "VTBN", "BNVT", "VTSL", "SLVT",
],
# fmt: on
"T568A": ["WHGN", "GN", "WHOG", "BU", "WHBU", "OG", "WHBN", "BN"],
"T568B": ["WHOG", "OG", "WHGN", "BU", "WHBU", "GN", "WHBN", "BN"],
}
# Convention: Color names should be 2 letters long, to allow for multicolored wires
_color_hex = {
'BK': '#000000',
'WH': '#ffffff',
'GY': '#999999',
'PK': '#ff66cc',
'RD': '#ff0000',
'OG': '#ff8000',
'YE': '#ffff00',
'OL': '#708000', # olive green
'GN': '#00ff00',
'TQ': '#00ffff',
'LB': '#a0dfff', # light blue
'BU': '#0066ff',
'VT': '#8000ff',
'BN': '#895956',
'BG': '#ceb673', # beige
'IV': '#f5f0d0', # ivory
'SL': '#708090',
'CU': '#d6775e', # Faux-copper look, for bare CU wire
'SN': '#aaaaaa', # Silvery look for tinned bare wire
'SR': '#84878c', # Darker silver for silvered wire
'GD': '#ffcf80', # Golden color for gold
"BK": "#000000",
"WH": "#ffffff",
"GY": "#999999",
"PK": "#ff66cc",
"RD": "#ff0000",
"OG": "#ff8000",
"YE": "#ffff00",
"OL": "#708000", # olive green
"GN": "#00ff00",
"TQ": "#00ffff",
"LB": "#a0dfff", # light blue
"BU": "#0066ff",
"VT": "#8000ff",
"BN": "#895956",
"BG": "#ceb673", # beige
"IV": "#f5f0d0", # ivory
"SL": "#708090",
"CU": "#d6775e", # Faux-copper look, for bare CU wire
"SN": "#aaaaaa", # Silvery look for tinned bare wire
"SR": "#84878c", # Darker silver for silvered wire
"GD": "#ffcf80", # Golden color for gold
}
_color_full = {
'BK': 'black',
'WH': 'white',
'GY': 'grey',
'PK': 'pink',
'RD': 'red',
'OG': 'orange',
'YE': 'yellow',
'OL': 'olive green',
'GN': 'green',
'TQ': 'turquoise',
'LB': 'light blue',
'BU': 'blue',
'VT': 'violet',
'BN': 'brown',
'BG': 'beige',
'IV': 'ivory',
'SL': 'slate',
'CU': 'copper',
'SN': 'tin',
'SR': 'silver',
'GD': 'gold',
"BK": "black",
"WH": "white",
"GY": "grey",
"PK": "pink",
"RD": "red",
"OG": "orange",
"YE": "yellow",
"OL": "olive green",
"GN": "green",
"TQ": "turquoise",
"LB": "light blue",
"BU": "blue",
"VT": "violet",
"BN": "brown",
"BG": "beige",
"IV": "ivory",
"SL": "slate",
"CU": "copper",
"SN": "tin",
"SR": "silver",
"GD": "gold",
}
_color_ger = {
'BK': 'sw',
'WH': 'ws',
'GY': 'gr',
'PK': 'rs',
'RD': 'rt',
'OG': 'or',
'YE': 'ge',
'OL': 'ol', # olivgrün
'GN': 'gn',
'TQ': 'tk',
'LB': 'hb', # hellblau
'BU': 'bl',
'VT': 'vi',
'BN': 'br',
'BG': 'bg', # beige
'IV': 'eb', # elfenbeinfarben
'SL': 'si', # Schiefer
'CU': 'ku', # Kupfer
'SN': 'vz', # verzinkt
'SR': 'ag', # Silber
'GD': 'au', # Gold
"BK": "sw",
"WH": "ws",
"GY": "gr",
"PK": "rs",
"RD": "rt",
"OG": "or",
"YE": "ge",
"OL": "ol", # olivgrün
"GN": "gn",
"TQ": "tk",
"LB": "hb", # hellblau
"BU": "bl",
"VT": "vi",
"BN": "br",
"BG": "bg", # beige
"IV": "eb", # elfenbeinfarben
"SL": "si", # Schiefer
"CU": "ku", # Kupfer
"SN": "vz", # verzinkt
"SR": "ag", # Silber
"GD": "au", # Gold
}
color_default = '#ffffff'
color_default = "#ffffff"
_hex_digits = set('0123456789abcdefABCDEF')
_hex_digits = set("0123456789abcdefABCDEF")
# Literal type aliases below are commented to avoid requiring python 3.8
Color = str # Two-letter color name = Literal[_color_hex.keys()]
Colors = str # One or more two-letter color names (Color) concatenated into one string
ColorMode = str # = Literal['full', 'FULL', 'hex', 'HEX', 'short', 'SHORT', 'ger', 'GER']
ColorMode = (
str # = Literal['full', 'FULL', 'hex', 'HEX', 'short', 'SHORT', 'ger', 'GER']
)
ColorScheme = str # Color scheme name = Literal[COLOR_CODES.keys()]
def get_color_hex(input: Colors, pad: bool = False) -> List[str]:
"""Return list of hex colors from either a string of color names or :-separated hex colors."""
if input is None or input == '':
if input is None or input == "":
return [color_default]
elif input[0] == '#': # Hex color(s)
output = input.split(':')
elif input[0] == "#": # Hex color(s)
output = input.split(":")
for i, c in enumerate(output):
if c[0] != '#' or not all(d in _hex_digits for d in c[1:]):
if c[0] != "#" or not all(d in _hex_digits for d in c[1:]):
if c != input:
c += f' in input: {input}'
print(f'Invalid hex color: {c}')
c += f" in input: {input}"
print(f"Invalid hex color: {c}")
output[i] = color_default
else: # Color name(s)
def lookup(c: str) -> str:
try:
return _color_hex[c]
except KeyError:
if c != input:
c += f' in input: {input}'
print(f'Unknown color name: {c}')
c += f" in input: {input}"
print(f"Unknown color name: {c}")
return color_default
output = [lookup(input[i : i + 2]) for i in range(0, len(input), 2)]
@ -150,34 +163,38 @@ def get_color_hex(input: Colors, pad: bool = False) -> List[str]:
def get_color_translation(translate: Dict[Color, str], input: Colors) -> List[str]:
"""Return list of colors translations from either a string of color names or :-separated hex colors."""
def from_hex(hex_input: str) -> str:
for color, hex in _color_hex.items():
if hex == hex_input:
return translate[color]
return f'({",".join(str(int(hex_input[i:i+2], 16)) for i in range(1, 6, 2))})'
return [from_hex(h) for h in input.lower().split(':')] if input[0] == '#' else \
[translate.get(input[i:i+2], '??') for i in range(0, len(input), 2)]
return (
[from_hex(h) for h in input.lower().split(":")]
if input[0] == "#"
else [translate.get(input[i : i + 2], "??") for i in range(0, len(input), 2)]
)
def translate_color(input: Colors, color_mode: ColorMode) -> str:
if input == '' or input is None:
return ''
if input == "" or input is None:
return ""
upper = color_mode.isupper()
if not (color_mode.isupper() or color_mode.islower()):
raise Exception('Unknown color mode capitalization')
raise Exception("Unknown color mode capitalization")
color_mode = color_mode.lower()
if color_mode == 'full':
if color_mode == "full":
output = "/".join(get_color_translation(_color_full, input))
elif color_mode == 'hex':
output = ':'.join(get_color_hex(input, pad=False))
elif color_mode == 'ger':
elif color_mode == "hex":
output = ":".join(get_color_hex(input, pad=False))
elif color_mode == "ger":
output = "".join(get_color_translation(_color_ger, input))
elif color_mode == 'short':
elif color_mode == "short":
output = input
else:
raise Exception('Unknown color mode')
raise Exception("Unknown color mode")
if upper:
return output.upper()
else:

View File

@ -1,51 +1,72 @@
# -*- coding: utf-8 -*-
from typing import List, Optional, Union
import re
from typing import List, Optional, Union
from wireviz.DataClasses import Color
from wireviz.wv_colors import translate_color
from wireviz.wv_helper import remove_links
def nested_html_table(rows: List[Union[str, List[Optional[str]], None]], table_attrs: str = '') -> str:
def nested_html_table(
rows: List[Union[str, List[Optional[str]], None]], table_attrs: str = ""
) -> str:
# input: list, each item may be scalar or list
# output: a parent table with one child table per parent item that is list, and one cell per parent item that is scalar
# purpose: create the appearance of one table, where cell widths are independent between rows
# attributes in any leading <tdX> inside a list are injected into to the preceeding <td> tag
html = []
html.append(f'<table border="0" cellspacing="0" cellpadding="0"{table_attrs or ""}>')
html.append(
f'<table border="0" cellspacing="0" cellpadding="0"{table_attrs or ""}>'
)
num_rows = 0
for row in rows:
if isinstance(row, List):
if len(row) > 0 and any(row):
html.append(' <tr><td>')
html.append(" <tr><td>")
# fmt: off
html.append(' <table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr>')
# fmt: on
for cell in row:
if cell is not None:
# Inject attributes to the preceeding <td> tag where needed
html.append(f' <td balign="left">{cell}</td>'.replace('><tdX', ''))
html.append(' </tr></table>')
html.append(' </td></tr>')
# fmt: off
html.append(f' <td balign="left">{cell}</td>'.replace("><tdX", ""))
# fmt: on
html.append(" </tr></table>")
html.append(" </td></tr>")
num_rows = num_rows + 1
elif row is not None:
html.append(' <tr><td>')
html.append(f' {row}')
html.append(' </td></tr>')
html.append('</table>')
html.append(" <tr><td>")
html.append(f" {row}")
html.append(" </td></tr>")
num_rows = num_rows + 1
if num_rows == 0: # empty table
# generate empty cell to avoid GraphViz errors
html.append("<tr><td></td></tr>")
html.append("</table>")
return html
def html_bgcolor_attr(color: Color) -> str:
"""Return attributes for bgcolor or '' if no color."""
return f' bgcolor="{translate_color(color, "HEX")}"' if color else ''
return f' bgcolor="{translate_color(color, "HEX")}"' if color else ""
def html_bgcolor(color: Color, _extra_attr: str = '') -> str:
def html_bgcolor(color: Color, _extra_attr: str = "") -> str:
"""Return <td> attributes prefix for bgcolor or '' if no color."""
return f'<tdX{html_bgcolor_attr(color)}{_extra_attr}>' if color else ''
return f"<tdX{html_bgcolor_attr(color)}{_extra_attr}>" if color else ""
def html_colorbar(color: Color) -> str:
"""Return <tdX> attributes prefix for bgcolor and minimum width or None if no color."""
return html_bgcolor(color, ' width="4"') if color else None
def html_image(image):
from wireviz.DataClasses import Image
if not image:
return None
# The leading attributes belong to the preceeding tag. See where used below.
@ -53,24 +74,38 @@ def html_image(image):
if image.fixedsize:
# Close the preceeding tag and enclose the image cell in a table without
# borders to avoid narrow borders when the fixed width < the node width.
html = f'''>
html = f""">
<table border="0" cellspacing="0" cellborder="0"><tr>
<td{html}</td>
</tr></table>
'''
return f'''<tdX{' sides="TLR"' if image.caption else ''}{html_bgcolor_attr(image.bgcolor)}{html}'''
"""
return f"""<tdX{' sides="TLR"' if image.caption else ''}{html_bgcolor_attr(image.bgcolor)}{html}"""
def html_caption(image):
from wireviz.DataClasses import Image
return (f'<tdX sides="BLR"{html_bgcolor_attr(image.bgcolor)}>{html_line_breaks(image.caption)}'
if image and image.caption else None)
return (
f'<tdX sides="BLR"{html_bgcolor_attr(image.bgcolor)}>{html_line_breaks(image.caption)}'
if image and image.caption
else None
)
def html_size_attr(image):
from wireviz.DataClasses import Image
# Return Graphviz HTML attributes to specify minimum or fixed size of a TABLE or TD object
return ((f' width="{image.width}"' if image.width else '')
+ (f' height="{image.height}"' if image.height else '')
+ ( ' fixedsize="true"' if image.fixedsize else '')) if image else ''
return (
(
(f' width="{image.width}"' if image.width else "")
+ (f' height="{image.height}"' if image.height else "")
+ (' fixedsize="true"' if image.fixedsize else "")
)
if image
else ""
)
def html_line_breaks(inp):
return remove_links(inp).replace('\n', '<br />') if isinstance(inp, str) else inp
return remove_links(inp).replace("\n", "<br />") if isinstance(inp, str) else inp

View File

@ -1,34 +1,37 @@
# -*- coding: utf-8 -*-
from typing import List
import re
from pathlib import Path
from typing import Dict, List
awg_equiv_table = {
'0.09': '28',
'0.14': '26',
'0.25': '24',
'0.34': '22',
'0.5': '21',
'0.75': '20',
'1': '18',
'1.5': '16',
'2.5': '14',
'4': '12',
'6': '10',
'10': '8',
'16': '6',
'25': '4',
'35': '2',
'50': '1',
"0.09": "28",
"0.14": "26",
"0.25": "24",
"0.34": "22",
"0.5": "21",
"0.75": "20",
"1": "18",
"1.5": "16",
"2.5": "14",
"4": "12",
"6": "10",
"10": "8",
"16": "6",
"25": "4",
"35": "2",
"50": "1",
}
mm2_equiv_table = {v: k for k, v in awg_equiv_table.items()}
def awg_equiv(mm2):
return awg_equiv_table.get(str(mm2), 'Unknown')
return awg_equiv_table.get(str(mm2), "Unknown")
def mm2_equiv(awg):
return mm2_equiv_table.get(str(awg), 'Unknown')
return mm2_equiv_table.get(str(awg), "Unknown")
def expand(yaml_data):
@ -41,8 +44,8 @@ def expand(yaml_data):
yaml_data = [yaml_data]
for e in yaml_data:
e = str(e)
if '-' in e:
a, b = e.split('-', 1)
if "-" in e:
a, b = e.split("-", 1)
try:
a = int(a)
b = int(b)
@ -55,7 +58,8 @@ def expand(yaml_data):
else: # a == b
output.append(a) # range of length 1
except:
output.append(e) # '-' was not a delimiter between two ints, pass e through unchanged
# '-' was not a delimiter between two ints, pass e through unchanged
output.append(e)
else:
try:
x = int(e) # single int
@ -65,6 +69,12 @@ def expand(yaml_data):
return output
def get_single_key_and_value(d: dict):
k = list(d.keys())[0]
v = d[k]
return (k, v)
def int2tuple(inp):
if isinstance(inp, tuple):
output = inp
@ -74,45 +84,95 @@ def int2tuple(inp):
def flatten2d(inp):
return [[str(item) if not isinstance(item, List) else ', '.join(item) for item in row] for row in inp]
return [
[str(item) if not isinstance(item, List) else ", ".join(item) for item in row]
for row in inp
]
def tuplelist2tsv(inp, header=None):
output = ''
output = ""
if header is not None:
inp.insert(0, header)
inp = flatten2d(inp)
for row in inp:
output = output + '\t'.join(str(remove_links(item)) for item in row) + '\n'
output = output + "\t".join(str(remove_links(item)) for item in row) + "\n"
return output
def remove_links(inp):
return re.sub(r'<[aA] [^>]*>([^<]*)</[aA]>', r'\1', inp) if isinstance(inp, str) else inp
return (
re.sub(r"<[aA] [^>]*>([^<]*)</[aA]>", r"\1", inp)
if isinstance(inp, str)
else inp
)
def clean_whitespace(inp):
return ' '.join(inp.split()).replace(' ,', ',') if isinstance(inp, str) else inp
return " ".join(inp.split()).replace(" ,", ",") if isinstance(inp, str) else inp
def open_file_read(filename):
# TODO: Intelligently determine encoding
return open(filename, 'r', encoding='UTF-8')
return open(filename, "r", encoding="UTF-8")
def open_file_write(filename):
return open(filename, 'w', encoding='UTF-8')
return open(filename, "w", encoding="UTF-8")
def open_file_append(filename):
return open(filename, 'a', encoding='UTF-8')
return open(filename, "a", encoding="UTF-8")
def is_arrow(inp):
"""
Matches strings of one or multiple `-` or `=` (but not mixed)
optionally starting with `<` and/or ending with `>`.
Examples:
<-, --, ->, <->
<==, ==, ==>, <=>
"""
# regex by @shiraneyo
return bool(
re.match(r"^\s*(?P<leftHead><?)(?P<body>-+|=+)(?P<rightHead>>?)\s*$", inp)
)
def aspect_ratio(image_src):
try:
from PIL import Image
image = Image.open(image_src)
if image.width > 0 and image.height > 0:
return image.width / image.height
print(f'aspect_ratio(): Invalid image size {image.width} x {image.height}')
print(f"aspect_ratio(): Invalid image size {image.width} x {image.height}")
# ModuleNotFoundError and FileNotFoundError are the most expected, but all are handled equally.
except Exception as error:
print(f'aspect_ratio(): {type(error).__name__}: {error}')
print(f"aspect_ratio(): {type(error).__name__}: {error}")
return 1 # Assume 1:1 when unable to read actual image size
def smart_file_resolve(filename: str, possible_paths: (str, List[str])) -> Path:
if not isinstance(possible_paths, List):
possible_paths = [possible_paths]
filename = Path(filename)
if filename.is_absolute():
if filename.exists():
return filename
else:
raise Exception(f"{filename} does not exist.")
else: # search all possible paths in decreasing order of precedence
possible_paths = [
Path(path).resolve() for path in possible_paths if path is not None
]
for possible_path in possible_paths:
resolved_path = (possible_path / filename).resolve()
if resolved_path.exists():
return resolved_path
else:
raise Exception(
f"{filename} was not found in any of the following locations: \n"
+ "\n".join([str(x) for x in possible_paths])
)

View File

@ -1,54 +1,119 @@
# -*- coding: utf-8 -*-
from pathlib import Path
from typing import List, Union
import re
from pathlib import Path
from typing import Dict, List, Union
from wireviz import __version__, APP_NAME, APP_URL, wv_colors
from wireviz import APP_NAME, APP_URL, __version__, wv_colors
from wireviz.DataClasses import Metadata, Options
from wireviz.wv_helper import flatten2d, open_file_read, open_file_write
from wireviz.wv_gv_html import html_line_breaks
from wireviz.wv_helper import (
flatten2d,
open_file_read,
open_file_write,
smart_file_resolve,
)
def generate_html_output(filename: Union[str, Path], bom_list: List[List[str]], metadata: Metadata, options: Options):
with open_file_write(f'{filename}.html') as file:
file.write('<!DOCTYPE html>\n')
file.write('<html lang="en"><head>\n')
file.write(' <meta charset="UTF-8">\n')
file.write(f' <meta name="generator" content="{APP_NAME} {__version__} - {APP_URL}">\n')
file.write(f' <title>{metadata["title"]}</title>\n')
file.write(f'</head><body style="font-family:{options.fontname};background-color:'
f'{wv_colors.translate_color(options.bgcolor, "HEX")}">\n')
file.write(f'<h1>{metadata["title"]}</h1>\n')
description = metadata.get('description')
if description:
file.write(f'<p>{description}</p>\n')
file.write('<h2>Diagram</h2>\n')
with open_file_read(f'{filename}.svg') as svg:
file.write(re.sub(
'^<[?]xml [^?>]*[?]>[^<]*<!DOCTYPE [^>]*>',
'<!-- XML and DOCTYPE declarations from SVG file removed -->',
svg.read(1024), 1))
for svgdata in svg:
file.write(svgdata)
def generate_html_output(
filename: Union[str, Path],
bom_list: List[List[str]],
metadata: Metadata,
options: Options,
):
file.write('<h2>Bill of Materials</h2>\n')
listy = flatten2d(bom_list)
file.write('<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">\n')
file.write(' <tr>\n')
for item in listy[0]:
file.write(f' <th style="text-align:left; border:1px solid #000000; padding: 8px">{item}</th>\n')
file.write(' </tr>\n')
for row in listy[1:]:
file.write(' <tr>\n')
# load HTML template
templatename = metadata.get("template", {}).get("name")
if templatename:
# if relative path to template was provided, check directory of YAML file first, fall back to built-in template directory
templatefile = smart_file_resolve(
f"{templatename}.html",
[Path(filename).parent, Path(__file__).parent / "templates"],
)
else:
# fall back to built-in simple template if no template was provided
templatefile = Path(__file__).parent / "templates/simple.html"
html = open_file_read(templatefile).read()
# embed SVG diagram
with open_file_read(f"{filename}.tmp.svg") as file:
svgdata = re.sub(
"^<[?]xml [^?>]*[?]>[^<]*<!DOCTYPE [^>]*>",
"<!-- XML and DOCTYPE declarations from SVG file removed -->",
file.read(),
1,
)
# generate BOM table
bom = flatten2d(bom_list)
# generate BOM header (may be at the top or bottom of the table)
bom_header_html = " <tr>\n"
for item in bom[0]:
th_class = f"bom_col_{item.lower()}"
bom_header_html = f'{bom_header_html} <th class="{th_class}">{item}</th>\n'
bom_header_html = f"{bom_header_html} </tr>\n"
# generate BOM contents
bom_contents = []
for row in bom[1:]:
row_html = " <tr>\n"
for i, item in enumerate(row):
item_str = item.replace('\u00b2', '&sup2;')
align = '; text-align:right' if listy[0][i] == 'Qty' else ''
file.write(f' <td style="border:1px solid #000000; padding: 4px{align}">{item_str}</td>\n')
file.write(' </tr>\n')
file.write('</table>\n')
td_class = f"bom_col_{bom[0][i].lower()}"
row_html = f'{row_html} <td class="{td_class}">{item}</td>\n'
row_html = f"{row_html} </tr>\n"
bom_contents.append(row_html)
notes = metadata.get('notes')
if notes:
file.write(f'<h2>Notes</h2>\n<p>{notes}</p>\n')
bom_html = (
'<table class="bom">\n' + bom_header_html + "".join(bom_contents) + "</table>\n"
)
bom_html_reversed = (
'<table class="bom">\n'
+ "".join(list(reversed(bom_contents)))
+ bom_header_html
+ "</table>\n"
)
file.write('</body></html>\n')
# prepare simple replacements
replacements = {
"<!-- %generator% -->": f"{APP_NAME} {__version__} - {APP_URL}",
"<!-- %fontname% -->": options.fontname,
"<!-- %bgcolor% -->": wv_colors.translate_color(options.bgcolor, "hex"),
"<!-- %diagram% -->": svgdata,
"<!-- %bom% -->": bom_html,
"<!-- %bom_reversed% -->": bom_html_reversed,
"<!-- %sheet_current% -->": "1", # TODO: handle multi-page documents
"<!-- %sheet_total% -->": "1", # TODO: handle multi-page documents
}
# prepare metadata replacements
if metadata:
for item, contents in metadata.items():
if isinstance(contents, (str, int, float)):
replacements[f"<!-- %{item}% -->"] = html_line_breaks(str(contents))
elif isinstance(contents, Dict): # useful for authors, revisions
for index, (category, entry) in enumerate(contents.items()):
if isinstance(entry, Dict):
replacements[f"<!-- %{item}_{index+1}% -->"] = str(category)
for entry_key, entry_value in entry.items():
replacements[
f"<!-- %{item}_{index+1}_{entry_key}% -->"
] = html_line_breaks(str(entry_value))
replacements['"sheetsize_default"'] = '"{}"'.format(
metadata.get("template", {}).get("sheetsize", "")
)
# include quotes so no replacement happens within <style> definition
# perform replacements
# regex replacement adapted from:
# https://gist.github.com/bgusach/a967e0587d6e01e889fd1d776c5f3729
# longer replacements first, just in case
replacements_sorted = sorted(replacements, key=len, reverse=True)
replacements_escaped = map(re.escape, replacements_sorted)
pattern = re.compile("|".join(replacements_escaped))
html = pattern.sub(lambda match: replacements[match.group(0)], html)
open_file_write(f"{filename}.html").write(html)

View File

@ -189,7 +189,6 @@ connectors:
subtype: female
F1:
style: simple
autogenerate: true
type: Crimp ferrule
subtype: 0.5 mm²
color: OG # optional color
@ -203,7 +202,7 @@ cables:
connections:
-
- F1 # a new ferrule is auto-generated for each of the four wires
- F1. # a new ferrule is auto-generated for each of the four wires
- W1: [1-4]
- X1: [1-4]
```
@ -228,13 +227,11 @@ connectors:
subtype: female
F_10: # this is a unique ferrule
style: simple
show_name: false # non-autogenerated connectors show their name by default; override
type: Crimp ferrule
subtype: 1.0 mm²
color: YE # optional color
F_05: # this is a ferrule that will be auto-generated on demand
style: simple
autogenerate: true
type: Crimp ferrule
subtype: 0.5 mm²
color: OG
@ -248,7 +245,7 @@ cables:
connections:
-
- [F_05, F_10, F_10, F_05]
- [F_05., F_10.F1, F_10.F1, F_05.]
- W1: [1-4]
- X1: [1-4]
```
@ -348,14 +345,12 @@ connectors:
spn: 1234
# add a list of additional components to a part (shown in graph)
additional_components:
-
type: Crimp # short identifier used in graph
- type: Crimp # short identifier used in graph
subtype: Molex KK 254, 22-30 AWG # extra information added to type in bom
qty_multiplier: populated # multipier for quantity (number of populated pins)
manufacturer: Molex # set manufacter name
mpn: 08500030 # set manufacturer part number
-
type: Test
- type: Test
qty: 1
pn: ABC
manufacturer: Molex
@ -391,21 +386,17 @@ cables:
pn: [WIRE1, WIRE2, WIRE2, WIRE3]
# add a list of additional components to a part (shown in graph)
additional_components:
-
type: Sleve # short identifier used in graph
- type: Sleve # short identifier used in graph
subtype: Braided nylon, black, 3mm # extra information added to type in bom
qty_multiplier: length # multipier for quantity (length of cable)
unit: m
pn: SLV-1
connections:
-
- X1: [1-4]
- - X1: [1-4]
- W1: [1-4]
- X2: [1-4]
-
- X1: [1-4]
- - X1: [1-4]
- W2: [1-4]
- X3: [1-4]

View File

@ -1,5 +1,5 @@
graph {
// Graph generated by WireViz 0.3
// Graph generated by WireViz 0.4
// https://github.com/formatc1702/WireViz
graph [bgcolor="#FFFFFF" fontname=arial nodesep=0.33 rankdir=LR ranksep=2]
node [fillcolor="#FFFFFF" fontname=arial height=0 margin=0 shape=none style=filled width=0]

237
tutorial/tutorial01.html generated
View File

@ -1,170 +1,205 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="generator" content="WireViz 0.3 - https://github.com/formatc1702/WireViz">
<meta name="generator" content="WireViz 0.4 - https://github.com/formatc1702/WireViz">
<title>tutorial01</title>
</head><body style="font-family:arial;background-color:#FFFFFF">
<style>
#bom table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
#bom th, td {
padding: 4px;
text-align: left;
}
.bom_col_qty {
text-align: right;
}
</style>
</head><body style="font-family:arial;background-color:#ffffff">
<h1>tutorial01</h1>
<h2>Diagram</h2>
<div id="description">
<!-- %description% -->
</div>
<div id="diagram">
<!-- XML and DOCTYPE declarations from SVG file removed -->
<!-- Generated by graphviz version 2.49.0 (20210828.1703)
<!-- Generated by graphviz version 7.1.0 (20230121.1956)
-->
<!-- Pages: 1 -->
<svg width="489pt" height="192pt"
viewBox="0.00 0.00 489.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="484pt" height="192pt"
viewBox="0.00 0.00 484.00 192.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 188)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-188 485,-188 485,4 -4,4"/>
<polygon fill="#ffffff" stroke="none" points="-4,4 -4,-188 480,-188 480,4 -4,4"/>
<!-- X1 -->
<g id="node1" class="node">
<title>X1</title>
<polygon fill="#ffffff" stroke="black" points="40,-152 0,-152 0,-14 40,-14 40,-152"/>
<polygon fill="none" stroke="black" points="0,-129 0,-152 40,-152 40,-129 0,-129"/>
<text text-anchor="start" x="11" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0,-106 0,-129 40,-129 40,-106 0,-106"/>
<text text-anchor="start" x="4" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0,-83 0,-106 40,-106 40,-83 0,-83"/>
<polygon fill="#ffffff" stroke="black" points="39,-152 0,-152 0,-14 39,-14 39,-152"/>
<polygon fill="none" stroke="black" points="0.5,-129 0.5,-152 39.5,-152 39.5,-129 0.5,-129"/>
<text text-anchor="start" x="11.5" y="-136.8" font-family="arial" font-size="14.00">X1</text>
<polygon fill="none" stroke="black" points="0.5,-106 0.5,-129 39.5,-129 39.5,-106 0.5,-106"/>
<text text-anchor="start" x="4.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="0.5,-83 0.5,-106 39.5,-106 39.5,-83 0.5,-83"/>
<text text-anchor="start" x="16" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="0,-60 0,-83 40,-83 40,-60 0,-60"/>
<polygon fill="none" stroke="black" points="0.5,-60 0.5,-83 39.5,-83 39.5,-60 0.5,-60"/>
<text text-anchor="start" x="16" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="0,-37 0,-60 40,-60 40,-37 0,-37"/>
<polygon fill="none" stroke="black" points="0.5,-37 0.5,-60 39.5,-60 39.5,-37 0.5,-37"/>
<text text-anchor="start" x="16" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="0,-14 0,-37 40,-37 40,-14 0,-14"/>
<polygon fill="none" stroke="black" points="0.5,-14 0.5,-37 39.5,-37 39.5,-14 0.5,-14"/>
<text text-anchor="start" x="16" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1 -->
<g id="node3" class="node">
<title>W1</title>
<polygon fill="#ffffff" stroke="black" points="297,-184 184,-184 184,0 297,0 297,-184"/>
<polygon fill="none" stroke="black" points="184.5,-161 184.5,-184 297.5,-184 297.5,-161 184.5,-161"/>
<text text-anchor="start" x="230.5" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="184.5,-138 184.5,-161 236.5,-161 236.5,-138 184.5,-138"/>
<text text-anchor="start" x="203" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="236.5,-138 236.5,-161 297.5,-161 297.5,-138 236.5,-138"/>
<text text-anchor="start" x="255" y="-145.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="199" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="186.5" y="-105.8" font-family="arial" font-size="14.00">X1:1</text>
<text text-anchor="start" x="219.5" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1 &#160;&#160;&#160;</text>
<text text-anchor="start" x="266.5" y="-105.8" font-family="arial" font-size="14.00">X2:1</text>
<polygon fill="#000000" stroke="transparent" points="184.5,-98 184.5,-100 297.5,-100 297.5,-98 184.5,-98"/>
<polygon fill="#ffffff" stroke="transparent" points="184.5,-96 184.5,-98 297.5,-98 297.5,-96 184.5,-96"/>
<polygon fill="#000000" stroke="transparent" points="184.5,-94 184.5,-96 297.5,-96 297.5,-94 184.5,-94"/>
<text text-anchor="start" x="186.5" y="-80.8" font-family="arial" font-size="14.00">X1:2</text>
<text text-anchor="start" x="219.5" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2 &#160;&#160;&#160;</text>
<text text-anchor="start" x="266.5" y="-80.8" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="transparent" points="184.5,-73 184.5,-75 297.5,-75 297.5,-73 184.5,-73"/>
<polygon fill="#ffffff" stroke="transparent" points="184.5,-71 184.5,-73 297.5,-73 297.5,-71 184.5,-71"/>
<polygon fill="#000000" stroke="transparent" points="184.5,-69 184.5,-71 297.5,-71 297.5,-69 184.5,-69"/>
<text text-anchor="start" x="186.5" y="-55.8" font-family="arial" font-size="14.00">X1:3</text>
<text text-anchor="start" x="219.5" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3 &#160;&#160;&#160;</text>
<text text-anchor="start" x="266.5" y="-55.8" font-family="arial" font-size="14.00">X2:3</text>
<polygon fill="#000000" stroke="transparent" points="184.5,-48 184.5,-50 297.5,-50 297.5,-48 184.5,-48"/>
<polygon fill="#ffffff" stroke="transparent" points="184.5,-46 184.5,-48 297.5,-48 297.5,-46 184.5,-46"/>
<polygon fill="#000000" stroke="transparent" points="184.5,-44 184.5,-46 297.5,-46 297.5,-44 184.5,-44"/>
<text text-anchor="start" x="186.5" y="-30.8" font-family="arial" font-size="14.00">X1:4</text>
<text text-anchor="start" x="219.5" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4 &#160;&#160;&#160;</text>
<text text-anchor="start" x="266.5" y="-30.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#000000" stroke="transparent" points="184.5,-23 184.5,-25 297.5,-25 297.5,-23 184.5,-23"/>
<polygon fill="#ffffff" stroke="transparent" points="184.5,-21 184.5,-23 297.5,-23 297.5,-21 184.5,-21"/>
<polygon fill="#000000" stroke="transparent" points="184.5,-19 184.5,-21 297.5,-21 297.5,-19 184.5,-19"/>
<text text-anchor="start" x="199" y="-5.8" font-family="arial" font-size="14.00"> </text>
<polygon fill="#ffffff" stroke="black" points="293,-184 183,-184 183,0 293,0 293,-184"/>
<polygon fill="none" stroke="black" points="183,-161 183,-184 293,-184 293,-161 183,-161"/>
<text text-anchor="start" x="227" y="-168.8" font-family="arial" font-size="14.00">W1</text>
<polygon fill="none" stroke="black" points="183,-138 183,-161 234,-161 234,-138 183,-138"/>
<text text-anchor="start" x="201" y="-145.8" font-family="arial" font-size="14.00">4x</text>
<polygon fill="none" stroke="black" points="234,-138 234,-161 293,-161 293,-138 234,-138"/>
<text text-anchor="start" x="251.5" y="-145.8" font-family="arial" font-size="14.00">1 m</text>
<text text-anchor="start" x="197" y="-124.8" font-family="arial" font-size="14.00"> </text>
<text text-anchor="start" x="185" y="-105.8" font-family="arial" font-size="14.00">X1:1</text>
<text text-anchor="start" x="217" y="-105.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;1 &#160;&#160;&#160;</text>
<text text-anchor="start" x="263" y="-105.8" font-family="arial" font-size="14.00">X2:1</text>
<polygon fill="#000000" stroke="none" points="183,-98 183,-100 293,-100 293,-98 183,-98"/>
<polygon fill="#ffffff" stroke="none" points="183,-96 183,-98 293,-98 293,-96 183,-96"/>
<polygon fill="#000000" stroke="none" points="183,-94 183,-96 293,-96 293,-94 183,-94"/>
<text text-anchor="start" x="185" y="-80.8" font-family="arial" font-size="14.00">X1:2</text>
<text text-anchor="start" x="217" y="-80.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;2 &#160;&#160;&#160;</text>
<text text-anchor="start" x="263" y="-80.8" font-family="arial" font-size="14.00">X2:2</text>
<polygon fill="#000000" stroke="none" points="183,-73 183,-75 293,-75 293,-73 183,-73"/>
<polygon fill="#ffffff" stroke="none" points="183,-71 183,-73 293,-73 293,-71 183,-71"/>
<polygon fill="#000000" stroke="none" points="183,-69 183,-71 293,-71 293,-69 183,-69"/>
<text text-anchor="start" x="185" y="-55.8" font-family="arial" font-size="14.00">X1:3</text>
<text text-anchor="start" x="217" y="-55.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;3 &#160;&#160;&#160;</text>
<text text-anchor="start" x="263" y="-55.8" font-family="arial" font-size="14.00">X2:3</text>
<polygon fill="#000000" stroke="none" points="183,-48 183,-50 293,-50 293,-48 183,-48"/>
<polygon fill="#ffffff" stroke="none" points="183,-46 183,-48 293,-48 293,-46 183,-46"/>
<polygon fill="#000000" stroke="none" points="183,-44 183,-46 293,-46 293,-44 183,-44"/>
<text text-anchor="start" x="185" y="-30.8" font-family="arial" font-size="14.00">X1:4</text>
<text text-anchor="start" x="217" y="-30.8" font-family="arial" font-size="14.00"> &#160;&#160;&#160;&#160;4 &#160;&#160;&#160;</text>
<text text-anchor="start" x="263" y="-30.8" font-family="arial" font-size="14.00">X2:4</text>
<polygon fill="#000000" stroke="none" points="183,-23 183,-25 293,-25 293,-23 183,-23"/>
<polygon fill="#ffffff" stroke="none" points="183,-21 183,-23 293,-23 293,-21 183,-21"/>
<polygon fill="#000000" stroke="none" points="183,-19 183,-21 293,-21 293,-19 183,-19"/>
<text text-anchor="start" x="197" y="-5.8" font-family="arial" font-size="14.00"> </text>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge1" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-93C104.25,-93.02 120.24,-95.02 184,-95"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M40,-95C104.01,-95 119.99,-97 184,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-97C103.76,-96.98 119.75,-98.98 184,-99"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-93C103.25,-93.02 119.24,-95.02 183,-95"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M39,-95C103.01,-95 118.99,-97 183,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-97C102.76,-96.98 118.75,-98.98 183,-99"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge3" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-69C104.13,-69 120.12,-70 184,-70"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M40,-71C104,-71 120,-72 184,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-73C103.88,-73 119.87,-74 184,-74"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-69C103.13,-69 119.12,-70 183,-70"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M39,-71C103,-71 119,-72 183,-72"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-73C102.88,-73 118.87,-74 183,-74"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge5" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-46C103.88,-46 119.87,-45 184,-45"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M40,-48C104,-48 120,-47 184,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-50C104.13,-50 120.12,-49 184,-49"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-46C102.88,-46 118.87,-45 183,-45"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M39,-48C103,-48 119,-47 183,-47"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-50C103.13,-50 119.12,-49 183,-49"/>
</g>
<!-- X1&#45;&#45;W1 -->
<g id="edge7" class="edge">
<title>X1:e&#45;&#45;W1:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-23C103.64,-23.03 119.62,-20.03 184,-20"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M40,-25C104.01,-25 119.99,-22 184,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M40,-27C104.38,-26.97 120.36,-23.97 184,-24"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-23C102.64,-23.03 118.62,-20.03 183,-20"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M39,-25C103.01,-25 118.99,-22 183,-22"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M39,-27C103.38,-26.97 119.36,-23.97 183,-24"/>
</g>
<!-- X2 -->
<g id="node2" class="node">
<title>X2</title>
<polygon fill="#ffffff" stroke="black" points="481,-152 441,-152 441,-14 481,-14 481,-152"/>
<polygon fill="none" stroke="black" points="441,-129 441,-152 481,-152 481,-129 441,-129"/>
<text text-anchor="start" x="452" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="441,-106 441,-129 481,-129 481,-106 441,-106"/>
<text text-anchor="start" x="445" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="441,-83 441,-106 481,-106 481,-83 441,-83"/>
<text text-anchor="start" x="457" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="441,-60 441,-83 481,-83 481,-60 441,-60"/>
<text text-anchor="start" x="457" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="441,-37 441,-60 481,-60 481,-37 441,-37"/>
<text text-anchor="start" x="457" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="441,-14 441,-37 481,-37 481,-14 441,-14"/>
<text text-anchor="start" x="457" y="-21.8" font-family="arial" font-size="14.00">4</text>
<polygon fill="#ffffff" stroke="black" points="476,-152 437,-152 437,-14 476,-14 476,-152"/>
<polygon fill="none" stroke="black" points="437.5,-129 437.5,-152 476.5,-152 476.5,-129 437.5,-129"/>
<text text-anchor="start" x="448.5" y="-136.8" font-family="arial" font-size="14.00">X2</text>
<polygon fill="none" stroke="black" points="437.5,-106 437.5,-129 476.5,-129 476.5,-106 437.5,-106"/>
<text text-anchor="start" x="441.5" y="-113.8" font-family="arial" font-size="14.00">4&#45;pin</text>
<polygon fill="none" stroke="black" points="437.5,-83 437.5,-106 476.5,-106 476.5,-83 437.5,-83"/>
<text text-anchor="start" x="453" y="-90.8" font-family="arial" font-size="14.00">1</text>
<polygon fill="none" stroke="black" points="437.5,-60 437.5,-83 476.5,-83 476.5,-60 437.5,-60"/>
<text text-anchor="start" x="453" y="-67.8" font-family="arial" font-size="14.00">2</text>
<polygon fill="none" stroke="black" points="437.5,-37 437.5,-60 476.5,-60 476.5,-37 437.5,-37"/>
<text text-anchor="start" x="453" y="-44.8" font-family="arial" font-size="14.00">3</text>
<polygon fill="none" stroke="black" points="437.5,-14 437.5,-37 476.5,-37 476.5,-14 437.5,-14"/>
<text text-anchor="start" x="453" y="-21.8" font-family="arial" font-size="14.00">4</text>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge2" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-95C360.76,-95.02 376.75,-93.02 441,-93"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M297,-97C361.01,-97 376.99,-95 441,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-99C361.25,-98.98 377.24,-96.98 441,-97"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-95C356.76,-95.02 372.75,-93.02 437,-93"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M293,-97C357.01,-97 372.99,-95 437,-95"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-99C357.25,-98.98 373.24,-96.98 437,-97"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge4" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-70C360.88,-70 376.87,-69 441,-69"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M297,-72C361,-72 377,-71 441,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-74C361.13,-74 377.12,-73 441,-73"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-70C356.88,-70 372.87,-69 437,-69"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M293,-72C357,-72 373,-71 437,-71"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-74C357.13,-74 373.12,-73 437,-73"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge6" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-45C361.13,-45 377.12,-46 441,-46"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M297,-47C361,-47 377,-48 441,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-49C360.88,-49 376.87,-50 441,-50"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-45C357.13,-45 373.12,-46 437,-46"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M293,-47C357,-47 373,-48 437,-48"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-49C356.88,-49 372.87,-50 437,-50"/>
</g>
<!-- W1&#45;&#45;X2 -->
<g id="edge8" class="edge">
<title>W1:e&#45;&#45;X2:w</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-20C361.38,-20.03 377.36,-23.03 441,-23"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M297,-22C361.01,-22 376.99,-25 441,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M297,-24C360.64,-23.97 376.62,-26.97 441,-27"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-20C357.38,-20.03 373.36,-23.03 437,-23"/>
<path fill="none" stroke="#ffffff" stroke-width="2" d="M293,-22C357.01,-22 372.99,-25 437,-25"/>
<path fill="none" stroke="#000000" stroke-width="2" d="M293,-24C356.64,-23.97 372.62,-26.97 437,-27"/>
</g>
</g>
</svg>
</div>
<div id="notes">
<!-- %notes% -->
</div>
<h2>Bill of Materials</h2>
<table style="border:1px solid #000000; font-size: 14pt; border-spacing: 0px">
<div id="bom">
<table class="bom">
<tr>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Id</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Description</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Qty</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Unit</th>
<th style="text-align:left; border:1px solid #000000; padding: 8px">Designators</th>
<th class="bom_col_id">Id</th>
<th class="bom_col_description">Description</th>
<th class="bom_col_qty">Qty</th>
<th class="bom_col_unit">Unit</th>
<th class="bom_col_designators">Designators</th>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">1</td>
<td style="border:1px solid #000000; padding: 4px">Cable, 4 wires</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">1</td>
<td style="border:1px solid #000000; padding: 4px">m</td>
<td style="border:1px solid #000000; padding: 4px">W1</td>
<td class="bom_col_id">1</td>
<td class="bom_col_description">Cable, 4 wires</td>
<td class="bom_col_qty">1</td>
<td class="bom_col_unit">m</td>
<td class="bom_col_designators">W1</td>
</tr>
<tr>
<td style="border:1px solid #000000; padding: 4px">2</td>
<td style="border:1px solid #000000; padding: 4px">Connector, 4 pins</td>
<td style="border:1px solid #000000; padding: 4px; text-align:right">2</td>
<td style="border:1px solid #000000; padding: 4px"></td>
<td style="border:1px solid #000000; padding: 4px">X1, X2</td>
<td class="bom_col_id">2</td>
<td class="bom_col_description">Connector, 4 pins</td>
<td class="bom_col_qty">2</td>
<td class="bom_col_unit"></td>
<td class="bom_col_designators">X1, X2</td>
</tr>
</table>
</div>
</body></html>

BIN
tutorial/tutorial01.png generated

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Some files were not shown because too many files have changed in this diff Show More