Compare commits

..
Author SHA1 Message Date
David Lechner a236609ebf npm/icons: v1.2.1 2022-11-08 15:06:55 -06:00
Laurens Valk 6c893c136e doc/main/diagrams: Fix City Hub position.
It was accidentally moved to a non-integer position. This causes the PNG to re-render. This increases the file size and makes it looks less crisp.
2022-11-08 19:55:48 +01:00
Laurens Valk f4212f232e doc/main/diagrams: Adjust Move Hub icon scale.
Fixes https://github.com/pybricks/support/issues/773
2022-11-08 19:52:51 +01:00
David Lechner 3a805b0ca9 npm/images: v1.2.0 2022-11-03 13:03:19 -05:00
Laurens Valk c52627cc8f doc/main/diagrams: Add hub icon variants.
This re-exports all hub images in a square format for use as icons while getting correct relative scaling.
2022-11-03 17:07:41 +01:00
David Lechner b84fed1de9 npm/images: add hub-inventor.png file to package 2022-10-28 12:38:07 -05:00
David Lechner d49bc548c7 npm/images: new @pybricks/images package v1.0.0 2022-10-28 12:21:27 -05:00
Barry-Williams 492d6cd2d4 pybricks.robotics.DriveBase: Add basic example. 2022-10-28 08:23:14 +02:00
Laurens Valk be3558167e doc/common/extensions: Fix compatibility labels.
Fixes https://github.com/pybricks/support/issues/754
2022-10-27 15:41:42 +02:00
David Lechner 4573fd2760 LICENSE: update copyright year 2022-10-21 13:14:13 -05:00
David Lechner 2a23c2e81d npm/jedi: v1.1.0
- Update pybricks_jedi Python package dependency.
- Bump JavaScript package version for release.
2022-10-21 13:08:14 -05:00
David Lechner fe126de264 npm/pybricks-docs: v2.3.0
New JavaScript package release for v3.2.0b4 docs.
2022-10-21 12:59:25 -05:00
David Lechner b290f7dc6b github: update jedi action dependencies
Update to current Ubuntu LTS and actions.

This fixes deprecation warnings about node v12 and fixes wrong python
version used by poetry.
2022-10-21 12:55:28 -05:00
David Lechner 9127afdcbc jedi: pybricks_jedi v1.2.0
Bump pybricks_jedi package version for release.
2022-10-21 12:51:43 -05:00
David Lechner 7ee1f66556 jedi: update pybricks package
This updates the pybricks package dependency to v3.2.0b4.
2022-10-21 12:51:00 -05:00
David Lechner f5422e9c90 v3.2.0b4 2022-10-21 12:39:27 -05:00
David Lechner 40fc2588f9 pybricks._common.System: add storage method
This adds stubs, docs and code completion tests for the System.storage()
method.

This was added to Pybricks MicroPython in:
https://github.com/pybricks/pybricks-micropython/commit/246ebea25d25d5a3e4a4e62ebd031491a409c923
2022-10-21 12:35:34 -05:00
David Lechner 96be47f21b doc/main/pupdevices/motor: Fix center example.
This fixes the include for the centering example to link it to the correct source file.

Fixes: https://github.com/pybricks/support/issues/734#issuecomment-1272329217
2022-10-10 09:20:00 +02:00
Laurens Valk e1be50181a doc/main: Revisit and automate all renders and diagrams.
Previously, all renders were created and added manually when a newly
supported device was added to the documentation.

This commit revisits all diagrams by creating them using a single
LDRAW multi-file part model and LPUB3D building instructions file.

This makes perspective and resolution consistent across all images, and
we could update them all at once if needed.

It also removes the background from all images so they can be used
with different documentation themes.
2022-10-10 09:19:49 +02:00
Laurens Valk 52117157d8 .gitignore: Ignore LDRAW tool data. 2022-10-02 19:31:06 +02:00
Laurens Valk 7778ce96a5 setup: Ignore jedi for doc8. 2022-10-02 19:29:57 +02:00
Laurens Valk 637677dae2 jedi/poetry: Install in project.
Nested virtual environments are complicated enough, so this way we can at least get back to a clean state if we need to.
2022-09-30 16:04:33 +02:00
Laurens Valk abc00df943 pybricks.pupdevices: Avoid class-specific LightArray.
Let's minimize complicated hacks if we can help it.
2022-09-30 16:04:33 +02:00
David Lechner bfa0b69e93 npm/jedi: fix exports and copy extra files
The export keys were wrong and the README and CHANGELOG files were
missing the the final package.
2022-09-07 20:19:23 -05:00
David Lechner f664757ef3 npm/jedi: new js package
This adds a new javascript package for distributing the pybricks-jedi
Python package and it's dependencies via the npm ecosystem for use in
Pybricks Code.
2022-09-07 20:10:34 -05:00
David Lechner b747520d1c jedi: add LICENSE file
This adds a LICENSE file to the jedi directory specifically for the
pybricks-jedi Python package. Poetry will automatically pick up this
file and include it in the distributed package.
2022-09-07 19:41:23 -05:00
The Vinh Luong (Lương Thế Vinh) dcddf15d15 flake8: Update VSCode settings and suppress some Flake8 linting warnings.
* update VSCode settings to exclude __pycache__

* suppress some Flake8 linting warnings

* minor fix: SPHINX_BUILD env var may not be set

* decorate _PybricksEnumMeta.__dir__() with @classmethod

* flake8-ignore E501
2022-09-05 18:40:39 -05:00
The Vinh Luong (Lương Thế Vinh) c64458d3b9 parameters: Fix wrong typing in pybricks.parameters.Stop. 2022-09-05 18:38:29 -05:00
David Lechner 2a963b2a0b poetry: update dependencies
This fixes:

    Invalid PEP 440 version: '5.1.0.dev20220527.dev-20220527'
2022-09-05 16:58:56 -05:00
Laurens Valk 6df509b66e pybricks.hubs.EssentialHub: Fix duplicate example.
Also delete reference image with the light consistent with other small hubs.
2022-07-04 15:00:41 +02:00
Laurens Valk ac9585b7a5 ubuiltins: Fix broken classmethod decorator.
Since classmethod is being redefined here, it broke Sphinx.

Fixes https://github.com/pybricks/pybricks-api/issues/86
2022-07-04 14:33:17 +02:00
Laurens Valk 0982d5d65b ubuiltins: Document int. 2022-07-04 14:33:17 +02:00
Laurens Valk 8e7f8c619e ubuiltins: Document float. 2022-07-04 14:33:17 +02:00
Laurens Valk a0b3ba1d74 ubuiltins: Document dict.
This just adds a direct reference to the Python docs.
2022-07-04 14:33:17 +02:00
Laurens Valk 3dc28579ef ubuiltins: Document bool, complex. 2022-07-04 14:33:17 +02:00
Laurens Valk 923f9df3da ubuiltins: Document input, print. 2022-07-04 14:33:17 +02:00
Laurens Valk 1665b77847 ubuiltins: Start converting signatures to new standard.
Also clarify description wherever applicable.
2022-07-04 14:33:17 +02:00
Laurens Valk 96e7e5f3d0 umath: Convert signatures to new standard. 2022-07-04 14:33:17 +02:00
Laurens Valk 1b51d71061 examples: Generate hub examples while building.
This way we don't have to commit the generated scripts.

While we do this, rename ExampleHub to ThisHub so that the common scripts can actually run.
2022-07-04 14:29:33 +02:00
Laurens Valk 9d706d719a .gitignore: Ignore .python-version. 2022-07-04 08:40:28 +02:00
David Lechner 7c62a2833a doc/main/images: add temporary essentialhub images
We don't have proper images yet, so we are adding copies of the Prime
hub images for now to not take up space in git history with temporary
images and to at least have something so the docs will build.
2022-06-29 12:08:33 -05:00
David Lechner 03ee7f74e8 doc/pup/essentialhub: fix bit rot
This fixes bitrot for PR #96. Also fixes a few minor issues where
changes were missed.
2022-06-29 12:08:33 -05:00
Pavel Lobodinský 025147680c pybricks.hubs.EssentialHub: Added missing Hub 2022-06-29 12:08:33 -05:00
David Lechner e467bb57c9 pybricks_jedi/v1.1.0 2022-06-26 00:10:04 -05:00
David Lechner 33d0c9fa49 v3.2.0b1-r3 2022-06-26 00:00:11 -05:00
David Lechner e95386e23e jedi: improve signature information
This fixes numerous issues where jedi provided incomplete or poorly
formatted signatures and docstrings.

Issue: https://github.com/pybricks/pybricks-code/issues/932
2022-06-25 23:54:49 -05:00
David Lechner a758eaa1db github/build: don't run build on tags
This is almost always redundant.
2022-06-24 15:37:59 -05:00
David Lechner 470eebd1c5 github/jedi: fix working directory in publish job
This was building the pybricks package instead of the pybricks_jedi
package because it was using the wrong directory.
2022-06-24 15:29:02 -05:00
David Lechner 37cdd2a83b v3.2.0b1-r2 2022-06-24 15:14:42 -05:00
David Lechner a2d9c33eb5 jedi: add new pybricks_jedi package
This package will be used in Pybricks Code to provide some intellesense
operations.
2022-06-24 14:52:45 -05:00
Laurens Valk 6d0de1effa doc/main: Drop beta tag.
Less variants is better. Now we'll just have to add beta support for SPIKE in the next release.

Fixes https://github.com/pybricks/pybricks-api/issues/102
2022-06-10 11:31:08 +02:00
Laurens Valk 8e7fc53974 doc/main: Disable NXT and EV3 pages again.
Now that all typehints have been added, we can
revert commit 4c583a9d4e again.
2022-06-10 11:20:32 +02:00
Laurens Valk e456c8ef91 pybricks: Drop underscores on imports.
Fixes https://github.com/pybricks/pybricks-api/issues/101
2022-06-10 11:10:20 +02:00
Laurens Valk 6500440031 pybricks: Drop most ellipsis and pass instances.
See [1]: "I still prefer ... over pass. This clarifies to the readers that they are reading a stub. But if there's a docstring we need neither."

[1] https://github.com/srittau/type-stub-pep/issues/88#issuecomment-758843441

Fixes https://github.com/pybricks/pybricks-api/issues/101#issuecomment-1148780369
2022-06-10 10:46:44 +02:00
Laurens Valk 8ec1b18629 pybricks.parameters: Add typing, part 2. 2022-06-10 10:33:33 +02:00
Laurens Valk 26908040eb pybricks.common: Add CommonColorSensor class.
Fixes https://github.com/pybricks/pybricks-api/issues/103
2022-06-10 10:05:13 +02:00
Laurens Valk f67c98105a pybricks.parameters: Add typing, part 1. 2022-06-10 10:05:13 +02:00
Laurens Valk 877391dea7 pybricks.parameters: Add typing. 2022-06-10 10:05:13 +02:00
Laurens Valk fb3446ad0d pybricks.robotics: Add typing. 2022-06-10 10:05:12 +02:00
Laurens Valk 31256d70c1 pybricks.tools: Add typing. 2022-06-10 10:05:12 +02:00
Laurens Valk f87e1b48ac pybricks.messaging: Add typing. 2022-06-10 10:05:12 +02:00
Laurens Valk 6bcf6117c3 pybricks.hubs: Add typing. 2022-06-10 10:05:11 +02:00
Laurens Valk c77682f50d pybricks.iodevices: Add typing. 2022-06-10 10:05:11 +02:00
Laurens Valk 4c583a9d4e doc/main: Enable NXT and EV3 pages.
This will help us review the pages as we add typing to the documentation. Then they will be hidden again.

This commit can be cherry-picked later on if we ever enable NXT and EV3 content again.
2022-06-10 10:05:10 +02:00
Laurens Valk 0688b8dded doc/common/conf.py: Add missing units.
These are used for NXT sensors.
2022-06-10 10:05:10 +02:00
Laurens Valk d1a4327751 pybricks.ev3dev.media: Type file classes. 2022-06-10 10:05:10 +02:00
Laurens Valk 4aec24a051 pybricks.ev3dev.media: Type Font class. 2022-06-10 10:05:09 +02:00
Laurens Valk 7bc995d0b6 pybricks.ev3dev.media: Type Image class. 2022-06-10 10:05:09 +02:00
Laurens Valk 725a07e6e1 pybricks.ev3dev._speaker: Add typing. 2022-06-10 10:05:09 +02:00
David Lechner d43bf94720 v3.2.0b1-r1 2022-06-09 19:31:04 -05:00
David Lechner c6163fcc81 pybricks: add __init__.py
This file was missing which breaks some tools that don't know about
namespace packages. Also `from pybricks import version` is a thing.
2022-06-09 19:25:44 -05:00
David Lechner 34992d5b20 vscode: drop deprecated setting
This setting no longer has any effect.
2022-06-09 19:25:21 -05:00
David Lechner c77aedcd8a @pybricks/ide-docs v2.2.0 2022-06-02 10:44:03 -05:00
David Lechner 7b9209681c @pybricks/ide-docs v2.1.0 2022-06-02 10:40:55 -05:00
Laurens Valk 7de33c0ce5 v3.2.0b1 2022-06-02 17:10:46 +02:00
Laurens Valk dbc5d327e3 doc/common/conf: Display s^2 units correctly.
Now that we no longer use these in hyperlinks, we can use the right
unicode to display this unit correctly.
2022-05-30 17:29:30 +02:00
Laurens Valk 2e39740e4b pybricks.nxtdevices: Add typing. 2022-05-30 17:19:38 +02:00
Laurens Valk 45e0744b3f pybricks.ev3devices: Add typing. 2022-05-30 15:34:07 +02:00
Laurens Valk aab6c0d3e0 pybricks.media.ev3dev: Repair build.
Upon temporarily including these to update typing for pybricks.ev3devices, a lot of build errors were encountered.

