Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
edf0f56675 | ||
|
|
00f1c95ab2 | ||
|
|
72d55bdbd8 | ||
|
|
585b1b8ba3 | ||
|
|
d9dfd0e370 | ||
|
|
8bfc2e10c8 | ||
|
|
e2710157f0 | ||
|
|
96a3c04836 | ||
|
|
72f5cb6827 | ||
|
|
e939c14fee | ||
|
|
3418c8320c | ||
|
|
4da4ce8f7c | ||
|
|
6640fba104 | ||
|
|
ecbfbcfccc | ||
|
|
eff6eaa253 | ||
|
|
f7984a4816 | ||
|
|
eac3535d92 | ||
|
|
7fd508cc84 | ||
|
|
3a12de4766 | ||
|
|
5535da5b38 | ||
|
|
ab4d4cc848 | ||
|
|
82340c3eec | ||
|
|
14a4fc0d74 | ||
|
|
99d5210313 | ||
|
|
e6d2ce7f62 | ||
|
|
c3802d38c2 | ||
|
|
ac23a9bb59 | ||
|
|
631cf31a07 | ||
|
|
115ae0d856 | ||
|
|
eec6d2ff85 | ||
|
|
4d360d2b01 | ||
|
|
52cb0fe81e | ||
|
|
961cebe48b | ||
|
|
87c2802b17 | ||
|
|
3c0aaea207 | ||
|
|
553490874b | ||
|
|
31d3872405 | ||
|
|
6f55e90365 | ||
|
|
76f129f6d1 | ||
|
|
d4d7971a56 | ||
|
|
64b0489a73 | ||
|
|
87ed7353b4 | ||
|
|
aca23197a1 | ||
|
|
69a2a2b8a2 | ||
|
|
f5d9a4f1c6 | ||
|
|
71ce165a46 | ||
|
|
56ab509630 | ||
|
|
9608a16d95 | ||
|
|
9b314777e0 | ||
|
|
1ae0a9005f | ||
|
|
1d5956a58a | ||
|
|
73c4a449ab | ||
|
|
aeeed159d7 | ||
|
|
104fd7d70f | ||
|
|
e9e5f48756 | ||
|
|
8260d71cd7 | ||
|
|
ac43f8a29f | ||
|
|
f6f87fec95 | ||
|
|
d1081229b3 | ||
|
|
8a73e916e7 | ||
|
|
17c45c3245 | ||
|
|
0ecf1cabde | ||
|
|
ba8d9806f7 | ||
|
|
99b289aa58 | ||
|
|
334b91f128 | ||
|
|
f7380b8bb0 | ||
|
|
6ad229c7c0 | ||
|
|
94dfbbf7c1 | ||
|
|
88b2502eb3 | ||
|
|
cd2e53f70b | ||
|
|
e009ff2cbc | ||
|
|
4816b58914 | ||
|
|
875a433182 | ||
|
|
dc8d029e96 | ||
|
|
af80c4770e | ||
|
|
ddcdc6f745 | ||
|
|
81ac996deb | ||
|
|
84d1d7bf3b | ||
|
|
9578fc1035 | ||
|
|
25f427d8bf | ||
|
|
725b6d672c | ||
|
|
4bc53b17f4 | ||
|
|
666f2a6b52 | ||
|
|
cbf6eb9578 | ||
|
|
7dd3edaee4 | ||
|
|
ef57dbf4a1 | ||
|
|
3a60d40bac | ||
|
|
cb0dee3e99 | ||
|
|
19673da32e | ||
|
|
b8b5652cb6 | ||
|
|
7b4953bc5f | ||
|
|
62f6fc85a5 | ||
|
|
d2b1b2183b | ||
|
|
a236609ebf | ||
|
|
6c893c136e | ||
|
|
f4212f232e | ||
|
|
3a805b0ca9 | ||
|
|
c52627cc8f | ||
|
|
b84fed1de9 | ||
|
|
d49bc548c7 | ||
|
|
492d6cd2d4 | ||
|
|
be3558167e | ||
|
|
4573fd2760 | ||
|
|
2a23c2e81d | ||
|
|
fe126de264 | ||
|
|
b290f7dc6b | ||
|
|
9127afdcbc | ||
|
|
7ee1f66556 | ||
|
|
f5422e9c90 | ||
|
|
40fc2588f9 | ||
|
|
96be47f21b | ||
|
|
e1be50181a | ||
|
|
52117157d8 | ||
|
|
7778ce96a5 | ||
|
|
637677dae2 | ||
|
|
abc00df943 | ||
|
|
bfa0b69e93 | ||
|
|
f664757ef3 | ||
|
|
b747520d1c | ||
|
|
dcddf15d15 | ||
|
|
c64458d3b9 | ||
|
|
2a963b2a0b | ||
|
|
6df509b66e | ||
|
|
ac9585b7a5 | ||
|
|
0982d5d65b | ||
|
|
8e7f8c619e | ||
|
|
a0b3ba1d74 | ||
|
|
3dc28579ef | ||
|
|
923f9df3da | ||
|
|
1665b77847 | ||
|
|
96e7e5f3d0 | ||
|
|
1b51d71061 | ||
|
|
9d706d719a | ||
|
|
7c62a2833a | ||
|
|
03ee7f74e8 | ||
|
|
025147680c | ||
|
|
e467bb57c9 | ||
|
|
33d0c9fa49 | ||
|
|
e95386e23e | ||
|
|
a758eaa1db | ||
|
|
470eebd1c5 | ||
|
|
37cdd2a83b | ||
|
|
a2d9c33eb5 | ||
|
|
6d0de1effa | ||
|
|
8e7fc53974 | ||
|
|
e456c8ef91 | ||
|
|
6500440031 | ||
|
|
8ec1b18629 | ||
|
|
26908040eb | ||
|
|
f67c98105a | ||
|
|
877391dea7 | ||
|
|
fb3446ad0d | ||
|
|
31256d70c1 | ||
|
|
f87e1b48ac | ||
|
|
6bcf6117c3 | ||
|
|
c77682f50d | ||
|
|
4c583a9d4e | ||
|
|
0688b8dded | ||
|
|
d1a4327751 | ||
|
|
4aec24a051 | ||
|
|
7bc995d0b6 | ||
|
|
725a07e6e1 | ||
|
|
d43bf94720 | ||
|
|
c6163fcc81 | ||
|
|
34992d5b20 | ||
|
|
c77aedcd8a | ||
|
|
7b9209681c | ||
|
|
7de33c0ce5 | ||
|
|
dbc5d327e3 | ||
|
|
2e39740e4b | ||
|
|
45e0744b3f | ||
|
|
aab6c0d3e0 | ||
|
|
8a4c4a5400 | ||
|
|
ecfbc6ca75 | ||
|
|
c3b6d44c59 | ||
|
|
db71a80f36 | ||
|
|
a80d5cf91e | ||
|
|
515d261bad | ||
|
|
dd54d67720 | ||
|
|
453332201e | ||
|
|
3548ff47ce | ||
|
|
a02b283f3f | ||
|
|
f197531979 | ||
|
|
2167b9d52d | ||
|
|
2be15fdf4d | ||
|
|
aaf3ad1b9c | ||
|
|
bd7806d2d4 | ||
|
|
24f7d7c288 | ||
|
|
5e0ba1de07 | ||
|
|
2f8ba40034 | ||
|
|
c4a09ab62a | ||
|
|
c0c53db5ee | ||
|
|
5e09a6f1bd | ||
|
|
5e9a8c5737 | ||
|
|
f934fdd9bd | ||
|
|
556728937f | ||
|
|
813ea61308 | ||
|
|
2e8e43bcdf | ||
|
|
e4ddd1ffce | ||
|
|
243f2948ef | ||
|
|
81a1379781 | ||
|
|
93a9370790 | ||
|
|
1989561c90 | ||
|
|
4101f9be79 | ||
|
|
0a31bc711f | ||
|
|
d8bd890101 | ||
|
|
2ba7edab0c | ||
|
|
616051149b | ||
|
|
e69c422f83 | ||
|
|
0ceabe8497 | ||
|
|
d3ae4ec9ee | ||
|
|
ffb2f8aa96 | ||
|
|
65c81834c9 | ||
|
|
97002948d1 | ||
|
|
70aa5ee0e2 | ||
|
|
efc1650e7f | ||
|
|
fe60636072 | ||
|
|
a1342f77c9 | ||
|
|
d806fe9fbe | ||
|
|
1259d5d33a | ||
|
|
098b8eb9cb | ||
|
|
c666009511 | ||
|
|
7f4234fc1e | ||
|
|
482289c384 | ||
|
|
30803fc017 | ||
|
|
749eceefc4 | ||
|
|
57f6f0fbef | ||
|
|
e061617c34 | ||
|
|
eb09ecd7c7 | ||
|
|
06a1542613 | ||
|
|
82a8f2ae89 | ||
|
|
7d0fe9cb85 | ||
|
|
1af876ac8f | ||
|
|
718a28c0da | ||
|
|
a2a375cb5c | ||
|
|
466d8d6c86 | ||
|
|
e77b3dcf4d | ||
|
|
b6d1eef2a1 | ||
|
|
20cb5fdde5 | ||
|
|
2f574e8c03 | ||
|
|
9d8531a85b | ||
|
|
fee122cf33 | ||
|
|
f42ed06d4f | ||
|
|
a8126f0bed |
@@ -3,7 +3,19 @@
|
|||||||
|
|
||||||
name: Build Python package and docs
|
name: Build Python package and docs
|
||||||
|
|
||||||
on: [ push, pull_request ]
|
on:
|
||||||
|
push:
|
||||||
|
tags-ignore:
|
||||||
|
- "*"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- doc/**
|
||||||
|
- src/**
|
||||||
|
- poetry.lock
|
||||||
|
- poetry.toml
|
||||||
|
- pyproject.toml
|
||||||
|
- setup.cfg
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -35,7 +47,7 @@ jobs:
|
|||||||
run: poetry run doc8
|
run: poetry run doc8
|
||||||
- name: Build html docs for Read the Docs
|
- name: Build html docs for Read the Docs
|
||||||
run: poetry run make -C doc html
|
run: poetry run make -C doc html
|
||||||
- name: Instal IDE docs dependencies
|
- name: Install IDE docs dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install dvisvgm preview-latex-style texlive texlive-fonts-extra texlive-latex-extra
|
sudo apt-get install dvisvgm preview-latex-style texlive texlive-fonts-extra texlive-latex-extra
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
name: pybricks_jedi
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
if: github.ref_type != 'tag'
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- run: pipx install poetry
|
||||||
|
- run: poetry install
|
||||||
|
working-directory: ./jedi
|
||||||
|
- run: poetry run pytest -vv
|
||||||
|
working-directory: ./jedi
|
||||||
|
|
||||||
|
publish:
|
||||||
|
if: github.ref_type == 'tag' && startsWith(github.ref_name, 'pybricks_jedi/')
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- run: pipx install poetry
|
||||||
|
- run: poetry install
|
||||||
|
working-directory: ./jedi
|
||||||
|
- run: poetry build
|
||||||
|
working-directory: ./jedi
|
||||||
|
- run: poetry publish
|
||||||
|
working-directory: ./jedi
|
||||||
|
env:
|
||||||
|
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_PYBRICKS_JEDI_TOKEN }}
|
||||||
@@ -31,8 +31,8 @@ jobs:
|
|||||||
node-version: '14.x'
|
node-version: '14.x'
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
- run: yarn build
|
- run: yarn build
|
||||||
working-directory: doc/main
|
working-directory: npm/ide-docs
|
||||||
- run: yarn publish
|
- run: yarn publish
|
||||||
working-directory: doc/main
|
working-directory: npm/ide-docs
|
||||||
env:
|
env:
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
name: Release @pybricks/images
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '@pybricks/images/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish_ide_docs:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
# Setup .npmrc file to publish to npm
|
||||||
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16.x'
|
||||||
|
registry-url: 'https://registry.npmjs.org'
|
||||||
|
- run: ./build.py
|
||||||
|
working-directory: npm/images
|
||||||
|
- run: yarn publish
|
||||||
|
working-directory: npm/images/build
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
name: Release @pybricks/jedi
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '@pybricks/jedi/**'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish_ide_docs:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
# Setup .npmrc file to publish to npm
|
||||||
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16.x'
|
||||||
|
registry-url: 'https://registry.npmjs.org'
|
||||||
|
- run: ./build.py
|
||||||
|
working-directory: npm/jedi
|
||||||
|
- run: yarn publish
|
||||||
|
working-directory: npm/jedi/build
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
||||||
@@ -6,17 +6,10 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build_and_publish:
|
build_and_publish:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-python@v2
|
- run: pipx run poetry build
|
||||||
with:
|
- run: pipx run poetry publish
|
||||||
python-version: 3.8
|
|
||||||
- uses: abatilo/actions-poetry@v2.0.0
|
|
||||||
with:
|
|
||||||
poetry-version: 1.1.6
|
|
||||||
- run: poetry install
|
|
||||||
- run: poetry build
|
|
||||||
- run: poetry publish
|
|
||||||
env:
|
env:
|
||||||
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
|
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
|
||||||
|
|||||||
@@ -26,8 +26,9 @@ build/
|
|||||||
build-*/
|
build-*/
|
||||||
_build/
|
_build/
|
||||||
|
|
||||||
# Test failure outputs
|
# Tests
|
||||||
######################
|
######################
|
||||||
|
.pytest_cache/
|
||||||
tests/*.exp
|
tests/*.exp
|
||||||
tests/*.out
|
tests/*.out
|
||||||
|
|
||||||
@@ -57,3 +58,10 @@ genrst/
|
|||||||
# Virtual environment
|
# Virtual environment
|
||||||
######################
|
######################
|
||||||
.venv/
|
.venv/
|
||||||
|
.python-version
|
||||||
|
|
||||||
|
# Generated LDRAW output
|
||||||
|
######################
|
||||||
|
stderr-ldview
|
||||||
|
stdout-ldview
|
||||||
|
LPub3D/
|
||||||
|
|||||||
@@ -1,10 +1,24 @@
|
|||||||
{
|
{
|
||||||
"python.pythonPath": "${workspaceFolder}/.venv",
|
"files.exclude": {
|
||||||
|
"**/__pycache__": true,
|
||||||
|
},
|
||||||
|
"python.defaultInterpreterPath": ".venv/bin/python",
|
||||||
|
"python.autoComplete.extraPaths": ["jedi/src"],
|
||||||
"python.formatting.provider": "black",
|
"python.formatting.provider": "black",
|
||||||
"python.linting.pycodestyleEnabled": false,
|
"python.linting.pylintEnabled": false,
|
||||||
"python.linting.flake8Enabled": true,
|
"python.linting.flake8Enabled": true,
|
||||||
|
"python.linting.pycodestyleEnabled": false,
|
||||||
"python.linting.enabled": true,
|
"python.linting.enabled": true,
|
||||||
|
"[python]": {
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.defaultFormatter": "ms-python.python"
|
||||||
|
},
|
||||||
"python.languageServer": "Pylance",
|
"python.languageServer": "Pylance",
|
||||||
|
"python.testing.pytestArgs": [
|
||||||
|
"jedi/tests"
|
||||||
|
],
|
||||||
|
"python.testing.unittestEnabled": false,
|
||||||
|
"python.testing.pytestEnabled": true,
|
||||||
"files.associations": {"*.inc": "restructuredtext"},
|
"files.associations": {"*.inc": "restructuredtext"},
|
||||||
"restructuredtext.confPath": "${workspaceFolder}/doc/main",
|
"restructuredtext.confPath": "${workspaceFolder}/doc/main",
|
||||||
"spellright.language": [
|
"spellright.language": [
|
||||||
@@ -34,5 +48,12 @@
|
|||||||
"plaintext",
|
"plaintext",
|
||||||
"python",
|
"python",
|
||||||
"restructuredtext",
|
"restructuredtext",
|
||||||
]
|
],
|
||||||
|
"rewrap.wrappingColumn": 78,
|
||||||
|
"python.analysis.extraPaths": [
|
||||||
|
"jedi/src"
|
||||||
|
],
|
||||||
|
"yaml.schemas": {
|
||||||
|
"https://json.schemastore.org/github-workflow.json": "file:///home/david/work/pybricks/pybricks-api/.github/workflows/build.yml"
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,3 +78,4 @@ thermistor
|
|||||||
toctree
|
toctree
|
||||||
TODO
|
TODO
|
||||||
UART
|
UART
|
||||||
|
utf-8
|
||||||
|
|||||||
@@ -0,0 +1,161 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
<!-- refer to https://keepachangelog.com/en/1.0.0/ for guidance -->
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
## 3.2.0c1 - 2022-12-09
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Updated "front" side of the Technic Hub to be consistent with
|
||||||
|
the Prime Hub.
|
||||||
|
|
||||||
|
## 3.2.0b6 - 2022-12-02
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Documented ``Stop.NONE`` and ``Stop.COAST_SMART``.
|
||||||
|
- Documented ``ujson`` module.
|
||||||
|
- Added `done` and `stalled` methods for `DriveBase`.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Changed `PrimeHub.display.image()` to `PrimeHub.display.icon()` and renamed
|
||||||
|
its kwarg from `image` to `icon`.
|
||||||
|
- Improved presentation and docstrings of the ``ubuiltins`` and other
|
||||||
|
MicroPython modules
|
||||||
|
- Moved the random numbers example for Move Hub to the Move Hub page.
|
||||||
|
- Moved `done()`, `stalled()`, `load()` from `Control` to `Motor` object.
|
||||||
|
|
||||||
|
## 3.2.0b5 - 2022-11-11
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed Jedi code completion for `Color` and `Icon` classes in `pybricks.parameters`.
|
||||||
|
|
||||||
|
## 3.2.0b4 - 2022-10-21
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Code auto-completion for `EssentialHub`.
|
||||||
|
- Added `System.storage` method.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed some type hints in `parameters` submodule.
|
||||||
|
|
||||||
|
## 3.2.0b1-r3 - 2022-06-26
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed more type hints and improved compatibility with jedi.
|
||||||
|
|
||||||
|
## 3.2.0b1-r2 - 2022-06-24
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Moved remaining type hints from `.pyi` files to the python stub modules, and
|
||||||
|
fixed numerous errors in the type hints throughout.
|
||||||
|
|
||||||
|
## 3.2.0b1-r1 - 2022-06-09
|
||||||
|
|
||||||
|
## Added
|
||||||
|
- Added `__init__.py` to `pybricks` package.
|
||||||
|
|
||||||
|
## 3.2.0b1 - 2022-06-02
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Code auto-completion for `hub.charger`, `hub.imu` and `hub.system`.
|
||||||
|
- Moved typing from several `.pyi` files to the actual python modules.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed code completion for `DCMotor` and `Motor` classes in MS Python VS Code extension.
|
||||||
|
- Fixed missing `DCMotor` type in `ev3devices`.
|
||||||
|
- Fixed type hint for `Motor.reset_angle()` in `pupdevices`.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Setter for acceleration can now also be used to set acceleration and
|
||||||
|
deceleration to different values, using a two-valued tuple.
|
||||||
|
|
||||||
|
## 3.1.0 - 2021-12-16
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Added maximum voltage setter for `DCMotor` and `Motor`.
|
||||||
|
- Documented `DriveBase.curve()` method.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Removed `duty` setting from `Control.limits` method.
|
||||||
|
- Removed `integral_range` setting from `Control.pid` method.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed link to Color Light Matrix page.
|
||||||
|
- Fixed link to Inventor Hub page.
|
||||||
|
|
||||||
|
## 3.1.0rc1 - 2021-11-19
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Added `ColorLightMatrix` class.
|
||||||
|
- Added `LWP3Device` class.
|
||||||
|
|
||||||
|
**NOTE: version number after this point were from JavaScript package and do
|
||||||
|
not correspond to Pybricks firmware version numbers.**
|
||||||
|
|
||||||
|
## 1.6.0 - 2021-08-30
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- MicroPython module documentation.
|
||||||
|
- Examples for hub system functions including stop button and shutdown.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Build IDE docs as main docs with minor changes, instead of a completely
|
||||||
|
separate build.
|
||||||
|
- Moved motor control documentation to the motor page.
|
||||||
|
|
||||||
|
## 1.5.0 - 2021-07-01
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Documentation for Powered Up Remote Control.
|
||||||
|
|
||||||
|
## 1.4.0 - 2021-06-23
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Enabled beta content that was hidden for the 3.0 release.
|
||||||
|
- Added notice about using the latest beta version.
|
||||||
|
|
||||||
|
## 1.3.3 - 2021-05-21
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Match example snippet styling to IDE.
|
||||||
|
- Add more examples.
|
||||||
|
|
||||||
|
## 1.3.2 - 2021-04-26
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
- Theme style fixes.
|
||||||
|
- Example code fixes
|
||||||
|
- Match doc version to firmware version.
|
||||||
|
|
||||||
|
## 1.3.1 - 2021-04-12
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Upgrade sphinx and rtd-theme to fix style issues.
|
||||||
|
|
||||||
|
## 1.3.0 - 2021-04-12
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Removed features which not be in the official 3.0 release. These features
|
||||||
|
are still in beta. They'll come back in future releases once tested.
|
||||||
|
|
||||||
|
## 1.2.0 - 2021-04-09
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Moved installation guide to external site.
|
||||||
|
|
||||||
|
## 1.1.1 - 2021-02-14
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Added installation guide.
|
||||||
|
- Various documentation fixes.
|
||||||
|
|
||||||
|
## 1.1.0 - 2021-01-28
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Scrollbar styling.
|
||||||
|
|
||||||
|
## 1.0.0 - 2021-01-25
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Sphinx build output.
|
||||||
@@ -32,14 +32,91 @@ will actually be implemented.
|
|||||||
- pybricks.tools.wait: Add example of waiting.
|
- pybricks.tools.wait: Add example of waiting.
|
||||||
- pybricks.pupdevices: Fix all sensor class ports.
|
- pybricks.pupdevices: Fix all sensor class ports.
|
||||||
- umath.sin: Fix spelling of Hypotenuse.
|
- umath.sin: Fix spelling of Hypotenuse.
|
||||||
- If an import path makes no sense, just use the file path without extensions:
|
- If an import path makes no sense, just use the file path without
|
||||||
|
extensions:
|
||||||
- .vscode/settings: Fix file associations.
|
- .vscode/settings: Fix file associations.
|
||||||
- The subject briefly describes _what_ was changed. Use a short full sentence as in the examples above.
|
- The subject briefly describes _what_ was changed. Use a short full sentence
|
||||||
|
as in the examples above.
|
||||||
- The body describes _why_ the change was made, e.g. `The word "sensor" was
|
- The body describes _why_ the change was made, e.g. `The word "sensor" was
|
||||||
spelled incorrectly`.
|
spelled incorrectly`.
|
||||||
|
|
||||||
[commits]: https://github.com/pybricks/pybricks-api/commits/master
|
[commits]: https://github.com/pybricks/pybricks-api/commits/master
|
||||||
|
|
||||||
|
**General docstring principles:**
|
||||||
|
|
||||||
|
The stubs libraries in this repository have two different purposes:
|
||||||
|
1. Auto-generating documentation with Sphinx. For this purpose, the
|
||||||
|
documentation should be concise and clear.
|
||||||
|
2. Provide autocomplete and intellisense in code editors. For this purpose,
|
||||||
|
the code needs to be 100% correct. This way, computers can parse your code
|
||||||
|
correctly and tell you when something is wrong.
|
||||||
|
|
||||||
|
Since these objectives don't always align, we address these separately in the
|
||||||
|
stubs library:
|
||||||
|
|
||||||
|
1. The first line(s) of the docstring contain the function or method signature
|
||||||
|
as it should be displayed in the human-readable documentation.
|
||||||
|
2. The real function signature can be as complex as it needs to be to make it
|
||||||
|
correct for intellisense. Overloads can be uses if needed.
|
||||||
|
|
||||||
|
In the rare case where the docstring signature is the same as the typed
|
||||||
|
version, we'll still include it for consistency.
|
||||||
|
|
||||||
|
**Docstring details:**
|
||||||
|
|
||||||
|
Make sure to look at existing function signatures and docstrings for
|
||||||
|
inspiration when documenting new functionality. As an example, consider:
|
||||||
|
|
||||||
|
```python
|
||||||
|
def run_until_stalled(
|
||||||
|
self,
|
||||||
|
speed: Number,
|
||||||
|
then: Stop = Stop.COAST,
|
||||||
|
duty_limit: Optional[Number] = None,
|
||||||
|
) -> int:
|
||||||
|
"""
|
||||||
|
run_until_stalled(speed, then=Stop.COAST, duty_limit=None) -> int: deg
|
||||||
|
|
||||||
|
Runs the motor at a constant speed until it stalls.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
speed (Number, deg/s): Speed of the motor.
|
||||||
|
then (Stop): What to do after coming to a standstill.
|
||||||
|
duty_limit (Number, %): Duty cycle limit during this
|
||||||
|
command. This is useful to avoid applying the full motor
|
||||||
|
torque to a geared or lever mechanism. If it is ``None``, the
|
||||||
|
duty limit won't be changed during this command.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Angle at which the motor becomes stalled.
|
||||||
|
"""
|
||||||
|
```
|
||||||
|
The real method signature at the top contains the full detail, including the
|
||||||
|
type of each argument and return value.
|
||||||
|
|
||||||
|
The docstring starts with the signature. Use more than one signature if needed
|
||||||
|
to represent overloaded methods. The signatures are written in the way they
|
||||||
|
should be displayed in the docs:
|
||||||
|
- Argument types are omitted because they are also shown with the argument
|
||||||
|
description below.
|
||||||
|
- Default values should be given (``then=Stop.COAST``).
|
||||||
|
- The return type should be given (``-> int``). When applicable, include
|
||||||
|
the unit of the return value, so it becomes ``-> int: deg``
|
||||||
|
|
||||||
|
Then follows a concise description of what this method, function, or class
|
||||||
|
does.
|
||||||
|
|
||||||
|
Then follows a list of arguments:
|
||||||
|
- For each argument, include the expected type and unit if applicable, e.g.
|
||||||
|
``(int)`` or ``(Number, deg/s)``.
|
||||||
|
- Use ``Number`` when ``int`` and ``float`` are both allowed.
|
||||||
|
- If the description is long, use the indentation shown above.
|
||||||
|
- Make it readable. Instead
|
||||||
|
of ``Union[float, SupportsFloat, complex, SupportsComplex]``,
|
||||||
|
just say _float or complex_.
|
||||||
|
|
||||||
|
Then follows a description of the return value. The type is omitted here since
|
||||||
|
it is already include in the docstring signature.
|
||||||
|
|
||||||
**Development environment:**
|
**Development environment:**
|
||||||
|
|
||||||
@@ -49,8 +126,8 @@ Prerequisites:
|
|||||||
- [Python 3][python]
|
- [Python 3][python]
|
||||||
- [Poetry][poetry]
|
- [Poetry][poetry]
|
||||||
|
|
||||||
Information on installing prerequisites can be found on the [pybricks-micropython
|
Information on installing prerequisites can be found on the
|
||||||
wiki][wiki].
|
[pybricks-micropython contributor's guide][contributing].
|
||||||
|
|
||||||
Initial setup:
|
Initial setup:
|
||||||
|
|
||||||
@@ -90,4 +167,4 @@ Linting:
|
|||||||
[git]: https://git-scm.com/
|
[git]: https://git-scm.com/
|
||||||
[python]: https://www.python.org/
|
[python]: https://www.python.org/
|
||||||
[poetry]: https://python-poetry.org/
|
[poetry]: https://python-poetry.org/
|
||||||
[wiki]: https://github.com/pybricks-micropython/wiki
|
[contributing]: https://github.com/pybricks/pybricks-micropython/blob/master/CONTRIBUTING.md
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2018-2021 The Pybricks Authors
|
Copyright (c) 2018-2022 The Pybricks Authors
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ TAG = main
|
|||||||
|
|
||||||
# Put it first so that "make" without argument is like "make help".
|
# Put it first so that "make" without argument is like "make help".
|
||||||
help:
|
help:
|
||||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) -t $(TAG) $(O)
|
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(TAG) $(O)
|
||||||
|
|
||||||
.PHONY: help Makefile
|
.PHONY: help Makefile
|
||||||
|
|
||||||
diagrams:
|
diagrams:
|
||||||
@$(MAKE) -C "$(SOURCEDIR)"/diagram_source clean
|
@$(MAKE) -C "$(SOURCEDIR)"/diagrams_source clean
|
||||||
@$(MAKE) -C "$(SOURCEDIR)"/diagram_source
|
@$(MAKE) -C "$(SOURCEDIR)"/diagrams_source
|
||||||
|
|
||||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||||
|
|||||||
@@ -40,3 +40,11 @@
|
|||||||
::-webkit-scrollbar-thumb:hover {
|
::-webkit-scrollbar-thumb:hover {
|
||||||
background: #182026;
|
background: #182026;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html.writer-html5 .rst-content dl.citation,
|
||||||
|
html.writer-html5 .rst-content dl.field-list,
|
||||||
|
html.writer-html5 .rst-content dl.footnote {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
grid-template-columns: unset;
|
||||||
|
}
|
||||||
|
|||||||
@@ -41,3 +41,7 @@ span.caption-number:after {
|
|||||||
.figure > a.reference.external::after {
|
.figure > a.reference.external::after {
|
||||||
content: none !important;
|
content: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.wy-side-nav-search > div.version {
|
||||||
|
color: hsla(0, 0%, 100%, 0.75);
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,21 +27,20 @@ from docutils import nodes
|
|||||||
from docutils.parsers.rst.directives import flag
|
from docutils.parsers.rst.directives import flag
|
||||||
from docutils.parsers.rst import Directive
|
from docutils.parsers.rst import Directive
|
||||||
from sphinx.application import Sphinx
|
from sphinx.application import Sphinx
|
||||||
|
from sphinx.addnodes import pending_xref
|
||||||
|
from sphinx.environment import BuildEnvironment
|
||||||
|
from sphinx.util.nodes import make_refnode
|
||||||
import toml
|
import toml
|
||||||
|
|
||||||
TOP_DIR = os.path.abspath(os.path.join('..', '..'))
|
TOP_DIR = os.path.abspath(os.path.join("..", ".."))
|
||||||
sys.path.insert(0, os.path.join(TOP_DIR, 'src'))
|
sys.path.insert(0, os.path.join(TOP_DIR, "src"))
|
||||||
sys.path.append(os.path.abspath('../common/extensions'))
|
sys.path.append(os.path.abspath("../common/extensions"))
|
||||||
|
|
||||||
from pybricks.hubs import EV3Brick # noqa E402
|
|
||||||
from pybricks.media.ev3dev import Image # noqa E402
|
|
||||||
from pybricks._common import Speaker # noqa E402
|
|
||||||
|
|
||||||
# ON_RTD is whether we are on readthedocs.org
|
# ON_RTD is whether we are on readthedocs.org
|
||||||
# this line of code grabbed from docs.readthedocs.org
|
# this line of code grabbed from docs.readthedocs.org
|
||||||
ON_RTD = os.environ.get('READTHEDOCS', None) == 'True'
|
ON_RTD = os.environ.get("READTHEDOCS", None) == "True"
|
||||||
|
|
||||||
_pyproject = toml.load(os.path.join(TOP_DIR, 'pyproject.toml'))
|
_pyproject = toml.load(os.path.join(TOP_DIR, "pyproject.toml"))
|
||||||
|
|
||||||
# -- General configuration ------------------------------------------------
|
# -- General configuration ------------------------------------------------
|
||||||
|
|
||||||
@@ -53,27 +52,29 @@ _pyproject = toml.load(os.path.join(TOP_DIR, 'pyproject.toml'))
|
|||||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||||
# ones.
|
# ones.
|
||||||
extensions = [
|
extensions = [
|
||||||
'sphinx.ext.autodoc',
|
"sphinx.ext.autodoc",
|
||||||
'sphinx.ext.napoleon',
|
"sphinx.ext.napoleon",
|
||||||
'sphinx.ext.todo',
|
"sphinx.ext.todo",
|
||||||
'sphinx.ext.mathjax',
|
"sphinx.ext.mathjax",
|
||||||
'color',
|
# Custom Pybricks extensions
|
||||||
'classlink',
|
"color",
|
||||||
'requirements',
|
"classlink",
|
||||||
'requirements-static',
|
"requirements",
|
||||||
|
"requirements-static",
|
||||||
|
"versionchanged",
|
||||||
]
|
]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['../common/_templates']
|
templates_path = ["../common/_templates"]
|
||||||
|
|
||||||
# The suffix(es) of source filenames.
|
# The suffix(es) of source filenames.
|
||||||
# You can specify multiple suffix as a list of string:
|
# You can specify multiple suffix as a list of string:
|
||||||
#
|
#
|
||||||
# source_suffix = ['.rst', '.md']
|
# source_suffix = ['.rst', '.md']
|
||||||
source_suffix = '.rst'
|
source_suffix = ".rst"
|
||||||
|
|
||||||
# The master toctree document.
|
# The master toctree document.
|
||||||
master_doc = 'index'
|
master_doc = "index"
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
@@ -82,17 +83,17 @@ master_doc = 'index'
|
|||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = "v" + _pyproject["tool"]["poetry"]["version"]
|
release = "v" + _pyproject["tool"]["poetry"]["version"]
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = re.match(r'(v\d+\.\d+)', release)[0]
|
version = re.match(r"(v\d+\.\d+)", release)[0]
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
#
|
#
|
||||||
# This is also used if you do content translation via gettext catalogs.
|
# This is also used if you do content translation via gettext catalogs.
|
||||||
# Usually you set "language" from the command line for these cases.
|
# Usually you set "language" from the command line for these cases.
|
||||||
language = None
|
language = "en"
|
||||||
|
|
||||||
# The name of the Pygments (syntax highlighting) style to use.
|
# The name of the Pygments (syntax highlighting) style to use.
|
||||||
pygments_style = 'xcode'
|
pygments_style = "xcode"
|
||||||
|
|
||||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||||
todo_include_todos = True
|
todo_include_todos = True
|
||||||
@@ -100,10 +101,10 @@ todo_include_todos = True
|
|||||||
# Figure numbering
|
# Figure numbering
|
||||||
numfig = True
|
numfig = True
|
||||||
numfig_format = {
|
numfig_format = {
|
||||||
'figure': 'Figure %s',
|
"figure": "Figure %s",
|
||||||
'table': 'Table %s',
|
"table": "Table %s",
|
||||||
'code-block': 'Listing %s',
|
"code-block": "Listing %s",
|
||||||
'section': 'Section %s'
|
"section": "Section %s",
|
||||||
}
|
}
|
||||||
|
|
||||||
# Find cross-reference errors
|
# Find cross-reference errors
|
||||||
@@ -111,59 +112,49 @@ nitpicky = True
|
|||||||
|
|
||||||
# https://stackoverflow.com/a/30624034/1976323
|
# https://stackoverflow.com/a/30624034/1976323
|
||||||
nitpick_ignore = [
|
nitpick_ignore = [
|
||||||
('py:class', 'bool'),
|
("py:class", "bool"),
|
||||||
('py:class', 'bytearray'),
|
("py:class", "bytearray"),
|
||||||
('py:class', 'bytes'),
|
("py:class", "bytes"),
|
||||||
('py:class', 'callable'),
|
("py:class", "callable"),
|
||||||
('py:class', 'dict'),
|
("py:class", "dict"),
|
||||||
('py:class', 'float'),
|
("py:class", "float"),
|
||||||
('py:class', 'int'),
|
("py:class", "int"),
|
||||||
('py:class', 'iter'),
|
("py:class", "iter"),
|
||||||
('py:class', 'list'),
|
("py:class", "list"),
|
||||||
('py:class', 'object'),
|
("py:class", "object"),
|
||||||
('py:class', 'str'),
|
("py:class", "str"),
|
||||||
('py:class', 'tuple'),
|
("py:class", "tuple"),
|
||||||
('py:exc', 'OSError'),
|
("py:exc", "OSError"),
|
||||||
('py:exc', 'RuntimeError'),
|
("py:exc", "RuntimeError"),
|
||||||
('py:exc', 'TypeError'),
|
("py:exc", "TypeError"),
|
||||||
('py:exc', 'ValueError'),
|
("py:exc", "ValueError"),
|
||||||
]
|
]
|
||||||
|
|
||||||
# not sure why, but this is needed for typing.IO in uselect
|
# not sure why, but this is needed for typing.IO in uselect
|
||||||
nitpick_ignore.append(('py:class', 'IO'))
|
nitpick_ignore.append(("py:obj", "typing.IO"))
|
||||||
|
|
||||||
# Workaround until change below is released.
|
|
||||||
# https://github.com/sphinx-doc/sphinx/commit/86091934db5ec593b4b0c982b7f08f3231ef995b
|
|
||||||
nitpick_ignore.extend([
|
|
||||||
('py:class', '0'),
|
|
||||||
('py:class', '1'),
|
|
||||||
('py:class', '2'),
|
|
||||||
('py:class', '3'),
|
|
||||||
('py:class', 'big'),
|
|
||||||
('py:class', 'little'),
|
|
||||||
])
|
|
||||||
|
|
||||||
# -- Autodoc options ------------------------------------------------------
|
# -- Autodoc options ------------------------------------------------------
|
||||||
|
|
||||||
autodoc_member_order = 'bysource'
|
autodoc_member_order = "bysource"
|
||||||
autodoc_default_options = {
|
autodoc_default_options = {
|
||||||
'members': True,
|
"members": True,
|
||||||
'undoc-members': True,
|
"undoc-members": True,
|
||||||
}
|
}
|
||||||
autoclass_content = 'both' # This ensures init arguments are not ignored
|
autoclass_content = "both" # This ensures init arguments are not ignored
|
||||||
add_module_names = False # Hide module name
|
add_module_names = False # Hide module name
|
||||||
|
|
||||||
# -- Options for HTML output ----------------------------------------------
|
# -- Options for HTML output ----------------------------------------------
|
||||||
|
|
||||||
if ON_RTD:
|
if ON_RTD:
|
||||||
html_theme = 'default'
|
html_theme = "default"
|
||||||
else:
|
else:
|
||||||
import sphinx_rtd_theme
|
import sphinx_rtd_theme
|
||||||
html_theme = 'sphinx_rtd_theme'
|
|
||||||
|
html_theme = "sphinx_rtd_theme"
|
||||||
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
||||||
|
|
||||||
html_context = {
|
html_context = {
|
||||||
'disclaimer': _DISCLAIMER,
|
"disclaimer": _DISCLAIMER,
|
||||||
}
|
}
|
||||||
|
|
||||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
@@ -176,14 +167,15 @@ html_context = {
|
|||||||
# documentation.
|
# documentation.
|
||||||
#
|
#
|
||||||
html_theme_options = {
|
html_theme_options = {
|
||||||
'style_external_links': True,
|
"style_external_links": True,
|
||||||
'logo_only': True,
|
"logo_only": True,
|
||||||
|
"style_nav_header_background": "#0088ce", # Pybricks blue
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
html_static_path = ['../common/_static']
|
html_static_path = ["../common/_static"]
|
||||||
|
|
||||||
# Custom sidebar templates, must be a dictionary that maps document names
|
# Custom sidebar templates, must be a dictionary that maps document names
|
||||||
# to template names.
|
# to template names.
|
||||||
@@ -191,9 +183,9 @@ html_static_path = ['../common/_static']
|
|||||||
# This is required for the alabaster theme
|
# This is required for the alabaster theme
|
||||||
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
|
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
|
||||||
html_sidebars = {
|
html_sidebars = {
|
||||||
'**': [
|
"**": [
|
||||||
'relations.html', # needs 'show_related': True theme option to display
|
"relations.html", # needs 'show_related': True theme option to display
|
||||||
'searchbox.html',
|
"searchbox.html",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +195,7 @@ html_scaled_image_link = False
|
|||||||
# -- Options for HTMLHelp output ------------------------------------------
|
# -- Options for HTMLHelp output ------------------------------------------
|
||||||
|
|
||||||
# Output file base name for HTML help builder.
|
# Output file base name for HTML help builder.
|
||||||
htmlhelp_basename = 'Pybricksdoc'
|
htmlhelp_basename = "Pybricksdoc"
|
||||||
|
|
||||||
|
|
||||||
# -- Options for LaTeX output ---------------------------------------------
|
# -- Options for LaTeX output ---------------------------------------------
|
||||||
@@ -212,14 +204,12 @@ latex_elements = {
|
|||||||
# The paper size ('letterpaper' or 'a4paper').
|
# The paper size ('letterpaper' or 'a4paper').
|
||||||
#
|
#
|
||||||
# 'papersize': 'letterpaper',
|
# 'papersize': 'letterpaper',
|
||||||
|
|
||||||
# The font size ('10pt', '11pt' or '12pt').
|
# The font size ('10pt', '11pt' or '12pt').
|
||||||
#
|
#
|
||||||
# 'pointsize': '10pt',
|
# 'pointsize': '10pt',
|
||||||
|
|
||||||
# Additional stuff for the LaTeX preamble.
|
# Additional stuff for the LaTeX preamble.
|
||||||
#
|
#
|
||||||
'preamble': r'''
|
"preamble": r"""
|
||||||
\usepackage{CJKutf8}
|
\usepackage{CJKutf8}
|
||||||
\makeatletter
|
\makeatletter
|
||||||
\fancypagestyle{normal}{
|
\fancypagestyle{normal}{
|
||||||
@@ -239,51 +229,46 @@ latex_elements = {
|
|||||||
\renewcommand{\footrulewidth}{0.4pt}
|
\renewcommand{\footrulewidth}{0.4pt}
|
||||||
}
|
}
|
||||||
\makeatother
|
\makeatother
|
||||||
''' % {
|
"""
|
||||||
'disclaimer': ' '.join((_DISCLAIMER, '©', copyright)),
|
% {
|
||||||
|
"disclaimer": " ".join((_DISCLAIMER, "©", copyright)),
|
||||||
},
|
},
|
||||||
|
|
||||||
# Latex figure (float) alignment
|
# Latex figure (float) alignment
|
||||||
#
|
#
|
||||||
# 'figure_align': 'htbp',
|
# 'figure_align': 'htbp',
|
||||||
'extraclassoptions': 'openany,oneside',
|
"extraclassoptions": "openany,oneside",
|
||||||
|
"releasename": "Version",
|
||||||
'releasename': 'Version',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Grouping the document tree into LaTeX files. List of tuples
|
# Grouping the document tree into LaTeX files. List of tuples
|
||||||
# (source start file, target name, title,
|
# (source start file, target name, title,
|
||||||
# author, documentclass [howto, manual, or own class]).
|
# author, documentclass [howto, manual, or own class]).
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
(master_doc, ''.join([project, '-v', version, '.tex']), _TITLE,
|
(master_doc, "".join([project, "-v", version, ".tex"]), _TITLE, author, "manual"),
|
||||||
author, 'manual'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# -- Content control -----------------------------------------------------
|
# -- Content control -----------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
exclude_patterns = [
|
exclude_patterns = [
|
||||||
'ev3devices.rst',
|
"ev3devices.rst",
|
||||||
'hubs/ev3brick.rst',
|
"hubs/ev3brick.rst",
|
||||||
'iodevices/analogsensor.rst',
|
"iodevices/analogsensor.rst",
|
||||||
'iodevices/dcmotor.rst',
|
"iodevices/dcmotor.rst",
|
||||||
'iodevices/ev3devsensor.rst',
|
"iodevices/ev3devsensor.rst",
|
||||||
'iodevices/i2cdevice.rst',
|
"iodevices/i2cdevice.rst",
|
||||||
'iodevices/lumpdevice.rst',
|
"iodevices/lumpdevice.rst",
|
||||||
'iodevices/uartdevice.rst',
|
"iodevices/uartdevice.rst",
|
||||||
'media.rst',
|
"media.rst",
|
||||||
'messaging.rst',
|
"messaging.rst",
|
||||||
'nxtdevices.rst',
|
"nxtdevices.rst",
|
||||||
'tools/datalog.rst'
|
"tools/datalog.rst",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
# One entry per manual page. List of tuples
|
# One entry per manual page. List of tuples
|
||||||
# (source start file, name, description, authors, manual section).
|
# (source start file, name, description, authors, manual section).
|
||||||
man_pages = [
|
man_pages = [(master_doc, "pybricks", "Pybricks Documentation", [author], 1)]
|
||||||
(master_doc, 'pybricks', 'Pybricks Documentation',
|
|
||||||
[author], 1)
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for Texinfo output -------------------------------------------
|
# -- Options for Texinfo output -------------------------------------------
|
||||||
@@ -292,33 +277,96 @@ man_pages = [
|
|||||||
# (source start file, target name, title, author,
|
# (source start file, target name, title, author,
|
||||||
# dir menu entry, description, category)
|
# dir menu entry, description, category)
|
||||||
texinfo_documents = [
|
texinfo_documents = [
|
||||||
(master_doc, 'Pybricks', 'Pybricks Documentation',
|
(
|
||||||
author, 'Pybricks', 'One line description of project.',
|
master_doc,
|
||||||
'Miscellaneous'),
|
"Pybricks",
|
||||||
|
"Pybricks Documentation",
|
||||||
|
author,
|
||||||
|
"Pybricks",
|
||||||
|
"One line description of project.",
|
||||||
|
"Miscellaneous",
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
# -- .. availability:: directive
|
# -- .. availability:: directive
|
||||||
|
|
||||||
|
|
||||||
class AvailabilityDirective(Directive):
|
class AvailabilityDirective(Directive):
|
||||||
has_content = True
|
has_content = True
|
||||||
option_spec = {
|
option_spec = {
|
||||||
'movehub': flag,
|
"movehub": flag,
|
||||||
'cityhub': flag,
|
"cityhub": flag,
|
||||||
'technichub': flag,
|
"technichub": flag,
|
||||||
'ev3dev-stretch': flag,
|
"ev3dev-stretch": flag,
|
||||||
}
|
}
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
if not self.options:
|
if not self.options:
|
||||||
raise self.error('Must specify at least one platform.')
|
raise self.error("Must specify at least one platform.")
|
||||||
# TODO: make links to platform pages
|
# TODO: make links to platform pages
|
||||||
return [nodes.emphasis(text='Availability: '),
|
return [
|
||||||
nodes.Text(', '.join(self.options))]
|
nodes.emphasis(text="Availability: "),
|
||||||
|
nodes.Text(", ".join(self.options)),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def on_missing_reference(
|
||||||
|
app: Sphinx, env: BuildEnvironment, node: pending_xref, contnode: nodes.Element
|
||||||
|
) -> nodes.Element:
|
||||||
|
# The Number type alias is on the Signals and Units page instead of on the
|
||||||
|
# pybricks.parameters page so normal resolution doesn't work
|
||||||
|
if node["reftype"] == "class" and node["reftarget"] == "Number":
|
||||||
|
return make_refnode(
|
||||||
|
app.builder, node["refdoc"], "signaltypes", "numbers", contnode
|
||||||
|
)
|
||||||
|
|
||||||
|
# References with special characters can't exist, so we have to supress
|
||||||
|
# warnings when Sphinx tries to cross reference units like deg/s. For
|
||||||
|
# consistency, we also treat units without special characters this way.
|
||||||
|
for unit in [
|
||||||
|
"deg",
|
||||||
|
"deg/s",
|
||||||
|
"deg/s²",
|
||||||
|
"mm",
|
||||||
|
"mm/s",
|
||||||
|
"mm/s²",
|
||||||
|
"%",
|
||||||
|
"mV",
|
||||||
|
"mA",
|
||||||
|
"ms",
|
||||||
|
"mNm",
|
||||||
|
"Hz",
|
||||||
|
"°C",
|
||||||
|
"J",
|
||||||
|
"Ω",
|
||||||
|
"N",
|
||||||
|
]:
|
||||||
|
|
||||||
|
# If they match on raw source, we are dealing with argument types.
|
||||||
|
if unit == contnode.rawsource:
|
||||||
|
# Return as-is to suppress missing cross reference warning. We
|
||||||
|
# could make this more fancy by returning an xref node that links
|
||||||
|
# to the signals page.
|
||||||
|
return contnode
|
||||||
|
|
||||||
|
# Return types are denoted as "int: deg"
|
||||||
|
try:
|
||||||
|
# Try to unpack the node.
|
||||||
|
ret_type, ret_unit = str(contnode).split(": ")
|
||||||
|
except ValueError:
|
||||||
|
# Not a valid format, so skip.
|
||||||
|
continue
|
||||||
|
|
||||||
|
# If it's a match, we could format the node so it looks a bit nicer.
|
||||||
|
# For now just keep the colon notation as is.
|
||||||
|
if unit == ret_unit:
|
||||||
|
return nodes.Text(f"{ret_type}: {ret_unit}")
|
||||||
|
|
||||||
|
|
||||||
def setup(app: Sphinx):
|
def setup(app: Sphinx):
|
||||||
app.add_directive('availability', AvailabilityDirective)
|
app.add_directive("availability", AvailabilityDirective)
|
||||||
|
app.connect("missing-reference", on_missing_reference)
|
||||||
|
|
||||||
|
|
||||||
# -- Python domain hacks ---------------------------------------------------
|
# -- Python domain hacks ---------------------------------------------------
|
||||||
|
|||||||
@@ -5,27 +5,31 @@ from docutils.parsers.rst import Directive
|
|||||||
class PybricksClasslinkDirective(Directive):
|
class PybricksClasslinkDirective(Directive):
|
||||||
|
|
||||||
required_arguments = 1
|
required_arguments = 1
|
||||||
|
optional_arguments = 1
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
# Get link name from sphinx-directive
|
# Get link and name from sphinx-directive
|
||||||
name = self.arguments[0]
|
name = self.arguments[0]
|
||||||
|
link = name if len(self.arguments) == 1 else self.arguments[1]
|
||||||
|
|
||||||
html = (
|
html = (
|
||||||
'<a href="{0}.html">'.format(name.lower()) +
|
'<a href="{0}.html">'.format(link.lower())
|
||||||
'<dl class="py class">' +
|
+ '<dl class="py class">'
|
||||||
'<dt>' +
|
+ "<dt>"
|
||||||
'<em class="property">class </em>' +
|
+ '<em class="property">class </em>'
|
||||||
'<code class="sig-name descname">' + name + '</code>' +
|
+ '<code class="sig-name descname">'
|
||||||
'</dt>' +
|
+ name
|
||||||
'<dd></dd>' +
|
+ "</code>"
|
||||||
'</dl>' +
|
+ "</dt>"
|
||||||
'</a>'
|
+ "<dd></dd>"
|
||||||
|
+ "</dl>"
|
||||||
|
+ "</a>"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Return the node
|
# Return the node
|
||||||
node = nodes.raw('', html, format="html")
|
node = nodes.raw("", html, format="html")
|
||||||
return [node]
|
return [node]
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.add_directive_to_domain('py', 'pybricks-classlink', PybricksClasslinkDirective)
|
app.add_directive_to_domain("py", "pybricks-classlink", PybricksClasslinkDirective)
|
||||||
|
|||||||
@@ -19,25 +19,24 @@ class PybricksColorDirective(Directive):
|
|||||||
r, g, b = hsv_to_rgb(color.h / 360, color.s / 100, color.v / 100)
|
r, g, b = hsv_to_rgb(color.h / 360, color.s / 100, color.v / 100)
|
||||||
|
|
||||||
# Convert RGB to HEX
|
# Convert RGB to HEX
|
||||||
rgbhex = '#{0:02x}{1:02x}{2:02x}'.format(
|
rgbhex = "#{0:02x}{1:02x}{2:02x}".format(
|
||||||
round(r*255),
|
round(r * 255), round(g * 255), round(b * 255)
|
||||||
round(g*255),
|
|
||||||
round(b*255)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Render a small block of the given color
|
# Render a small block of the given color
|
||||||
css = "background-color: {0}; color: {0}; width: 50px;".format(rgbhex)
|
css = "background-color: {0}; color: {0}; width: 50px;".format(rgbhex)
|
||||||
|
|
||||||
if name == "WHITE":
|
if name == "WHITE":
|
||||||
css += "border-style: solid; border-width: 0.5px;" + \
|
css += (
|
||||||
"border-color: #666666;"
|
"border-style: solid; border-width: 0.5px;" + "border-color: #666666;"
|
||||||
|
)
|
||||||
|
|
||||||
html = '<div id="test" style="{0}">_</div>'.format(css)
|
html = '<div id="test" style="{0}">_</div>'.format(css)
|
||||||
|
|
||||||
# Return the node
|
# Return the node
|
||||||
node = nodes.raw('', html, format="html")
|
node = nodes.raw("", html, format="html")
|
||||||
return [node]
|
return [node]
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.add_directive_to_domain('py', 'pybricks-color', PybricksColorDirective)
|
app.add_directive_to_domain("py", "pybricks-color", PybricksColorDirective)
|
||||||
|
|||||||
@@ -10,10 +10,11 @@ FEATURES_SMALL = set()
|
|||||||
|
|
||||||
# Medium feature set.
|
# Medium feature set.
|
||||||
FEATURES_MEDIUM = FEATURES_SMALL | {
|
FEATURES_MEDIUM = FEATURES_SMALL | {
|
||||||
'pybricks-geometry',
|
"pybricks-geometry",
|
||||||
'pybricks-iodevices',
|
"pybricks-common-control",
|
||||||
'stm32-extra',
|
"pybricks-iodevices",
|
||||||
'stm32-float',
|
"stm32-extra",
|
||||||
|
"stm32-float",
|
||||||
}
|
}
|
||||||
|
|
||||||
# Large feature set.
|
# Large feature set.
|
||||||
@@ -21,11 +22,12 @@ FEATURES_LARGE = FEATURES_MEDIUM | set()
|
|||||||
|
|
||||||
# Features per hub.
|
# Features per hub.
|
||||||
HUB_FEATURES = {
|
HUB_FEATURES = {
|
||||||
'movehub': {'movehub'} | FEATURES_SMALL,
|
"movehub": {"movehub"} | FEATURES_SMALL,
|
||||||
'cityhub': {'cityhub'} | FEATURES_MEDIUM,
|
"cityhub": {"cityhub"} | FEATURES_MEDIUM,
|
||||||
'technichub': {'technichub'} | FEATURES_MEDIUM,
|
"technichub": {"technichub"} | FEATURES_MEDIUM,
|
||||||
'primehub': {'primehub', 'inventorhub'} | FEATURES_LARGE,
|
"primehub": {"primehub", "inventorhub", "light-matrix"} | FEATURES_LARGE,
|
||||||
'inventorhub': {'primehub', 'inventorhub'} | FEATURES_LARGE,
|
"inventorhub": {"primehub", "inventorhub", "light-matrix"} | FEATURES_LARGE,
|
||||||
|
"essentialhub": {"essentialhub"} | FEATURES_LARGE,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -40,15 +42,14 @@ class PybricksRequirementsStaticDirective(Directive):
|
|||||||
# CC BY-SA 4.0 via https://stackoverflow.com/a/63728208
|
# CC BY-SA 4.0 via https://stackoverflow.com/a/63728208
|
||||||
env = self.state.document.settings.env
|
env = self.state.document.settings.env
|
||||||
|
|
||||||
destdir = path.join(env.app.builder.outdir, '_images')
|
destdir = path.join(env.app.builder.outdir, "_images")
|
||||||
if not path.exists(destdir):
|
if not path.exists(destdir):
|
||||||
makedirs(destdir)
|
makedirs(destdir)
|
||||||
|
|
||||||
for hub in HUB_FEATURES:
|
for hub in HUB_FEATURES:
|
||||||
for compat in ("true", "false"):
|
uri = "compat_{0}.png".format(hub)
|
||||||
uri = 'compat_{0}_{1}_label.png'.format(hub, compat)
|
src_uri = path.join(env.app.builder.srcdir, "diagrams", uri)
|
||||||
src_uri = path.join(env.app.builder.srcdir, 'images', uri)
|
build_uri = path.join(env.app.builder.outdir, "_images", uri)
|
||||||
build_uri = path.join(env.app.builder.outdir, '_images', uri)
|
|
||||||
copyfile(src_uri, build_uri)
|
copyfile(src_uri, build_uri)
|
||||||
|
|
||||||
# Get requirements from sphinx-directive.
|
# Get requirements from sphinx-directive.
|
||||||
@@ -56,9 +57,9 @@ class PybricksRequirementsStaticDirective(Directive):
|
|||||||
|
|
||||||
# Cell with image of a hub.
|
# Cell with image of a hub.
|
||||||
hub_cell = """
|
hub_cell = """
|
||||||
<th><div class="align-default">
|
<th background="{0}_images/compat_{1}.png" class="requirements-table-th requirements-table-th">
|
||||||
<img alt="" src="{0}_images/compat_{1}_{2}_label.png">
|
{2}
|
||||||
</div></th>
|
</th>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Determine how far up the tree we are to set correct image path.
|
# Determine how far up the tree we are to set correct image path.
|
||||||
@@ -67,18 +68,19 @@ class PybricksRequirementsStaticDirective(Directive):
|
|||||||
depth_path = "../" * depth
|
depth_path = "../" * depth
|
||||||
|
|
||||||
# Table row with hub images.
|
# Table row with hub images.
|
||||||
compat_row = "".join([
|
compat_row = "".join(
|
||||||
|
[
|
||||||
hub_cell.format(
|
hub_cell.format(
|
||||||
depth_path,
|
depth_path, hub, "✅" if requirements <= features else "❌"
|
||||||
hub,
|
)
|
||||||
"true" if requirements <= features else "false")
|
|
||||||
for hub, features in HUB_FEATURES.items()
|
for hub, features in HUB_FEATURES.items()
|
||||||
])
|
]
|
||||||
|
)
|
||||||
|
|
||||||
# Generate full table.
|
# Generate full table.
|
||||||
html = """
|
html = """
|
||||||
<div class="wy-table-responsive">
|
<div class="wy-table-responsive">
|
||||||
<table class="docutils align-default">
|
<table class="docutils align-default requirements-table">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
{0}
|
{0}
|
||||||
@@ -86,16 +88,16 @@ class PybricksRequirementsStaticDirective(Directive):
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
""".format(compat_row)
|
""".format(
|
||||||
|
compat_row
|
||||||
|
)
|
||||||
|
|
||||||
# Return the node.
|
# Return the node.
|
||||||
node = nodes.raw('', html, format="html")
|
node = nodes.raw("", html, format="html")
|
||||||
return [node]
|
return [node]
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.add_directive_to_domain(
|
app.add_directive_to_domain(
|
||||||
'py',
|
"py", "pybricks-requirements-static", PybricksRequirementsStaticDirective
|
||||||
'pybricks-requirements-static',
|
|
||||||
PybricksRequirementsStaticDirective
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -42,3 +42,19 @@ SOFTWARE. */
|
|||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.requirements-table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.requirements-table-th {
|
||||||
|
background-size:contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
text-align: right;
|
||||||
|
padding: 6px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.requirements-table-th:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
margin-top: 80%;
|
||||||
|
}
|
||||||
|
|||||||
@@ -29,25 +29,25 @@ from sphinx.util.osutil import copyfile
|
|||||||
from sphinx.util import logging
|
from sphinx.util import logging
|
||||||
|
|
||||||
|
|
||||||
CSS_FILE = 'requirements.css'
|
CSS_FILE = "requirements.css"
|
||||||
JS_FILE = 'requirements.js'
|
JS_FILE = "requirements.js"
|
||||||
|
|
||||||
|
|
||||||
class PybricksRequirementsDirective(Directive):
|
class PybricksRequirementsDirective(Directive):
|
||||||
has_content = True
|
has_content = True
|
||||||
option_spec = {'header': directives.unchanged}
|
option_spec = {"header": directives.unchanged}
|
||||||
|
|
||||||
required_arguments = 0
|
required_arguments = 0
|
||||||
optional_arguments = 10
|
optional_arguments = 10
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
node = nodes.container()
|
node = nodes.container()
|
||||||
node['classes'].append('toggle-content')
|
node["classes"].append("toggle-content")
|
||||||
|
|
||||||
par = nodes.container()
|
par = nodes.container()
|
||||||
par['classes'].append('toggle-header')
|
par["classes"].append("toggle-header")
|
||||||
|
|
||||||
content = '.. pybricks-requirements-static:: ' + " ".join(self.arguments)
|
content = ".. pybricks-requirements-static:: " + " ".join(self.arguments)
|
||||||
|
|
||||||
self.state.nested_parse(StringList([content]), self.content_offset, node)
|
self.state.nested_parse(StringList([content]), self.content_offset, node)
|
||||||
|
|
||||||
@@ -60,20 +60,20 @@ def add_assets(app):
|
|||||||
|
|
||||||
|
|
||||||
def copy_assets(app, exception):
|
def copy_assets(app, exception):
|
||||||
if app.builder.name not in ['html', 'readthedocs'] or exception:
|
if app.builder.name not in ["html", "readthedocs"] or exception:
|
||||||
return
|
return
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logger.info('Copying requirements stylesheet/javascript... ', nonl=True)
|
logger.info("Copying requirements stylesheet/javascript... ", nonl=True)
|
||||||
dest = os.path.join(app.builder.outdir, '_static', CSS_FILE)
|
dest = os.path.join(app.builder.outdir, "_static", CSS_FILE)
|
||||||
source = os.path.join(os.path.abspath(os.path.dirname(__file__)), CSS_FILE)
|
source = os.path.join(os.path.abspath(os.path.dirname(__file__)), CSS_FILE)
|
||||||
copyfile(source, dest)
|
copyfile(source, dest)
|
||||||
dest = os.path.join(app.builder.outdir, '_static', JS_FILE)
|
dest = os.path.join(app.builder.outdir, "_static", JS_FILE)
|
||||||
source = os.path.join(os.path.abspath(os.path.dirname(__file__)), JS_FILE)
|
source = os.path.join(os.path.abspath(os.path.dirname(__file__)), JS_FILE)
|
||||||
copyfile(source, dest)
|
copyfile(source, dest)
|
||||||
logger.info('done')
|
logger.info("done")
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.add_directive('pybricks-requirements', PybricksRequirementsDirective)
|
app.add_directive("pybricks-requirements", PybricksRequirementsDirective)
|
||||||
app.connect('builder-inited', add_assets)
|
app.connect("builder-inited", add_assets)
|
||||||
app.connect('build-finished', copy_assets)
|
app.connect("build-finished", copy_assets)
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
"""This directive hides the builtin directives
|
||||||
|
* versionchanged
|
||||||
|
* versionadded
|
||||||
|
* deprecated
|
||||||
|
when building documentation with the 'ide' tag.
|
||||||
|
"""
|
||||||
|
from docutils import nodes
|
||||||
|
from docutils.parsers.rst import Directive
|
||||||
|
|
||||||
|
|
||||||
|
class PybricksVersionDirective(Directive):
|
||||||
|
|
||||||
|
has_content = True
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
html = ""
|
||||||
|
node = nodes.raw("", html, format="html")
|
||||||
|
return [node]
|
||||||
|
|
||||||
|
|
||||||
|
def setup(app):
|
||||||
|
if "ide" in app.tags.tags:
|
||||||
|
app.add_directive_to_domain(
|
||||||
|
"py", "deprecated", PybricksVersionDirective, override=True
|
||||||
|
)
|
||||||
|
app.add_directive_to_domain(
|
||||||
|
"py", "versionadded", PybricksVersionDirective, override=True
|
||||||
|
)
|
||||||
|
app.add_directive_to_domain(
|
||||||
|
"py", "versionchanged", PybricksVersionDirective, override=True
|
||||||
|
)
|
||||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 11 KiB |
@@ -1,66 +0,0 @@
|
|||||||
# 1.6.0 - 2021-08-30
|
|
||||||
|
|
||||||
## Added:
|
|
||||||
- MicroPython module documentation.
|
|
||||||
- Examples for hub system functions including stop button and shutdown.
|
|
||||||
|
|
||||||
## Changed:
|
|
||||||
- Build IDE docs as main docs with minor changes, instead of a completely
|
|
||||||
separate build.
|
|
||||||
- Moved motor control documentation to the motor page.
|
|
||||||
|
|
||||||
# 1.5.0 - 2021-07-01
|
|
||||||
|
|
||||||
## Added:
|
|
||||||
- Documentation for Powered Up Remote Control.
|
|
||||||
|
|
||||||
# 1.4.0 - 2021-06-23
|
|
||||||
|
|
||||||
## Added:
|
|
||||||
- Enabled beta content that was hidden for the 3.0 release.
|
|
||||||
- Added notice about using the latest beta version.
|
|
||||||
|
|
||||||
# 1.3.3 - 2021-05-21
|
|
||||||
|
|
||||||
## Changed:
|
|
||||||
- Match example snippet styling to IDE.
|
|
||||||
- Add more examples.
|
|
||||||
|
|
||||||
# 1.3.2 - 2021-04-26
|
|
||||||
|
|
||||||
## Changed:
|
|
||||||
- Theme style fixes.
|
|
||||||
- Example code fixes
|
|
||||||
- Match doc version to firmware version.
|
|
||||||
|
|
||||||
# 1.3.1 - 2021-04-12
|
|
||||||
|
|
||||||
## Changed:
|
|
||||||
- Upgrade sphinx and rtd-theme to fix style issues.
|
|
||||||
|
|
||||||
# 1.3.0 - 2021-04-12
|
|
||||||
|
|
||||||
## Removed:
|
|
||||||
- Removed features which not be in the official 3.0 release. These features
|
|
||||||
are still in beta. They'll come back in future releases once tested.
|
|
||||||
|
|
||||||
# 1.2.0 - 2021-04-09
|
|
||||||
|
|
||||||
## Changed:
|
|
||||||
- Moved installation guide to external site.
|
|
||||||
|
|
||||||
# 1.1.1 - 2021-02-14
|
|
||||||
|
|
||||||
## Added:
|
|
||||||
- Added installation guide.
|
|
||||||
- Various documentation fixes.
|
|
||||||
|
|
||||||
# 1.1.0 - 2021-01-28
|
|
||||||
|
|
||||||
## Added:
|
|
||||||
- Scrollbar styling.
|
|
||||||
|
|
||||||
# 1.0.0 - 2021-01-25
|
|
||||||
|
|
||||||
## Added:
|
|
||||||
- Sphinx build output.
|
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
rm output/*
|
||||||
|
cp LPub3D/assem/main-*.png output/all.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices-*.png output/ev3device-all.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices_1_ev3device-color-*.png output/ev3device-color.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices_1_ev3device-ev3-*.png output/ev3device-ev3.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices_1_ev3device-gyro-*.png output/ev3device-gyro.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices_1_ev3device-infrared-*.png output/ev3device-infrared.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices_1_ev3device-motors-*.png output/ev3device-motors.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices_1_ev3device-touch-*.png output/ev3device-touch.png
|
||||||
|
cp LPub3D/assem/main_1_ev3devices_1_ev3device-ultrasonic-*.png output/ev3device-ultrasonic.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_2_hubs-lwp3-*.png output/hub-lwp3.png
|
||||||
|
cp LPub3D/assem/main_1_hubs-*0_1_1*.png output/hub-spike-inventor.png
|
||||||
|
cp LPub3D/assem/main_1_hubs-*0_1_2*.png output/hub-all.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-city-*.png output/hub-city.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-essential-*35_-35_0_ABS.png output/hub-essential.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-essential-*45_45_0_ABS.png output/hub-essential-orientation.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-inventor-*35_-35_0_ABS.png output/hub-inventor.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-inventor-*45_45_0_ABS.png output/hub-inventor-orientation.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-move-*35_-35_0_ABS.png output/hub-move.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-move-*45_45_0_ABS.png output/hub-move-orientation.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-move-*35_-125_0_ABS.png output/hub-move-motor-a.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-move-*35_55_0_ABS.png output/hub-move-motor-b.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-prime-*35_-35_0_ABS.png output/hub-prime.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-prime-*45_45_0_ABS.png output/hub-prime-orientation.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-prime-*90_0_0_ABS.png output/hub-prime-display.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-technic-*35_-35_0_ABS.png output/hub-technic.png
|
||||||
|
cp LPub3D/assem/main_1_hubs_1_hub-technic-*45_45_0_ABS.png output/hub-technic-orientation.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices-*.png output/iodevice-all.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-dcmotor-*.png output/iodevice-dcmotor.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-pupdevice-*.png output/iodevice-pupdevice.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12blue-*.png output/iodevice-rj12blue.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12brown-*.png output/iodevice-rj12brown.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12cyan-*.png output/iodevice-rj12cyan.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12green-*.png output/iodevice-rj12green.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12grey-*.png output/iodevice-rj12grey.png
|
||||||
|
cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12pcbbox-*.png output/iodevice-rj12pcbbox.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices-*.png output/nxtdevice-all.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-color-*.png output/nxtdevice-color.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-energy-*.png output/nxtdevice-energy.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-light-*.png output/nxtdevice-light.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-nxt-*.png output/nxtdevice-nxt.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-sound-*.png output/nxtdevice-sound.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-temperature-*.png output/nxtdevice-temperature.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-touch-*.png output/nxtdevice-touch.png
|
||||||
|
cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-ultrasonic-*.png output/nxtdevice-ultrasonic.png
|
||||||
|
cp LPub3D/assem/main_1_pupdcmotors-*.png output/pupdevice-dcmotors.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices-*.png output/pupdevice-all.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-color-*0_0.png output/pupdevice-color-front.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-color-*ABS.png output/pupdevice-color.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-colordistance-*.png output/pupdevice-colordistance.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-force-*.png output/pupdevice-force.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-infrared-*.png output/pupdevice-infrared.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-light-*.png output/pupdevice-light.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-lightmatrix-*.png output/pupdevice-lightmatrix.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-pfmotor-*.png output/pupdevice-pfmotor.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-remote-*.png output/pupdevice-remote.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-tilt-*35_-35_0_ABS.png output/pupdevice-tilt.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-tilt-*45_-135_0_ABS.png output/pupdevice-tilt-orientation.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-ultrasonic-*0_0.png output/pupdevice-ultrasonic-front.png
|
||||||
|
cp LPub3D/assem/main_1_pupdevices_1_pupdevice-ultrasonic-*ABS.png output/pupdevice-ultrasonic.png
|
||||||
|
cp LPub3D/assem/main_1_pupmotors-*.png output/pupdevice-motors.png
|
||||||
|
cp LPub3D/assem/main_1_imu-orientation-*.png output/imu-orientation.png
|
||||||
@@ -0,0 +1,842 @@
|
|||||||
|
0 FILE main.ldr
|
||||||
|
0 main
|
||||||
|
0 Name: main.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 !LPUB RESOLUTION GLOBAL 150 DPI
|
||||||
|
0 !LPUB PAGE SIZE GLOBAL 33.1102 46.8110 A0
|
||||||
|
0 !LPUB PAGE MARGINS GLOBAL 0.0000 0.0000
|
||||||
|
0 !LPUB PLI SHOW GLOBAL FALSE
|
||||||
|
0 !LPUB PAGE ORIENTATION GLOBAL LANDSCAPE
|
||||||
|
0 !LPUB PAGE BACKGROUND GLOBAL TRANSPARENT
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.3
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 0 730 0 -37 1 0 0 0 1 0 0 0 1 pupdevices.ldr
|
||||||
|
1 0 0 0 140 1 0 0 0 1 0 0 0 1 hubs.ldr
|
||||||
|
1 0 70 0 333 1 0 0 0 1 0 0 0 1 pupmotors.ldr
|
||||||
|
1 0 1340 380 700 0 0 1 0 1 0 -1 0 0 pupdcmotors.ldr
|
||||||
|
1 0 -590 380 570 1 0 0 0 1 0 0 0 1 nxtdevices.ldr
|
||||||
|
1 0 -280 380 1730 1 0 0 0 1 0 0 0 1 ev3devices.ldr
|
||||||
|
1 0 -720 380 1840 1 0 0 0 1 0 0 0 1 iodevices.ldr
|
||||||
|
0 BUFEXCHG A STORE
|
||||||
|
1 0 -720 380 1840 1 0 0 0 1 0 0 0 1 imu-orientation.ldr
|
||||||
|
0 BUFEXCHG A RETRIEVE
|
||||||
|
0 ROTSTEP 40 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 STEP
|
||||||
|
0 !LPUB INSERT COVER_PAGE BACK
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevices.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevices.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
0 BUFEXCHG A STORE
|
||||||
|
0 GHOST 1 0 1043 0 -136 1 0 0 0 1 0 0 0 1 pupdevice-pfmotor.ldr
|
||||||
|
0 BUFEXCHG A RETRIEVE
|
||||||
|
1 0 349 0 -225 1 0 0 0 1 0 0 0 1 pupdevice-color.ldr
|
||||||
|
1 0 -31 0 -215 1 0 0 0 1 0 0 0 1 pupdevice-force.ldr
|
||||||
|
1 0 139 0 -235 1 0 0 0 1 0 0 0 1 pupdevice-ultrasonic.ldr
|
||||||
|
1 0 460 0 20 1 0 0 0 1 0 0 0 1 pupdevice-tilt.ldr
|
||||||
|
1 0 300 0 20 1 0 0 0 1 0 0 0 1 pupdevice-colordistance.ldr
|
||||||
|
1 0 130 0 20 1 0 0 0 1 0 0 0 1 pupdevice-infrared.ldr
|
||||||
|
1 0 510 0 -280 1 0 0 0 1 0 0 0 1 pupdevice-lightmatrix.ldr
|
||||||
|
1 0 560 0 60 1 0 0 0 1 0 0 0 1 pupdevice-light.ldr
|
||||||
|
1 0 330 0 350 1 0 0 0 1 0 0 0 1 pupdevice-remote.ldr
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE hubs.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hubs.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 0 80 30 -270 1 0 0 0 1 0 0 0 1 hub-prime.ldr
|
||||||
|
1 0 -150 30 -130 1 0 0 0 1 0 0 0 1 hub-inventor.ldr
|
||||||
|
0 ROTSTEP 40 -35 0 ABS
|
||||||
|
1 0 280 0 -460 1 0 0 0 1 0 0 0 1 hub-essential.ldr
|
||||||
|
1 0 0 0 0 1 0 0 0 1 0 0 0 1 hubs-lwp3.ldr
|
||||||
|
0 STEP
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-color.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-color.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
0 GHOST 1 15 0 0 -50 -1 0 0 0 -1 0 0 0 1 37308.dat
|
||||||
|
0 ROTSTEP 0 0 0 ABS
|
||||||
|
1 15 0 0 0 -1 0 0 0 -1 0 0 0 1 37308c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-ultrasonic.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-ultrasonic.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 37316.dat
|
||||||
|
0 ROTSTEP 0 0 0 ABS
|
||||||
|
1 511 0 14 0 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-force.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-force.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 -1 0 0 0 -1 0 0 0 1 37312c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-colordistance.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-colordistance.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 26912.dat
|
||||||
|
1 256 0 8 35 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-infrared.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-infrared.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 0 0 1 0 1 0 -1 0 0 20844.dat
|
||||||
|
1 256 0 8 35 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-tilt.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-tilt.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 256 0 8 35 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
|
||||||
|
1 15 0 0 0 0 0 1 0 1 0 -1 0 0 20841.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
1 15 0 0 0 0 0 1 0 1 0 -1 0 0 20841.dat
|
||||||
|
0 ROTSTEP 45 -135 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE hub-technic.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hub-technic.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 71 0 0 0 1 0 0 0 1 0 0 0 1 22127.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
1 71 0 0 0 1 0 0 0 1 0 0 0 1 22127.dat
|
||||||
|
0 ROTSTEP 45 45 0 ABS
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE hub-prime.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hub-prime.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 45601.dat
|
||||||
|
1 14 0 0 0 1 0 0 0 1 0 0 0 1 45610.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
1 14 0 0 0 1 0 0 0 1 0 0 0 1 45610.dat
|
||||||
|
0 ROTSTEP 45 45 0 ABS
|
||||||
|
1 14 0 0 0 1 0 0 0 1 0 0 0 1 45610.dat
|
||||||
|
0 ROTSTEP 90 0 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE hub-inventor.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hub-inventor.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 67718c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 67718c01.dat
|
||||||
|
0 ROTSTEP 45 45 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE hub-city.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hub-city.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 28738.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE hub-move.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hub-move.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
|
||||||
|
0 ROTSTEP 35 -125 0 ABS
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
|
||||||
|
0 ROTSTEP 35 55 0 ABS
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
|
||||||
|
0 ROTSTEP 45 45 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE hub-essential.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hub-essential.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 67351c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 67351c01.dat
|
||||||
|
0 ROTSTEP 45 45 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-lightmatrix.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-lightmatrix.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 -1 0 0 0 -1 0 0 0 1 47592c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-light.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-light.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 0 0 0 0 1 0 0 0 1 0 0 0 1 22168.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-pfmotor.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-pfmotor.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 71 445 -9 202 0 0 -1 0 1 0 1 0 0 99499c01.dat
|
||||||
|
1 71 120 0 230 0 0 1 0 1 0 -1 0 0 58123.dat
|
||||||
|
1 15 2.655 -31 364.341 0.965925 0 -0.258819 0 1 0 0.258819 0 0.965925 26912.dat
|
||||||
|
1 256 -6.404 -23 398.149 -0.965925 0 -0.258819 0 -1 0 -0.258819 0 0.965925 u9218c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdevice-remote.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdevice-remote.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 -1 0 0 0 1 0 0 0 -1 28739.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupmotors.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupmotors.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 450 -76 -20 0 0 1 1 0 0 0 1 0 54675c01.dat
|
||||||
|
1 15 -30 -76 280 0 0 1 1 0 0 0 1 0 68488c01.dat
|
||||||
|
1 71 550 -76 200 0 0 1 1 0 0 0 1 0 69730c01.dat
|
||||||
|
1 15 180 -72 140 0 0 1 1 0 0 0 1 0 54696c01.dat
|
||||||
|
1 15 260 -72 350 0 0 1 1 0 0 0 1 0 54696p02c01.dat
|
||||||
|
1 71 430 -84 470 1 0 0 0 1 0 0 0 1 22169c01.dat
|
||||||
|
1 71 590 -86 360 1 0 0 0 1 0 0 0 1 22172c01.dat
|
||||||
|
1 15 300 -110 630 1 0 0 0 1 0 0 0 1 26913c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE pupdcmotors.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: pupdcmotors.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 256 61 -346 -31 1 0 0 0 1 0 0 0 1 u9218c01.dat
|
||||||
|
1 0 60 -312 -150 1 0 0 0 1 0 0 0 1 3706.dat
|
||||||
|
1 0 100 -312 -150 0 0 -1 0 1 0 1 0 0 u9241.dat
|
||||||
|
1 0 100 -312 -30 0 0 -1 0 1 0 1 0 0 u9241.dat
|
||||||
|
1 0 20 -312 -30 0 0 1 0 1 0 -1 0 0 u9241.dat
|
||||||
|
1 0 20 -312 -150 0 0 1 0 1 0 -1 0 0 u9241.dat
|
||||||
|
1 0 60 -312 -30 1 0 0 0 1 0 0 0 1 3706.dat
|
||||||
|
1 0 90 -344 -90 1 0 0 0 1 0 0 0 1 2871b.dat
|
||||||
|
1 0 60 -352 -90 -1 0 0 0 1 0 0 0 -1 2894.dat
|
||||||
|
1 0 30 -344 -90 -1 0 0 0 1 0 0 0 -1 2871b.dat
|
||||||
|
1 15 10 -376 -310 0 0 -1 0 1 0 1 0 0 21980c01.dat
|
||||||
|
0 ROTSTEP 25 45 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevices.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevices.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
0 GHOST 1 0 20 0 600 1 0 0 0 1 0 0 0 1 nxtdevice-nxt.ldr
|
||||||
|
1 0 60 0 110 1 0 0 0 1 0 0 0 1 nxtdevice-touch.ldr
|
||||||
|
1 0 180 0 30 1 0 0 0 1 0 0 0 1 nxtdevice-light.ldr
|
||||||
|
1 0 290 0 -60 1 0 0 0 1 0 0 0 1 nxtdevice-color.ldr
|
||||||
|
1 0 -80 0 200 1 0 0 0 1 0 0 0 1 nxtdevice-ultrasonic.ldr
|
||||||
|
1 0 410 0 -150 1 0 0 0 1 0 0 0 1 nxtdevice-sound.ldr
|
||||||
|
1 0 -210 0 420 1 0 0 0 1 0 0 0 1 nxtdevice-temperature.ldr
|
||||||
|
1 0 340 0 520 1 0 0 0 1 0 0 0 1 nxtdevice-energy.ldr
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-nxt.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-nxt.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 53788c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-touch.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-touch.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 53793.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-light.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-light.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 55969.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-color.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-color.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 64892.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-ultrasonic.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-ultrasonic.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 53792.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-sound.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-sound.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 55963.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-temperature.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-temperature.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 62840.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-energy.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-energy.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 71 0 0 0 1 0 0 0 1 0 0 0 1 87576c01.dat
|
||||||
|
1 71 280 70 -220 1 0 0 0 1 0 0 0 1 87578.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-vernier.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-vernier.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 53793.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE nxtdevice-motor.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: nxtdevice-motor.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 53787.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-ev3.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-ev3.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 95646c01.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-motors.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-motors.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 370 -296 -430 0 0 1 0 1 0 -1 0 0 95658.dat
|
||||||
|
1 15 90 -296 -340 1 0 0 0 1 0 0 0 1 99455.dat
|
||||||
|
1 151 610 -296 -580 0 0 1 0 -1 0 1 0 0 53787.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-large.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-large.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 95658.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-medium.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-medium.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 99455.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-touch.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-touch.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 95648.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-color.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-color.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 95650.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-infrared.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-infrared.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 95654.dat
|
||||||
|
0 GHOST 1 15 210 -60 -190 -1 0 0 0 1 0 0 0 -1 72156.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-ultrasonic.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-ultrasonic.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 95652.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3device-gyro.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3device-gyro.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 0 0 0 1 0 0 0 1 0 0 0 1 99380.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE ev3devices.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: ev3devices.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 0 370 0 40 1 0 0 0 1 0 0 0 1 ev3device-ev3.ldr
|
||||||
|
1 0 0 280 0 1 0 0 0 1 0 0 0 1 ev3device-motors.ldr
|
||||||
|
1 0 590 0 10 1 0 0 0 1 0 0 0 1 ev3device-touch.ldr
|
||||||
|
1 0 630 0 -340 1 0 0 0 1 0 0 0 1 ev3device-infrared.ldr
|
||||||
|
1 0 790 0 -150 1 0 0 0 1 0 0 0 1 ev3device-color.ldr
|
||||||
|
1 0 480 0 -210 1 0 0 0 1 0 0 0 1 ev3device-ultrasonic.ldr
|
||||||
|
1 0 680 0 -80 1 0 0 0 1 0 0 0 1 ev3device-gyro.ldr
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevices.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevices.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 0 470 0 170 1 0 0 0 1 0 0 0 1 iodevice-pupdevice.ldr
|
||||||
|
1 0 320 -60 320 1 0 0 0 1 0 0 0 1 iodevice-dcmotor.ldr
|
||||||
|
1 0 510 0 -100 1 0 0 0 1 0 0 0 1 iodevice-rj12green.ldr
|
||||||
|
1 0 430 0 -40 1 0 0 0 1 0 0 0 1 iodevice-rj12brown.ldr
|
||||||
|
1 0 170 0 100 1 0 0 0 1 0 0 0 1 iodevice-rj12cyan.ldr
|
||||||
|
1 0 260 0 50 1 0 0 0 1 0 0 0 1 iodevice-rj12blue.ldr
|
||||||
|
1 0 350 0 0 1 0 0 0 1 0 0 0 1 iodevice-rj12grey.ldr
|
||||||
|
1 0 140 -50 330 1 0 0 0 1 0 0 0 1 iodevice-rj12pcbbox.ldr
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-dcmotor.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-dcmotor.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 16 0 0 -80 0 0 -1 0 1 0 1 0 0 6625c01.dat
|
||||||
|
1 47 -70 0 160 0 0 -1 0 -1 0 -1 0 0 55804.dat
|
||||||
|
1 0 0 0 80 0 0 -1 0 -1 0 -1 0 0 897.dat
|
||||||
|
1 71 0 0 -60 1 0 0 0 1 0 0 0 1 71427.dat
|
||||||
|
1 256 0 1.5 -64 0 0 1 -1 0 0 0 154 0 993.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-rj12green.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-rj12green.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 2 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
|
||||||
|
1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-rj12blue.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-rj12blue.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 1 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
|
||||||
|
1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-rj12brown.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-rj12brown.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 6 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
|
||||||
|
1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-rj12cyan.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-rj12cyan.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 11 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
|
||||||
|
1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-rj12grey.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-rj12grey.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 7 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
|
||||||
|
1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
|
||||||
|
1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-rj12pcbbox.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-rj12pcbbox.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 0 0 5 0 0 0 -40 0 6 0 50 0 0 box.dat
|
||||||
|
1 151 0 0 -50 1 0 0 0 1 0 0 0 1 54732b.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-nxtgeneric.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-nxtgeneric.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 151 1200 -392 -350 1 0 0 0 1 0 0 0 1 ms1040.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0 FILE iodevice-pupdevice.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: iodevice-pupdevice.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 2 0 0 30 0 0 -30 0 1 0 50 0 0 box.dat
|
||||||
|
1 0 0 0 80 1 0 0 0 1 0 0 0 1 u9218c01.dat
|
||||||
|
1 0 0 -1 0 -20 0 0 0 1 0 0 0 -10 box.dat
|
||||||
|
1 0 150 0 -50 1 0 0 0 1 0 0 0 1 u9470c01.dat
|
||||||
|
1 15 150 15 -50 1 0 0 0 1 0 0 0 1 u9218c01.dat
|
||||||
|
1 0 120 0 -81 15 0 0 0 0 15 0 -1 0 box.dat
|
||||||
|
1 0 180 0 -81 0 0 -8 15 0 0 0 -1 0 box.dat
|
||||||
|
1 0 160 0 -81 0 0 8 -15 0 0 0 -1 0 box.dat
|
||||||
|
1 4 195 -8 -81 0 0 2 -2 0 0 0 -1 0 box.dat
|
||||||
|
1 2 150 0 -80 50 0 0 0 0 20 0 -1 0 box.dat
|
||||||
|
1 1 195 0 -81 0 0 2 -2 0 0 0 -1 0 box.dat
|
||||||
|
1 14 195 8 -81 0 0 2 -2 0 0 0 -1 0 box.dat
|
||||||
|
0 ROTSTEP 35 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 FILE imu-orientation.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: imu-orientation.ldr
|
||||||
|
0 Author: Pybricks
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 15 -80 -20 160 0 0 1 0 1 0 -1 0 0 45601c01.dat
|
||||||
|
1 322 0 20 70 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 -160 20 70 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 0 20 250 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 -160 20 250 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
0 WRITE Type in the comment
|
||||||
|
1 15 720 -80 170 0 0 -1 0 -1 0 -1 0 0 45601c01.dat
|
||||||
|
1 322 800 20 80 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 640 20 80 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 800 20 260 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 640 20 260 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
0 WRITE Type in the comment
|
||||||
|
1 15 720 -70 -630 0 1 0 0 0 -1 -1 0 0 45601c01.dat
|
||||||
|
1 322 770 20 -720 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 610 20 -720 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 770 20 -540 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
1 322 610 20 -540 1 0 0 0 1 0 0 0 1 39367p01.dat
|
||||||
|
0 WRITE Type in the comment
|
||||||
|
0 WRITE Type in the comment
|
||||||
|
0 MLCAD BTG Group name
|
||||||
|
1 71 -230 60 -780 0 0 1 -1 0 0 0 -1 0 55615.dat
|
||||||
|
0 MLCAD BTG Group name
|
||||||
|
1 4 -90 60 -800 0 0 1 -1 0 0 0 -1 0 32278.dat
|
||||||
|
0 MLCAD BTG Group name
|
||||||
|
1 2 -250 60 -640 0 1 0 -1 0 0 0 0 1 32278.dat
|
||||||
|
0 MLCAD BTG Group name
|
||||||
|
1 71 -230 40 -780 0 0 1 0 1 0 -1 0 0 55615.dat
|
||||||
|
0 MLCAD BTG Group name
|
||||||
|
1 1 -250 -100 -780 0 1 0 0 0 -1 -1 0 0 32278.dat
|
||||||
|
0 GROUP 5 Group name
|
||||||
|
1 15 -20 90 -570 0 0 -1 0 -1 0 -1 0 0 3811.dat
|
||||||
|
1 15 720 90 -570 0 0 -1 0 -1 0 -1 0 0 3811.dat
|
||||||
|
1 15 -30 90 190 0 0 -1 0 -1 0 -1 0 0 3811.dat
|
||||||
|
1 15 720 90 190 0 0 -1 0 -1 0 -1 0 0 3811.dat
|
||||||
|
0 ROTSTEP 35 -45 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 NOFILE
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0 FILE hubs-lwp3.ldr
|
||||||
|
0 New Model
|
||||||
|
0 Name: hubs-lwp3.ldr
|
||||||
|
0 Author: MLCad
|
||||||
|
0 Unofficial Model
|
||||||
|
0 ROTATION CENTER 0 0 0 1 "Custom"
|
||||||
|
0 ROTATION CONFIG 0 0
|
||||||
|
1 0 200 0 70 1 0 0 0 1 0 0 0 1 hub-technic.ldr
|
||||||
|
1 0 40 0 220 1 0 0 0 1 0 0 0 1 hub-city.ldr
|
||||||
|
1 0 450 0 -40 1 0 0 0 1 0 0 0 1 hub-move.ldr
|
||||||
|
0 ROTSTEP 40 -35 0 ABS
|
||||||
|
0
|
||||||
|
0
|
||||||
|
0
|
||||||
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 360 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 140 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 360 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 727 KiB |
|
After Width: | Height: | Size: 233 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 315 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 623 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 169 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 650 KiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 57 KiB |
@@ -4,47 +4,54 @@
|
|||||||
# Pybricks documentation build configuration file
|
# Pybricks documentation build configuration file
|
||||||
#
|
#
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = 'pybricks'
|
project = "pybricks"
|
||||||
copyright = '2018-2021 The Pybricks Authors'
|
copyright = "2018-2021 The Pybricks Authors"
|
||||||
author = ''
|
author = ""
|
||||||
|
|
||||||
_TITLE = 'Pybricks Modules and Examples'
|
_TITLE = "Pybricks Modules and Examples"
|
||||||
_DISCLAIMER = 'LEGO, the LEGO logo, MINDSTORMS and the MINDSTORMS EV3 logo are\
|
_DISCLAIMER = "LEGO, the LEGO logo, MINDSTORMS and the MINDSTORMS EV3 logo are\
|
||||||
trademarks and/or copyrights of the LEGO Group of companies \
|
trademarks and/or copyrights of the LEGO Group of companies \
|
||||||
which does not sponsor, authorize or endorse this site.'
|
which does not sponsor, authorize or endorse this site."
|
||||||
|
|
||||||
html_favicon = '../common/images/favicon.ico'
|
html_favicon = "../common/images/favicon.ico"
|
||||||
html_logo = '../common/images/pybricks-logo-rtd.png'
|
html_logo = "../common/images/pybricks-logo-rtd.png"
|
||||||
latex_logo = '../common/images/pybricks-logo-large.png'
|
latex_logo = "../common/images/pybricks-logo-large.png"
|
||||||
|
|
||||||
# Build main docs for RTD by default.
|
# Build main docs for RTD by default.
|
||||||
# Since tags cannot be passed via the TAG make variable on read the docs,
|
# Since tags cannot be passed via the TAG make variable on read the docs,
|
||||||
# add it manually.
|
# add it manually.
|
||||||
if os.environ.get('READTHEDOCS', None) == 'True':
|
if os.environ.get("READTHEDOCS", None) == "True":
|
||||||
tags.add('main') # noqa F821
|
tags.add("main") # noqa F821
|
||||||
|
|
||||||
|
# HACK: this allows Number type alias to be imported by Sphinx
|
||||||
|
os.environ["SPHINX_BUILD"] = "True"
|
||||||
|
|
||||||
# Addtional configuration of the IDE docs
|
# Addtional configuration of the IDE docs
|
||||||
if 'ide' in tags.tags: # noqa F821
|
if "ide" in tags.tags: # noqa F821
|
||||||
_DISCLAIMER = ''
|
_DISCLAIMER = ""
|
||||||
html_show_copyright = False
|
html_show_copyright = False
|
||||||
html_show_sphinx = False
|
html_show_sphinx = False
|
||||||
html_css_files = ['css/ide.css']
|
html_css_files = ["css/ide.css"]
|
||||||
html_js_files = ['js/ide.js']
|
html_js_files = ["js/ide.js"]
|
||||||
|
|
||||||
imgmath_image_format = 'svg'
|
imgmath_image_format = "svg"
|
||||||
imgmath_use_preview = True # requires Sphinx v3
|
imgmath_use_preview = True # requires Sphinx v3
|
||||||
imgmath_latex_preamble = r'''
|
imgmath_latex_preamble = r"""
|
||||||
\usepackage{newtxsf}
|
\usepackage{newtxsf}
|
||||||
'''
|
"""
|
||||||
|
|
||||||
exec(open(os.path.abspath("../common/conf.py")).read())
|
exec(open(os.path.abspath("../common/conf.py")).read())
|
||||||
|
|
||||||
# Addtional configuration of the IDE docs
|
# Addtional configuration of the IDE docs
|
||||||
if 'ide' in tags.tags: # noqa F821
|
if "ide" in tags.tags: # noqa F821
|
||||||
|
|
||||||
extensions.remove('sphinx.ext.mathjax') # noqa F821
|
extensions.remove("sphinx.ext.mathjax") # noqa F821
|
||||||
extensions.append('sphinx.ext.imgmath') # noqa F821
|
extensions.append("sphinx.ext.imgmath") # noqa F821
|
||||||
html_theme_options['prev_next_buttons_location'] = None # noqa F821
|
html_theme_options["prev_next_buttons_location"] = None # noqa F821
|
||||||
|
|
||||||
|
# Build hub specific example scripts.
|
||||||
|
sys.path.append(os.path.abspath("../../examples/pup/hub_common"))
|
||||||
|
import make_examples # noqa F401, E402
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
|
|
||||||
SRC_DIR = .
|
|
||||||
OUT_DIR = ../images
|
|
||||||
|
|
||||||
POSTFIX := _label
|
|
||||||
SVG := $(wildcard $(SRC_DIR)/*.svg)
|
|
||||||
DIAGRAMS := $(patsubst $(SRC_DIR)/%.svg,$(OUT_DIR)/%$(POSTFIX).png,$(SVG))
|
|
||||||
DIR := ${CURDIR}
|
|
||||||
|
|
||||||
all: $(DIAGRAMS)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(DIAGRAMS)
|
|
||||||
|
|
||||||
$(OUT_DIR)/%$(POSTFIX).png: $(SRC_DIR)/%.svg
|
|
||||||
if inkscape --version | grep -q "Inkscape 0"; then \
|
|
||||||
inkscape --file=$(DIR)/$< --export-area-drawing --export-png=$(DIR)/$@; \
|
|
||||||
else \
|
|
||||||
inkscape \
|
|
||||||
--export-area-drawing \
|
|
||||||
--export-background=white \
|
|
||||||
--export-background-opacity=1.0 \
|
|
||||||
--export-file=$(DIR)/$@ \
|
|
||||||
$(DIR)/$<; \
|
|
||||||
fi
|
|
||||||
@@ -1,104 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="150"
|
|
||||||
height="135"
|
|
||||||
viewBox="0 0 39.687499 35.718751"
|
|
||||||
version="1.1"
|
|
||||||
id="svg887"
|
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
|
||||||
sodipodi:docname="compat_cityhub_false.svg">
|
|
||||||
<defs
|
|
||||||
id="defs881">
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath1545">
|
|
||||||
<rect
|
|
||||||
style="fill:#fe2020;fill-opacity:0.48022599;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect1547"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="-25.390602"
|
|
||||||
y="312.93103" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#fcfcfc"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="3.959798"
|
|
||||||
inkscape:cx="10.681815"
|
|
||||||
inkscape:cy="89.597718"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1172"
|
|
||||||
inkscape:window-x="1920"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:snap-global="false" />
|
|
||||||
<metadata
|
|
||||||
id="metadata884">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-261.28123)">
|
|
||||||
<rect
|
|
||||||
style="fill:#fcfcfc;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect819"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="3.5527137e-15"
|
|
||||||
y="261.28122" />
|
|
||||||
<image
|
|
||||||
sodipodi:absref="../images/cityhub.png"
|
|
||||||
xlink:href="../images/cityhub.png"
|
|
||||||
style="stroke-width:5.6583333"
|
|
||||||
width="30.908323"
|
|
||||||
height="31.75"
|
|
||||||
preserveAspectRatio="none"
|
|
||||||
id="image1470"
|
|
||||||
x="5.2042809"
|
|
||||||
y="263.16479" />
|
|
||||||
<g
|
|
||||||
id="g862"
|
|
||||||
transform="matrix(0.84064533,0,0,0.84993509,-12.416361,243.07822)"
|
|
||||||
style="stroke-width:1.18304348">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path856"
|
|
||||||
d="m 51.33389,24.998882 5.622395,5.622396"
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 56.956285,24.998882 51.33389,30.621278"
|
|
||||||
id="path858"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,104 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="150"
|
|
||||||
height="135"
|
|
||||||
viewBox="0 0 39.687499 35.718751"
|
|
||||||
version="1.1"
|
|
||||||
id="svg887"
|
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
|
||||||
sodipodi:docname="compat_inventorhub_false.svg">
|
|
||||||
<defs
|
|
||||||
id="defs881">
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath1545">
|
|
||||||
<rect
|
|
||||||
style="fill:#fe2020;fill-opacity:0.48022599;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect1547"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="-25.390602"
|
|
||||||
y="312.93103" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#fcfcfc"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="3.959798"
|
|
||||||
inkscape:cx="10.681815"
|
|
||||||
inkscape:cy="89.597718"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1172"
|
|
||||||
inkscape:window-x="1920"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:snap-global="false" />
|
|
||||||
<metadata
|
|
||||||
id="metadata884">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-261.28123)">
|
|
||||||
<rect
|
|
||||||
style="fill:#fcfcfc;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect819"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="0"
|
|
||||||
y="261.28122" />
|
|
||||||
<image
|
|
||||||
sodipodi:absref="../images/inventorhub.png"
|
|
||||||
xlink:href="../images/inventorhub.png"
|
|
||||||
style="stroke-width:5.92592621"
|
|
||||||
width="34.915073"
|
|
||||||
height="35.71875"
|
|
||||||
preserveAspectRatio="none"
|
|
||||||
id="image1481"
|
|
||||||
x="2.6458333"
|
|
||||||
y="261.28122" />
|
|
||||||
<g
|
|
||||||
id="g862"
|
|
||||||
transform="matrix(0.84064533,0,0,0.84993509,-12.416361,243.07822)"
|
|
||||||
style="stroke-width:1.18304348">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path856"
|
|
||||||
d="m 51.33389,24.998882 5.622395,5.622396"
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 56.956285,24.998882 51.33389,30.621278"
|
|
||||||
id="path858"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,106 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="150"
|
|
||||||
height="135"
|
|
||||||
viewBox="0 0 39.687499 35.718751"
|
|
||||||
version="1.1"
|
|
||||||
id="svg887"
|
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
|
||||||
sodipodi:docname="compat_movehub_false.svg">
|
|
||||||
<defs
|
|
||||||
id="defs881">
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath1545">
|
|
||||||
<rect
|
|
||||||
style="fill:#fe2020;fill-opacity:0.48022599;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect1547"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="-25.390602"
|
|
||||||
y="312.93103" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#fcfcfc"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="3.959798"
|
|
||||||
inkscape:cx="10.681815"
|
|
||||||
inkscape:cy="89.597718"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1172"
|
|
||||||
inkscape:window-x="1920"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:snap-global="false" />
|
|
||||||
<metadata
|
|
||||||
id="metadata884">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-261.28123)">
|
|
||||||
<rect
|
|
||||||
style="fill:#fcfcfc;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect819"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="3.5527137e-15"
|
|
||||||
y="261.28122" />
|
|
||||||
<image
|
|
||||||
sodipodi:absref="../images/movehub.png"
|
|
||||||
xlink:href="../images/movehub.png"
|
|
||||||
transform="translate(25.390602,-51.6498)"
|
|
||||||
clip-path="url(#clipPath1545)"
|
|
||||||
style="stroke-width:5.92592621"
|
|
||||||
width="40.183594"
|
|
||||||
height="35.71875"
|
|
||||||
preserveAspectRatio="none"
|
|
||||||
id="image1492"
|
|
||||||
x="-25.506657"
|
|
||||||
y="312.93103" />
|
|
||||||
<g
|
|
||||||
id="g862"
|
|
||||||
transform="matrix(0.84064533,0,0,0.84993509,-12.416361,243.07822)"
|
|
||||||
style="stroke-width:1.18304348">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path856"
|
|
||||||
d="m 51.33389,24.998882 5.622395,5.622396"
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 56.956285,24.998882 51.33389,30.621278"
|
|
||||||
id="path858"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.6 KiB |
@@ -1,96 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="150"
|
|
||||||
height="135"
|
|
||||||
viewBox="0 0 39.687499 35.718751"
|
|
||||||
version="1.1"
|
|
||||||
id="svg887"
|
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
|
||||||
sodipodi:docname="compat_movehub_true.svg">
|
|
||||||
<defs
|
|
||||||
id="defs881">
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath1545">
|
|
||||||
<rect
|
|
||||||
style="fill:#fe2020;fill-opacity:0.48022599;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect1547"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="-25.390602"
|
|
||||||
y="312.93103" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#fcfcfc"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="3.959798"
|
|
||||||
inkscape:cx="69.775738"
|
|
||||||
inkscape:cy="79.243654"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1172"
|
|
||||||
inkscape:window-x="1920"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:snap-global="false" />
|
|
||||||
<metadata
|
|
||||||
id="metadata884">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-261.28123)">
|
|
||||||
<rect
|
|
||||||
style="fill:#fcfcfc;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect819"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="7.1054274e-15"
|
|
||||||
y="261.28122" />
|
|
||||||
<image
|
|
||||||
sodipodi:absref="../images/movehub.png"
|
|
||||||
xlink:href="../images/movehub.png"
|
|
||||||
transform="translate(25.390602,-51.6498)"
|
|
||||||
clip-path="url(#clipPath1545)"
|
|
||||||
style="stroke-width:5.92592621"
|
|
||||||
width="40.183594"
|
|
||||||
height="35.71875"
|
|
||||||
preserveAspectRatio="none"
|
|
||||||
id="image1492"
|
|
||||||
x="-25.506657"
|
|
||||||
y="312.93103" />
|
|
||||||
<path
|
|
||||||
style="fill:none;stroke:#84ba4c;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 31.147057,265.82725 1.011052,2.9815 3.622948,-4.60003"
|
|
||||||
id="path854"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.2 KiB |
@@ -1,104 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="150"
|
|
||||||
height="135"
|
|
||||||
viewBox="0 0 39.687499 35.718751"
|
|
||||||
version="1.1"
|
|
||||||
id="svg887"
|
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
|
||||||
sodipodi:docname="compat_primehub_false.svg">
|
|
||||||
<defs
|
|
||||||
id="defs881">
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath1545">
|
|
||||||
<rect
|
|
||||||
style="fill:#fe2020;fill-opacity:0.48022599;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect1547"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="-25.390602"
|
|
||||||
y="312.93103" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#fcfcfc"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="3.959798"
|
|
||||||
inkscape:cx="10.681815"
|
|
||||||
inkscape:cy="89.597718"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1172"
|
|
||||||
inkscape:window-x="1920"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:snap-global="false" />
|
|
||||||
<metadata
|
|
||||||
id="metadata884">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-261.28123)">
|
|
||||||
<rect
|
|
||||||
style="fill:#fcfcfc;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect819"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="0"
|
|
||||||
y="261.28122" />
|
|
||||||
<image
|
|
||||||
sodipodi:absref="../images/primehub.png"
|
|
||||||
xlink:href="../images/primehub.png"
|
|
||||||
style="stroke-width:5.92592621"
|
|
||||||
width="34.915073"
|
|
||||||
height="35.71875"
|
|
||||||
preserveAspectRatio="none"
|
|
||||||
id="image1503"
|
|
||||||
x="2.6458333"
|
|
||||||
y="261.28122" />
|
|
||||||
<g
|
|
||||||
id="g862"
|
|
||||||
transform="matrix(0.84064533,0,0,0.84993509,-12.416361,243.07822)"
|
|
||||||
style="stroke-width:1.18304348">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path856"
|
|
||||||
d="m 51.33389,24.998882 5.622395,5.622396"
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 56.956285,24.998882 51.33389,30.621278"
|
|
||||||
id="path858"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,104 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="150"
|
|
||||||
height="135"
|
|
||||||
viewBox="0 0 39.687499 35.718751"
|
|
||||||
version="1.1"
|
|
||||||
id="svg887"
|
|
||||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
|
||||||
sodipodi:docname="compat_technichub_false.svg">
|
|
||||||
<defs
|
|
||||||
id="defs881">
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath1545">
|
|
||||||
<rect
|
|
||||||
style="fill:#fe2020;fill-opacity:0.48022599;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect1547"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="-25.390602"
|
|
||||||
y="312.93103" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#fcfcfc"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="3.959798"
|
|
||||||
inkscape:cx="10.681815"
|
|
||||||
inkscape:cy="89.597718"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="1172"
|
|
||||||
inkscape:window-x="1920"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:snap-global="false" />
|
|
||||||
<metadata
|
|
||||||
id="metadata884">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-261.28123)">
|
|
||||||
<rect
|
|
||||||
style="fill:#fcfcfc;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
|
||||||
id="rect819"
|
|
||||||
width="39.6875"
|
|
||||||
height="35.71875"
|
|
||||||
x="0"
|
|
||||||
y="261.28122" />
|
|
||||||
<image
|
|
||||||
sodipodi:absref="../images/technichub.png"
|
|
||||||
xlink:href="../images/technichub.png"
|
|
||||||
style="stroke-width:5.92592621"
|
|
||||||
width="35.71875"
|
|
||||||
height="35.71875"
|
|
||||||
preserveAspectRatio="none"
|
|
||||||
id="image1514"
|
|
||||||
x="2.1503351"
|
|
||||||
y="261.28122" />
|
|
||||||
<g
|
|
||||||
id="g862"
|
|
||||||
transform="matrix(0.84064533,0,0,0.84993509,-12.416361,243.07822)"
|
|
||||||
style="stroke-width:1.18304348">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path856"
|
|
||||||
d="m 51.33389,24.998882 5.622395,5.622396"
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
style="fill:none;stroke:#e2302f;stroke-width:1.18304348;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 56.956285,24.998882 51.33389,30.621278"
|
|
||||||
id="path858"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,6 +0,0 @@
|
|||||||
0 Name: pupmotors
|
|
||||||
0 Author: Pybricks {laurens@pybricks.com}
|
|
||||||
0 !LICENSE MIT
|
|
||||||
1 15 370 -296 -430 0 0 1 0 1 0 -1 0 0 95658.dat
|
|
||||||
1 15 90 -296 -340 1 0 0 0 1 0 0 0 1 99455.dat
|
|
||||||
1 15 610 -296 -580 0 0 1 0 -1 0 1 0 0 53787.dat
|
|
||||||
|
Before Width: | Height: | Size: 236 KiB |
@@ -1,16 +0,0 @@
|
|||||||
0 Name: ev3sensors
|
|
||||||
0 Author: Pybricks {laurens@pybricks.com}
|
|
||||||
0 !LICENSE MIT
|
|
||||||
1 15 390 -320 -200 1 0 0 0 1 0 0 0 1 95648.dat
|
|
||||||
1 15 10 -320 -240 1 0 0 0 1 0 0 0 1 95652.dat
|
|
||||||
1 15 310 -320 210 1 0 0 0 1 0 0 0 1 99380.dat
|
|
||||||
1 15 -70 -320 170 1 0 0 0 1 0 0 0 1 95650.dat
|
|
||||||
1 15 720 -320 370 1 0 0 0 1 0 0 0 1 95654.dat
|
|
||||||
1 15 910 -400 150 -1 0 0 0 1 0 0 0 -1 72156.dat
|
|
||||||
1 151 410 -320 -910 1 0 0 0 1 0 0 0 1 55969.dat
|
|
||||||
1 151 730 -320 -880 1 0 0 0 1 0 0 0 1 64892.dat
|
|
||||||
1 151 1000 -320 -1000 1 0 0 0 1 0 0 0 1 55963.dat
|
|
||||||
1 151 -360 -320 -940 1 0 0 0 1 0 0 0 1 62840.dat
|
|
||||||
1 151 90 -320 -970 1 0 0 0 1 0 0 0 1 53793.dat
|
|
||||||
1 151 1250 -320 -580 1 0 0 0 1 0 0 0 1 53792.dat
|
|
||||||
1 151 1340 -320 -970 1 0 0 0 1 0 0 0 1 55963.dat
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
0 Name: hubs.ldr
|
|
||||||
0 Author: Pybricks {laurens@pybricks.com}
|
|
||||||
0 !LICENSE MIT
|
|
||||||
0 ROTATION CENTER 0 0 0 1 "Custom"
|
|
||||||
0 ROTATION CONFIG 0 0
|
|
||||||
1 15 -20 -56 320 1 0 0 0 1 0 0 0 1 26910.dat
|
|
||||||
1 15 -330 -80 110 0 0 1 0 1 0 -1 0 0 28738.dat
|
|
||||||
1 71 -310 -40 390 1 0 0 0 1 0 0 0 1 22127.dat
|
|
||||||
1 15 260 -16 90 1 0 0 0 1 0 0 0 1 45601p02.dat
|
|
||||||
1 3 440 -16 10 1 0 0 0 1 0 0 0 1 45601c01.dat
|
|
||||||
1 3 780 -16 -310 1 0 0 0 1 0 0 0 1 45601c01.dat
|
|
||||||
1 15 -930 -40 360 1 0 0 0 1 0 0 0 1 95646c01.dat
|
|
||||||
1 15 -1490 32 350 1 0 0 0 1 0 0 0 1 53788c01.dat
|
|
||||||
0
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
0 Name: hubsoverview.ldr
|
|
||||||
0 Author: Pybricks {laurens@pybricks.com}
|
|
||||||
0 !LICENSE MIT
|
|
||||||
0 ROTATION CENTER 0 0 0 1 "Custom"
|
|
||||||
0 ROTATION CONFIG 0 0
|
|
||||||
1 15 90 -56 300 1 0 0 0 1 0 0 0 1 26910.dat
|
|
||||||
1 15 -150 -80 300 1 0 0 0 1 0 0 0 1 28738.dat
|
|
||||||
1 71 -360 -40 120 -1 0 0 0 1 0 0 0 -1 22127.dat
|
|
||||||
1 15 -160 -16 -40 1 0 0 0 1 0 0 0 1 45601p02.dat
|
|
||||||
1 3 50 -16 -140 1 0 0 0 1 0 0 0 1 45601c01.dat
|
|
||||||
0
|
|
||||||