Even though we won't be re-including these pages any time soon, we'll want to occasionally make sure that they still build with more recent versions of Sphinx.
2022-05-30 14:29:14 +02:00
Laurens Valk 8a4c4a5400 CONTRIBUTING: Add basic docstring guidelines.
Fixes https://github.com/pybricks/pybricks-api/issues/99
2022-05-30 10:57:31 +02:00
Laurens Valk ecfbc6ca75 CONTRIBUTING: Fix formatting and link to setup.
We don't have a wiki.
2022-05-30 10:21:34 +02:00
Laurens Valk c3b6d44c59 pybricks.geometry: Add typing. 2022-05-30 10:17:47 +02:00
Laurens Valk db71a80f36 pybricks.common.IMU: Add typing. 2022-05-30 10:03:44 +02:00
Laurens Valk a80d5cf91e pybricks.common.Accelerometer: Add typing.
Also remove tapped and shaken, which are not implemented.
2022-05-30 09:46:00 +02:00
Laurens Valk 515d261bad pybricks.common.Charger: Add typing. 2022-05-30 09:29:14 +02:00
Laurens Valk dd54d67720 pybricks.common: Use Number as input type where allowed. 2022-05-28 11:33:08 +02:00
Laurens Valk 453332201e pybricks.common.Battery: Add typing. 2022-05-28 11:23:21 +02:00
Laurens Valk 3548ff47ce pybricks.common.Keypad: Add typing. 2022-05-28 11:20:07 +02:00
Laurens Valk a02b283f3f pybricks.common.LightMatrix: Add typing. 2022-05-28 11:15:17 +02:00
Laurens Valk f197531979 pybricks.common.LightArray: Add typing.
Remove blink and animate, which aren't implemented. These weren't displayed in the docs, so this is not a real change; it just makes typing more correct.
2022-05-28 10:55:40 +02:00
Laurens Valk 2167b9d52d pybricks.common.ColorLight: Add typing.
Also remove pybricks.common.Light which isn't used anywhere.

pupdevices.Light is a standalone light that does not support animations or blinks, so don't inherit from this nonexistent class.

Also remove the ColorLight.reset() method which was never implemented.
2022-05-27 20:00:28 +02:00
Laurens Valk 2be15fdf4d pybricks.common.Speaker: Add typing. 2022-05-27 19:14:22 +02:00
Laurens Valk aaf3ad1b9c pybricks.common.Control: Add typing. 2022-05-27 17:15:24 +02:00
Laurens Valk bd7806d2d4 all: Format with black.
Also activate auto formatting. Bump flake8 and mark black
disagreements in setup.cfg.
2022-05-27 16:22:05 +02:00
Laurens Valk 24f7d7c288 pybricks.common.Motor: Add typing. 2022-05-27 16:01:18 +02:00
Laurens Valk 5e0ba1de07 doc/common/conf: Format units in return type.
This formats return types so they don't look like tuples:

int: deg

If we can figure out how these nodes work, we can create proper links
and maybe use italics for the units or a slightly different font color.
2022-05-27 14:59:32 +02:00
Laurens Valk 2f8ba40034 poetry: Patch Sphinx to use docstring signatures when given.
This is the intended behavior everywhere, but it wasn't working for overloaded functions and methods.

See https://github.com/pybricks/sphinx/commit/f57417c042cbf4a72448518b7599517495cc6fde
2022-05-27 12:21:45 +02:00
Laurens Valk c4a09ab62a pybricks.common.DCMotor: Add typing. 2022-05-09 15:05:09 +02:00
Laurens Valk c0c53db5ee pybricks.common.System: Add typing. 2022-05-09 10:41:39 +02:00
Laurens Valk 5e09a6f1bd .vscode/settings: Add rewrap setting.
Now we can press Alt+Q to hard (re)wrap comments and docstrings.
2022-05-09 10:28:39 +02:00
Laurens Valk 5e9a8c5737 doc/main/signaltypes: Change how units are documented.
Previously, arguments had "types" like ":ref:`speed`", which would be rendered by Sphinx as a hyperlink and displayed as "rotational speed: deg/s".

This worked well enough but it had a few shortcomings:
- It looks bad on autocomplete, which doesn't know how to render RST with cross references.
- No real type information: int, float, ... ?
- Some units are very long, making the docs less concise.
- The unified approach doesn't always work. Some method arguments can be either deg/s or mm/s, depending on the application. This gets even lengthier.
- It's hard to maintain if you don't know what to link to.

In the new approach, the unit is just added to the type as plain text. Instead of giving the physical signal name, we give the real data type, which is more standard. The physical signal name is usually apparent from the docstring anyway, and can be inferred from the unit as well. This also solves all of the above problems.

Since most Pybricks methods allow both int and float for numeric inputs, we document these as a Number type, which is the union of int and float. Since the type is no longer directly tied to the type, we can still document the return type correctly, since this is never a union.

Instead of having complicated hacks in Sphinx to make this work (I have tried many), it turns out we can conveniently suppress broken references and still display the units. The only downside is that units will no longer have hyperlinks to the signal pages, at least for the moment. We should be able to make on_missing_reference a bit smarter to format the units as we see fit if needed.

The approach here is exemplified in the Motor.run_until_stalled method. Subsequent commits will apply it everywhere. Also clarify the behavior for duty_limit=None while we are updating this code anyway.
2022-05-09 10:28:31 +02:00
Laurens Valk f934fdd9bd pybricks.common.IMU: Change example to print G force.
Since we changed the acceleration units to mm/s/s, the output values are
fairly large.

The Matrix repr function prints values up to 999, so this avoids
truncating the output.

It is also a good demo of scalar division for a Matrix / Vector.
2022-04-01 16:32:39 +02:00
Laurens Valk 556728937f pybricks.common.Accelerometer: Use mm/s/s units.
Fixes https://github.com/pybricks/pybricks-api/issues/94

For Move Hub, this is a breaking change since Move Hub IMU support
was already released. For the other hubs, the IMU API has not been
released yet, so we can do this silently.
2022-04-01 15:41:15 +02:00
Laurens Valk 813ea61308 doc/main/conf.py: Show beta features on RTD/latest. 2022-04-01 14:51:38 +02:00
Laurens Valk 2e8e43bcdf rtd-requirements: Upgrade to Sphinx 4.4.0. 2022-04-01 14:31:35 +02:00
Laurens Valk e4ddd1ffce pybricks.geometry.Axis: Drop ANY.
This was previously dropped in a2583944d9
but it was added in again in c666009511.

Since this module was never included in a release (it was hidden),
it is OK to do this.
2022-04-01 14:28:38 +02:00
Laurens Valk 243f2948ef pybricks.hubs.primehub: Show in beta version.
Make it show up in the beta build and hide it in the release build.
2022-04-01 14:28:31 +02:00
Laurens Valk 81a1379781 doc/Makefile: Allow BETA=1 to include beta features.
Prior to every previous release, we we had to delete certain
features that did not make it into the release. This lets us
do that with a tag instead. This way we can keep a clean git
history that is easier to follow.
2022-04-01 13:39:04 +02:00
Laurens Valk 93a9370790 doc/common/extensions: Hide version directives in IDE build.
Version tags can be useful to keep track of new or updated features.

This lets us hide such details in the documentation that ships with the IDE to keep it concise.
2022-04-01 09:38:41 +02:00
Laurens Valk 1989561c90 .github/workflows: Fix typo in build name. 2022-03-22 15:49:23 +01:00
Laurens Valk 4101f9be79 poetry: Update Sphinx and RTD-theme.
We were not using a proper release for sphinx-rtd-theme
in order to work around some bugs. Meanwhile, a proper
release has come out, so let's upgrade to 1.0.0.

Also bump Sphinx to 4.4.

Also update and fix workarounds for cross references.
Fixes https://github.com/pybricks/pybricks-api/issues/98.
2022-03-22 15:38:04 +01:00
Laurens Valk 0a31bc711f pybricks.common.Control: Add deceleration setter.
Fixes https://github.com/pybricks/pybricks-api/issues/97
2022-03-21 11:17:34 +01:00
Pavel Lobodinský d8bd890101 pybricks.common: Charger, IMU and System auto-completion 2022-03-02 10:31:53 -06:00
David Lechner 2ba7edab0c pybricks.ev3/pupdevices: fix Motor code completion
The Microsoft Python extension for VS code doesn't include imports in
type hints, so the Motor type wasn't working properly. We can fix this
by wrapping the import type in a new, empty class definition.

The DCMotor class was also missing from ev3devices and the typing for
the overloaded reset_angle method in pupdevices was missing. These are
fixed as well.
2022-02-21 10:59:00 -06:00
Pavel Lobodinský 616051149b pybricks.common.Speaker: Add volume setter. 2022-01-20 08:56:29 +01:00
Laurens Valk e69c422f83 pybricks.common.Motor: Add absolute value example.
Fixes https://github.com/pybricks/support/issues/611
2022-01-20 08:39:43 +01:00
Laurens Valk 0ceabe8497 pybricks.common.Charger: Document it. 2022-01-14 15:14:28 +01:00
Laurens Valk d3ae4ec9ee pybricks.pupdevices.ColorSensor: Move cleanup example.
The color sensor light is much brighter, so having an example
to turn it off is a bit more useful.

Fixes https://github.com/pybricks/pybricks-api/pull/90
2022-01-07 14:11:03 +01:00
Laurens Valk ffb2f8aa96 pybricks.pupdevices.UltrasonicSensor: Move cleanup example.
Also generalize the example so that it can be used on all hubs.
2022-01-07 13:38:07 +01:00
Pavel Lobodinský 65c81834c9 pybricks.hubs.PrimeHub: Added a cleanup example. 2022-01-07 13:38:07 +01:00
Pavel Lobodinský 97002948d1 pybricks.common: Refactored Speaker API to be hub specific.
The Prime/Inventor Hub Speaker allows only a subset of EV3 Speaker API. Hence, splitting the API up.
2022-01-05 12:10:11 -06:00
Pavel Lobodinský 70aa5ee0e2 pybricks._common: Renamed incorrect argument name, fixed tuple type. 2022-01-03 11:01:33 +01:00
Pavel Lobodinský efc1650e7f pybricks.parameters: Added Icon class, added missing methods and attributes.
Added missing Icon class present in the firmware
2022-01-03 11:01:33 +01:00
Pavel Lobodinský fe60636072 pybricks.geometry: Fixed Matrix incorrect rows type, added missing methods. 2022-01-03 11:01:33 +01:00
Pavel Lobodinský a1342f77c9 pybricks.hubs: Default values for the PrimeHub. 2022-01-03 11:01:33 +01:00
Laurens Valk d806fe9fbe pybricks.common.Control: Fix docstring and type hints for limits().
Fixes https://github.com/pybricks/support/issues/565
2021-12-30 09:12:27 +01:00
David Lechner 1259d5d33a bump version for development 2021-12-16 15:36:52 -06:00
David Lechner 098b8eb9cb v3.1.0 2021-12-16 15:36:14 -06:00
David Lechner c666009511 pybricks.geometry: add Axis.ANY
This exists in the firmware but was missing here.
2021-12-16 15:08:50 -06:00
David Lechner 7f4234fc1e pybricks._common: remove type hint for integral_range()
This was removed in e061617.

Also fix import of Axis while we are touching this file.
2021-12-16 15:07:33 -06:00
David Lechner 482289c384 pybricks.robotics: add type hint for curve()
This method was added in 30803fc.
2021-12-16 15:06:00 -06:00
Laurens Valk 30803fc017 pybricks.robotics.DriveBase: Add curve method.
This generalizes motion to curves (arcs), which is in
between straight lines and in-place turns.
2021-12-01 15:38:27 +01:00
Laurens Valk 749eceefc4 pybricks.robotics.DriveBase: Document then and wait arguments. 2021-12-01 15:35:37 +01:00
Laurens Valk 57f6f0fbef pybricks.pupdevices.DCMotor: Document settings method.
Also update changelog for recent changes.
2021-12-01 14:55:34 +01:00
Laurens Valk e061617c34 pybricks.common.Control: Drop integral_range.
This setting is no longer used. We leave a placeholder setting so we don't break existing programs.

See https://github.com/pybricks/pybricks-micropython/commit/e82dd6a2be4e378ab0b1ee7e3b2643fe654de4a9#diff-e529f43c94cf766ade4b68930f9713a45b62618f4305e4c0c88ba872e9f9cd0e
2021-12-01 14:54:21 +01:00
Laurens Valk eb09ecd7c7 pybricks.common.Control: Drop duty limit.
This is now a per-motor voltage limit.

See https://github.com/pybricks/support/issues/536
2021-12-01 14:41:09 +01:00
Laurens Valk 06a1542613 pybricks.pupdevices.DCMotor: Document settings method.
See https://github.com/pybricks/support/issues/536
2021-12-01 14:40:06 +01:00
Laurens Valk 82a8f2ae89 pybricks.pupdevices.Motor: Add small motor render.
Fixes https://github.com/pybricks/support/issues/441
2021-11-23 08:59:44 +01:00
Laurens Valk 7d0fe9cb85 doc/common/extensions: Fix classlink.
Allow the link to be different from the name.

This lets us fix the link for the Inventor Hub, which was linking to a non-existent page.
2021-11-22 14:49:20 +01:00
Laurens Valk 1af876ac8f pybricks.pupdevices.ColorLightMatrix: Fix render.
- Use isometric projection
- Fix broken plug
- Use correct background color

While we are at it, add colors to show which 9 colors this device supports.
2021-11-22 14:49:20 +01:00
David Lechner 718a28c0da @pybricks/ide-docs v2.0.1 2021-11-19 20:30:11 -06:00
David Lechner a2a375cb5c docs/pupdevices: fix broken link
The link to the color light matrix page was broken due to an invalid
file name.
2021-11-19 20:28:33 -06:00
515 changed files with 10589 additions and 6193 deletions
+14 -2
View File
@@ -3,7 +3,19 @@
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:
build:
@@ -35,7 +47,7 @@ jobs:
run: poetry run doc8
- name: Build html docs for Read the Docs
run: poetry run make -C doc html
- name: Instal IDE docs dependencies
- name: Install IDE docs dependencies
run: |
sudo apt-get update
sudo apt-get install dvisvgm preview-latex-style texlive texlive-fonts-extra texlive-latex-extra
+30
View File
@@ -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 }}
+23
View File
@@ -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 }}
+23
View File
@@ -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 }}
+9 -1
View File
@@ -26,8 +26,9 @@ build/
build-*/
_build/
# Test failure outputs
# Tests
######################
.pytest_cache/
tests/*.exp
tests/*.out
@@ -57,3 +58,10 @@ genrst/
# Virtual environment
######################
.venv/
.python-version
# Generated LDRAW output
######################
stderr-ldview
stdout-ldview
LPub3D/
+24 -3
View File
@@ -1,10 +1,24 @@
{
"python.pythonPath": "${workspaceFolder}/.venv",
"files.exclude": {
"**/__pycache__": true,
},
"python.autoComplete.extraPaths": ["jedi/src"],
"python.formatting.provider": "black",
"python.linting.pycodestyleEnabled": false,
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.linting.pycodestyleEnabled": false,
"python.linting.enabled": true,
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.python"
},
"python.languageServer": "Pylance",
"python.testing.pytestArgs": [
"jedi/tests"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
"files.associations": {"*.inc": "restructuredtext"},
"restructuredtext.confPath": "${workspaceFolder}/doc/main",
"spellright.language": [
@@ -34,5 +48,12 @@
"plaintext",
"python",
"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"
},
}
+1
View File
@@ -78,3 +78,4 @@ thermistor
toctree
TODO
UART
utf-8
+56
View File
@@ -2,6 +2,62 @@
<!-- refer to https://keepachangelog.com/en/1.0.0/ for guidance -->
## Unreleased
## 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
+82 -5
View File
@@ -32,14 +32,91 @@ will actually be implemented.
- pybricks.tools.wait: Add example of waiting.
- pybricks.pupdevices: Fix all sensor class ports.
- 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.
- 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
spelled incorrectly`.
[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:**
@@ -49,8 +126,8 @@ Prerequisites:
- [Python 3][python]
- [Poetry][poetry]
Information on installing prerequisites can be found on the [pybricks-micropython
wiki][wiki].
Information on installing prerequisites can be found on the
[pybricks-micropython contributor's guide][contributing].
Initial setup:
@@ -90,4 +167,4 @@ Linting:
[git]: https://git-scm.com/
[python]: https://www.python.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 -1
View File
@@ -1,6 +1,6 @@
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
of this software and associated documentation files (the "Software"), to deal
+1 -1
View File
@@ -11,7 +11,7 @@ TAG = main
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) -t $(TAG) $(O)
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(TAG) $(O)
.PHONY: help Makefile
+154 -107
View File
@@ -27,21 +27,20 @@ from docutils import nodes
from docutils.parsers.rst.directives import flag
from docutils.parsers.rst import Directive
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
TOP_DIR = os.path.abspath(os.path.join('..', '..'))
sys.path.insert(0, os.path.join(TOP_DIR, 'src'))
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
TOP_DIR = os.path.abspath(os.path.join("..", ".."))
sys.path.insert(0, os.path.join(TOP_DIR, "src"))
sys.path.append(os.path.abspath("../common/extensions"))
# ON_RTD is whether we are on 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 ------------------------------------------------
@@ -53,27 +52,29 @@ _pyproject = toml.load(os.path.join(TOP_DIR, 'pyproject.toml'))
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
'sphinx.ext.todo',
'sphinx.ext.mathjax',
'color',
'classlink',
'requirements',
'requirements-static',
"sphinx.ext.autodoc",
"sphinx.ext.napoleon",
"sphinx.ext.todo",
"sphinx.ext.mathjax",
# Custom Pybricks extensions
"color",
"classlink",
"requirements",
"requirements-static",
"versionchanged",
]
# 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.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
source_suffix = ".rst"
# The master toctree document.
master_doc = 'index'
master_doc = "index"
# The version info for the project you're documenting, acts as replacement for
# |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.
release = "v" + _pyproject["tool"]["poetry"]["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
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# 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.
pygments_style = 'xcode'
pygments_style = "xcode"
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
@@ -100,10 +101,10 @@ todo_include_todos = True
# Figure numbering
numfig = True
numfig_format = {
'figure': 'Figure %s',
'table': 'Table %s',
'code-block': 'Listing %s',
'section': 'Section %s'
"figure": "Figure %s",
"table": "Table %s",
"code-block": "Listing %s",
"section": "Section %s",
}
# Find cross-reference errors
@@ -111,59 +112,49 @@ nitpicky = True
# https://stackoverflow.com/a/30624034/1976323
nitpick_ignore = [
('py:class', 'bool'),
('py:class', 'bytearray'),
('py:class', 'bytes'),
('py:class', 'callable'),
('py:class', 'dict'),
('py:class', 'float'),
('py:class', 'int'),
('py:class', 'iter'),
('py:class', 'list'),
('py:class', 'object'),
('py:class', 'str'),
('py:class', 'tuple'),
('py:exc', 'OSError'),
('py:exc', 'RuntimeError'),
('py:exc', 'TypeError'),
('py:exc', 'ValueError'),
("py:class", "bool"),
("py:class", "bytearray"),
("py:class", "bytes"),
("py:class", "callable"),
("py:class", "dict"),
("py:class", "float"),
("py:class", "int"),
("py:class", "iter"),
("py:class", "list"),
("py:class", "object"),
("py:class", "str"),
("py:class", "tuple"),
("py:exc", "OSError"),
("py:exc", "RuntimeError"),
("py:exc", "TypeError"),
("py:exc", "ValueError"),
]
# not sure why, but this is needed for typing.IO in uselect
nitpick_ignore.append(('py:class', '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'),
])
nitpick_ignore.append(("py:obj", "typing.IO"))
# -- Autodoc options ------------------------------------------------------
autodoc_member_order = 'bysource'
autodoc_member_order = "bysource"
autodoc_default_options = {
'members': True,
'undoc-members': True,
"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
# -- Options for HTML output ----------------------------------------------
if ON_RTD:
html_theme = 'default'
html_theme = "default"
else:
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_context = {
'disclaimer': _DISCLAIMER,
"disclaimer": _DISCLAIMER,
}
# The theme to use for HTML and HTML Help pages. See the documentation for
@@ -176,14 +167,14 @@ html_context = {
# documentation.
#
html_theme_options = {
'style_external_links': True,
'logo_only': True,
"style_external_links": True,
"logo_only": True,
}
# 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,
# 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
# to template names.
@@ -191,9 +182,9 @@ html_static_path = ['../common/_static']
# This is required for the alabaster theme
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
html_sidebars = {
'**': [
'relations.html', # needs 'show_related': True theme option to display
'searchbox.html',
"**": [
"relations.html", # needs 'show_related': True theme option to display
"searchbox.html",
]
}
@@ -203,7 +194,7 @@ html_scaled_image_link = False
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'Pybricksdoc'
htmlhelp_basename = "Pybricksdoc"
# -- Options for LaTeX output ---------------------------------------------
@@ -212,14 +203,12 @@ latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
'preamble': r'''
"preamble": r"""
\usepackage{CJKutf8}
\makeatletter
\fancypagestyle{normal}{
@@ -239,51 +228,46 @@ latex_elements = {
\renewcommand{\footrulewidth}{0.4pt}
}
\makeatother
''' % {
'disclaimer': ' '.join((_DISCLAIMER, '©', copyright)),
"""
% {
"disclaimer": " ".join((_DISCLAIMER, "©", copyright)),
},
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
'extraclassoptions': 'openany,oneside',
'releasename': 'Version',
"extraclassoptions": "openany,oneside",
"releasename": "Version",
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, ''.join([project, '-v', version, '.tex']), _TITLE,
author, 'manual'),
(master_doc, "".join([project, "-v", version, ".tex"]), _TITLE, author, "manual"),
]
# -- Content control -----------------------------------------------------
exclude_patterns = [
'ev3devices.rst',
'hubs/ev3brick.rst',
'iodevices/analogsensor.rst',
'iodevices/dcmotor.rst',
'iodevices/ev3devsensor.rst',
'iodevices/i2cdevice.rst',
'iodevices/lumpdevice.rst',
'iodevices/uartdevice.rst',
'media.rst',
'messaging.rst',
'nxtdevices.rst',
'tools/datalog.rst'
"ev3devices.rst",
"hubs/ev3brick.rst",
"iodevices/analogsensor.rst",
"iodevices/dcmotor.rst",
"iodevices/ev3devsensor.rst",
"iodevices/i2cdevice.rst",
"iodevices/lumpdevice.rst",
"iodevices/uartdevice.rst",
"media.rst",
"messaging.rst",
"nxtdevices.rst",
"tools/datalog.rst",
]
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'pybricks', 'Pybricks Documentation',
[author], 1)
]
man_pages = [(master_doc, "pybricks", "Pybricks Documentation", [author], 1)]
# -- Options for Texinfo output -------------------------------------------
@@ -292,33 +276,96 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'Pybricks', 'Pybricks Documentation',
author, 'Pybricks', 'One line description of project.',
'Miscellaneous'),
(
master_doc,
"Pybricks",
"Pybricks Documentation",
author,
"Pybricks",
"One line description of project.",
"Miscellaneous",
),
]
# -- .. availability:: directive
class AvailabilityDirective(Directive):
has_content = True
option_spec = {
'movehub': flag,
'cityhub': flag,
'technichub': flag,
'ev3dev-stretch': flag,
"movehub": flag,
"cityhub": flag,
"technichub": flag,
"ev3dev-stretch": flag,
}
def run(self):
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
return [nodes.emphasis(text='Availability: '),
nodes.Text(', '.join(self.options))]
return [
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):
app.add_directive('availability', AvailabilityDirective)
app.add_directive("availability", AvailabilityDirective)
app.connect("missing-reference", on_missing_reference)
# -- Python domain hacks ---------------------------------------------------
+16 -12
View File
@@ -5,27 +5,31 @@ from docutils.parsers.rst import Directive
class PybricksClasslinkDirective(Directive):
required_arguments = 1
optional_arguments = 1
def run(self):
# Get link name from sphinx-directive
# Get link and name from sphinx-directive
name = self.arguments[0]
link = name if len(self.arguments) == 1 else self.arguments[1]
html = (
'<a href="{0}.html">'.format(name.lower()) +
'<dl class="py class">' +
'<dt>' +
'<em class="property">class </em>' +
'<code class="sig-name descname">' + name + '</code>' +
'</dt>' +
'<dd></dd>' +
'</dl>' +
'</a>'
'<a href="{0}.html">'.format(link.lower())
+ '<dl class="py class">'
+ "<dt>"
+ '<em class="property">class </em>'
+ '<code class="sig-name descname">'
+ name
+ "</code>"
+ "</dt>"
+ "<dd></dd>"
+ "</dl>"
+ "</a>"
)
# Return the node
node = nodes.raw('', html, format="html")
node = nodes.raw("", html, format="html")
return [node]
def setup(app):
app.add_directive_to_domain('py', 'pybricks-classlink', PybricksClasslinkDirective)
app.add_directive_to_domain("py", "pybricks-classlink", PybricksClasslinkDirective)
+8 -9
View File
@@ -16,28 +16,27 @@ class PybricksColorDirective(Directive):
color = getattr(Color, name)
# Convert HSV to RGB
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
rgbhex = '#{0:02x}{1:02x}{2:02x}'.format(
round(r*255),
round(g*255),
round(b*255)
rgbhex = "#{0:02x}{1:02x}{2:02x}".format(
round(r * 255), round(g * 255), round(b * 255)
)
# Render a small block of the given color
css = "background-color: {0}; color: {0}; width: 50px;".format(rgbhex)
if name == "WHITE":
css += "border-style: solid; border-width: 0.5px;" + \
"border-color: #666666;"
css += (
"border-style: solid; border-width: 0.5px;" + "border-color: #666666;"
)
html = '<div id="test" style="{0}">_</div>'.format(css)
# Return the node
node = nodes.raw('', html, format="html")
node = nodes.raw("", html, format="html")
return [node]
def setup(app):
app.add_directive_to_domain('py', 'pybricks-color', PybricksColorDirective)
app.add_directive_to_domain("py", "pybricks-color", PybricksColorDirective)
+28 -26
View File
@@ -10,10 +10,10 @@ FEATURES_SMALL = set()
# Medium feature set.
FEATURES_MEDIUM = FEATURES_SMALL | {
'pybricks-geometry',
'pybricks-iodevices',
'stm32-extra',
'stm32-float',
"pybricks-geometry",
"pybricks-iodevices",
"stm32-extra",
"stm32-float",
}
# Large feature set.
@@ -21,11 +21,12 @@ FEATURES_LARGE = FEATURES_MEDIUM | set()
# Features per hub.
HUB_FEATURES = {
'movehub': {'movehub'} | FEATURES_SMALL,
'cityhub': {'cityhub'} | FEATURES_MEDIUM,
'technichub': {'technichub'} | FEATURES_MEDIUM,
'primehub': {'primehub', 'inventorhub'} | FEATURES_LARGE,
'inventorhub': {'primehub', 'inventorhub'} | FEATURES_LARGE,
"movehub": {"movehub"} | FEATURES_SMALL,
"cityhub": {"cityhub"} | FEATURES_MEDIUM,
"technichub": {"technichub"} | FEATURES_MEDIUM,
"primehub": {"primehub", "inventorhub"} | FEATURES_LARGE,
"inventorhub": {"primehub", "inventorhub"} | FEATURES_LARGE,
"essentialhub": {"essentialhub"} | FEATURES_LARGE,
}
@@ -40,15 +41,15 @@ class PybricksRequirementsStaticDirective(Directive):
# CC BY-SA 4.0 via https://stackoverflow.com/a/63728208
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):
makedirs(destdir)
for hub in HUB_FEATURES:
for compat in ("true", "false"):
uri = 'compat_{0}_{1}_label.png'.format(hub, compat)
src_uri = path.join(env.app.builder.srcdir, 'images', uri)
build_uri = path.join(env.app.builder.outdir, '_images', uri)
uri = "compat_{0}_{1}.png".format(hub, compat)
src_uri = path.join(env.app.builder.srcdir, "diagrams", uri)
build_uri = path.join(env.app.builder.outdir, "_images", uri)
copyfile(src_uri, build_uri)
# Get requirements from sphinx-directive.
@@ -57,7 +58,7 @@ class PybricksRequirementsStaticDirective(Directive):
# Cell with image of a hub.
hub_cell = """
<th><div class="align-default">
<img alt="" src="{0}_images/compat_{1}_{2}_label.png">
<img alt="" src="{0}_images/compat_{1}_{2}.png">
</div></th>
"""
@@ -67,13 +68,14 @@ class PybricksRequirementsStaticDirective(Directive):
depth_path = "../" * depth
# Table row with hub images.
compat_row = "".join([
hub_cell.format(
depth_path,
hub,
"true" if requirements <= features else "false")
for hub, features in HUB_FEATURES.items()
])
compat_row = "".join(
[
hub_cell.format(
depth_path, hub, "true" if requirements <= features else "false"
)
for hub, features in HUB_FEATURES.items()
]
)
# Generate full table.
html = """
@@ -86,16 +88,16 @@ class PybricksRequirementsStaticDirective(Directive):
</tbody>
</table>
</div>
""".format(compat_row)
""".format(
compat_row
)
# Return the node.
node = nodes.raw('', html, format="html")
node = nodes.raw("", html, format="html")
return [node]
def setup(app):
app.add_directive_to_domain(
'py',
'pybricks-requirements-static',
PybricksRequirementsStaticDirective
"py", "pybricks-requirements-static", PybricksRequirementsStaticDirective
)
+14 -14
View File
@@ -29,25 +29,25 @@ from sphinx.util.osutil import copyfile
from sphinx.util import logging
CSS_FILE = 'requirements.css'
JS_FILE = 'requirements.js'
CSS_FILE = "requirements.css"
JS_FILE = "requirements.js"
class PybricksRequirementsDirective(Directive):
has_content = True
option_spec = {'header': directives.unchanged}
option_spec = {"header": directives.unchanged}
required_arguments = 0
optional_arguments = 10
def run(self):
node = nodes.container()
node['classes'].append('toggle-content')
node["classes"].append("toggle-content")
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)
@@ -60,20 +60,20 @@ def add_assets(app):
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
logger = logging.getLogger(__name__)
logger.info('Copying requirements stylesheet/javascript... ', nonl=True)
dest = os.path.join(app.builder.outdir, '_static', CSS_FILE)
logger.info("Copying requirements stylesheet/javascript... ", nonl=True)
dest = os.path.join(app.builder.outdir, "_static", CSS_FILE)
source = os.path.join(os.path.abspath(os.path.dirname(__file__)), CSS_FILE)
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)
copyfile(source, dest)
logger.info('done')
logger.info("done")
def setup(app):
app.add_directive('pybricks-requirements', PybricksRequirementsDirective)
app.connect('builder-inited', add_assets)
app.connect('build-finished', copy_assets)
app.add_directive("pybricks-requirements", PybricksRequirementsDirective)
app.connect("builder-inited", add_assets)
app.connect("build-finished", copy_assets)
+31
View File
@@ -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
)
+62
View File
@@ -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_-135_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
+841
View File
@@ -0,0 +1,841 @@
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 -135 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
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

+29 -22
View File
@@ -4,47 +4,54 @@
# Pybricks documentation build configuration file
#
import os
import sys
# General information about the project.
project = 'pybricks'
copyright = '2018-2021 The Pybricks Authors'
author = ''
project = "pybricks"
copyright = "2018-2021 The Pybricks Authors"
author = ""
_TITLE = 'Pybricks Modules and Examples'
_DISCLAIMER = 'LEGO, the LEGO logo, MINDSTORMS and the MINDSTORMS EV3 logo are\
_TITLE = "Pybricks Modules and Examples"
_DISCLAIMER = "LEGO, the LEGO logo, MINDSTORMS and the MINDSTORMS EV3 logo are\
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_logo = '../common/images/pybricks-logo-rtd.png'
latex_logo = '../common/images/pybricks-logo-large.png'
html_favicon = "../common/images/favicon.ico"
html_logo = "../common/images/pybricks-logo-rtd.png"
latex_logo = "../common/images/pybricks-logo-large.png"
# Build main docs for RTD by default.
# Since tags cannot be passed via the TAG make variable on read the docs,
# add it manually.
if os.environ.get('READTHEDOCS', None) == 'True':
tags.add('main') # noqa F821
if os.environ.get("READTHEDOCS", None) == "True":
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
if 'ide' in tags.tags: # noqa F821
_DISCLAIMER = ''
if "ide" in tags.tags: # noqa F821
_DISCLAIMER = ""
html_show_copyright = False
html_show_sphinx = False
html_css_files = ['css/ide.css']
html_js_files = ['js/ide.js']
html_css_files = ["css/ide.css"]
html_js_files = ["js/ide.js"]
imgmath_image_format = 'svg'
imgmath_image_format = "svg"
imgmath_use_preview = True # requires Sphinx v3
imgmath_latex_preamble = r'''
imgmath_latex_preamble = r"""
\usepackage{newtxsf}
'''
"""
exec(open(os.path.abspath("../common/conf.py")).read())
# 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.append('sphinx.ext.imgmath') # noqa F821
html_theme_options['prev_next_buttons_location'] = None # noqa F821
extensions.remove("sphinx.ext.mathjax") # noqa F821
extensions.append("sphinx.ext.imgmath") # 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
-25
View File
@@ -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,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

-6
View File
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

-16
View File
@@ -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
-14
View File
@@ -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
-11
View File
@@ -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
-40
View File
@@ -1,40 +0,0 @@
0 Name: imu.ldr
0 Author: Pybricks {laurens@pybricks.com}
0 !LICENSE MIT
0 ROTATION CENTER 0 0 0 1 "Custom"
0 ROTATION CONFIG 0 0
1 3 -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 3 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 3 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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 KiB

-486
View File
@@ -1,486 +0,0 @@
0 FILE main.ldr
0 Name: ev3sensors
0 Author: Pybricks {laurens@pybricks.com}
0 !LICENSE MIT
0 !LDCAD GROUP_DEF [topLevel=true] [LID=0] [GID=Iv9FbUdBPsB] [name=Group 1] [center=0 0 0]
0 !LDCAD GROUP_DEF [topLevel=true] [LID=1] [GID=IMOjEZg0eXo] [name=Group 2] [center=0 0 0]
0 !LDCAD GROUP_DEF [topLevel=true] [LID=2] [GID=7Zgg7xpsn7m] [name=Group 3] [center=0 0 0]
0 !LDCAD GROUP_DEF [topLevel=true] [LID=3] [GID=37IHSsFLUIW] [name=Group 4] [center=0 0 0]
0 !LDCAD GROUP_DEF [topLevel=true] [LID=4] [GID=78T5iMUZhPB] [name=Group 5] [center=0 0 0]
0 !LDCAD GROUP_DEF [topLevel=true] [LID=5] [GID=6l6RjlBcxBO] [name=Group 6] [center=0 0 0]
0 !LDCAD GROUP_NXT [ids=2] [nrs=-1]
1 1 1390 -320 -320 0 0 -30 0 1 0 50 0 0 box.dat
0 !LDCAD GROUP_NXT [ids=2] [nrs=2]
1 151 1390 -320 -370 1 0 0 0 1 0 0 0 1 54732b.dat
0 !LDCAD GROUP_NXT [ids=3] [nrs=2]
1 0 1510 -315 -390 0 0 -40 0 6 0 50 0 0 box.dat
0 !LDCAD GROUP_NXT [ids=3] [nrs=-1]
1 151 1510 -320 -440 1 0 0 0 1 0 0 0 1 54732b.dat
0 !LDCAD GROUP_NXT [ids=0] [nrs=3]
1 2 1350 -320 140 0 0 -30 0 1 0 50 0 0 box.dat
0 !LDCAD GROUP_NXT [ids=0] [nrs=2]
1 151 1350 -320 90 1 0 0 0 1 0 0 0 1 54732b.dat
0 !LDCAD GROUP_NXT [ids=1] [nrs=2]
1 2 1470 -320 60 0 0 -30 0 1 0 50 0 0 box.dat
0 !LDCAD GROUP_NXT [ids=1] [nrs=3]
1 0 1470 -320 110 1 0 0 0 1 0 0 0 1 u9218c01.dat
0 !LDCAD GROUP_NXT [ids=0] [nrs=-1]
1 0 1350 -321 170 -20 0 0 0 1 0 0 0 -10 box.dat
0 !LDCAD GROUP_NXT [ids=1] [nrs=-1]
1 0 1470 -321 30 -20 0 0 0 1 0 0 0 -10 box.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=8]
1 0 1620 -320 -20 1 0 0 0 1 0 0 0 1 u9470c01.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=9]
1 15 1620 -305 -20 1 0 0 0 1 0 0 0 1 u9218c01.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=7]
1 2 1620 -320 -50 50 0 0 0 0 20 0 -1 0 box.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=-1]
1 0 1590 -320 -51 15 0 0 0 0 15 0 -1 0 box.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=5]
1 0 1650 -320 -51 0 0 -8 15 0 0 0 -1 0 box.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=6]
1 0 1630 -320 -51 0 0 8 -15 0 0 0 -1 0 box.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=2]
1 4 1665 -328 -51 0 0 2 -2 0 0 0 -1 0 box.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=3]
1 1 1665 -320 -51 0 0 2 -2 0 0 0 -1 0 box.dat
0 !LDCAD GROUP_NXT [ids=4] [nrs=4]
1 14 1665 -312 -51 0 0 2 -2 0 0 0 -1 0 box.dat
1 151 1200 -392 -350 1 0 0 0 1 0 0 0 1 ms1040.dat
0 !LDCAD GROUP_NXT [ids=5] [nrs=4]
1 47 625 -780 -230 0 0 -1 0 -1 0 -1 0 0 55804.dat
0 !LDCAD GROUP_NXT [ids=5] [nrs=3]
1 0 695 -780 -309 0 0 -1 0 -1 0 -1 0 0 897.dat
0 !LDCAD GROUP_NXT [ids=5] [nrs=2]
1 0 695 -784 -314 -1 0 0 0 1 0 0 0 -1 elecCable2Brick-1.ldr
0 !LDCAD GROUP_NXT [ids=5] [nrs=1]
1 0 695 -784 -449 1 0 0 0 1 0 0 0 1 71427.dat
1 0 990 -321 -330 -20 0 0 0 1 0 0 0 -10 box.dat
1 151 990 -320 -410 1 0 0 0 1 0 0 0 1 54732b.dat
1 6 990 -320 -360 0 0 -30 0 1 0 50 0 0 box.dat
1 0 1100 -321 -440 -20 0 0 0 1 0 0 0 -10 box.dat
1 151 1100 -320 -520 1 0 0 0 1 0 0 0 1 54732b.dat
1 3 1100 -320 -470 0 0 -30 0 1 0 50 0 0 box.dat
1 0 1210 -321 -520 -20 0 0 0 1 0 0 0 -10 box.dat
1 151 1210 -320 -600 1 0 0 0 1 0 0 0 1 54732b.dat
1 7 1210 -320 -550 0 0 -30 0 1 0 50 0 0 box.dat
0 FILE elecCable2Brick-1.ldr
0 Author: LDCad
0 !LICENSE MIT
0 !CATEGORY electric
0 !KEYWORDS flexible, cable, 9V
0 !LDCAD CONTENT [type=path] [addFallBack=default] [looped=false] [displayKind=mm] [curveStep=0] [displayLenCor=0]
0 !LDCAD PATH_POINT [type=bezier] [posOri=0 4 15 0 0 1 -1 0 0 0 -1 0] [prevCPDist=25] [nextCPDist=25] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
0 !LDCAD PATH_POINT [type=bezier] [posOri=0 4 140 0 0 1 -1 0 0 0 -1 0] [prevCPDist=25] [nextCPDist=25] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
0 !LDCAD PATH_SKIN [donCol=16] [donOri=1 0 0 0 1 0 0 0 1] [donPart=ldcElecWire2Seg.dat] [donYSize=400%] [donCen=absCen] [donCenYOfs=0] [donFinScale=fitDon2Seg] [donPlace=deform] [donYAlign=0] [donInline=false] [segSize=100%] [segSizeTol=5%] [segsCnt=0] [segsGrp=0] [segsMaxMerge=10] [segsMrgAng=0] [segsMrgRollAng=0] [segsEdgeDelKind=keepFirstLeft]
0 !LDCAD PATH_CAP [group=end] [color=0] [posOri=0 0 155 0 0 1 0 1 0 -1 0 0] [part=6625c01.dat] [extraLen=0mm] [inlineRef=false]
0 !LDCAD PATH_CAP [group=end] [color=0] [posOri=0 16 155 0 0 1 0 1 0 -1 0 0] [part=2727ac01.dat] [extraLen=0mm] [inlineRef=false]
0 !LDCAD GENERATED [generator=LDCad 1.6c]
0 //This is the fallback LDraw content for above PATH configuration.
0 // Do not edit, any changes will be lost upon regeneration.
0 // The path is approx 50.00 mm (125.00) and exists out of 4 segments.
0 //Some general hints about the document.
0 UNOFFICIAL PART
0 BFC CERTIFY CCW
0 //Some of this content has been generated from other LDraw files, many thanks to all involved.
0 // Credits for "ldcElecWire2Seg.dat":
0 // Author: LDCad
0 // Credits for "7-8cyli.dat":
0 // Author: Guy Vivan
0 // History:
0 // 2009-05-02 [PTadmin] Official Update 2009-01
0 // Credits for "ldcConRing-7-8.dat":
0 // Author: LDCad
0 //End cap reference(s)
1 0 0 0 155 0 0 1 0 1 0 -1 0 0 6625c01.dat
1 0 0 16 155 0 0 1 0 1 0 -1 0 0 2727ac01.dat
0 //Segments
0 // Segment 1, this block is (recursively) generated from "ldcElecWire2Seg.dat"
4 16 0.32452 2.939305 55.645161 -0.00062 3.425975 55.645161 -0.00062 3.425975 15.000001 0.32452 2.939305 15.000001
4 16 0.81118 2.614194 55.645161 0.32452 2.939305 55.645161 0.32452 2.939305 15.000001 0.81118 2.614194 15.000001
4 16 1.385188 2.499961 55.645161 0.81118 2.614194 55.645161 0.81118 2.614194 15.000001 1.385188 2.499961 15.000001
4 16 1.959225 2.61418 55.645161 1.385188 2.499961 55.645161 1.385188 2.499961 15.000001 1.959225 2.61418 15.000001
4 16 2.445895 2.93932 55.645161 1.959225 2.61418 55.645161 1.959225 2.61418 15.000001 2.445895 2.93932 15.000001
4 16 2.771006 3.42598 55.645161 2.445895 2.93932 55.645161 2.445895 2.93932 15.000001 2.771006 3.42598 15.000001
4 16 2.885238 3.999988 55.645161 2.771006 3.42598 55.645161 2.771006 3.42598 15.000001 2.885238 3.999988 15.000001
4 16 2.77102 4.574025 55.645161 2.885238 3.999988 55.645161 2.885238 3.999988 15.000001 2.77102 4.574025 15.000001
4 16 2.44588 5.060695 55.645161 2.77102 4.574025 55.645161 2.77102 4.574025 15.000001 2.44588 5.060695 15.000001
4 16 1.95922 5.385806 55.645161 2.44588 5.060695 55.645161 2.44588 5.060695 15.000001 1.95922 5.385806 15.000001
4 16 1.385212 5.500039 55.645161 1.95922 5.385806 55.645161 1.95922 5.385806 15.000001 1.385212 5.500039 15.000001
4 16 0.811175 5.38582 55.645161 1.385212 5.500039 55.645161 1.385212 5.500039 15.000001 0.811175 5.38582 15.000001
4 16 0.324505 5.06068 55.645161 0.811175 5.38582 55.645161 0.811175 5.38582 15.000001 0.324505 5.06068 15.000001
4 16 -0.000606 4.57402 55.645161 0.324505 5.06068 55.645161 0.324505 5.06068 15.000001 -0.000606 4.57402 15.000001
4 16 -0.32452 5.060695 55.645161 -0.000606 4.57402 55.645161 -0.000606 4.57402 15.000001 -0.32452 5.060695 15.000001
4 16 -0.81118 5.385806 55.645161 -0.32452 5.060695 55.645161 -0.32452 5.060695 15.000001 -0.81118 5.385806 15.000001
4 16 -1.385188 5.500039 55.645161 -0.81118 5.385806 55.645161 -0.81118 5.385806 15.000001 -1.385188 5.500039 15.000001
4 16 -1.959225 5.38582 55.645161 -1.385188 5.500039 55.645161 -1.385188 5.500039 15.000001 -1.959225 5.38582 15.000001
4 16 -2.445895 5.06068 55.645161 -1.959225 5.38582 55.645161 -1.959225 5.38582 15.000001 -2.445895 5.06068 15.000001
4 16 -2.771006 4.57402 55.645161 -2.445895 5.06068 55.645161 -2.445895 5.06068 15.000001 -2.771006 4.57402 15.000001
4 16 -2.885238 4.000011 55.645161 -2.771006 4.57402 55.645161 -2.771006 4.57402 15.000001 -2.885238 4.000011 15.000001
4 16 -2.77102 3.425975 55.645161 -2.885238 4.000011 55.645161 -2.885238 4.000011 15.000001 -2.77102 3.425975 15.000001
4 16 -2.44588 2.939305 55.645161 -2.77102 3.425975 55.645161 -2.77102 3.425975 15.000001 -2.44588 2.939305 15.000001
4 16 -1.95922 2.614194 55.645161 -2.44588 2.939305 55.645161 -2.44588 2.939305 15.000001 -1.95922 2.614194 15.000001
4 16 -1.385212 2.499961 55.645161 -1.95922 2.614194 55.645161 -1.95922 2.614194 15.000001 -1.385212 2.499961 15.000001
4 16 -0.811175 2.61418 55.645161 -1.385212 2.499961 55.645161 -1.385212 2.499961 15.000001 -0.811175 2.61418 15.000001
4 16 -0.324505 2.93932 55.645161 -0.811175 2.61418 55.645161 -0.811175 2.61418 15.000001 -0.324505 2.93932 15.000001
4 16 -0.00062 3.425975 55.645161 -0.324505 2.93932 55.645161 -0.324505 2.93932 15.000001 -0.00062 3.425975 15.000001
5 24 -0.00062 3.425975 15.000001 -0.00062 3.425975 55.645161 -0.574645 4.811795 15.000001 0.32452 2.939305 15.000001
5 24 0.32452 2.939305 15.000001 0.32452 2.939305 55.645161 -0.00062 3.425975 15.000001 0.81118 2.614194 15.000001
5 24 0.81118 2.614194 15.000001 0.81118 2.614194 55.645161 0.32452 2.939305 15.000001 1.385188 2.499961 15.000001
5 24 1.385188 2.499961 15.000001 1.385188 2.499961 55.645161 0.81118 2.614194 15.000001 1.959225 2.61418 15.000001
5 24 1.959225 2.61418 15.000001 1.959225 2.61418 55.645161 1.385188 2.499961 15.000001 2.445895 2.93932 15.000001
5 24 2.445895 2.93932 15.000001 2.445895 2.93932 55.645161 1.959225 2.61418 15.000001 2.771006 3.42598 15.000001
5 24 2.771006 3.42598 15.000001 2.771006 3.42598 55.645161 2.445895 2.93932 15.000001 2.885238 3.999988 15.000001
5 24 2.885238 3.999988 15.000001 2.885238 3.999988 55.645161 2.771006 3.42598 15.000001 2.77102 4.574025 15.000001
5 24 2.77102 4.574025 15.000001 2.77102 4.574025 55.645161 2.885238 3.999988 15.000001 2.44588 5.060695 15.000001
5 24 2.44588 5.060695 15.000001 2.44588 5.060695 55.645161 2.77102 4.574025 15.000001 1.95922 5.385806 15.000001
5 24 1.95922 5.385806 15.000001 1.95922 5.385806 55.645161 2.44588 5.060695 15.000001 1.385212 5.500039 15.000001
5 24 1.385212 5.500039 15.000001 1.385212 5.500039 55.645161 1.95922 5.385806 15.000001 0.811175 5.38582 15.000001
5 24 0.811175 5.38582 15.000001 0.811175 5.38582 55.645161 1.385212 5.500039 15.000001 0.324505 5.06068 15.000001
5 24 0.324505 5.06068 15.000001 0.324505 5.06068 55.645161 0.811175 5.38582 15.000001 -0.000606 4.57402 15.000001
5 24 -0.000606 4.57402 15.000001 -0.000606 4.57402 55.645161 -0.574627 3.188214 15.000001 0.324505 5.06068 15.000001
5 24 -0.000606 4.57402 15.000001 -0.000606 4.57402 55.645161 0.574645 3.188205 15.000001 -0.32452 5.060695 15.000001
5 24 -0.32452 5.060695 15.000001 -0.32452 5.060695 55.645161 -0.000606 4.57402 15.000001 -0.81118 5.385806 15.000001
5 24 -0.81118 5.385806 15.000001 -0.81118 5.385806 55.645161 -0.32452 5.060695 15.000001 -1.385188 5.500039 15.000001
5 24 -1.385188 5.500039 15.000001 -1.385188 5.500039 55.645161 -0.81118 5.385806 15.000001 -1.959225 5.38582 15.000001
5 24 -1.959225 5.38582 15.000001 -1.959225 5.38582 55.645161 -1.385188 5.500039 15.000001 -2.445895 5.06068 15.000001
5 24 -2.445895 5.06068 15.000001 -2.445895 5.06068 55.645161 -1.959225 5.38582 15.000001 -2.771006 4.57402 15.000001
5 24 -2.771006 4.57402 15.000001 -2.771006 4.57402 55.645161 -2.445895 5.06068 15.000001 -2.885238 4.000011 15.000001
5 24 -2.885238 4.000011 15.000001 -2.885238 4.000011 55.645161 -2.771006 4.57402 15.000001 -2.77102 3.425975 15.000001
5 24 -2.77102 3.425975 15.000001 -2.77102 3.425975 55.645161 -2.885238 4.000011 15.000001 -2.44588 2.939305 15.000001
5 24 -2.44588 2.939305 15.000001 -2.44588 2.939305 55.645161 -2.77102 3.425975 15.000001 -1.95922 2.614194 15.000001
5 24 -1.95922 2.614194 15.000001 -1.95922 2.614194 55.645161 -2.44588 2.939305 15.000001 -1.385212 2.499961 15.000001
5 24 -1.385212 2.499961 15.000001 -1.385212 2.499961 55.645161 -1.95922 2.614194 15.000001 -0.811175 2.61418 15.000001
5 24 -0.811175 2.61418 15.000001 -0.811175 2.61418 55.645161 -1.385212 2.499961 15.000001 -0.324505 2.93932 15.000001
5 24 -0.324505 2.93932 15.000001 -0.324505 2.93932 55.645161 -0.811175 2.61418 15.000001 -0.00062 3.425975 15.000001
5 24 -0.00062 3.425975 15.000001 -0.00062 3.425975 55.645161 0.574627 4.811786 15.000001 -0.324505 2.93932 15.000001
5 24 -0.00062 3.425975 55.645161 0.32452 2.939305 55.645161 -0.00062 3.425975 75.717743 -0.00062 3.425975 15
5 24 0.32452 2.939305 55.645161 0.81118 2.614194 55.645161 0.32452 2.939305 75.717743 0.32452 2.939305 15
5 24 0.81118 2.614194 55.645161 1.385188 2.499961 55.645161 0.81118 2.614194 75.717743 0.81118 2.614194 15
5 24 1.385188 2.499961 55.645161 1.959225 2.61418 55.645161 1.385188 2.499961 75.717743 1.385188 2.499961 15
5 24 1.959225 2.61418 55.645161 2.445895 2.93932 55.645161 1.959225 2.61418 75.717743 1.959225 2.61418 15
5 24 2.445895 2.93932 55.645161 2.771006 3.42598 55.645161 2.445895 2.93932 75.717743 2.445895 2.93932 15
5 24 2.771006 3.42598 55.645161 2.885238 3.999988 55.645161 2.771006 3.42598 75.717743 2.771006 3.42598 15
5 24 2.885238 3.999988 55.645161 2.77102 4.574025 55.645161 2.885238 3.999988 75.717743 2.885238 3.999988 15
5 24 2.77102 4.574025 55.645161 2.44588 5.060695 55.645161 2.77102 4.574025 75.717743 2.77102 4.574025 15
5 24 2.44588 5.060695 55.645161 1.95922 5.385806 55.645161 2.44588 5.060695 75.717743 2.44588 5.060695 15
5 24 1.95922 5.385806 55.645161 1.385212 5.500039 55.645161 1.95922 5.385806 75.717743 1.95922 5.385806 15
5 24 1.385212 5.500039 55.645161 0.811175 5.38582 55.645161 1.385212 5.500039 75.717743 1.385212 5.500039 15
5 24 0.811175 5.38582 55.645161 0.324505 5.06068 55.645161 0.811175 5.38582 75.717743 0.811175 5.38582 15
5 24 0.324505 5.06068 55.645161 -0.000606 4.57402 55.645161 0.324505 5.06068 75.717743 0.324505 5.06068 15
5 24 -0.000606 4.57402 55.645161 -0.32452 5.060695 55.645161 0.00062 4.574025 75.717743 -0.000606 4.57402 15
5 24 -0.32452 5.060695 55.645161 -0.81118 5.385806 55.645161 -0.32452 5.060695 75.717743 -0.32452 5.060695 15
5 24 -0.81118 5.385806 55.645161 -1.385188 5.500039 55.645161 -0.81118 5.385806 75.717743 -0.81118 5.385806 15
5 24 -1.385188 5.500039 55.645161 -1.959225 5.38582 55.645161 -1.385188 5.500039 75.717743 -1.385188 5.500039 15
5 24 -1.959225 5.38582 55.645161 -2.445895 5.06068 55.645161 -1.959225 5.38582 75.717743 -1.959225 5.38582 15
5 24 -2.445895 5.06068 55.645161 -2.771006 4.57402 55.645161 -2.445895 5.06068 75.717743 -2.445895 5.06068 15
5 24 -2.771006 4.57402 55.645161 -2.885238 4.000011 55.645161 -2.771006 4.57402 75.717743 -2.771006 4.57402 15
5 24 -2.885238 4.000011 55.645161 -2.77102 3.425975 55.645161 -2.885238 4.000011 75.717743 -2.885238 4.000011 15
5 24 -2.77102 3.425975 55.645161 -2.44588 2.939305 55.645161 -2.77102 3.425975 75.717743 -2.77102 3.425975 15
5 24 -2.44588 2.939305 55.645161 -1.95922 2.614194 55.645161 -2.44588 2.939305 75.717743 -2.44588 2.939305 15
5 24 -1.95922 2.614194 55.645161 -1.385212 2.499961 55.645161 -1.95922 2.614194 75.717743 -1.95922 2.614194 15
5 24 -1.385212 2.499961 55.645161 -0.811175 2.61418 55.645161 -1.385212 2.499961 75.717743 -1.385212 2.499961 15
5 24 -0.811175 2.61418 55.645161 -0.324505 2.93932 55.645161 -0.811175 2.61418 75.717743 -0.811175 2.61418 15
5 24 -0.324505 2.93932 55.645161 -0.00062 3.425975 55.645161 -0.324505 2.93932 75.717743 -0.324505 2.93932 15
5 24 -0.00062 3.425975 15.000001 0.32452 2.939305 15.000001 -0.00062 3.425975 55.645161 -0.00062 3.425975 14.000001
5 24 0.32452 2.939305 15.000001 0.81118 2.614194 15.000001 0.32452 2.939305 55.645161 0.32452 2.939305 14.000001
5 24 0.81118 2.614194 15.000001 1.385188 2.499961 15.000001 0.81118 2.614194 55.645161 0.81118 2.614194 14.000001
5 24 1.385188 2.499961 15.000001 1.959225 2.61418 15.000001 1.385188 2.499961 55.645161 1.385188 2.499961 14.000001
5 24 1.959225 2.61418 15.000001 2.445895 2.93932 15.000001 1.959225 2.61418 55.645161 1.959225 2.61418 14.000001
5 24 2.445895 2.93932 15.000001 2.771006 3.42598 15.000001 2.445895 2.93932 55.645161 2.445895 2.93932 14.000001
5 24 2.771006 3.42598 15.000001 2.885238 3.999988 15.000001 2.771006 3.42598 55.645161 2.771006 3.42598 14.000001
5 24 2.885238 3.999988 15.000001 2.77102 4.574025 15.000001 2.885238 3.999988 55.645161 2.885238 3.999988 14.000001
5 24 2.77102 4.574025 15.000001 2.44588 5.060695 15.000001 2.77102 4.574025 55.645161 2.77102 4.574025 14.000001
5 24 2.44588 5.060695 15.000001 1.95922 5.385806 15.000001 2.44588 5.060695 55.645161 2.44588 5.060695 14.000001
5 24 1.95922 5.385806 15.000001 1.385212 5.500039 15.000001 1.95922 5.385806 55.645161 1.95922 5.385806 14.000001
5 24 1.385212 5.500039 15.000001 0.811175 5.38582 15.000001 1.385212 5.500039 55.645161 1.385212 5.500039 14.000001
5 24 0.811175 5.38582 15.000001 0.324505 5.06068 15.000001 0.811175 5.38582 55.645161 0.811175 5.38582 14.000001
5 24 0.324505 5.06068 15.000001 -0.000606 4.57402 15.000001 0.324505 5.06068 55.645161 0.324505 5.06068 14.000001
5 24 -0.000606 4.57402 15.000001 -0.32452 5.060695 15.000001 -0.000606 4.57402 55.645161 0.00062 4.574025 14.000001
5 24 -0.32452 5.060695 15.000001 -0.81118 5.385806 15.000001 -0.32452 5.060695 55.645161 -0.32452 5.060695 14.000001
5 24 -0.81118 5.385806 15.000001 -1.385188 5.500039 15.000001 -0.81118 5.385806 55.645161 -0.81118 5.385806 14.000001
5 24 -1.385188 5.500039 15.000001 -1.959225 5.38582 15.000001 -1.385188 5.500039 55.645161 -1.385188 5.500039 14.000001
5 24 -1.959225 5.38582 15.000001 -2.445895 5.06068 15.000001 -1.959225 5.38582 55.645161 -1.959225 5.38582 14.000001
5 24 -2.445895 5.06068 15.000001 -2.771006 4.57402 15.000001 -2.445895 5.06068 55.645161 -2.445895 5.06068 14.000001
5 24 -2.771006 4.57402 15.000001 -2.885238 4.000011 15.000001 -2.771006 4.57402 55.645161 -2.771006 4.57402 14.000001
5 24 -2.885238 4.000011 15.000001 -2.77102 3.425975 15.000001 -2.885238 4.000011 55.645161 -2.885238 4.000011 14.000001
5 24 -2.77102 3.425975 15.000001 -2.44588 2.939305 15.000001 -2.77102 3.425975 55.645161 -2.77102 3.425975 14.000001
5 24 -2.44588 2.939305 15.000001 -1.95922 2.614194 15.000001 -2.44588 2.939305 55.645161 -2.44588 2.939305 14.000001
5 24 -1.95922 2.614194 15.000001 -1.385212 2.499961 15.000001 -1.95922 2.614194 55.645161 -1.95922 2.614194 14.000001
5 24 -1.385212 2.499961 15.000001 -0.811175 2.61418 15.000001 -1.385212 2.499961 55.645161 -1.385212 2.499961 14.000001
5 24 -0.811175 2.61418 15.000001 -0.324505 2.93932 15.000001 -0.811175 2.61418 55.645161 -0.811175 2.61418 14.000001
5 24 -0.324505 2.93932 15.000001 -0.00062 3.425975 15.000001 -0.324505 2.93932 55.645161 -0.324505 2.93932 14.000001
0 // Segment 2, this block is (recursively) generated from "ldcElecWire2Seg.dat"
4 16 0.32452 2.939305 95.790321 -0.00062 3.425975 95.790321 -0.00062 3.425975 55.645161 0.32452 2.939305 55.645161
4 16 0.81118 2.614194 95.790321 0.32452 2.939305 95.790321 0.32452 2.939305 55.645161 0.81118 2.614194 55.645161
4 16 1.385188 2.499961 95.790321 0.81118 2.614194 95.790321 0.81118 2.614194 55.645161 1.385188 2.499961 55.645161
4 16 1.959225 2.61418 95.790321 1.385188 2.499961 95.790321 1.385188 2.499961 55.645161 1.959225 2.61418 55.645161
4 16 2.445895 2.93932 95.790321 1.959225 2.61418 95.790321 1.959225 2.61418 55.645161 2.445895 2.93932 55.645161
4 16 2.771006 3.42598 95.790321 2.445895 2.93932 95.790321 2.445895 2.93932 55.645161 2.771006 3.42598 55.645161
4 16 2.885238 3.999988 95.790321 2.771006 3.42598 95.790321 2.771006 3.42598 55.645161 2.885238 3.999988 55.645161
4 16 2.77102 4.574025 95.790321 2.885238 3.999988 95.790321 2.885238 3.999988 55.645161 2.77102 4.574025 55.645161
4 16 2.44588 5.060695 95.790321 2.77102 4.574025 95.790321 2.77102 4.574025 55.645161 2.44588 5.060695 55.645161
4 16 1.95922 5.385806 95.790321 2.44588 5.060695 95.790321 2.44588 5.060695 55.645161 1.95922 5.385806 55.645161
4 16 1.385212 5.500039 95.790321 1.95922 5.385806 95.790321 1.95922 5.385806 55.645161 1.385212 5.500039 55.645161
4 16 0.811175 5.38582 95.790321 1.385212 5.500039 95.790321 1.385212 5.500039 55.645161 0.811175 5.38582 55.645161
4 16 0.324505 5.06068 95.790321 0.811175 5.38582 95.790321 0.811175 5.38582 55.645161 0.324505 5.06068 55.645161
4 16 -0.000606 4.57402 95.790321 0.324505 5.06068 95.790321 0.324505 5.06068 55.645161 -0.000606 4.57402 55.645161
4 16 -0.32452 5.060695 95.790321 -0.000606 4.57402 95.790321 -0.000606 4.57402 55.645161 -0.32452 5.060695 55.645161
4 16 -0.81118 5.385806 95.790321 -0.32452 5.060695 95.790321 -0.32452 5.060695 55.645161 -0.81118 5.385806 55.645161
4 16 -1.385188 5.500039 95.790321 -0.81118 5.385806 95.790321 -0.81118 5.385806 55.645161 -1.385188 5.500039 55.645161
4 16 -1.959225 5.38582 95.790321 -1.385188 5.500039 95.790321 -1.385188 5.500039 55.645161 -1.959225 5.38582 55.645161
4 16 -2.445895 5.06068 95.790321 -1.959225 5.38582 95.790321 -1.959225 5.38582 55.645161 -2.445895 5.06068 55.645161
4 16 -2.771006 4.57402 95.790321 -2.445895 5.06068 95.790321 -2.445895 5.06068 55.645161 -2.771006 4.57402 55.645161
4 16 -2.885238 4.000011 95.790321 -2.771006 4.57402 95.790321 -2.771006 4.57402 55.645161 -2.885238 4.000011 55.645161
4 16 -2.77102 3.425975 95.790321 -2.885238 4.000011 95.790321 -2.885238 4.000011 55.645161 -2.77102 3.425975 55.645161
4 16 -2.44588 2.939305 95.790321 -2.77102 3.425975 95.790321 -2.77102 3.425975 55.645161 -2.44588 2.939305 55.645161
4 16 -1.95922 2.614194 95.790321 -2.44588 2.939305 95.790321 -2.44588 2.939305 55.645161 -1.95922 2.614194 55.645161
4 16 -1.385212 2.499961 95.790321 -1.95922 2.614194 95.790321 -1.95922 2.614194 55.645161 -1.385212 2.499961 55.645161
4 16 -0.811175 2.61418 95.790321 -1.385212 2.499961 95.790321 -1.385212 2.499961 55.645161 -0.811175 2.61418 55.645161
4 16 -0.324505 2.93932 95.790321 -0.811175 2.61418 95.790321 -0.811175 2.61418 55.645161 -0.324505 2.93932 55.645161
4 16 -0.00062 3.425975 95.790321 -0.324505 2.93932 95.790321 -0.324505 2.93932 55.645161 -0.00062 3.425975 55.645161
5 24 -0.00062 3.425975 55.645161 -0.00062 3.425975 95.790321 -0.574645 4.811795 55.645161 0.32452 2.939305 55.645161
5 24 0.32452 2.939305 55.645161 0.32452 2.939305 95.790321 -0.00062 3.425975 55.645161 0.81118 2.614194 55.645161
5 24 0.81118 2.614194 55.645161 0.81118 2.614194 95.790321 0.32452 2.939305 55.645161 1.385188 2.499961 55.645161
5 24 1.385188 2.499961 55.645161 1.385188 2.499961 95.790321 0.81118 2.614194 55.645161 1.959225 2.61418 55.645161
5 24 1.959225 2.61418 55.645161 1.959225 2.61418 95.790321 1.385188 2.499961 55.645161 2.445895 2.93932 55.645161
5 24 2.445895 2.93932 55.645161 2.445895 2.93932 95.790321 1.959225 2.61418 55.645161 2.771006 3.42598 55.645161
5 24 2.771006 3.42598 55.645161 2.771006 3.42598 95.790321 2.445895 2.93932 55.645161 2.885238 3.999988 55.645161
5 24 2.885238 3.999988 55.645161 2.885238 3.999988 95.790321 2.771006 3.42598 55.645161 2.77102 4.574025 55.645161
5 24 2.77102 4.574025 55.645161 2.77102 4.574025 95.790321 2.885238 3.999988 55.645161 2.44588 5.060695 55.645161
5 24 2.44588 5.060695 55.645161 2.44588 5.060695 95.790321 2.77102 4.574025 55.645161 1.95922 5.385806 55.645161
5 24 1.95922 5.385806 55.645161 1.95922 5.385806 95.790321 2.44588 5.060695 55.645161 1.385212 5.500039 55.645161
5 24 1.385212 5.500039 55.645161 1.385212 5.500039 95.790321 1.95922 5.385806 55.645161 0.811175 5.38582 55.645161
5 24 0.811175 5.38582 55.645161 0.811175 5.38582 95.790321 1.385212 5.500039 55.645161 0.324505 5.06068 55.645161
5 24 0.324505 5.06068 55.645161 0.324505 5.06068 95.790321 0.811175 5.38582 55.645161 -0.000606 4.57402 55.645161
5 24 -0.000606 4.57402 55.645161 -0.000606 4.57402 95.790321 -0.574627 3.188214 55.645161 0.324505 5.06068 55.645161
5 24 -0.000606 4.57402 55.645161 -0.000606 4.57402 95.790321 0.574645 3.188205 55.645161 -0.32452 5.060695 55.645161
5 24 -0.32452 5.060695 55.645161 -0.32452 5.060695 95.790321 -0.000606 4.57402 55.645161 -0.81118 5.385806 55.645161
5 24 -0.81118 5.385806 55.645161 -0.81118 5.385806 95.790321 -0.32452 5.060695 55.645161 -1.385188 5.500039 55.645161
5 24 -1.385188 5.500039 55.645161 -1.385188 5.500039 95.790321 -0.81118 5.385806 55.645161 -1.959225 5.38582 55.645161
5 24 -1.959225 5.38582 55.645161 -1.959225 5.38582 95.790321 -1.385188 5.500039 55.645161 -2.445895 5.06068 55.645161
5 24 -2.445895 5.06068 55.645161 -2.445895 5.06068 95.790321 -1.959225 5.38582 55.645161 -2.771006 4.57402 55.645161
5 24 -2.771006 4.57402 55.645161 -2.771006 4.57402 95.790321 -2.445895 5.06068 55.645161 -2.885238 4.000011 55.645161
5 24 -2.885238 4.000011 55.645161 -2.885238 4.000011 95.790321 -2.771006 4.57402 55.645161 -2.77102 3.425975 55.645161
5 24 -2.77102 3.425975 55.645161 -2.77102 3.425975 95.790321 -2.885238 4.000011 55.645161 -2.44588 2.939305 55.645161
5 24 -2.44588 2.939305 55.645161 -2.44588 2.939305 95.790321 -2.77102 3.425975 55.645161 -1.95922 2.614194 55.645161
5 24 -1.95922 2.614194 55.645161 -1.95922 2.614194 95.790321 -2.44588 2.939305 55.645161 -1.385212 2.499961 55.645161
5 24 -1.385212 2.499961 55.645161 -1.385212 2.499961 95.790321 -1.95922 2.614194 55.645161 -0.811175 2.61418 55.645161
5 24 -0.811175 2.61418 55.645161 -0.811175 2.61418 95.790321 -1.385212 2.499961 55.645161 -0.324505 2.93932 55.645161
5 24 -0.324505 2.93932 55.645161 -0.324505 2.93932 95.790321 -0.811175 2.61418 55.645161 -0.00062 3.425975 55.645161
5 24 -0.00062 3.425975 55.645161 -0.00062 3.425975 95.790321 0.574627 4.811786 55.645161 -0.324505 2.93932 55.645161
5 24 -0.00062 3.425975 95.790321 0.32452 2.939305 95.790321 -0.00062 3.425975 116.1129 -0.00062 3.425975 55.645161
5 24 0.32452 2.939305 95.790321 0.81118 2.614194 95.790321 0.32452 2.939305 116.1129 0.32452 2.939305 55.645161
5 24 0.81118 2.614194 95.790321 1.385188 2.499961 95.790321 0.81118 2.614194 116.1129 0.81118 2.614194 55.645161
5 24 1.385188 2.499961 95.790321 1.959225 2.61418 95.790321 1.385188 2.499961 116.1129 1.385188 2.499961 55.645161
5 24 1.959225 2.61418 95.790321 2.445895 2.93932 95.790321 1.959225 2.61418 116.1129 1.959225 2.61418 55.645161
5 24 2.445895 2.93932 95.790321 2.771006 3.42598 95.790321 2.445895 2.93932 116.1129 2.445895 2.93932 55.645161
5 24 2.771006 3.42598 95.790321 2.885238 3.999988 95.790321 2.771006 3.42598 116.1129 2.771006 3.42598 55.645161
5 24 2.885238 3.999988 95.790321 2.77102 4.574025 95.790321 2.885238 3.999988 116.1129 2.885238 3.999988 55.645161
5 24 2.77102 4.574025 95.790321 2.44588 5.060695 95.790321 2.77102 4.574025 116.1129 2.77102 4.574025 55.645161
5 24 2.44588 5.060695 95.790321 1.95922 5.385806 95.790321 2.44588 5.060695 116.1129 2.44588 5.060695 55.645161
5 24 1.95922 5.385806 95.790321 1.385212 5.500039 95.790321 1.95922 5.385806 116.1129 1.95922 5.385806 55.645161
5 24 1.385212 5.500039 95.790321 0.811175 5.38582 95.790321 1.385212 5.500039 116.1129 1.385212 5.500039 55.645161
5 24 0.811175 5.38582 95.790321 0.324505 5.06068 95.790321 0.811175 5.38582 116.1129 0.811175 5.38582 55.645161
5 24 0.324505 5.06068 95.790321 -0.000606 4.57402 95.790321 0.324505 5.06068 116.1129 0.324505 5.06068 55.645161
5 24 -0.000606 4.57402 95.790321 -0.32452 5.060695 95.790321 0.00062 4.574025 116.1129 -0.000606 4.57402 55.645161
5 24 -0.32452 5.060695 95.790321 -0.81118 5.385806 95.790321 -0.32452 5.060695 116.1129 -0.32452 5.060695 55.645161
5 24 -0.81118 5.385806 95.790321 -1.385188 5.500039 95.790321 -0.81118 5.385806 116.1129 -0.81118 5.385806 55.645161
5 24 -1.385188 5.500039 95.790321 -1.959225 5.38582 95.790321 -1.385188 5.500039 116.1129 -1.385188 5.500039 55.645161
5 24 -1.959225 5.38582 95.790321 -2.445895 5.06068 95.790321 -1.959225 5.38582 116.1129 -1.959225 5.38582 55.645161
5 24 -2.445895 5.06068 95.790321 -2.771006 4.57402 95.790321 -2.445895 5.06068 116.1129 -2.445895 5.06068 55.645161
5 24 -2.771006 4.57402 95.790321 -2.885238 4.000011 95.790321 -2.771006 4.57402 116.1129 -2.771006 4.57402 55.645161
5 24 -2.885238 4.000011 95.790321 -2.77102 3.425975 95.790321 -2.885238 4.000011 116.1129 -2.885238 4.000011 55.645161
5 24 -2.77102 3.425975 95.790321 -2.44588 2.939305 95.790321 -2.77102 3.425975 116.1129 -2.77102 3.425975 55.645161
5 24 -2.44588 2.939305 95.790321 -1.95922 2.614194 95.790321 -2.44588 2.939305 116.1129 -2.44588 2.939305 55.645161
5 24 -1.95922 2.614194 95.790321 -1.385212 2.499961 95.790321 -1.95922 2.614194 116.1129 -1.95922 2.614194 55.645161
5 24 -1.385212 2.499961 95.790321 -0.811175 2.61418 95.790321 -1.385212 2.499961 116.1129 -1.385212 2.499961 55.645161
5 24 -0.811175 2.61418 95.790321 -0.324505 2.93932 95.790321 -0.811175 2.61418 116.1129 -0.811175 2.61418 55.645161
5 24 -0.324505 2.93932 95.790321 -0.00062 3.425975 95.790321 -0.324505 2.93932 116.1129 -0.324505 2.93932 55.645161
0 // Segment 3, this block is (recursively) generated from "ldcElecWire2Seg.dat"
4 16 0.32452 2.939305 136.435486 -0.00062 3.425975 136.435486 -0.00062 3.425975 95.790321 0.32452 2.939305 95.790321
4 16 0.81118 2.614194 136.435486 0.32452 2.939305 136.435486 0.32452 2.939305 95.790321 0.81118 2.614194 95.790321
4 16 1.385188 2.499961 136.435486 0.81118 2.614194 136.435486 0.81118 2.614194 95.790321 1.385188 2.499961 95.790321
4 16 1.959225 2.61418 136.435486 1.385188 2.499961 136.435486 1.385188 2.499961 95.790321 1.959225 2.61418 95.790321
4 16 2.445895 2.93932 136.435486 1.959225 2.61418 136.435486 1.959225 2.61418 95.790321 2.445895 2.93932 95.790321
4 16 2.771006 3.42598 136.435486 2.445895 2.93932 136.435486 2.445895 2.93932 95.790321 2.771006 3.42598 95.790321
4 16 2.885238 3.999988 136.435486 2.771006 3.42598 136.435486 2.771006 3.42598 95.790321 2.885238 3.999988 95.790321
4 16 2.77102 4.574025 136.435486 2.885238 3.999988 136.435486 2.885238 3.999988 95.790321 2.77102 4.574025 95.790321
4 16 2.44588 5.060695 136.435486 2.77102 4.574025 136.435486 2.77102 4.574025 95.790321 2.44588 5.060695 95.790321
4 16 1.95922 5.385806 136.435486 2.44588 5.060695 136.435486 2.44588 5.060695 95.790321 1.95922 5.385806 95.790321
4 16 1.385212 5.500039 136.435486 1.95922 5.385806 136.435486 1.95922 5.385806 95.790321 1.385212 5.500039 95.790321
4 16 0.811175 5.38582 136.435486 1.385212 5.500039 136.435486 1.385212 5.500039 95.790321 0.811175 5.38582 95.790321
4 16 0.324505 5.06068 136.435486 0.811175 5.38582 136.435486 0.811175 5.38582 95.790321 0.324505 5.06068 95.790321
4 16 -0.000606 4.57402 136.435486 0.324505 5.06068 136.435486 0.324505 5.06068 95.790321 -0.000606 4.57402 95.790321
4 16 -0.32452 5.060695 136.435486 -0.000606 4.57402 136.435486 -0.000606 4.57402 95.790321 -0.32452 5.060695 95.790321
4 16 -0.81118 5.385806 136.435486 -0.32452 5.060695 136.435486 -0.32452 5.060695 95.790321 -0.81118 5.385806 95.790321
4 16 -1.385188 5.500039 136.435486 -0.81118 5.385806 136.435486 -0.81118 5.385806 95.790321 -1.385188 5.500039 95.790321
4 16 -1.959225 5.38582 136.435486 -1.385188 5.500039 136.435486 -1.385188 5.500039 95.790321 -1.959225 5.38582 95.790321
4 16 -2.445895 5.06068 136.435486 -1.959225 5.38582 136.435486 -1.959225 5.38582 95.790321 -2.445895 5.06068 95.790321
4 16 -2.771006 4.57402 136.435486 -2.445895 5.06068 136.435486 -2.445895 5.06068 95.790321 -2.771006 4.57402 95.790321
4 16 -2.885238 4.000011 136.435486 -2.771006 4.57402 136.435486 -2.771006 4.57402 95.790321 -2.885238 4.000011 95.790321
4 16 -2.77102 3.425975 136.435486 -2.885238 4.000011 136.435486 -2.885238 4.000011 95.790321 -2.77102 3.425975 95.790321
4 16 -2.44588 2.939305 136.435486 -2.77102 3.425975 136.435486 -2.77102 3.425975 95.790321 -2.44588 2.939305 95.790321
4 16 -1.95922 2.614194 136.435486 -2.44588 2.939305 136.435486 -2.44588 2.939305 95.790321 -1.95922 2.614194 95.790321
4 16 -1.385212 2.499961 136.435486 -1.95922 2.614194 136.435486 -1.95922 2.614194 95.790321 -1.385212 2.499961 95.790321
4 16 -0.811175 2.61418 136.435486 -1.385212 2.499961 136.435486 -1.385212 2.499961 95.790321 -0.811175 2.61418 95.790321
4 16 -0.324505 2.93932 136.435486 -0.811175 2.61418 136.435486 -0.811175 2.61418 95.790321 -0.324505 2.93932 95.790321
4 16 -0.00062 3.425975 136.435486 -0.324505 2.93932 136.435486 -0.324505 2.93932 95.790321 -0.00062 3.425975 95.790321
5 24 -0.00062 3.425975 95.790321 -0.00062 3.425975 136.435486 -0.574645 4.811795 95.790321 0.32452 2.939305 95.790321
5 24 0.32452 2.939305 95.790321 0.32452 2.939305 136.435486 -0.00062 3.425975 95.790321 0.81118 2.614194 95.790321
5 24 0.81118 2.614194 95.790321 0.81118 2.614194 136.435486 0.32452 2.939305 95.790321 1.385188 2.499961 95.790321
5 24 1.385188 2.499961 95.790321 1.385188 2.499961 136.435486 0.81118 2.614194 95.790321 1.959225 2.61418 95.790321
5 24 1.959225 2.61418 95.790321 1.959225 2.61418 136.435486 1.385188 2.499961 95.790321 2.445895 2.93932 95.790321
5 24 2.445895 2.93932 95.790321 2.445895 2.93932 136.435486 1.959225 2.61418 95.790321 2.771006 3.42598 95.790321
5 24 2.771006 3.42598 95.790321 2.771006 3.42598 136.435486 2.445895 2.93932 95.790321 2.885238 3.999988 95.790321
5 24 2.885238 3.999988 95.790321 2.885238 3.999988 136.435486 2.771006 3.42598 95.790321 2.77102 4.574025 95.790321
5 24 2.77102 4.574025 95.790321 2.77102 4.574025 136.435486 2.885238 3.999988 95.790321 2.44588 5.060695 95.790321
5 24 2.44588 5.060695 95.790321 2.44588 5.060695 136.435486 2.77102 4.574025 95.790321 1.95922 5.385806 95.790321
5 24 1.95922 5.385806 95.790321 1.95922 5.385806 136.435486 2.44588 5.060695 95.790321 1.385212 5.500039 95.790321
5 24 1.385212 5.500039 95.790321 1.385212 5.500039 136.435486 1.95922 5.385806 95.790321 0.811175 5.38582 95.790321
5 24 0.811175 5.38582 95.790321 0.811175 5.38582 136.435486 1.385212 5.500039 95.790321 0.324505 5.06068 95.790321
5 24 0.324505 5.06068 95.790321 0.324505 5.06068 136.435486 0.811175 5.38582 95.790321 -0.000606 4.57402 95.790321
5 24 -0.000606 4.57402 95.790321 -0.000606 4.57402 136.435486 -0.574627 3.188214 95.790321 0.324505 5.06068 95.790321
5 24 -0.000606 4.57402 95.790321 -0.000606 4.57402 136.435486 0.574645 3.188205 95.790321 -0.32452 5.060695 95.790321
5 24 -0.32452 5.060695 95.790321 -0.32452 5.060695 136.435486 -0.000606 4.57402 95.790321 -0.81118 5.385806 95.790321
5 24 -0.81118 5.385806 95.790321 -0.81118 5.385806 136.435486 -0.32452 5.060695 95.790321 -1.385188 5.500039 95.790321
5 24 -1.385188 5.500039 95.790321 -1.385188 5.500039 136.435486 -0.81118 5.385806 95.790321 -1.959225 5.38582 95.790321
5 24 -1.959225 5.38582 95.790321 -1.959225 5.38582 136.435486 -1.385188 5.500039 95.790321 -2.445895 5.06068 95.790321
5 24 -2.445895 5.06068 95.790321 -2.445895 5.06068 136.435486 -1.959225 5.38582 95.790321 -2.771006 4.57402 95.790321
5 24 -2.771006 4.57402 95.790321 -2.771006 4.57402 136.435486 -2.445895 5.06068 95.790321 -2.885238 4.000011 95.790321
5 24 -2.885238 4.000011 95.790321 -2.885238 4.000011 136.435486 -2.771006 4.57402 95.790321 -2.77102 3.425975 95.790321
5 24 -2.77102 3.425975 95.790321 -2.77102 3.425975 136.435486 -2.885238 4.000011 95.790321 -2.44588 2.939305 95.790321
5 24 -2.44588 2.939305 95.790321 -2.44588 2.939305 136.435486 -2.77102 3.425975 95.790321 -1.95922 2.614194 95.790321
5 24 -1.95922 2.614194 95.790321 -1.95922 2.614194 136.435486 -2.44588 2.939305 95.790321 -1.385212 2.499961 95.790321
5 24 -1.385212 2.499961 95.790321 -1.385212 2.499961 136.435486 -1.95922 2.614194 95.790321 -0.811175 2.61418 95.790321
5 24 -0.811175 2.61418 95.790321 -0.811175 2.61418 136.435486 -1.385212 2.499961 95.790321 -0.324505 2.93932 95.790321
5 24 -0.324505 2.93932 95.790321 -0.324505 2.93932 136.435486 -0.811175 2.61418 95.790321 -0.00062 3.425975 95.790321
5 24 -0.00062 3.425975 95.790321 -0.00062 3.425975 136.435486 0.574627 4.811786 95.790321 -0.324505 2.93932 95.790321
5 24 -0.00062 3.425975 136.435486 0.32452 2.939305 136.435486 -0.00062 3.425975 138.217743 -0.00062 3.425975 95.790321
5 24 0.32452 2.939305 136.435486 0.81118 2.614194 136.435486 0.32452 2.939305 138.217743 0.32452 2.939305 95.790321
5 24 0.81118 2.614194 136.435486 1.385188 2.499961 136.435486 0.81118 2.614194 138.217743 0.81118 2.614194 95.790321
5 24 1.385188 2.499961 136.435486 1.959225 2.61418 136.435486 1.385188 2.499961 138.217743 1.385188 2.499961 95.790321
5 24 1.959225 2.61418 136.435486 2.445895 2.93932 136.435486 1.959225 2.61418 138.217743 1.959225 2.61418 95.790321
5 24 2.445895 2.93932 136.435486 2.771006 3.42598 136.435486 2.445895 2.93932 138.217743 2.445895 2.93932 95.790321
5 24 2.771006 3.42598 136.435486 2.885238 3.999988 136.435486 2.771006 3.42598 138.217743 2.771006 3.42598 95.790321
5 24 2.885238 3.999988 136.435486 2.77102 4.574025 136.435486 2.885238 3.999988 138.217743 2.885238 3.999988 95.790321
5 24 2.77102 4.574025 136.435486 2.44588 5.060695 136.435486 2.77102 4.574025 138.217743 2.77102 4.574025 95.790321
5 24 2.44588 5.060695 136.435486 1.95922 5.385806 136.435486 2.44588 5.060695 138.217743 2.44588 5.060695 95.790321
5 24 1.95922 5.385806 136.435486 1.385212 5.500039 136.435486 1.95922 5.385806 138.217743 1.95922 5.385806 95.790321
5 24 1.385212 5.500039 136.435486 0.811175 5.38582 136.435486 1.385212 5.500039 138.217743 1.385212 5.500039 95.790321
5 24 0.811175 5.38582 136.435486 0.324505 5.06068 136.435486 0.811175 5.38582 138.217743 0.811175 5.38582 95.790321
5 24 0.324505 5.06068 136.435486 -0.000606 4.57402 136.435486 0.324505 5.06068 138.217743 0.324505 5.06068 95.790321
5 24 -0.000606 4.57402 136.435486 -0.32452 5.060695 136.435486 0.00062 4.574025 138.217743 -0.000606 4.57402 95.790321
5 24 -0.32452 5.060695 136.435486 -0.81118 5.385806 136.435486 -0.32452 5.060695 138.217743 -0.32452 5.060695 95.790321
5 24 -0.81118 5.385806 136.435486 -1.385188 5.500039 136.435486 -0.81118 5.385806 138.217743 -0.81118 5.385806 95.790321
5 24 -1.385188 5.500039 136.435486 -1.959225 5.38582 136.435486 -1.385188 5.500039 138.217743 -1.385188 5.500039 95.790321
5 24 -1.959225 5.38582 136.435486 -2.445895 5.06068 136.435486 -1.959225 5.38582 138.217743 -1.959225 5.38582 95.790321
5 24 -2.445895 5.06068 136.435486 -2.771006 4.57402 136.435486 -2.445895 5.06068 138.217743 -2.445895 5.06068 95.790321
5 24 -2.771006 4.57402 136.435486 -2.885238 4.000011 136.435486 -2.771006 4.57402 138.217743 -2.771006 4.57402 95.790321
5 24 -2.885238 4.000011 136.435486 -2.77102 3.425975 136.435486 -2.885238 4.000011 138.217743 -2.885238 4.000011 95.790321
5 24 -2.77102 3.425975 136.435486 -2.44588 2.939305 136.435486 -2.77102 3.425975 138.217743 -2.77102 3.425975 95.790321
5 24 -2.44588 2.939305 136.435486 -1.95922 2.614194 136.435486 -2.44588 2.939305 138.217743 -2.44588 2.939305 95.790321
5 24 -1.95922 2.614194 136.435486 -1.385212 2.499961 136.435486 -1.95922 2.614194 138.217743 -1.95922 2.614194 95.790321
5 24 -1.385212 2.499961 136.435486 -0.811175 2.61418 136.435486 -1.385212 2.499961 138.217743 -1.385212 2.499961 95.790321
5 24 -0.811175 2.61418 136.435486 -0.324505 2.93932 136.435486 -0.811175 2.61418 138.217743 -0.811175 2.61418 95.790321
5 24 -0.324505 2.93932 136.435486 -0.00062 3.425975 136.435486 -0.324505 2.93932 138.217743 -0.324505 2.93932 95.790321
0 // Segment 4, this block is (recursively) generated from "ldcElecWire2Seg.dat"
4 16 0.32452 2.939305 140 -0.00062 3.425975 140 -0.00062 3.425975 136.435486 0.32452 2.939305 136.435486
4 16 0.81118 2.614194 140 0.32452 2.939305 140 0.32452 2.939305 136.435486 0.81118 2.614194 136.435486
4 16 1.385188 2.499961 140 0.81118 2.614194 140 0.81118 2.614194 136.435486 1.385188 2.499961 136.435486
4 16 1.959225 2.61418 140 1.385188 2.499961 140 1.385188 2.499961 136.435486 1.959225 2.61418 136.435486
4 16 2.445895 2.93932 140 1.959225 2.61418 140 1.959225 2.61418 136.435486 2.445895 2.93932 136.435486
4 16 2.771006 3.42598 140 2.445895 2.93932 140 2.445895 2.93932 136.435486 2.771006 3.42598 136.435486
4 16 2.885238 3.999988 140 2.771006 3.42598 140 2.771006 3.42598 136.435486 2.885238 3.999988 136.435486
4 16 2.77102 4.574025 140 2.885238 3.999988 140 2.885238 3.999988 136.435486 2.77102 4.574025 136.435486
4 16 2.44588 5.060695 140 2.77102 4.574025 140 2.77102 4.574025 136.435486 2.44588 5.060695 136.435486
4 16 1.95922 5.385806 140 2.44588 5.060695 140 2.44588 5.060695 136.435486 1.95922 5.385806 136.435486
4 16 1.385212 5.500039 140 1.95922 5.385806 140 1.95922 5.385806 136.435486 1.385212 5.500039 136.435486
4 16 0.811175 5.38582 140 1.385212 5.500039 140 1.385212 5.500039 136.435486 0.811175 5.38582 136.435486
4 16 0.324505 5.06068 140 0.811175 5.38582 140 0.811175 5.38582 136.435486 0.324505 5.06068 136.435486
4 16 -0.000606 4.57402 140 0.324505 5.06068 140 0.324505 5.06068 136.435486 -0.000606 4.57402 136.435486
4 16 -0.32452 5.060695 140 -0.000606 4.57402 140 -0.000606 4.57402 136.435486 -0.32452 5.060695 136.435486
4 16 -0.81118 5.385806 140 -0.32452 5.060695 140 -0.32452 5.060695 136.435486 -0.81118 5.385806 136.435486
4 16 -1.385188 5.500039 140 -0.81118 5.385806 140 -0.81118 5.385806 136.435486 -1.385188 5.500039 136.435486
4 16 -1.959225 5.38582 140 -1.385188 5.500039 140 -1.385188 5.500039 136.435486 -1.959225 5.38582 136.435486
4 16 -2.445895 5.06068 140 -1.959225 5.38582 140 -1.959225 5.38582 136.435486 -2.445895 5.06068 136.435486
4 16 -2.771006 4.57402 140 -2.445895 5.06068 140 -2.445895 5.06068 136.435486 -2.771006 4.57402 136.435486
4 16 -2.885238 4.000011 140 -2.771006 4.57402 140 -2.771006 4.57402 136.435486 -2.885238 4.000011 136.435486
4 16 -2.77102 3.425975 140 -2.885238 4.000011 140 -2.885238 4.000011 136.435486 -2.77102 3.425975 136.435486
4 16 -2.44588 2.939305 140 -2.77102 3.425975 140 -2.77102 3.425975 136.435486 -2.44588 2.939305 136.435486
4 16 -1.95922 2.614194 140 -2.44588 2.939305 140 -2.44588 2.939305 136.435486 -1.95922 2.614194 136.435486
4 16 -1.385212 2.499961 140 -1.95922 2.614194 140 -1.95922 2.614194 136.435486 -1.385212 2.499961 136.435486
4 16 -0.811175 2.61418 140 -1.385212 2.499961 140 -1.385212 2.499961 136.435486 -0.811175 2.61418 136.435486
4 16 -0.324505 2.93932 140 -0.811175 2.61418 140 -0.811175 2.61418 136.435486 -0.324505 2.93932 136.435486
4 16 -0.00062 3.425975 140 -0.324505 2.93932 140 -0.324505 2.93932 136.435486 -0.00062 3.425975 136.435486
5 24 -0.00062 3.425975 136.435486 -0.00062 3.425975 140 -0.574645 4.811795 136.435486 0.32452 2.939305 136.435486
5 24 0.32452 2.939305 136.435486 0.32452 2.939305 140 -0.00062 3.425975 136.435486 0.81118 2.614194 136.435486
5 24 0.81118 2.614194 136.435486 0.81118 2.614194 140 0.32452 2.939305 136.435486 1.385188 2.499961 136.435486
5 24 1.385188 2.499961 136.435486 1.385188 2.499961 140 0.81118 2.614194 136.435486 1.959225 2.61418 136.435486
5 24 1.959225 2.61418 136.435486 1.959225 2.61418 140 1.385188 2.499961 136.435486 2.445895 2.93932 136.435486
5 24 2.445895 2.93932 136.435486 2.445895 2.93932 140 1.959225 2.61418 136.435486 2.771006 3.42598 136.435486
5 24 2.771006 3.42598 136.435486 2.771006 3.42598 140 2.445895 2.93932 136.435486 2.885238 3.999988 136.435486
5 24 2.885238 3.999988 136.435486 2.885238 3.999988 140 2.771006 3.42598 136.435486 2.77102 4.574025 136.435486
5 24 2.77102 4.574025 136.435486 2.77102 4.574025 140 2.885238 3.999988 136.435486 2.44588 5.060695 136.435486
5 24 2.44588 5.060695 136.435486 2.44588 5.060695 140 2.77102 4.574025 136.435486 1.95922 5.385806 136.435486
5 24 1.95922 5.385806 136.435486 1.95922 5.385806 140 2.44588 5.060695 136.435486 1.385212 5.500039 136.435486
5 24 1.385212 5.500039 136.435486 1.385212 5.500039 140 1.95922 5.385806 136.435486 0.811175 5.38582 136.435486
5 24 0.811175 5.38582 136.435486 0.811175 5.38582 140 1.385212 5.500039 136.435486 0.324505 5.06068 136.435486
5 24 0.324505 5.06068 136.435486 0.324505 5.06068 140 0.811175 5.38582 136.435486 -0.000606 4.57402 136.435486
5 24 -0.000606 4.57402 136.435486 -0.000606 4.57402 140 -0.574627 3.188214 136.435486 0.324505 5.06068 136.435486
5 24 -0.000606 4.57402 136.435486 -0.000606 4.57402 140 0.574645 3.188205 136.435486 -0.32452 5.060695 136.435486
5 24 -0.32452 5.060695 136.435486 -0.32452 5.060695 140 -0.000606 4.57402 136.435486 -0.81118 5.385806 136.435486
5 24 -0.81118 5.385806 136.435486 -0.81118 5.385806 140 -0.32452 5.060695 136.435486 -1.385188 5.500039 136.435486
5 24 -1.385188 5.500039 136.435486 -1.385188 5.500039 140 -0.81118 5.385806 136.435486 -1.959225 5.38582 136.435486
5 24 -1.959225 5.38582 136.435486 -1.959225 5.38582 140 -1.385188 5.500039 136.435486 -2.445895 5.06068 136.435486
5 24 -2.445895 5.06068 136.435486 -2.445895 5.06068 140 -1.959225 5.38582 136.435486 -2.771006 4.57402 136.435486
5 24 -2.771006 4.57402 136.435486 -2.771006 4.57402 140 -2.445895 5.06068 136.435486 -2.885238 4.000011 136.435486
5 24 -2.885238 4.000011 136.435486 -2.885238 4.000011 140 -2.771006 4.57402 136.435486 -2.77102 3.425975 136.435486
5 24 -2.77102 3.425975 136.435486 -2.77102 3.425975 140 -2.885238 4.000011 136.435486 -2.44588 2.939305 136.435486
5 24 -2.44588 2.939305 136.435486 -2.44588 2.939305 140 -2.77102 3.425975 136.435486 -1.95922 2.614194 136.435486
5 24 -1.95922 2.614194 136.435486 -1.95922 2.614194 140 -2.44588 2.939305 136.435486 -1.385212 2.499961 136.435486
5 24 -1.385212 2.499961 136.435486 -1.385212 2.499961 140 -1.95922 2.614194 136.435486 -0.811175 2.61418 136.435486
5 24 -0.811175 2.61418 136.435486 -0.811175 2.61418 140 -1.385212 2.499961 136.435486 -0.324505 2.93932 136.435486
5 24 -0.324505 2.93932 136.435486 -0.324505 2.93932 140 -0.811175 2.61418 136.435486 -0.00062 3.425975 136.435486
5 24 -0.00062 3.425975 136.435486 -0.00062 3.425975 140 0.574627 4.811786 136.435486 -0.324505 2.93932 136.435486
5 24 -0.00062 3.425975 140 0.32452 2.939305 140 -0.00062 3.425975 141 -0.00062 3.425975 136.435486
5 24 0.32452 2.939305 140 0.81118 2.614194 140 0.32452 2.939305 141 0.32452 2.939305 136.435486
5 24 0.81118 2.614194 140 1.385188 2.499961 140 0.81118 2.614194 141 0.81118 2.614194 136.435486
5 24 1.385188 2.499961 140 1.959225 2.61418 140 1.385188 2.499961 141 1.385188 2.499961 136.435486
5 24 1.959225 2.61418 140 2.445895 2.93932 140 1.959225 2.61418 141 1.959225 2.61418 136.435486
5 24 2.445895 2.93932 140 2.771006 3.42598 140 2.445895 2.93932 141 2.445895 2.93932 136.435486
5 24 2.771006 3.42598 140 2.885238 3.999988 140 2.771006 3.42598 141 2.771006 3.42598 136.435486
5 24 2.885238 3.999988 140 2.77102 4.574025 140 2.885238 3.999988 141 2.885238 3.999988 136.435486
5 24 2.77102 4.574025 140 2.44588 5.060695 140 2.77102 4.574025 141 2.77102 4.574025 136.435486
5 24 2.44588 5.060695 140 1.95922 5.385806 140 2.44588 5.060695 141 2.44588 5.060695 136.435486
5 24 1.95922 5.385806 140 1.385212 5.500039 140 1.95922 5.385806 141 1.95922 5.385806 136.435486
5 24 1.385212 5.500039 140 0.811175 5.38582 140 1.385212 5.500039 141 1.385212 5.500039 136.435486
5 24 0.811175 5.38582 140 0.324505 5.06068 140 0.811175 5.38582 141 0.811175 5.38582 136.435486
5 24 0.324505 5.06068 140 -0.000606 4.57402 140 0.324505 5.06068 141 0.324505 5.06068 136.435486
5 24 -0.000606 4.57402 140 -0.32452 5.060695 140 0.00062 4.574025 141 -0.000606 4.57402 136.435486
5 24 -0.32452 5.060695 140 -0.81118 5.385806 140 -0.32452 5.060695 141 -0.32452 5.060695 136.435486
5 24 -0.81118 5.385806 140 -1.385188 5.500039 140 -0.81118 5.385806 141 -0.81118 5.385806 136.435486
5 24 -1.385188 5.500039 140 -1.959225 5.38582 140 -1.385188 5.500039 141 -1.385188 5.500039 136.435486
5 24 -1.959225 5.38582 140 -2.445895 5.06068 140 -1.959225 5.38582 141 -1.959225 5.38582 136.435486
5 24 -2.445895 5.06068 140 -2.771006 4.57402 140 -2.445895 5.06068 141 -2.445895 5.06068 136.435486
5 24 -2.771006 4.57402 140 -2.885238 4.000011 140 -2.771006 4.57402 141 -2.771006 4.57402 136.435486
5 24 -2.885238 4.000011 140 -2.77102 3.425975 140 -2.885238 4.000011 141 -2.885238 4.000011 136.435486
5 24 -2.77102 3.425975 140 -2.44588 2.939305 140 -2.77102 3.425975 141 -2.77102 3.425975 136.435486
5 24 -2.44588 2.939305 140 -1.95922 2.614194 140 -2.44588 2.939305 141 -2.44588 2.939305 136.435486
5 24 -1.95922 2.614194 140 -1.385212 2.499961 140 -1.95922 2.614194 141 -1.95922 2.614194 136.435486
5 24 -1.385212 2.499961 140 -0.811175 2.61418 140 -1.385212 2.499961 141 -1.385212 2.499961 136.435486
5 24 -0.811175 2.61418 140 -0.324505 2.93932 140 -0.811175 2.61418 141 -0.811175 2.61418 136.435486
5 24 -0.324505 2.93932 140 -0.00062 3.425975 140 -0.324505 2.93932 141 -0.324505 2.93932 136.435486
Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 KiB

-3
View File
@@ -1,3 +0,0 @@
0 Author: Pybricks {laurens@pybricks.com}
0 !LICENSE MIT
1 15 0 -48 -20 1 0 0 0 1 0 0 0 1 26910.dat
Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

-12
View File
@@ -1,12 +0,0 @@
0 Name: orientation.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 -160 -56 260 0 0 1 0 1 0 -1 0 0 26910.dat
1 71 -430 -40 520 0 0 -1 0 1 0 1 0 0 22127.dat
1 15 140 -16 30 0 0 1 0 1 0 -1 0 0 45601p02.dat
1 3 430 -16 -180 0 0 1 0 1 0 -1 0 0 45601c01.dat
1 0 724 -90 -378 0 0 -1 0 -1 0 -1 0 0 u9218c01.dat
1 15 760 -100 -378 1 0 0 0 1 0 0 0 1 20841.dat
0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

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