Compare commits
13 commits
Author | SHA1 | Date | |
---|---|---|---|
dc23c25674 | |||
b67a78c449 | |||
d006b1b220 | |||
bc307602d7 | |||
d38dc08680 | |||
d384b6ef38 | |||
88c6b68995 | |||
fda55db245 | |||
9e32a22b20 | |||
9a77577ae6 | |||
65acf8a1c8 | |||
|
93ba0c8f6d | ||
|
4d62ae2f91 |
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*.stamp
|
28
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# How to Contribute
|
||||||
|
|
||||||
|
We'd love to accept your patches and contributions to this project. There are
|
||||||
|
just a few small guidelines you need to follow.
|
||||||
|
|
||||||
|
## Contributor License Agreement
|
||||||
|
|
||||||
|
Contributions to this project must be accompanied by a Contributor License
|
||||||
|
Agreement. You (or your employer) retain the copyright to your contribution,
|
||||||
|
this simply gives us permission to use and redistribute your contributions as
|
||||||
|
part of the project. Head over to <https://cla.developers.google.com/> to see
|
||||||
|
your current agreements on file or to sign a new one.
|
||||||
|
|
||||||
|
You generally only need to submit a CLA once, so if you've already submitted one
|
||||||
|
(even if it was for a different project), you probably don't need to do it
|
||||||
|
again.
|
||||||
|
|
||||||
|
## Code reviews
|
||||||
|
|
||||||
|
All submissions, including submissions by project members, require review. We
|
||||||
|
use GitHub pull requests for this purpose. Consult
|
||||||
|
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
|
||||||
|
information on using pull requests.
|
||||||
|
|
||||||
|
## Community Guidelines
|
||||||
|
|
||||||
|
This project follows [Google's Open Source Community
|
||||||
|
Guidelines](https://opensource.google.com/conduct/).
|
202
LICENSE
Normal file
|
@ -0,0 +1,202 @@
|
||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
71
README.md
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
# wordclock - a word clock
|
||||||
|
|
||||||
|
mlhx@google.com / michaelh@juju.nz
|
||||||
|
|
||||||
|
wordclock is a clock that shows the current time as words such as
|
||||||
|
"five past eight" or "quarter to three". The clock is approximately
|
||||||
|
400 mm x 400 mm square and uses RGB LEDs to light up the words. The
|
||||||
|
LEDs are driven by a ESP8266 and the time and time zone is
|
||||||
|
asutomatically fetched from the Internet.
|
||||||
|
|
||||||
|
## Mechanics
|
||||||
|
|
||||||
|
See
|
||||||
|
The hardware is made up of four layers of 4 mm laser cut plywood. The
|
||||||
|
default design cuts this from 8 A3 sheets which are then overlapped,
|
||||||
|
although it should be easy to modify if your laser cutter has a 400 x
|
||||||
|
400 mm work area.
|
||||||
|
|
||||||
|
The layers are:
|
||||||
|
|
||||||
|
- A backing layer
|
||||||
|
- The LED layer which has a snake pattern for laying the LEDs in
|
||||||
|
- The mask layer, which has a cut out for each LED
|
||||||
|
- The word layer
|
||||||
|
|
||||||
|
Normal laser printer paper is sandwiched between the mask and word
|
||||||
|
layers as a diffuser.
|
||||||
|
|
||||||
|
The layers are held together using 8x M4 bolts.
|
||||||
|
|
||||||
|
## Electronics
|
||||||
|
|
||||||
|
The electronics consists of a 5 m strip of WS2812B LEDs driven by an
|
||||||
|
ESP8266. A 5 V 3 A supply feeds the ESP8266 and a 1N5401 between the
|
||||||
|
5 V supply and the LEDs drops the supply enough so the 3.3 V output
|
||||||
|
from the ESP8266 can reliably drive the LEDs.
|
||||||
|
|
||||||
|
The LEDs are the 30 LED/m model arranged in a 11 wide by 10 high
|
||||||
|
grid. The LEDs snake through the hardware with the first LED being in
|
||||||
|
the bottom right.
|
||||||
|
|
||||||
|
## Firmware
|
||||||
|
|
||||||
|
The firmware uses CircuitPython 3.0, periodically reads the local time
|
||||||
|
from a custom time server, and fades from one set of words to the next
|
||||||
|
when the words change.
|
||||||
|
|
||||||
|
## Services
|
||||||
|
|
||||||
|
A small API returns the local time of the caller by looking up the
|
||||||
|
timezone based on the IPv4 address.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Copyright 2019 Google LLC
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
## Disclaimer
|
||||||
|
|
||||||
|
This is not an official Google product.
|
|
@ -1,23 +0,0 @@
|
||||||
import utime
|
|
||||||
|
|
||||||
|
|
||||||
def delay(secs: float) -> generator:
|
|
||||||
end = utime.ticks_add(utime.ticks_ms(), int(secs * 1000))
|
|
||||||
while utime.ticks_diff(end, utime.ticks_ms()) >= 0:
|
|
||||||
yield None
|
|
||||||
|
|
||||||
|
|
||||||
def fps(dt: float):
|
|
||||||
dt = int(dt * 1000)
|
|
||||||
until = utime.ticks_add(utime.ticks_ms(), dt)
|
|
||||||
while True:
|
|
||||||
d = utime.ticks_diff(until, utime.ticks_ms())
|
|
||||||
until = utime.ticks_add(until, dt)
|
|
||||||
if d > 0:
|
|
||||||
utime.sleep_ms(d)
|
|
||||||
yield None
|
|
||||||
|
|
||||||
|
|
||||||
def test():
|
|
||||||
for f in delay(2.0):
|
|
||||||
print(utime.ticks_ms())
|
|
237
hw/clock.py
|
@ -1,237 +0,0 @@
|
||||||
#import time
|
|
||||||
#import urequest as request
|
|
||||||
import urllib.urequest
|
|
||||||
import ujson
|
|
||||||
import utime
|
|
||||||
|
|
||||||
import asynced
|
|
||||||
import iptime
|
|
||||||
|
|
||||||
RANGES = {
|
|
||||||
'w': 94,
|
|
||||||
'seven': 88,
|
|
||||||
'we': 94,
|
|
||||||
'cl': 102,
|
|
||||||
'le': 80,
|
|
||||||
't': 109,
|
|
||||||
'qua': 17,
|
|
||||||
'd': 12,
|
|
||||||
'ne': 63,
|
|
||||||
'q': 19,
|
|
||||||
'ex': 31,
|
|
||||||
'ar': 16,
|
|
||||||
'hal': 41,
|
|
||||||
'ac': 20,
|
|
||||||
'y': 27,
|
|
||||||
'k': 99,
|
|
||||||
'twelve': 93,
|
|
||||||
'ha': 42,
|
|
||||||
'es': 62,
|
|
||||||
'lock': 99,
|
|
||||||
'pa': 44,
|
|
||||||
'h': 84,
|
|
||||||
'quarter': 13,
|
|
||||||
'aster': 45,
|
|
||||||
'eleven': 77,
|
|
||||||
'ns': 106,
|
|
||||||
'se': 105,
|
|
||||||
'five': 70,
|
|
||||||
'pas': 44,
|
|
||||||
'clock': 99,
|
|
||||||
'p': 44,
|
|
||||||
'lo': 101,
|
|
||||||
'went': 23,
|
|
||||||
'nes': 62,
|
|
||||||
'paste': 44,
|
|
||||||
'ur': 68,
|
|
||||||
'rte': 14,
|
|
||||||
'e': 105,
|
|
||||||
'six': 60,
|
|
||||||
'st': 46,
|
|
||||||
'amp': 7,
|
|
||||||
'three': 55,
|
|
||||||
'tense': 105,
|
|
||||||
'our': 67,
|
|
||||||
'x': 60,
|
|
||||||
'ten': 107,
|
|
||||||
'sixth': 58,
|
|
||||||
'quart': 15,
|
|
||||||
'eight': 83,
|
|
||||||
'n': 107,
|
|
||||||
'v': 97,
|
|
||||||
'tens': 106,
|
|
||||||
'l': 102,
|
|
||||||
'to': 33,
|
|
||||||
's': 106,
|
|
||||||
'nine': 51,
|
|
||||||
'four': 66,
|
|
||||||
'rd': 12,
|
|
||||||
'twentyfive': 22,
|
|
||||||
'art': 15,
|
|
||||||
'wen': 23,
|
|
||||||
'vent': 90,
|
|
||||||
'as': 45,
|
|
||||||
'er': 48,
|
|
||||||
'am': 7,
|
|
||||||
'its': 0,
|
|
||||||
'halfs': 39,
|
|
||||||
'oclock': 99,
|
|
||||||
'vet': 72,
|
|
||||||
'two': 74,
|
|
||||||
'eve': 89,
|
|
||||||
'ty': 26,
|
|
||||||
're': 56,
|
|
||||||
'pm': 9,
|
|
||||||
'o': 101,
|
|
||||||
'si': 61,
|
|
||||||
'fs': 39,
|
|
||||||
'run': 49,
|
|
||||||
'it': 0,
|
|
||||||
'even': 89,
|
|
||||||
'past': 44,
|
|
||||||
'f': 70,
|
|
||||||
'm': 10,
|
|
||||||
'r': 69,
|
|
||||||
'event': 89,
|
|
||||||
'a': 45,
|
|
||||||
'g': 85,
|
|
||||||
'ru': 49,
|
|
||||||
'c': 100,
|
|
||||||
'twenty': 22,
|
|
||||||
'vex': 30,
|
|
||||||
'half': 40,
|
|
||||||
'sis': 2,
|
|
||||||
'th': 58,
|
|
||||||
'is': 3,
|
|
||||||
'al': 41,
|
|
||||||
'in': 52,
|
|
||||||
'one': 63,
|
|
||||||
'i': 86,
|
|
||||||
'on': 64,
|
|
||||||
'ni': 51,
|
|
||||||
'ive': 71,
|
|
||||||
'u': 68,
|
|
||||||
'ones': 62,
|
|
||||||
'sam': 6,
|
|
||||||
'ts': 1
|
|
||||||
}
|
|
||||||
|
|
||||||
MINUTES = ('oclock', 'five past', 'ten past', 'quarter past', 'twenty past',
|
|
||||||
'twentyfive past', 'half past', 'twentyfive to', 'twenty to',
|
|
||||||
'quarter to', 'ten to', 'five to')
|
|
||||||
|
|
||||||
HOURS = ('twelve', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
|
|
||||||
'eight', 'nine', 'ten', 'eleven')
|
|
||||||
|
|
||||||
AMPM = ('am', 'pm')
|
|
||||||
|
|
||||||
|
|
||||||
def split(secs: int) -> tuple:
|
|
||||||
mins = (secs // 60) % 60
|
|
||||||
minute = mins // 5
|
|
||||||
hour = (secs // 3600) % 24
|
|
||||||
if mins >= 35:
|
|
||||||
hour += 1
|
|
||||||
ampm = (hour // 12) % len(AMPM)
|
|
||||||
hour %= len(HOURS)
|
|
||||||
return MINUTES[minute], HOURS[hour], AMPM[ampm]
|
|
||||||
|
|
||||||
|
|
||||||
class Frame:
|
|
||||||
Max = 255
|
|
||||||
|
|
||||||
def __init__(self, n: int=11 * 10, pixels: list=None):
|
|
||||||
if pixels is None:
|
|
||||||
pixels = [0] * n
|
|
||||||
self.pixels = pixels
|
|
||||||
|
|
||||||
def set(self, idx: int) -> Frame:
|
|
||||||
self.pixels[idx] = self.Max
|
|
||||||
return self
|
|
||||||
|
|
||||||
def __add__(self, other):
|
|
||||||
return Frame(pixels=[
|
|
||||||
min(self.Max, x + y) for x, y in zip(self.pixels, other.pixels)
|
|
||||||
])
|
|
||||||
|
|
||||||
def muldiv(self, num: int, den: int):
|
|
||||||
return Frame(pixels=[x * num // den for x in self.pixels])
|
|
||||||
|
|
||||||
|
|
||||||
def render(words: list) -> Frame:
|
|
||||||
f = Frame()
|
|
||||||
for word in words:
|
|
||||||
for w in word.split():
|
|
||||||
idx = RANGES[w]
|
|
||||||
for i in range(len(w)):
|
|
||||||
f.set(idx + i)
|
|
||||||
return f
|
|
||||||
|
|
||||||
|
|
||||||
def show(f: Frame):
|
|
||||||
print('\033\143')
|
|
||||||
stride = 11
|
|
||||||
dots = ' .:~*#@'
|
|
||||||
for y in range(len(f.pixels) // stride):
|
|
||||||
s = f.pixels[y * stride:(y + 1) * stride]
|
|
||||||
if y & 1 != 0:
|
|
||||||
s.reverse()
|
|
||||||
d = [dots[x * len(dots) // (Frame.Max + 1)] for x in s]
|
|
||||||
print(''.join(d))
|
|
||||||
print()
|
|
||||||
|
|
||||||
|
|
||||||
def sleep(secs: float):
|
|
||||||
utime.sleep_ms(int(secs * 1000))
|
|
||||||
|
|
||||||
|
|
||||||
DT = 0.1
|
|
||||||
|
|
||||||
|
|
||||||
def scan() -> generator:
|
|
||||||
f = Frame()
|
|
||||||
while True:
|
|
||||||
for i in range(len(f.pixels)):
|
|
||||||
yield f.set(i)
|
|
||||||
f = f.muldiv(80, 100)
|
|
||||||
|
|
||||||
|
|
||||||
def run():
|
|
||||||
words = None
|
|
||||||
steps = int(2.0 / DT)
|
|
||||||
secs = iptime.day_sec()
|
|
||||||
|
|
||||||
# Flash until time is synced.
|
|
||||||
sc = scan()
|
|
||||||
fp = asynced.fps(0.2)
|
|
||||||
for s, meta in secs:
|
|
||||||
print(s, meta)
|
|
||||||
if s is not None and meta is not None:
|
|
||||||
break
|
|
||||||
yield next(sc)
|
|
||||||
next(fp)
|
|
||||||
|
|
||||||
src = Frame()
|
|
||||||
while True:
|
|
||||||
yield src
|
|
||||||
s, m2 = next(secs)
|
|
||||||
nxt = split(s)
|
|
||||||
print(nxt)
|
|
||||||
if nxt == words:
|
|
||||||
sleep(1)
|
|
||||||
continue
|
|
||||||
dest = render(nxt)
|
|
||||||
f = asynced.fps(DT)
|
|
||||||
for i in range(steps):
|
|
||||||
yield src.muldiv(steps - i, steps) + dest.muldiv(i, steps)
|
|
||||||
next(f)
|
|
||||||
words = nxt
|
|
||||||
src = dest
|
|
||||||
|
|
||||||
|
|
||||||
def main2():
|
|
||||||
for f in run():
|
|
||||||
show(f)
|
|
||||||
|
|
||||||
|
|
||||||
main2()
|
|
16
hw/layers/back_bottom.svg
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="239mm" viewBox="0 0 410 239" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-0 L 0,-0 L 0,239 L 410,239 z
|
||||||
|
M 6.38196,101.902 L 5.38196,101.176 L 5,100 L 5.38196,98.8244 L 6.38196,98.0979 L 7.61803,98.0979
|
||||||
|
L 8.61803,98.8244 L 9,100 L 8.61803,101.176 L 7.61803,101.902 z
|
||||||
|
M 402.382,101.902 L 401.382,101.176 L 401,100 L 401.382,98.8244 L 402.382,98.0979 L 403.618,98.0979
|
||||||
|
L 404.618,98.8244 L 405,100 L 404.618,101.176 L 403.618,101.902 z
|
||||||
|
M 6.38196,233.902 L 5.38196,233.176 L 5,232 L 5.38196,230.824 L 6.38196,230.098 L 7.61803,230.098
|
||||||
|
L 8.61803,230.824 L 9,232 L 8.61803,233.176 L 7.61803,233.902 z
|
||||||
|
M 402.382,233.902 L 401.382,233.176 L 401,232 L 401.382,230.824 L 402.382,230.098 L 403.618,230.098
|
||||||
|
L 404.618,230.824 L 405,232 L 404.618,233.176 L 403.618,233.902 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1 KiB |
16
hw/layers/back_top.svg
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="171mm" viewBox="0 -171 410 171" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-171 L 0,-171 L 0,-0 L 410,-0 z
|
||||||
|
M 6.38196,-162.098 L 5.38196,-162.824 L 5,-164 L 5.38196,-165.176 L 6.38196,-165.902 L 7.61803,-165.902
|
||||||
|
L 8.61803,-165.176 L 9,-164 L 8.61803,-162.824 L 7.61803,-162.098 z
|
||||||
|
M 402.382,-162.098 L 401.382,-162.824 L 401,-164 L 401.382,-165.176 L 402.382,-165.902 L 403.618,-165.902
|
||||||
|
L 404.618,-165.176 L 405,-164 L 404.618,-162.824 L 403.618,-162.098 z
|
||||||
|
M 6.38196,-30.0979 L 5.38196,-30.8244 L 5,-32 L 5.38196,-33.1756 L 6.38196,-33.9021 L 7.61803,-33.9021
|
||||||
|
L 8.61803,-33.1756 L 9,-32 L 8.61803,-30.8244 L 7.61803,-30.0979 z
|
||||||
|
M 402.382,-30.0979 L 401.382,-30.8244 L 401,-32 L 401.382,-33.1756 L 402.382,-33.9021 L 403.618,-33.9021
|
||||||
|
L 404.618,-33.1756 L 405,-32 L 404.618,-30.8244 L 403.618,-30.0979 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
82
hw/layers/diffuse_bottom.svg
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="239mm" viewBox="0 0 410 239" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-0 L 0,-0 L 0,239 L 410,239 z
|
||||||
|
M 58,30.1667 L 58,2.83334 L 85.3333,2.83334 L 85.3333,30.1667 z
|
||||||
|
M 358,30.1667 L 358,2.83334 L 385.333,2.83334 L 385.333,30.1667 z
|
||||||
|
M 291.333,30.1667 L 291.333,2.83334 L 318.667,2.83334 L 318.667,30.1667 z
|
||||||
|
M 258,30.1667 L 258,2.83334 L 285.333,2.83334 L 285.333,30.1667 z
|
||||||
|
M 124.667,30.1667 L 124.667,2.83334 L 152,2.83334 L 152,30.1667 z
|
||||||
|
M 191.333,30.1667 L 191.333,2.83334 L 218.667,2.83334 L 218.667,30.1667 z
|
||||||
|
M 324.667,30.1667 L 324.667,2.83334 L 352,2.83334 L 352,30.1667 z
|
||||||
|
M 91.3333,30.1667 L 91.3333,2.83334 L 118.667,2.83334 L 118.667,30.1667 z
|
||||||
|
M 158,30.1667 L 158,2.83334 L 185.333,2.83334 L 185.333,30.1667 z
|
||||||
|
M 224.667,30.1667 L 224.667,2.83334 L 252,2.83334 L 252,30.1667 z
|
||||||
|
M 24.6666,30.1667 L 24.6666,2.83334 L 52,2.83334 L 52,30.1667 z
|
||||||
|
M 91.3333,65.1667 L 91.3333,37.8333 L 118.667,37.8333 L 118.667,65.1667 z
|
||||||
|
M 324.667,65.1667 L 324.667,37.8333 L 352,37.8333 L 352,65.1667 z
|
||||||
|
M 291.333,65.1667 L 291.333,37.8333 L 318.667,37.8333 L 318.667,65.1667 z
|
||||||
|
M 258,65.1667 L 258,37.8333 L 285.333,37.8333 L 285.333,65.1667 z
|
||||||
|
M 191.333,65.1667 L 191.333,37.8333 L 218.667,37.8333 L 218.667,65.1667 z
|
||||||
|
M 158,65.1667 L 158,37.8333 L 185.333,37.8333 L 185.333,65.1667 z
|
||||||
|
M 224.667,65.1667 L 224.667,37.8333 L 252,37.8333 L 252,65.1667 z
|
||||||
|
M 358,65.1667 L 358,37.8333 L 385.333,37.8333 L 385.333,65.1667 z
|
||||||
|
M 24.6666,65.1667 L 24.6666,37.8333 L 52,37.8333 L 52,65.1667 z
|
||||||
|
M 58,65.1667 L 58,37.8333 L 85.3333,37.8333 L 85.3333,65.1667 z
|
||||||
|
M 124.667,65.1667 L 124.667,37.8333 L 152,37.8333 L 152,65.1667 z
|
||||||
|
M 191.333,100.167 L 191.333,72.8333 L 218.667,72.8333 L 218.667,100.167 z
|
||||||
|
M 158,100.167 L 158,72.8333 L 185.333,72.8333 L 185.333,100.167 z
|
||||||
|
M 124.667,100.167 L 124.667,72.8333 L 152,72.8333 L 152,100.167 z
|
||||||
|
M 91.3333,100.167 L 91.3333,72.8333 L 118.667,72.8333 L 118.667,100.167 z
|
||||||
|
M 58,100.167 L 58,72.8333 L 85.3333,72.8333 L 85.3333,100.167 z
|
||||||
|
M 24.6666,100.167 L 24.6666,72.8333 L 52,72.8333 L 52,100.167 z
|
||||||
|
M 291.333,100.167 L 291.333,72.8333 L 318.667,72.8333 L 318.667,100.167 z
|
||||||
|
M 258,100.167 L 258,72.8333 L 285.333,72.8333 L 285.333,100.167 z
|
||||||
|
M 358,100.167 L 358,72.8333 L 385.333,72.8333 L 385.333,100.167 z
|
||||||
|
M 324.667,100.167 L 324.667,72.8333 L 352,72.8333 L 352,100.167 z
|
||||||
|
M 224.667,100.167 L 224.667,72.8333 L 252,72.8333 L 252,100.167 z
|
||||||
|
M 6.38196,101.902 L 5.38196,101.176 L 5,100 L 5.38196,98.8244 L 6.38196,98.0979 L 7.61803,98.0979
|
||||||
|
L 8.61803,98.8244 L 9,100 L 8.61803,101.176 L 7.61803,101.902 z
|
||||||
|
M 402.382,101.902 L 401.382,101.176 L 401,100 L 401.382,98.8244 L 402.382,98.0979 L 403.618,98.0979
|
||||||
|
L 404.618,98.8244 L 405,100 L 404.618,101.176 L 403.618,101.902 z
|
||||||
|
M 91.3333,135.167 L 91.3333,107.833 L 118.667,107.833 L 118.667,135.167 z
|
||||||
|
M 358,135.167 L 358,107.833 L 385.333,107.833 L 385.333,135.167 z
|
||||||
|
M 324.667,135.167 L 324.667,107.833 L 352,107.833 L 352,135.167 z
|
||||||
|
M 291.333,135.167 L 291.333,107.833 L 318.667,107.833 L 318.667,135.167 z
|
||||||
|
M 258,135.167 L 258,107.833 L 285.333,107.833 L 285.333,135.167 z
|
||||||
|
M 191.333,135.167 L 191.333,107.833 L 218.667,107.833 L 218.667,135.167 z
|
||||||
|
M 158,135.167 L 158,107.833 L 185.333,107.833 L 185.333,135.167 z
|
||||||
|
M 124.667,135.167 L 124.667,107.833 L 152,107.833 L 152,135.167 z
|
||||||
|
M 58,135.167 L 58,107.833 L 85.3333,107.833 L 85.3333,135.167 z
|
||||||
|
M 24.6666,135.167 L 24.6666,107.833 L 52,107.833 L 52,135.167 z
|
||||||
|
M 224.667,135.167 L 224.667,107.833 L 252,107.833 L 252,135.167 z
|
||||||
|
M 58,170.167 L 58,142.833 L 85.3333,142.833 L 85.3333,170.167 z
|
||||||
|
M 358,170.167 L 358,142.833 L 385.333,142.833 L 385.333,170.167 z
|
||||||
|
M 324.667,170.167 L 324.667,142.833 L 352,142.833 L 352,170.167 z
|
||||||
|
M 258,170.167 L 258,142.833 L 285.333,142.833 L 285.333,170.167 z
|
||||||
|
M 224.667,170.167 L 224.667,142.833 L 252,142.833 L 252,170.167 z
|
||||||
|
M 24.6666,170.167 L 24.6666,142.833 L 52,142.833 L 52,170.167 z
|
||||||
|
M 91.3333,170.167 L 91.3333,142.833 L 118.667,142.833 L 118.667,170.167 z
|
||||||
|
M 124.667,170.167 L 124.667,142.833 L 152,142.833 L 152,170.167 z
|
||||||
|
M 158,170.167 L 158,142.833 L 185.333,142.833 L 185.333,170.167 z
|
||||||
|
M 191.333,170.167 L 191.333,142.833 L 218.667,142.833 L 218.667,170.167 z
|
||||||
|
M 291.333,170.167 L 291.333,142.833 L 318.667,142.833 L 318.667,170.167 z
|
||||||
|
M 24.6666,205.167 L 24.6666,177.833 L 52,177.833 L 52,205.167 z
|
||||||
|
M 358,205.167 L 358,177.833 L 385.333,177.833 L 385.333,205.167 z
|
||||||
|
M 291.333,205.167 L 291.333,177.833 L 318.667,177.833 L 318.667,205.167 z
|
||||||
|
M 258,205.167 L 258,177.833 L 285.333,177.833 L 285.333,205.167 z
|
||||||
|
M 224.667,205.167 L 224.667,177.833 L 252,177.833 L 252,205.167 z
|
||||||
|
M 191.333,205.167 L 191.333,177.833 L 218.667,177.833 L 218.667,205.167 z
|
||||||
|
M 158,205.167 L 158,177.833 L 185.333,177.833 L 185.333,205.167 z
|
||||||
|
M 124.667,205.167 L 124.667,177.833 L 152,177.833 L 152,205.167 z
|
||||||
|
M 91.3333,205.167 L 91.3333,177.833 L 118.667,177.833 L 118.667,205.167 z
|
||||||
|
M 58,205.167 L 58,177.833 L 85.3333,177.833 L 85.3333,205.167 z
|
||||||
|
M 324.667,205.167 L 324.667,177.833 L 352,177.833 L 352,205.167 z
|
||||||
|
M 6.38196,233.902 L 5.38196,233.176 L 5,232 L 5.38196,230.824 L 6.38196,230.098 L 7.61803,230.098
|
||||||
|
L 8.61803,230.824 L 9,232 L 8.61803,233.176 L 7.61803,233.902 z
|
||||||
|
M 402.382,233.902 L 401.382,233.176 L 401,232 L 401.382,230.824 L 402.382,230.098 L 403.618,230.098
|
||||||
|
L 404.618,230.824 L 405,232 L 404.618,233.176 L 403.618,233.902 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
60
hw/layers/diffuse_top.svg
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="171mm" viewBox="0 -171 410 171" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-171 L 0,-171 L 0,-0 L 410,-0 z
|
||||||
|
M 6.38196,-162.098 L 5.38196,-162.824 L 5,-164 L 5.38196,-165.176 L 6.38196,-165.902 L 7.61803,-165.902
|
||||||
|
L 8.61803,-165.176 L 9,-164 L 8.61803,-162.824 L 7.61803,-162.098 z
|
||||||
|
M 402.382,-162.098 L 401.382,-162.824 L 401,-164 L 401.382,-165.176 L 402.382,-165.902 L 403.618,-165.902
|
||||||
|
L 404.618,-165.176 L 405,-164 L 404.618,-162.824 L 403.618,-162.098 z
|
||||||
|
M 358,-109.833 L 358,-137.167 L 385.333,-137.167 L 385.333,-109.833 z
|
||||||
|
M 24.6666,-109.833 L 24.6666,-137.167 L 52,-137.167 L 52,-109.833 z
|
||||||
|
M 58,-109.833 L 58,-137.167 L 85.3333,-137.167 L 85.3333,-109.833 z
|
||||||
|
M 91.3333,-109.833 L 91.3333,-137.167 L 118.667,-137.167 L 118.667,-109.833 z
|
||||||
|
M 124.667,-109.833 L 124.667,-137.167 L 152,-137.167 L 152,-109.833 z
|
||||||
|
M 158,-109.833 L 158,-137.167 L 185.333,-137.167 L 185.333,-109.833 z
|
||||||
|
M 191.333,-109.833 L 191.333,-137.167 L 218.667,-137.167 L 218.667,-109.833 z
|
||||||
|
M 224.667,-109.833 L 224.667,-137.167 L 252,-137.167 L 252,-109.833 z
|
||||||
|
M 258,-109.833 L 258,-137.167 L 285.333,-137.167 L 285.333,-109.833 z
|
||||||
|
M 291.333,-109.833 L 291.333,-137.167 L 318.667,-137.167 L 318.667,-109.833 z
|
||||||
|
M 324.667,-109.833 L 324.667,-137.167 L 352,-137.167 L 352,-109.833 z
|
||||||
|
M 324.667,-74.8333 L 324.667,-102.167 L 352,-102.167 L 352,-74.8333 z
|
||||||
|
M 291.333,-74.8333 L 291.333,-102.167 L 318.667,-102.167 L 318.667,-74.8333 z
|
||||||
|
M 24.6666,-74.8333 L 24.6666,-102.167 L 52,-102.167 L 52,-74.8333 z
|
||||||
|
M 91.3333,-74.8333 L 91.3333,-102.167 L 118.667,-102.167 L 118.667,-74.8333 z
|
||||||
|
M 124.667,-74.8333 L 124.667,-102.167 L 152,-102.167 L 152,-74.8333 z
|
||||||
|
M 158,-74.8333 L 158,-102.167 L 185.333,-102.167 L 185.333,-74.8333 z
|
||||||
|
M 191.333,-74.8333 L 191.333,-102.167 L 218.667,-102.167 L 218.667,-74.8333 z
|
||||||
|
M 224.667,-74.8333 L 224.667,-102.167 L 252,-102.167 L 252,-74.8333 z
|
||||||
|
M 258,-74.8333 L 258,-102.167 L 285.333,-102.167 L 285.333,-74.8333 z
|
||||||
|
M 358,-74.8333 L 358,-102.167 L 385.333,-102.167 L 385.333,-74.8333 z
|
||||||
|
M 58,-74.8333 L 58,-102.167 L 85.3333,-102.167 L 85.3333,-74.8333 z
|
||||||
|
M 358,-39.8333 L 358,-67.1667 L 385.333,-67.1667 L 385.333,-39.8333 z
|
||||||
|
M 24.6666,-39.8333 L 24.6666,-67.1667 L 52,-67.1667 L 52,-39.8333 z
|
||||||
|
M 191.333,-39.8333 L 191.333,-67.1667 L 218.667,-67.1667 L 218.667,-39.8333 z
|
||||||
|
M 58,-39.8333 L 58,-67.1667 L 85.3333,-67.1667 L 85.3333,-39.8333 z
|
||||||
|
M 91.3333,-39.8333 L 91.3333,-67.1667 L 118.667,-67.1667 L 118.667,-39.8333 z
|
||||||
|
M 224.667,-39.8333 L 224.667,-67.1667 L 252,-67.1667 L 252,-39.8333 z
|
||||||
|
M 158,-39.8333 L 158,-67.1667 L 185.333,-67.1667 L 185.333,-39.8333 z
|
||||||
|
M 258,-39.8333 L 258,-67.1667 L 285.333,-67.1667 L 285.333,-39.8333 z
|
||||||
|
M 291.333,-39.8333 L 291.333,-67.1667 L 318.667,-67.1667 L 318.667,-39.8333 z
|
||||||
|
M 324.667,-39.8333 L 324.667,-67.1667 L 352,-67.1667 L 352,-39.8333 z
|
||||||
|
M 124.667,-39.8333 L 124.667,-67.1667 L 152,-67.1667 L 152,-39.8333 z
|
||||||
|
M 402.382,-30.0979 L 401.382,-30.8244 L 401,-32 L 401.382,-33.1756 L 402.382,-33.9021 L 403.618,-33.9021
|
||||||
|
L 404.618,-33.1756 L 405,-32 L 404.618,-30.8244 L 403.618,-30.0979 z
|
||||||
|
M 6.38196,-30.0979 L 5.38196,-30.8244 L 5,-32 L 5.38196,-33.1756 L 6.38196,-33.9021 L 7.61803,-33.9021
|
||||||
|
L 8.61803,-33.1756 L 9,-32 L 8.61803,-30.8244 L 7.61803,-30.0979 z
|
||||||
|
M 324.667,-4.83331 L 324.667,-32.1667 L 352,-32.1667 L 352,-4.83331 z
|
||||||
|
M 224.667,-4.83331 L 224.667,-32.1667 L 252,-32.1667 L 252,-4.83331 z
|
||||||
|
M 24.6666,-4.83331 L 24.6666,-32.1667 L 52,-32.1667 L 52,-4.83331 z
|
||||||
|
M 58,-4.83331 L 58,-32.1667 L 85.3333,-32.1667 L 85.3333,-4.83331 z
|
||||||
|
M 91.3333,-4.83331 L 91.3333,-32.1667 L 118.667,-32.1667 L 118.667,-4.83331 z
|
||||||
|
M 124.667,-4.83331 L 124.667,-32.1667 L 152,-32.1667 L 152,-4.83331 z
|
||||||
|
M 158,-4.83331 L 158,-32.1667 L 185.333,-32.1667 L 185.333,-4.83331 z
|
||||||
|
M 191.333,-4.83331 L 191.333,-32.1667 L 218.667,-32.1667 L 218.667,-4.83331 z
|
||||||
|
M 291.333,-4.83331 L 291.333,-32.1667 L 318.667,-32.1667 L 318.667,-4.83331 z
|
||||||
|
M 358,-4.83331 L 358,-32.1667 L 385.333,-32.1667 L 385.333,-4.83331 z
|
||||||
|
M 258,-4.83331 L 258,-32.1667 L 285.333,-32.1667 L 285.333,-4.83331 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
282
hw/layers/holes_bottom.svg
Normal file
|
@ -0,0 +1,282 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="239mm" viewBox="0 0 410 239" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,221 L 390,221 L 390,229 L 334,229 L 334,203 L 390,203
|
||||||
|
L 390,211 L 410,211 L 410,-0 L 0,-0 L 0,239 L 410,239
|
||||||
|
z
|
||||||
|
M 69.2565,21.9946 L 67.603,20.9144 L 66.3898,19.3557 L 65.7485,17.4876 L 65.7485,15.5124 L 66.3898,13.6443
|
||||||
|
L 67.603,12.0857 L 69.2565,11.0054 L 71.1712,10.5205 L 73.1396,10.6836 L 74.9483,11.477 L 76.4015,12.8147
|
||||||
|
L 77.3416,14.5518 L 77.6667,16.5 L 77.3416,18.4482 L 76.4015,20.1853 L 74.9483,21.523 L 73.1396,22.3164
|
||||||
|
L 71.1712,22.4795 z
|
||||||
|
M 135.923,21.9946 L 134.27,20.9144 L 133.056,19.3557 L 132.415,17.4876 L 132.415,15.5124 L 133.056,13.6443
|
||||||
|
L 134.27,12.0857 L 135.923,11.0054 L 137.838,10.5205 L 139.806,10.6836 L 141.615,11.477 L 143.068,12.8147
|
||||||
|
L 144.008,14.5518 L 144.333,16.5 L 144.008,18.4482 L 143.068,20.1853 L 141.615,21.523 L 139.806,22.3164
|
||||||
|
L 137.838,22.4795 z
|
||||||
|
M 169.256,21.9946 L 167.603,20.9144 L 166.39,19.3557 L 165.748,17.4876 L 165.748,15.5124 L 166.39,13.6443
|
||||||
|
L 167.603,12.0857 L 169.256,11.0054 L 171.171,10.5205 L 173.14,10.6836 L 174.948,11.477 L 176.402,12.8147
|
||||||
|
L 177.342,14.5518 L 177.667,16.5 L 177.342,18.4482 L 176.402,20.1853 L 174.948,21.523 L 173.14,22.3164
|
||||||
|
L 171.171,22.4795 z
|
||||||
|
M 202.59,21.9946 L 200.936,20.9144 L 199.723,19.3557 L 199.082,17.4876 L 199.082,15.5124 L 199.723,13.6443
|
||||||
|
L 200.936,12.0857 L 202.59,11.0054 L 204.505,10.5205 L 206.473,10.6836 L 208.282,11.477 L 209.735,12.8147
|
||||||
|
L 210.675,14.5518 L 211,16.5 L 210.675,18.4482 L 209.735,20.1853 L 208.282,21.523 L 206.473,22.3164
|
||||||
|
L 204.505,22.4795 z
|
||||||
|
M 235.923,21.9946 L 234.27,20.9144 L 233.056,19.3557 L 232.415,17.4876 L 232.415,15.5124 L 233.056,13.6443
|
||||||
|
L 234.27,12.0857 L 235.923,11.0054 L 237.838,10.5205 L 239.806,10.6836 L 241.615,11.477 L 243.068,12.8147
|
||||||
|
L 244.008,14.5518 L 244.333,16.5 L 244.008,18.4482 L 243.068,20.1853 L 241.615,21.523 L 239.806,22.3164
|
||||||
|
L 237.838,22.4795 z
|
||||||
|
M 269.256,21.9946 L 267.603,20.9144 L 266.39,19.3557 L 265.748,17.4876 L 265.748,15.5124 L 266.39,13.6443
|
||||||
|
L 267.603,12.0857 L 269.256,11.0054 L 271.171,10.5205 L 273.14,10.6836 L 274.948,11.477 L 276.402,12.8147
|
||||||
|
L 277.342,14.5518 L 277.667,16.5 L 277.342,18.4482 L 276.402,20.1853 L 274.948,21.523 L 273.14,22.3164
|
||||||
|
L 271.171,22.4795 z
|
||||||
|
M 335.923,21.9946 L 334.27,20.9144 L 333.056,19.3557 L 332.415,17.4876 L 332.415,15.5124 L 333.056,13.6443
|
||||||
|
L 334.27,12.0857 L 335.923,11.0054 L 337.838,10.5205 L 339.806,10.6836 L 341.615,11.477 L 343.068,12.8147
|
||||||
|
L 344.008,14.5518 L 344.333,16.5 L 344.008,18.4482 L 343.068,20.1853 L 341.615,21.523 L 339.806,22.3164
|
||||||
|
L 337.838,22.4795 z
|
||||||
|
M 369.256,21.9946 L 367.603,20.9144 L 366.39,19.3557 L 365.748,17.4876 L 365.748,15.5124 L 366.39,13.6443
|
||||||
|
L 367.603,12.0857 L 369.256,11.0054 L 371.171,10.5205 L 373.14,10.6836 L 374.948,11.477 L 376.402,12.8147
|
||||||
|
L 377.342,14.5518 L 377.667,16.5 L 377.342,18.4482 L 376.402,20.1853 L 374.948,21.523 L 373.14,22.3164
|
||||||
|
L 371.171,22.4795 z
|
||||||
|
M 35.9231,21.9946 L 34.2696,20.9144 L 33.0565,19.3557 L 32.4151,17.4876 L 32.4151,15.5124 L 33.0565,13.6443
|
||||||
|
L 34.2696,12.0857 L 35.9231,11.0054 L 37.8378,10.5205 L 39.8062,10.6836 L 41.615,11.477 L 43.0682,12.8147
|
||||||
|
L 44.0082,14.5518 L 44.3333,16.5 L 44.0082,18.4482 L 43.0682,20.1853 L 41.615,21.523 L 39.8062,22.3164
|
||||||
|
L 37.8378,22.4795 z
|
||||||
|
M 102.59,21.9946 L 100.936,20.9144 L 99.7231,19.3557 L 99.0818,17.4876 L 99.0818,15.5124 L 99.7231,13.6443
|
||||||
|
L 100.936,12.0857 L 102.59,11.0054 L 104.505,10.5205 L 106.473,10.6836 L 108.282,11.477 L 109.735,12.8147
|
||||||
|
L 110.675,14.5518 L 111,16.5 L 110.675,18.4482 L 109.735,20.1853 L 108.282,21.523 L 106.473,22.3164
|
||||||
|
L 104.505,22.4795 z
|
||||||
|
M 302.59,21.9946 L 300.936,20.9144 L 299.723,19.3557 L 299.082,17.4876 L 299.082,15.5124 L 299.723,13.6443
|
||||||
|
L 300.936,12.0857 L 302.59,11.0054 L 304.505,10.5205 L 306.473,10.6836 L 308.282,11.477 L 309.735,12.8147
|
||||||
|
L 310.675,14.5518 L 311,16.5 L 310.675,18.4482 L 309.735,20.1853 L 308.282,21.523 L 306.473,22.3164
|
||||||
|
L 304.505,22.4795 z
|
||||||
|
M 169.256,56.9946 L 167.603,55.9144 L 166.39,54.3557 L 165.748,52.4876 L 165.748,50.5124 L 166.39,48.6443
|
||||||
|
L 167.603,47.0857 L 169.256,46.0054 L 171.171,45.5205 L 173.14,45.6836 L 174.948,46.477 L 176.402,47.8147
|
||||||
|
L 177.342,49.5518 L 177.667,51.5 L 177.342,53.4482 L 176.402,55.1853 L 174.948,56.523 L 173.14,57.3164
|
||||||
|
L 171.171,57.4795 z
|
||||||
|
M 102.59,56.9946 L 100.936,55.9144 L 99.7231,54.3557 L 99.0818,52.4876 L 99.0818,50.5124 L 99.7231,48.6443
|
||||||
|
L 100.936,47.0857 L 102.59,46.0054 L 104.505,45.5205 L 106.473,45.6836 L 108.282,46.477 L 109.735,47.8147
|
||||||
|
L 110.675,49.5518 L 111,51.5 L 110.675,53.4482 L 109.735,55.1853 L 108.282,56.523 L 106.473,57.3164
|
||||||
|
L 104.505,57.4795 z
|
||||||
|
M 69.2565,56.9946 L 67.603,55.9144 L 66.3898,54.3557 L 65.7485,52.4876 L 65.7485,50.5124 L 66.3898,48.6443
|
||||||
|
L 67.603,47.0857 L 69.2565,46.0054 L 71.1712,45.5205 L 73.1396,45.6836 L 74.9483,46.477 L 76.4015,47.8147
|
||||||
|
L 77.3416,49.5518 L 77.6667,51.5 L 77.3416,53.4482 L 76.4015,55.1853 L 74.9483,56.523 L 73.1396,57.3164
|
||||||
|
L 71.1712,57.4795 z
|
||||||
|
M 35.9231,56.9946 L 34.2696,55.9144 L 33.0565,54.3557 L 32.4151,52.4876 L 32.4151,50.5124 L 33.0565,48.6443
|
||||||
|
L 34.2696,47.0857 L 35.9231,46.0054 L 37.8378,45.5205 L 39.8062,45.6836 L 41.615,46.477 L 43.0682,47.8147
|
||||||
|
L 44.0082,49.5518 L 44.3333,51.5 L 44.0082,53.4482 L 43.0682,55.1853 L 41.615,56.523 L 39.8062,57.3164
|
||||||
|
L 37.8378,57.4795 z
|
||||||
|
M 235.923,56.9946 L 234.27,55.9144 L 233.056,54.3557 L 232.415,52.4876 L 232.415,50.5124 L 233.056,48.6443
|
||||||
|
L 234.27,47.0857 L 235.923,46.0054 L 237.838,45.5205 L 239.806,45.6836 L 241.615,46.477 L 243.068,47.8147
|
||||||
|
L 244.008,49.5518 L 244.333,51.5 L 244.008,53.4482 L 243.068,55.1853 L 241.615,56.523 L 239.806,57.3164
|
||||||
|
L 237.838,57.4795 z
|
||||||
|
M 369.256,56.9946 L 367.603,55.9144 L 366.39,54.3557 L 365.748,52.4876 L 365.748,50.5124 L 366.39,48.6443
|
||||||
|
L 367.603,47.0857 L 369.256,46.0054 L 371.171,45.5205 L 373.14,45.6836 L 374.948,46.477 L 376.402,47.8147
|
||||||
|
L 377.342,49.5518 L 377.667,51.5 L 377.342,53.4482 L 376.402,55.1853 L 374.948,56.523 L 373.14,57.3164
|
||||||
|
L 371.171,57.4795 z
|
||||||
|
M 202.59,56.9946 L 200.936,55.9144 L 199.723,54.3557 L 199.082,52.4876 L 199.082,50.5124 L 199.723,48.6443
|
||||||
|
L 200.936,47.0857 L 202.59,46.0054 L 204.505,45.5205 L 206.473,45.6836 L 208.282,46.477 L 209.735,47.8147
|
||||||
|
L 210.675,49.5518 L 211,51.5 L 210.675,53.4482 L 209.735,55.1853 L 208.282,56.523 L 206.473,57.3164
|
||||||
|
L 204.505,57.4795 z
|
||||||
|
M 269.256,56.9946 L 267.603,55.9144 L 266.39,54.3557 L 265.748,52.4876 L 265.748,50.5124 L 266.39,48.6443
|
||||||
|
L 267.603,47.0857 L 269.256,46.0054 L 271.171,45.5205 L 273.14,45.6836 L 274.948,46.477 L 276.402,47.8147
|
||||||
|
L 277.342,49.5518 L 277.667,51.5 L 277.342,53.4482 L 276.402,55.1853 L 274.948,56.523 L 273.14,57.3164
|
||||||
|
L 271.171,57.4795 z
|
||||||
|
M 302.59,56.9946 L 300.936,55.9144 L 299.723,54.3557 L 299.082,52.4876 L 299.082,50.5124 L 299.723,48.6443
|
||||||
|
L 300.936,47.0857 L 302.59,46.0054 L 304.505,45.5205 L 306.473,45.6836 L 308.282,46.477 L 309.735,47.8147
|
||||||
|
L 310.675,49.5518 L 311,51.5 L 310.675,53.4482 L 309.735,55.1853 L 308.282,56.523 L 306.473,57.3164
|
||||||
|
L 304.505,57.4795 z
|
||||||
|
M 335.923,56.9946 L 334.27,55.9144 L 333.056,54.3557 L 332.415,52.4876 L 332.415,50.5124 L 333.056,48.6443
|
||||||
|
L 334.27,47.0857 L 335.923,46.0054 L 337.838,45.5205 L 339.806,45.6836 L 341.615,46.477 L 343.068,47.8147
|
||||||
|
L 344.008,49.5518 L 344.333,51.5 L 344.008,53.4482 L 343.068,55.1853 L 341.615,56.523 L 339.806,57.3164
|
||||||
|
L 337.838,57.4795 z
|
||||||
|
M 135.923,56.9946 L 134.27,55.9144 L 133.056,54.3557 L 132.415,52.4876 L 132.415,50.5124 L 133.056,48.6443
|
||||||
|
L 134.27,47.0857 L 135.923,46.0054 L 137.838,45.5205 L 139.806,45.6836 L 141.615,46.477 L 143.068,47.8147
|
||||||
|
L 144.008,49.5518 L 144.333,51.5 L 144.008,53.4482 L 143.068,55.1853 L 141.615,56.523 L 139.806,57.3164
|
||||||
|
L 137.838,57.4795 z
|
||||||
|
M 269.256,91.9946 L 267.603,90.9144 L 266.39,89.3557 L 265.748,87.4876 L 265.748,85.5124 L 266.39,83.6443
|
||||||
|
L 267.603,82.0857 L 269.256,81.0054 L 271.171,80.5205 L 273.14,80.6836 L 274.948,81.477 L 276.402,82.8147
|
||||||
|
L 277.342,84.5518 L 277.667,86.5 L 277.342,88.4482 L 276.402,90.1853 L 274.948,91.523 L 273.14,92.3164
|
||||||
|
L 271.171,92.4795 z
|
||||||
|
M 302.59,91.9946 L 300.936,90.9144 L 299.723,89.3557 L 299.082,87.4876 L 299.082,85.5124 L 299.723,83.6443
|
||||||
|
L 300.936,82.0857 L 302.59,81.0054 L 304.505,80.5205 L 306.473,80.6836 L 308.282,81.477 L 309.735,82.8147
|
||||||
|
L 310.675,84.5518 L 311,86.5 L 310.675,88.4482 L 309.735,90.1853 L 308.282,91.523 L 306.473,92.3164
|
||||||
|
L 304.505,92.4795 z
|
||||||
|
M 35.9231,91.9946 L 34.2696,90.9144 L 33.0565,89.3557 L 32.4151,87.4876 L 32.4151,85.5124 L 33.0565,83.6443
|
||||||
|
L 34.2696,82.0857 L 35.9231,81.0054 L 37.8378,80.5205 L 39.8062,80.6836 L 41.615,81.477 L 43.0682,82.8147
|
||||||
|
L 44.0082,84.5518 L 44.3333,86.5 L 44.0082,88.4482 L 43.0682,90.1853 L 41.615,91.523 L 39.8062,92.3164
|
||||||
|
L 37.8378,92.4795 z
|
||||||
|
M 69.2565,91.9946 L 67.603,90.9144 L 66.3898,89.3557 L 65.7485,87.4876 L 65.7485,85.5124 L 66.3898,83.6443
|
||||||
|
L 67.603,82.0857 L 69.2565,81.0054 L 71.1712,80.5205 L 73.1396,80.6836 L 74.9483,81.477 L 76.4015,82.8147
|
||||||
|
L 77.3416,84.5518 L 77.6667,86.5 L 77.3416,88.4482 L 76.4015,90.1853 L 74.9483,91.523 L 73.1396,92.3164
|
||||||
|
L 71.1712,92.4795 z
|
||||||
|
M 102.59,91.9946 L 100.936,90.9144 L 99.7231,89.3557 L 99.0818,87.4876 L 99.0818,85.5124 L 99.7231,83.6443
|
||||||
|
L 100.936,82.0857 L 102.59,81.0054 L 104.505,80.5205 L 106.473,80.6836 L 108.282,81.477 L 109.735,82.8147
|
||||||
|
L 110.675,84.5518 L 111,86.5 L 110.675,88.4482 L 109.735,90.1853 L 108.282,91.523 L 106.473,92.3164
|
||||||
|
L 104.505,92.4795 z
|
||||||
|
M 135.923,91.9946 L 134.27,90.9144 L 133.056,89.3557 L 132.415,87.4876 L 132.415,85.5124 L 133.056,83.6443
|
||||||
|
L 134.27,82.0857 L 135.923,81.0054 L 137.838,80.5205 L 139.806,80.6836 L 141.615,81.477 L 143.068,82.8147
|
||||||
|
L 144.008,84.5518 L 144.333,86.5 L 144.008,88.4482 L 143.068,90.1853 L 141.615,91.523 L 139.806,92.3164
|
||||||
|
L 137.838,92.4795 z
|
||||||
|
M 169.256,91.9946 L 167.603,90.9144 L 166.39,89.3557 L 165.748,87.4876 L 165.748,85.5124 L 166.39,83.6443
|
||||||
|
L 167.603,82.0857 L 169.256,81.0054 L 171.171,80.5205 L 173.14,80.6836 L 174.948,81.477 L 176.402,82.8147
|
||||||
|
L 177.342,84.5518 L 177.667,86.5 L 177.342,88.4482 L 176.402,90.1853 L 174.948,91.523 L 173.14,92.3164
|
||||||
|
L 171.171,92.4795 z
|
||||||
|
M 202.59,91.9946 L 200.936,90.9144 L 199.723,89.3557 L 199.082,87.4876 L 199.082,85.5124 L 199.723,83.6443
|
||||||
|
L 200.936,82.0857 L 202.59,81.0054 L 204.505,80.5205 L 206.473,80.6836 L 208.282,81.477 L 209.735,82.8147
|
||||||
|
L 210.675,84.5518 L 211,86.5 L 210.675,88.4482 L 209.735,90.1853 L 208.282,91.523 L 206.473,92.3164
|
||||||
|
L 204.505,92.4795 z
|
||||||
|
M 235.923,91.9946 L 234.27,90.9144 L 233.056,89.3557 L 232.415,87.4876 L 232.415,85.5124 L 233.056,83.6443
|
||||||
|
L 234.27,82.0857 L 235.923,81.0054 L 237.838,80.5205 L 239.806,80.6836 L 241.615,81.477 L 243.068,82.8147
|
||||||
|
L 244.008,84.5518 L 244.333,86.5 L 244.008,88.4482 L 243.068,90.1853 L 241.615,91.523 L 239.806,92.3164
|
||||||
|
L 237.838,92.4795 z
|
||||||
|
M 335.923,91.9946 L 334.27,90.9144 L 333.056,89.3557 L 332.415,87.4876 L 332.415,85.5124 L 333.056,83.6443
|
||||||
|
L 334.27,82.0857 L 335.923,81.0054 L 337.838,80.5205 L 339.806,80.6836 L 341.615,81.477 L 343.068,82.8147
|
||||||
|
L 344.008,84.5518 L 344.333,86.5 L 344.008,88.4482 L 343.068,90.1853 L 341.615,91.523 L 339.806,92.3164
|
||||||
|
L 337.838,92.4795 z
|
||||||
|
M 369.256,91.9946 L 367.603,90.9144 L 366.39,89.3557 L 365.748,87.4876 L 365.748,85.5124 L 366.39,83.6443
|
||||||
|
L 367.603,82.0857 L 369.256,81.0054 L 371.171,80.5205 L 373.14,80.6836 L 374.948,81.477 L 376.402,82.8147
|
||||||
|
L 377.342,84.5518 L 377.667,86.5 L 377.342,88.4482 L 376.402,90.1853 L 374.948,91.523 L 373.14,92.3164
|
||||||
|
L 371.171,92.4795 z
|
||||||
|
M 6.38196,101.902 L 5.38196,101.176 L 5,100 L 5.38196,98.8244 L 6.38196,98.0979 L 7.61803,98.0979
|
||||||
|
L 8.61803,98.8244 L 9,100 L 8.61803,101.176 L 7.61803,101.902 z
|
||||||
|
M 402.382,101.902 L 401.382,101.176 L 401,100 L 401.382,98.8244 L 402.382,98.0979 L 403.618,98.0979
|
||||||
|
L 404.618,98.8244 L 405,100 L 404.618,101.176 L 403.618,101.902 z
|
||||||
|
M 302.59,126.995 L 300.936,125.914 L 299.723,124.356 L 299.082,122.488 L 299.082,120.512 L 299.723,118.644
|
||||||
|
L 300.936,117.086 L 302.59,116.005 L 304.505,115.521 L 306.473,115.684 L 308.282,116.477 L 309.735,117.815
|
||||||
|
L 310.675,119.552 L 311,121.5 L 310.675,123.448 L 309.735,125.185 L 308.282,126.523 L 306.473,127.316
|
||||||
|
L 304.505,127.48 z
|
||||||
|
M 35.9231,126.995 L 34.2696,125.914 L 33.0565,124.356 L 32.4151,122.488 L 32.4151,120.512 L 33.0565,118.644
|
||||||
|
L 34.2696,117.086 L 35.9231,116.005 L 37.8378,115.521 L 39.8062,115.684 L 41.615,116.477 L 43.0682,117.815
|
||||||
|
L 44.0082,119.552 L 44.3333,121.5 L 44.0082,123.448 L 43.0682,125.185 L 41.615,126.523 L 39.8062,127.316
|
||||||
|
L 37.8378,127.48 z
|
||||||
|
M 69.2565,126.995 L 67.603,125.914 L 66.3898,124.356 L 65.7485,122.488 L 65.7485,120.512 L 66.3898,118.644
|
||||||
|
L 67.603,117.086 L 69.2565,116.005 L 71.1712,115.521 L 73.1396,115.684 L 74.9483,116.477 L 76.4015,117.815
|
||||||
|
L 77.3416,119.552 L 77.6667,121.5 L 77.3416,123.448 L 76.4015,125.185 L 74.9483,126.523 L 73.1396,127.316
|
||||||
|
L 71.1712,127.48 z
|
||||||
|
M 135.923,126.995 L 134.27,125.914 L 133.056,124.356 L 132.415,122.488 L 132.415,120.512 L 133.056,118.644
|
||||||
|
L 134.27,117.086 L 135.923,116.005 L 137.838,115.521 L 139.806,115.684 L 141.615,116.477 L 143.068,117.815
|
||||||
|
L 144.008,119.552 L 144.333,121.5 L 144.008,123.448 L 143.068,125.185 L 141.615,126.523 L 139.806,127.316
|
||||||
|
L 137.838,127.48 z
|
||||||
|
M 235.923,126.995 L 234.27,125.914 L 233.056,124.356 L 232.415,122.488 L 232.415,120.512 L 233.056,118.644
|
||||||
|
L 234.27,117.086 L 235.923,116.005 L 237.838,115.521 L 239.806,115.684 L 241.615,116.477 L 243.068,117.815
|
||||||
|
L 244.008,119.552 L 244.333,121.5 L 244.008,123.448 L 243.068,125.185 L 241.615,126.523 L 239.806,127.316
|
||||||
|
L 237.838,127.48 z
|
||||||
|
M 169.256,126.995 L 167.603,125.914 L 166.39,124.356 L 165.748,122.488 L 165.748,120.512 L 166.39,118.644
|
||||||
|
L 167.603,117.086 L 169.256,116.005 L 171.171,115.521 L 173.14,115.684 L 174.948,116.477 L 176.402,117.815
|
||||||
|
L 177.342,119.552 L 177.667,121.5 L 177.342,123.448 L 176.402,125.185 L 174.948,126.523 L 173.14,127.316
|
||||||
|
L 171.171,127.48 z
|
||||||
|
M 269.256,126.995 L 267.603,125.914 L 266.39,124.356 L 265.748,122.488 L 265.748,120.512 L 266.39,118.644
|
||||||
|
L 267.603,117.086 L 269.256,116.005 L 271.171,115.521 L 273.14,115.684 L 274.948,116.477 L 276.402,117.815
|
||||||
|
L 277.342,119.552 L 277.667,121.5 L 277.342,123.448 L 276.402,125.185 L 274.948,126.523 L 273.14,127.316
|
||||||
|
L 271.171,127.48 z
|
||||||
|
M 335.923,126.995 L 334.27,125.914 L 333.056,124.356 L 332.415,122.488 L 332.415,120.512 L 333.056,118.644
|
||||||
|
L 334.27,117.086 L 335.923,116.005 L 337.838,115.521 L 339.806,115.684 L 341.615,116.477 L 343.068,117.815
|
||||||
|
L 344.008,119.552 L 344.333,121.5 L 344.008,123.448 L 343.068,125.185 L 341.615,126.523 L 339.806,127.316
|
||||||
|
L 337.838,127.48 z
|
||||||
|
M 369.256,126.995 L 367.603,125.914 L 366.39,124.356 L 365.748,122.488 L 365.748,120.512 L 366.39,118.644
|
||||||
|
L 367.603,117.086 L 369.256,116.005 L 371.171,115.521 L 373.14,115.684 L 374.948,116.477 L 376.402,117.815
|
||||||
|
L 377.342,119.552 L 377.667,121.5 L 377.342,123.448 L 376.402,125.185 L 374.948,126.523 L 373.14,127.316
|
||||||
|
L 371.171,127.48 z
|
||||||
|
M 102.59,126.995 L 100.936,125.914 L 99.7231,124.356 L 99.0818,122.488 L 99.0818,120.512 L 99.7231,118.644
|
||||||
|
L 100.936,117.086 L 102.59,116.005 L 104.505,115.521 L 106.473,115.684 L 108.282,116.477 L 109.735,117.815
|
||||||
|
L 110.675,119.552 L 111,121.5 L 110.675,123.448 L 109.735,125.185 L 108.282,126.523 L 106.473,127.316
|
||||||
|
L 104.505,127.48 z
|
||||||
|
M 202.59,126.995 L 200.936,125.914 L 199.723,124.356 L 199.082,122.488 L 199.082,120.512 L 199.723,118.644
|
||||||
|
L 200.936,117.086 L 202.59,116.005 L 204.505,115.521 L 206.473,115.684 L 208.282,116.477 L 209.735,117.815
|
||||||
|
L 210.675,119.552 L 211,121.5 L 210.675,123.448 L 209.735,125.185 L 208.282,126.523 L 206.473,127.316
|
||||||
|
L 204.505,127.48 z
|
||||||
|
M 202.59,161.995 L 200.936,160.914 L 199.723,159.356 L 199.082,157.488 L 199.082,155.512 L 199.723,153.644
|
||||||
|
L 200.936,152.086 L 202.59,151.005 L 204.505,150.521 L 206.473,150.684 L 208.282,151.477 L 209.735,152.815
|
||||||
|
L 210.675,154.552 L 211,156.5 L 210.675,158.448 L 209.735,160.185 L 208.282,161.523 L 206.473,162.316
|
||||||
|
L 204.505,162.48 z
|
||||||
|
M 302.59,161.995 L 300.936,160.914 L 299.723,159.356 L 299.082,157.488 L 299.082,155.512 L 299.723,153.644
|
||||||
|
L 300.936,152.086 L 302.59,151.005 L 304.505,150.521 L 306.473,150.684 L 308.282,151.477 L 309.735,152.815
|
||||||
|
L 310.675,154.552 L 311,156.5 L 310.675,158.448 L 309.735,160.185 L 308.282,161.523 L 306.473,162.316
|
||||||
|
L 304.505,162.48 z
|
||||||
|
M 169.256,161.995 L 167.603,160.914 L 166.39,159.356 L 165.748,157.488 L 165.748,155.512 L 166.39,153.644
|
||||||
|
L 167.603,152.086 L 169.256,151.005 L 171.171,150.521 L 173.14,150.684 L 174.948,151.477 L 176.402,152.815
|
||||||
|
L 177.342,154.552 L 177.667,156.5 L 177.342,158.448 L 176.402,160.185 L 174.948,161.523 L 173.14,162.316
|
||||||
|
L 171.171,162.48 z
|
||||||
|
M 135.923,161.995 L 134.27,160.914 L 133.056,159.356 L 132.415,157.488 L 132.415,155.512 L 133.056,153.644
|
||||||
|
L 134.27,152.086 L 135.923,151.005 L 137.838,150.521 L 139.806,150.684 L 141.615,151.477 L 143.068,152.815
|
||||||
|
L 144.008,154.552 L 144.333,156.5 L 144.008,158.448 L 143.068,160.185 L 141.615,161.523 L 139.806,162.316
|
||||||
|
L 137.838,162.48 z
|
||||||
|
M 69.2565,161.995 L 67.603,160.914 L 66.3898,159.356 L 65.7485,157.488 L 65.7485,155.512 L 66.3898,153.644
|
||||||
|
L 67.603,152.086 L 69.2565,151.005 L 71.1712,150.521 L 73.1396,150.684 L 74.9483,151.477 L 76.4015,152.815
|
||||||
|
L 77.3416,154.552 L 77.6667,156.5 L 77.3416,158.448 L 76.4015,160.185 L 74.9483,161.523 L 73.1396,162.316
|
||||||
|
L 71.1712,162.48 z
|
||||||
|
M 35.9231,161.995 L 34.2696,160.914 L 33.0565,159.356 L 32.4151,157.488 L 32.4151,155.512 L 33.0565,153.644
|
||||||
|
L 34.2696,152.086 L 35.9231,151.005 L 37.8378,150.521 L 39.8062,150.684 L 41.615,151.477 L 43.0682,152.815
|
||||||
|
L 44.0082,154.552 L 44.3333,156.5 L 44.0082,158.448 L 43.0682,160.185 L 41.615,161.523 L 39.8062,162.316
|
||||||
|
L 37.8378,162.48 z
|
||||||
|
M 269.256,161.995 L 267.603,160.914 L 266.39,159.356 L 265.748,157.488 L 265.748,155.512 L 266.39,153.644
|
||||||
|
L 267.603,152.086 L 269.256,151.005 L 271.171,150.521 L 273.14,150.684 L 274.948,151.477 L 276.402,152.815
|
||||||
|
L 277.342,154.552 L 277.667,156.5 L 277.342,158.448 L 276.402,160.185 L 274.948,161.523 L 273.14,162.316
|
||||||
|
L 271.171,162.48 z
|
||||||
|
M 335.923,161.995 L 334.27,160.914 L 333.056,159.356 L 332.415,157.488 L 332.415,155.512 L 333.056,153.644
|
||||||
|
L 334.27,152.086 L 335.923,151.005 L 337.838,150.521 L 339.806,150.684 L 341.615,151.477 L 343.068,152.815
|
||||||
|
L 344.008,154.552 L 344.333,156.5 L 344.008,158.448 L 343.068,160.185 L 341.615,161.523 L 339.806,162.316
|
||||||
|
L 337.838,162.48 z
|
||||||
|
M 369.256,161.995 L 367.603,160.914 L 366.39,159.356 L 365.748,157.488 L 365.748,155.512 L 366.39,153.644
|
||||||
|
L 367.603,152.086 L 369.256,151.005 L 371.171,150.521 L 373.14,150.684 L 374.948,151.477 L 376.402,152.815
|
||||||
|
L 377.342,154.552 L 377.667,156.5 L 377.342,158.448 L 376.402,160.185 L 374.948,161.523 L 373.14,162.316
|
||||||
|
L 371.171,162.48 z
|
||||||
|
M 102.59,161.995 L 100.936,160.914 L 99.7231,159.356 L 99.0818,157.488 L 99.0818,155.512 L 99.7231,153.644
|
||||||
|
L 100.936,152.086 L 102.59,151.005 L 104.505,150.521 L 106.473,150.684 L 108.282,151.477 L 109.735,152.815
|
||||||
|
L 110.675,154.552 L 111,156.5 L 110.675,158.448 L 109.735,160.185 L 108.282,161.523 L 106.473,162.316
|
||||||
|
L 104.505,162.48 z
|
||||||
|
M 235.923,161.995 L 234.27,160.914 L 233.056,159.356 L 232.415,157.488 L 232.415,155.512 L 233.056,153.644
|
||||||
|
L 234.27,152.086 L 235.923,151.005 L 237.838,150.521 L 239.806,150.684 L 241.615,151.477 L 243.068,152.815
|
||||||
|
L 244.008,154.552 L 244.333,156.5 L 244.008,158.448 L 243.068,160.185 L 241.615,161.523 L 239.806,162.316
|
||||||
|
L 237.838,162.48 z
|
||||||
|
M 269.256,196.995 L 267.603,195.914 L 266.39,194.356 L 265.748,192.488 L 265.748,190.512 L 266.39,188.644
|
||||||
|
L 267.603,187.086 L 269.256,186.005 L 271.171,185.521 L 273.14,185.684 L 274.948,186.477 L 276.402,187.815
|
||||||
|
L 277.342,189.552 L 277.667,191.5 L 277.342,193.448 L 276.402,195.185 L 274.948,196.523 L 273.14,197.316
|
||||||
|
L 271.171,197.48 z
|
||||||
|
M 69.2565,196.995 L 67.603,195.914 L 66.3898,194.356 L 65.7485,192.488 L 65.7485,190.512 L 66.3898,188.644
|
||||||
|
L 67.603,187.086 L 69.2565,186.005 L 71.1712,185.521 L 73.1396,185.684 L 74.9483,186.477 L 76.4015,187.815
|
||||||
|
L 77.3416,189.552 L 77.6667,191.5 L 77.3416,193.448 L 76.4015,195.185 L 74.9483,196.523 L 73.1396,197.316
|
||||||
|
L 71.1712,197.48 z
|
||||||
|
M 102.59,196.995 L 100.936,195.914 L 99.7231,194.356 L 99.0818,192.488 L 99.0818,190.512 L 99.7231,188.644
|
||||||
|
L 100.936,187.086 L 102.59,186.005 L 104.505,185.521 L 106.473,185.684 L 108.282,186.477 L 109.735,187.815
|
||||||
|
L 110.675,189.552 L 111,191.5 L 110.675,193.448 L 109.735,195.185 L 108.282,196.523 L 106.473,197.316
|
||||||
|
L 104.505,197.48 z
|
||||||
|
M 135.923,196.995 L 134.27,195.914 L 133.056,194.356 L 132.415,192.488 L 132.415,190.512 L 133.056,188.644
|
||||||
|
L 134.27,187.086 L 135.923,186.005 L 137.838,185.521 L 139.806,185.684 L 141.615,186.477 L 143.068,187.815
|
||||||
|
L 144.008,189.552 L 144.333,191.5 L 144.008,193.448 L 143.068,195.185 L 141.615,196.523 L 139.806,197.316
|
||||||
|
L 137.838,197.48 z
|
||||||
|
M 169.256,196.995 L 167.603,195.914 L 166.39,194.356 L 165.748,192.488 L 165.748,190.512 L 166.39,188.644
|
||||||
|
L 167.603,187.086 L 169.256,186.005 L 171.171,185.521 L 173.14,185.684 L 174.948,186.477 L 176.402,187.815
|
||||||
|
L 177.342,189.552 L 177.667,191.5 L 177.342,193.448 L 176.402,195.185 L 174.948,196.523 L 173.14,197.316
|
||||||
|
L 171.171,197.48 z
|
||||||
|
M 202.59,196.995 L 200.936,195.914 L 199.723,194.356 L 199.082,192.488 L 199.082,190.512 L 199.723,188.644
|
||||||
|
L 200.936,187.086 L 202.59,186.005 L 204.505,185.521 L 206.473,185.684 L 208.282,186.477 L 209.735,187.815
|
||||||
|
L 210.675,189.552 L 211,191.5 L 210.675,193.448 L 209.735,195.185 L 208.282,196.523 L 206.473,197.316
|
||||||
|
L 204.505,197.48 z
|
||||||
|
M 235.923,196.995 L 234.27,195.914 L 233.056,194.356 L 232.415,192.488 L 232.415,190.512 L 233.056,188.644
|
||||||
|
L 234.27,187.086 L 235.923,186.005 L 237.838,185.521 L 239.806,185.684 L 241.615,186.477 L 243.068,187.815
|
||||||
|
L 244.008,189.552 L 244.333,191.5 L 244.008,193.448 L 243.068,195.185 L 241.615,196.523 L 239.806,197.316
|
||||||
|
L 237.838,197.48 z
|
||||||
|
M 302.59,196.995 L 300.936,195.914 L 299.723,194.356 L 299.082,192.488 L 299.082,190.512 L 299.723,188.644
|
||||||
|
L 300.936,187.086 L 302.59,186.005 L 304.505,185.521 L 306.473,185.684 L 308.282,186.477 L 309.735,187.815
|
||||||
|
L 310.675,189.552 L 311,191.5 L 310.675,193.448 L 309.735,195.185 L 308.282,196.523 L 306.473,197.316
|
||||||
|
L 304.505,197.48 z
|
||||||
|
M 335.923,196.995 L 334.27,195.914 L 333.056,194.356 L 332.415,192.488 L 332.415,190.512 L 333.056,188.644
|
||||||
|
L 334.27,187.086 L 335.923,186.005 L 337.838,185.521 L 339.806,185.684 L 341.615,186.477 L 343.068,187.815
|
||||||
|
L 344.008,189.552 L 344.333,191.5 L 344.008,193.448 L 343.068,195.185 L 341.615,196.523 L 339.806,197.316
|
||||||
|
L 337.838,197.48 z
|
||||||
|
M 35.9231,196.995 L 34.2696,195.914 L 33.0565,194.356 L 32.4151,192.488 L 32.4151,190.512 L 33.0565,188.644
|
||||||
|
L 34.2696,187.086 L 35.9231,186.005 L 37.8378,185.521 L 39.8062,185.684 L 41.615,186.477 L 43.0682,187.815
|
||||||
|
L 44.0082,189.552 L 44.3333,191.5 L 44.0082,193.448 L 43.0682,195.185 L 41.615,196.523 L 39.8062,197.316
|
||||||
|
L 37.8378,197.48 z
|
||||||
|
M 369.256,196.995 L 367.603,195.914 L 366.39,194.356 L 365.748,192.488 L 365.748,190.512 L 366.39,188.644
|
||||||
|
L 367.603,187.086 L 369.256,186.005 L 371.171,185.521 L 373.14,185.684 L 374.948,186.477 L 376.402,187.815
|
||||||
|
L 377.342,189.552 L 377.667,191.5 L 377.342,193.448 L 376.402,195.185 L 374.948,196.523 L 373.14,197.316
|
||||||
|
L 371.171,197.48 z
|
||||||
|
M 6.38196,233.902 L 5.38196,233.176 L 5,232 L 5.38196,230.824 L 6.38196,230.098 L 7.61803,230.098
|
||||||
|
L 8.61803,230.824 L 9,232 L 8.61803,233.176 L 7.61803,233.902 z
|
||||||
|
M 402.382,233.902 L 401.382,233.176 L 401,232 L 401.382,230.824 L 402.382,230.098 L 403.618,230.098
|
||||||
|
L 404.618,230.824 L 405,232 L 404.618,233.176 L 403.618,233.902 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 23 KiB |
192
hw/layers/holes_top.svg
Normal file
|
@ -0,0 +1,192 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="171mm" viewBox="0 -171 410 171" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-171 L 0,-171 L 0,-0 L 410,-0 z
|
||||||
|
M 6.38196,-162.098 L 5.38196,-162.824 L 5,-164 L 5.38196,-165.176 L 6.38196,-165.902 L 7.61803,-165.902
|
||||||
|
L 8.61803,-165.176 L 9,-164 L 8.61803,-162.824 L 7.61803,-162.098 z
|
||||||
|
M 402.382,-162.098 L 401.382,-162.824 L 401,-164 L 401.382,-165.176 L 402.382,-165.902 L 403.618,-165.902
|
||||||
|
L 404.618,-165.176 L 405,-164 L 404.618,-162.824 L 403.618,-162.098 z
|
||||||
|
M 369.256,-118.005 L 367.603,-119.086 L 366.39,-120.644 L 365.748,-122.512 L 365.748,-124.488 L 366.39,-126.356
|
||||||
|
L 367.603,-127.914 L 369.256,-128.995 L 371.171,-129.479 L 373.14,-129.316 L 374.948,-128.523 L 376.402,-127.185
|
||||||
|
L 377.342,-125.448 L 377.667,-123.5 L 377.342,-121.552 L 376.402,-119.815 L 374.948,-118.477 L 373.14,-117.684
|
||||||
|
L 371.171,-117.52 z
|
||||||
|
M 335.923,-118.005 L 334.27,-119.086 L 333.056,-120.644 L 332.415,-122.512 L 332.415,-124.488 L 333.056,-126.356
|
||||||
|
L 334.27,-127.914 L 335.923,-128.995 L 337.838,-129.479 L 339.806,-129.316 L 341.615,-128.523 L 343.068,-127.185
|
||||||
|
L 344.008,-125.448 L 344.333,-123.5 L 344.008,-121.552 L 343.068,-119.815 L 341.615,-118.477 L 339.806,-117.684
|
||||||
|
L 337.838,-117.52 z
|
||||||
|
M 302.59,-118.005 L 300.936,-119.086 L 299.723,-120.644 L 299.082,-122.512 L 299.082,-124.488 L 299.723,-126.356
|
||||||
|
L 300.936,-127.914 L 302.59,-128.995 L 304.505,-129.479 L 306.473,-129.316 L 308.282,-128.523 L 309.735,-127.185
|
||||||
|
L 310.675,-125.448 L 311,-123.5 L 310.675,-121.552 L 309.735,-119.815 L 308.282,-118.477 L 306.473,-117.684
|
||||||
|
L 304.505,-117.52 z
|
||||||
|
M 269.256,-118.005 L 267.603,-119.086 L 266.39,-120.644 L 265.748,-122.512 L 265.748,-124.488 L 266.39,-126.356
|
||||||
|
L 267.603,-127.914 L 269.256,-128.995 L 271.171,-129.479 L 273.14,-129.316 L 274.948,-128.523 L 276.402,-127.185
|
||||||
|
L 277.342,-125.448 L 277.667,-123.5 L 277.342,-121.552 L 276.402,-119.815 L 274.948,-118.477 L 273.14,-117.684
|
||||||
|
L 271.171,-117.52 z
|
||||||
|
M 235.923,-118.005 L 234.27,-119.086 L 233.056,-120.644 L 232.415,-122.512 L 232.415,-124.488 L 233.056,-126.356
|
||||||
|
L 234.27,-127.914 L 235.923,-128.995 L 237.838,-129.479 L 239.806,-129.316 L 241.615,-128.523 L 243.068,-127.185
|
||||||
|
L 244.008,-125.448 L 244.333,-123.5 L 244.008,-121.552 L 243.068,-119.815 L 241.615,-118.477 L 239.806,-117.684
|
||||||
|
L 237.838,-117.52 z
|
||||||
|
M 202.59,-118.005 L 200.936,-119.086 L 199.723,-120.644 L 199.082,-122.512 L 199.082,-124.488 L 199.723,-126.356
|
||||||
|
L 200.936,-127.914 L 202.59,-128.995 L 204.505,-129.479 L 206.473,-129.316 L 208.282,-128.523 L 209.735,-127.185
|
||||||
|
L 210.675,-125.448 L 211,-123.5 L 210.675,-121.552 L 209.735,-119.815 L 208.282,-118.477 L 206.473,-117.684
|
||||||
|
L 204.505,-117.52 z
|
||||||
|
M 169.256,-118.005 L 167.603,-119.086 L 166.39,-120.644 L 165.748,-122.512 L 165.748,-124.488 L 166.39,-126.356
|
||||||
|
L 167.603,-127.914 L 169.256,-128.995 L 171.171,-129.479 L 173.14,-129.316 L 174.948,-128.523 L 176.402,-127.185
|
||||||
|
L 177.342,-125.448 L 177.667,-123.5 L 177.342,-121.552 L 176.402,-119.815 L 174.948,-118.477 L 173.14,-117.684
|
||||||
|
L 171.171,-117.52 z
|
||||||
|
M 135.923,-118.005 L 134.27,-119.086 L 133.056,-120.644 L 132.415,-122.512 L 132.415,-124.488 L 133.056,-126.356
|
||||||
|
L 134.27,-127.914 L 135.923,-128.995 L 137.838,-129.479 L 139.806,-129.316 L 141.615,-128.523 L 143.068,-127.185
|
||||||
|
L 144.008,-125.448 L 144.333,-123.5 L 144.008,-121.552 L 143.068,-119.815 L 141.615,-118.477 L 139.806,-117.684
|
||||||
|
L 137.838,-117.52 z
|
||||||
|
M 102.59,-118.005 L 100.936,-119.086 L 99.7231,-120.644 L 99.0818,-122.512 L 99.0818,-124.488 L 99.7231,-126.356
|
||||||
|
L 100.936,-127.914 L 102.59,-128.995 L 104.505,-129.479 L 106.473,-129.316 L 108.282,-128.523 L 109.735,-127.185
|
||||||
|
L 110.675,-125.448 L 111,-123.5 L 110.675,-121.552 L 109.735,-119.815 L 108.282,-118.477 L 106.473,-117.684
|
||||||
|
L 104.505,-117.52 z
|
||||||
|
M 69.2565,-118.005 L 67.603,-119.086 L 66.3898,-120.644 L 65.7485,-122.512 L 65.7485,-124.488 L 66.3898,-126.356
|
||||||
|
L 67.603,-127.914 L 69.2565,-128.995 L 71.1712,-129.479 L 73.1396,-129.316 L 74.9483,-128.523 L 76.4015,-127.185
|
||||||
|
L 77.3416,-125.448 L 77.6667,-123.5 L 77.3416,-121.552 L 76.4015,-119.815 L 74.9483,-118.477 L 73.1396,-117.684
|
||||||
|
L 71.1712,-117.52 z
|
||||||
|
M 35.9231,-118.005 L 34.2696,-119.086 L 33.0565,-120.644 L 32.4151,-122.512 L 32.4151,-124.488 L 33.0565,-126.356
|
||||||
|
L 34.2696,-127.914 L 35.9231,-128.995 L 37.8378,-129.479 L 39.8062,-129.316 L 41.615,-128.523 L 43.0682,-127.185
|
||||||
|
L 44.0082,-125.448 L 44.3333,-123.5 L 44.0082,-121.552 L 43.0682,-119.815 L 41.615,-118.477 L 39.8062,-117.684
|
||||||
|
L 37.8378,-117.52 z
|
||||||
|
M 169.256,-83.0054 L 167.603,-84.0856 L 166.39,-85.6443 L 165.748,-87.5124 L 165.748,-89.4876 L 166.39,-91.3557
|
||||||
|
L 167.603,-92.9143 L 169.256,-93.9946 L 171.171,-94.4795 L 173.14,-94.3164 L 174.948,-93.523 L 176.402,-92.1853
|
||||||
|
L 177.342,-90.4482 L 177.667,-88.5 L 177.342,-86.5518 L 176.402,-84.8147 L 174.948,-83.477 L 173.14,-82.6836
|
||||||
|
L 171.171,-82.5205 z
|
||||||
|
M 202.59,-83.0054 L 200.936,-84.0856 L 199.723,-85.6443 L 199.082,-87.5124 L 199.082,-89.4876 L 199.723,-91.3557
|
||||||
|
L 200.936,-92.9143 L 202.59,-93.9946 L 204.505,-94.4795 L 206.473,-94.3164 L 208.282,-93.523 L 209.735,-92.1853
|
||||||
|
L 210.675,-90.4482 L 211,-88.5 L 210.675,-86.5518 L 209.735,-84.8147 L 208.282,-83.477 L 206.473,-82.6836
|
||||||
|
L 204.505,-82.5205 z
|
||||||
|
M 302.59,-83.0054 L 300.936,-84.0856 L 299.723,-85.6443 L 299.082,-87.5124 L 299.082,-89.4876 L 299.723,-91.3557
|
||||||
|
L 300.936,-92.9143 L 302.59,-93.9946 L 304.505,-94.4795 L 306.473,-94.3164 L 308.282,-93.523 L 309.735,-92.1853
|
||||||
|
L 310.675,-90.4482 L 311,-88.5 L 310.675,-86.5518 L 309.735,-84.8147 L 308.282,-83.477 L 306.473,-82.6836
|
||||||
|
L 304.505,-82.5205 z
|
||||||
|
M 135.923,-83.0054 L 134.27,-84.0856 L 133.056,-85.6443 L 132.415,-87.5124 L 132.415,-89.4876 L 133.056,-91.3557
|
||||||
|
L 134.27,-92.9143 L 135.923,-93.9946 L 137.838,-94.4795 L 139.806,-94.3164 L 141.615,-93.523 L 143.068,-92.1853
|
||||||
|
L 144.008,-90.4482 L 144.333,-88.5 L 144.008,-86.5518 L 143.068,-84.8147 L 141.615,-83.477 L 139.806,-82.6836
|
||||||
|
L 137.838,-82.5205 z
|
||||||
|
M 102.59,-83.0054 L 100.936,-84.0856 L 99.7231,-85.6443 L 99.0818,-87.5124 L 99.0818,-89.4876 L 99.7231,-91.3557
|
||||||
|
L 100.936,-92.9143 L 102.59,-93.9946 L 104.505,-94.4795 L 106.473,-94.3164 L 108.282,-93.523 L 109.735,-92.1853
|
||||||
|
L 110.675,-90.4482 L 111,-88.5 L 110.675,-86.5518 L 109.735,-84.8147 L 108.282,-83.477 L 106.473,-82.6836
|
||||||
|
L 104.505,-82.5205 z
|
||||||
|
M 35.9231,-83.0054 L 34.2696,-84.0856 L 33.0565,-85.6443 L 32.4151,-87.5124 L 32.4151,-89.4876 L 33.0565,-91.3557
|
||||||
|
L 34.2696,-92.9143 L 35.9231,-93.9946 L 37.8378,-94.4795 L 39.8062,-94.3164 L 41.615,-93.523 L 43.0682,-92.1853
|
||||||
|
L 44.0082,-90.4482 L 44.3333,-88.5 L 44.0082,-86.5518 L 43.0682,-84.8147 L 41.615,-83.477 L 39.8062,-82.6836
|
||||||
|
L 37.8378,-82.5205 z
|
||||||
|
M 235.923,-83.0054 L 234.27,-84.0856 L 233.056,-85.6443 L 232.415,-87.5124 L 232.415,-89.4876 L 233.056,-91.3557
|
||||||
|
L 234.27,-92.9143 L 235.923,-93.9946 L 237.838,-94.4795 L 239.806,-94.3164 L 241.615,-93.523 L 243.068,-92.1853
|
||||||
|
L 244.008,-90.4482 L 244.333,-88.5 L 244.008,-86.5518 L 243.068,-84.8147 L 241.615,-83.477 L 239.806,-82.6836
|
||||||
|
L 237.838,-82.5205 z
|
||||||
|
M 269.256,-83.0054 L 267.603,-84.0856 L 266.39,-85.6443 L 265.748,-87.5124 L 265.748,-89.4876 L 266.39,-91.3557
|
||||||
|
L 267.603,-92.9143 L 269.256,-93.9946 L 271.171,-94.4795 L 273.14,-94.3164 L 274.948,-93.523 L 276.402,-92.1853
|
||||||
|
L 277.342,-90.4482 L 277.667,-88.5 L 277.342,-86.5518 L 276.402,-84.8147 L 274.948,-83.477 L 273.14,-82.6836
|
||||||
|
L 271.171,-82.5205 z
|
||||||
|
M 335.923,-83.0054 L 334.27,-84.0856 L 333.056,-85.6443 L 332.415,-87.5124 L 332.415,-89.4876 L 333.056,-91.3557
|
||||||
|
L 334.27,-92.9143 L 335.923,-93.9946 L 337.838,-94.4795 L 339.806,-94.3164 L 341.615,-93.523 L 343.068,-92.1853
|
||||||
|
L 344.008,-90.4482 L 344.333,-88.5 L 344.008,-86.5518 L 343.068,-84.8147 L 341.615,-83.477 L 339.806,-82.6836
|
||||||
|
L 337.838,-82.5205 z
|
||||||
|
M 369.256,-83.0054 L 367.603,-84.0856 L 366.39,-85.6443 L 365.748,-87.5124 L 365.748,-89.4876 L 366.39,-91.3557
|
||||||
|
L 367.603,-92.9143 L 369.256,-93.9946 L 371.171,-94.4795 L 373.14,-94.3164 L 374.948,-93.523 L 376.402,-92.1853
|
||||||
|
L 377.342,-90.4482 L 377.667,-88.5 L 377.342,-86.5518 L 376.402,-84.8147 L 374.948,-83.477 L 373.14,-82.6836
|
||||||
|
L 371.171,-82.5205 z
|
||||||
|
M 69.2565,-83.0054 L 67.603,-84.0856 L 66.3898,-85.6443 L 65.7485,-87.5124 L 65.7485,-89.4876 L 66.3898,-91.3557
|
||||||
|
L 67.603,-92.9143 L 69.2565,-93.9946 L 71.1712,-94.4795 L 73.1396,-94.3164 L 74.9483,-93.523 L 76.4015,-92.1853
|
||||||
|
L 77.3416,-90.4482 L 77.6667,-88.5 L 77.3416,-86.5518 L 76.4015,-84.8147 L 74.9483,-83.477 L 73.1396,-82.6836
|
||||||
|
L 71.1712,-82.5205 z
|
||||||
|
M 135.923,-48.0054 L 134.27,-49.0856 L 133.056,-50.6443 L 132.415,-52.5124 L 132.415,-54.4876 L 133.056,-56.3557
|
||||||
|
L 134.27,-57.9143 L 135.923,-58.9946 L 137.838,-59.4795 L 139.806,-59.3164 L 141.615,-58.523 L 143.068,-57.1853
|
||||||
|
L 144.008,-55.4482 L 144.333,-53.5 L 144.008,-51.5518 L 143.068,-49.8147 L 141.615,-48.477 L 139.806,-47.6836
|
||||||
|
L 137.838,-47.5205 z
|
||||||
|
M 235.923,-48.0054 L 234.27,-49.0856 L 233.056,-50.6443 L 232.415,-52.5124 L 232.415,-54.4876 L 233.056,-56.3557
|
||||||
|
L 234.27,-57.9143 L 235.923,-58.9946 L 237.838,-59.4795 L 239.806,-59.3164 L 241.615,-58.523 L 243.068,-57.1853
|
||||||
|
L 244.008,-55.4482 L 244.333,-53.5 L 244.008,-51.5518 L 243.068,-49.8147 L 241.615,-48.477 L 239.806,-47.6836
|
||||||
|
L 237.838,-47.5205 z
|
||||||
|
M 35.9231,-48.0054 L 34.2696,-49.0856 L 33.0565,-50.6443 L 32.4151,-52.5124 L 32.4151,-54.4876 L 33.0565,-56.3557
|
||||||
|
L 34.2696,-57.9143 L 35.9231,-58.9946 L 37.8378,-59.4795 L 39.8062,-59.3164 L 41.615,-58.523 L 43.0682,-57.1853
|
||||||
|
L 44.0082,-55.4482 L 44.3333,-53.5 L 44.0082,-51.5518 L 43.0682,-49.8147 L 41.615,-48.477 L 39.8062,-47.6836
|
||||||
|
L 37.8378,-47.5205 z
|
||||||
|
M 102.59,-48.0054 L 100.936,-49.0856 L 99.7231,-50.6443 L 99.0818,-52.5124 L 99.0818,-54.4876 L 99.7231,-56.3557
|
||||||
|
L 100.936,-57.9143 L 102.59,-58.9946 L 104.505,-59.4795 L 106.473,-59.3164 L 108.282,-58.523 L 109.735,-57.1853
|
||||||
|
L 110.675,-55.4482 L 111,-53.5 L 110.675,-51.5518 L 109.735,-49.8147 L 108.282,-48.477 L 106.473,-47.6836
|
||||||
|
L 104.505,-47.5205 z
|
||||||
|
M 69.2565,-48.0054 L 67.603,-49.0856 L 66.3898,-50.6443 L 65.7485,-52.5124 L 65.7485,-54.4876 L 66.3898,-56.3557
|
||||||
|
L 67.603,-57.9143 L 69.2565,-58.9946 L 71.1712,-59.4795 L 73.1396,-59.3164 L 74.9483,-58.523 L 76.4015,-57.1853
|
||||||
|
L 77.3416,-55.4482 L 77.6667,-53.5 L 77.3416,-51.5518 L 76.4015,-49.8147 L 74.9483,-48.477 L 73.1396,-47.6836
|
||||||
|
L 71.1712,-47.5205 z
|
||||||
|
M 202.59,-48.0054 L 200.936,-49.0856 L 199.723,-50.6443 L 199.082,-52.5124 L 199.082,-54.4876 L 199.723,-56.3557
|
||||||
|
L 200.936,-57.9143 L 202.59,-58.9946 L 204.505,-59.4795 L 206.473,-59.3164 L 208.282,-58.523 L 209.735,-57.1853
|
||||||
|
L 210.675,-55.4482 L 211,-53.5 L 210.675,-51.5518 L 209.735,-49.8147 L 208.282,-48.477 L 206.473,-47.6836
|
||||||
|
L 204.505,-47.5205 z
|
||||||
|
M 169.256,-48.0054 L 167.603,-49.0856 L 166.39,-50.6443 L 165.748,-52.5124 L 165.748,-54.4876 L 166.39,-56.3557
|
||||||
|
L 167.603,-57.9143 L 169.256,-58.9946 L 171.171,-59.4795 L 173.14,-59.3164 L 174.948,-58.523 L 176.402,-57.1853
|
||||||
|
L 177.342,-55.4482 L 177.667,-53.5 L 177.342,-51.5518 L 176.402,-49.8147 L 174.948,-48.477 L 173.14,-47.6836
|
||||||
|
L 171.171,-47.5205 z
|
||||||
|
M 269.256,-48.0054 L 267.603,-49.0856 L 266.39,-50.6443 L 265.748,-52.5124 L 265.748,-54.4876 L 266.39,-56.3557
|
||||||
|
L 267.603,-57.9143 L 269.256,-58.9946 L 271.171,-59.4795 L 273.14,-59.3164 L 274.948,-58.523 L 276.402,-57.1853
|
||||||
|
L 277.342,-55.4482 L 277.667,-53.5 L 277.342,-51.5518 L 276.402,-49.8147 L 274.948,-48.477 L 273.14,-47.6836
|
||||||
|
L 271.171,-47.5205 z
|
||||||
|
M 302.59,-48.0054 L 300.936,-49.0856 L 299.723,-50.6443 L 299.082,-52.5124 L 299.082,-54.4876 L 299.723,-56.3557
|
||||||
|
L 300.936,-57.9143 L 302.59,-58.9946 L 304.505,-59.4795 L 306.473,-59.3164 L 308.282,-58.523 L 309.735,-57.1853
|
||||||
|
L 310.675,-55.4482 L 311,-53.5 L 310.675,-51.5518 L 309.735,-49.8147 L 308.282,-48.477 L 306.473,-47.6836
|
||||||
|
L 304.505,-47.5205 z
|
||||||
|
M 369.256,-48.0054 L 367.603,-49.0856 L 366.39,-50.6443 L 365.748,-52.5124 L 365.748,-54.4876 L 366.39,-56.3557
|
||||||
|
L 367.603,-57.9143 L 369.256,-58.9946 L 371.171,-59.4795 L 373.14,-59.3164 L 374.948,-58.523 L 376.402,-57.1853
|
||||||
|
L 377.342,-55.4482 L 377.667,-53.5 L 377.342,-51.5518 L 376.402,-49.8147 L 374.948,-48.477 L 373.14,-47.6836
|
||||||
|
L 371.171,-47.5205 z
|
||||||
|
M 335.923,-48.0054 L 334.27,-49.0856 L 333.056,-50.6443 L 332.415,-52.5124 L 332.415,-54.4876 L 333.056,-56.3557
|
||||||
|
L 334.27,-57.9143 L 335.923,-58.9946 L 337.838,-59.4795 L 339.806,-59.3164 L 341.615,-58.523 L 343.068,-57.1853
|
||||||
|
L 344.008,-55.4482 L 344.333,-53.5 L 344.008,-51.5518 L 343.068,-49.8147 L 341.615,-48.477 L 339.806,-47.6836
|
||||||
|
L 337.838,-47.5205 z
|
||||||
|
M 402.382,-30.0979 L 401.382,-30.8244 L 401,-32 L 401.382,-33.1756 L 402.382,-33.9021 L 403.618,-33.9021
|
||||||
|
L 404.618,-33.1756 L 405,-32 L 404.618,-30.8244 L 403.618,-30.0979 z
|
||||||
|
M 6.38196,-30.0979 L 5.38196,-30.8244 L 5,-32 L 5.38196,-33.1756 L 6.38196,-33.9021 L 7.61803,-33.9021
|
||||||
|
L 8.61803,-33.1756 L 9,-32 L 8.61803,-30.8244 L 7.61803,-30.0979 z
|
||||||
|
M 202.59,-13.0054 L 200.936,-14.0856 L 199.723,-15.6443 L 199.082,-17.5124 L 199.082,-19.4876 L 199.723,-21.3557
|
||||||
|
L 200.936,-22.9143 L 202.59,-23.9946 L 204.505,-24.4795 L 206.473,-24.3164 L 208.282,-23.523 L 209.735,-22.1853
|
||||||
|
L 210.675,-20.4482 L 211,-18.5 L 210.675,-16.5518 L 209.735,-14.8147 L 208.282,-13.477 L 206.473,-12.6836
|
||||||
|
L 204.505,-12.5205 z
|
||||||
|
M 169.256,-13.0054 L 167.603,-14.0856 L 166.39,-15.6443 L 165.748,-17.5124 L 165.748,-19.4876 L 166.39,-21.3557
|
||||||
|
L 167.603,-22.9143 L 169.256,-23.9946 L 171.171,-24.4795 L 173.14,-24.3164 L 174.948,-23.523 L 176.402,-22.1853
|
||||||
|
L 177.342,-20.4482 L 177.667,-18.5 L 177.342,-16.5518 L 176.402,-14.8147 L 174.948,-13.477 L 173.14,-12.6836
|
||||||
|
L 171.171,-12.5205 z
|
||||||
|
M 35.9231,-13.0054 L 34.2696,-14.0856 L 33.0565,-15.6443 L 32.4151,-17.5124 L 32.4151,-19.4876 L 33.0565,-21.3557
|
||||||
|
L 34.2696,-22.9143 L 35.9231,-23.9946 L 37.8378,-24.4795 L 39.8062,-24.3164 L 41.615,-23.523 L 43.0682,-22.1853
|
||||||
|
L 44.0082,-20.4482 L 44.3333,-18.5 L 44.0082,-16.5518 L 43.0682,-14.8147 L 41.615,-13.477 L 39.8062,-12.6836
|
||||||
|
L 37.8378,-12.5205 z
|
||||||
|
M 135.923,-13.0054 L 134.27,-14.0856 L 133.056,-15.6443 L 132.415,-17.5124 L 132.415,-19.4876 L 133.056,-21.3557
|
||||||
|
L 134.27,-22.9143 L 135.923,-23.9946 L 137.838,-24.4795 L 139.806,-24.3164 L 141.615,-23.523 L 143.068,-22.1853
|
||||||
|
L 144.008,-20.4482 L 144.333,-18.5 L 144.008,-16.5518 L 143.068,-14.8147 L 141.615,-13.477 L 139.806,-12.6836
|
||||||
|
L 137.838,-12.5205 z
|
||||||
|
M 102.59,-13.0054 L 100.936,-14.0856 L 99.7231,-15.6443 L 99.0818,-17.5124 L 99.0818,-19.4876 L 99.7231,-21.3557
|
||||||
|
L 100.936,-22.9143 L 102.59,-23.9946 L 104.505,-24.4795 L 106.473,-24.3164 L 108.282,-23.523 L 109.735,-22.1853
|
||||||
|
L 110.675,-20.4482 L 111,-18.5 L 110.675,-16.5518 L 109.735,-14.8147 L 108.282,-13.477 L 106.473,-12.6836
|
||||||
|
L 104.505,-12.5205 z
|
||||||
|
M 69.2565,-13.0054 L 67.603,-14.0856 L 66.3898,-15.6443 L 65.7485,-17.5124 L 65.7485,-19.4876 L 66.3898,-21.3557
|
||||||
|
L 67.603,-22.9143 L 69.2565,-23.9946 L 71.1712,-24.4795 L 73.1396,-24.3164 L 74.9483,-23.523 L 76.4015,-22.1853
|
||||||
|
L 77.3416,-20.4482 L 77.6667,-18.5 L 77.3416,-16.5518 L 76.4015,-14.8147 L 74.9483,-13.477 L 73.1396,-12.6836
|
||||||
|
L 71.1712,-12.5205 z
|
||||||
|
M 302.59,-13.0054 L 300.936,-14.0856 L 299.723,-15.6443 L 299.082,-17.5124 L 299.082,-19.4876 L 299.723,-21.3557
|
||||||
|
L 300.936,-22.9143 L 302.59,-23.9946 L 304.505,-24.4795 L 306.473,-24.3164 L 308.282,-23.523 L 309.735,-22.1853
|
||||||
|
L 310.675,-20.4482 L 311,-18.5 L 310.675,-16.5518 L 309.735,-14.8147 L 308.282,-13.477 L 306.473,-12.6836
|
||||||
|
L 304.505,-12.5205 z
|
||||||
|
M 335.923,-13.0054 L 334.27,-14.0856 L 333.056,-15.6443 L 332.415,-17.5124 L 332.415,-19.4876 L 333.056,-21.3557
|
||||||
|
L 334.27,-22.9143 L 335.923,-23.9946 L 337.838,-24.4795 L 339.806,-24.3164 L 341.615,-23.523 L 343.068,-22.1853
|
||||||
|
L 344.008,-20.4482 L 344.333,-18.5 L 344.008,-16.5518 L 343.068,-14.8147 L 341.615,-13.477 L 339.806,-12.6836
|
||||||
|
L 337.838,-12.5205 z
|
||||||
|
M 369.256,-13.0054 L 367.603,-14.0856 L 366.39,-15.6443 L 365.748,-17.5124 L 365.748,-19.4876 L 366.39,-21.3557
|
||||||
|
L 367.603,-22.9143 L 369.256,-23.9946 L 371.171,-24.4795 L 373.14,-24.3164 L 374.948,-23.523 L 376.402,-22.1853
|
||||||
|
L 377.342,-20.4482 L 377.667,-18.5 L 377.342,-16.5518 L 376.402,-14.8147 L 374.948,-13.477 L 373.14,-12.6836
|
||||||
|
L 371.171,-12.5205 z
|
||||||
|
M 269.256,-13.0054 L 267.603,-14.0856 L 266.39,-15.6443 L 265.748,-17.5124 L 265.748,-19.4876 L 266.39,-21.3557
|
||||||
|
L 267.603,-22.9143 L 269.256,-23.9946 L 271.171,-24.4795 L 273.14,-24.3164 L 274.948,-23.523 L 276.402,-22.1853
|
||||||
|
L 277.342,-20.4482 L 277.667,-18.5 L 277.342,-16.5518 L 276.402,-14.8147 L 274.948,-13.477 L 273.14,-12.6836
|
||||||
|
L 271.171,-12.5205 z
|
||||||
|
M 235.923,-13.0054 L 234.27,-14.0856 L 233.056,-15.6443 L 232.415,-17.5124 L 232.415,-19.4876 L 233.056,-21.3557
|
||||||
|
L 234.27,-22.9143 L 235.923,-23.9946 L 237.838,-24.4795 L 239.806,-24.3164 L 241.615,-23.523 L 243.068,-22.1853
|
||||||
|
L 244.008,-20.4482 L 244.333,-18.5 L 244.008,-16.5518 L 243.068,-14.8147 L 241.615,-13.477 L 239.806,-12.6836
|
||||||
|
L 237.838,-12.5205 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 16 KiB |
21
hw/layers/led_bottom.svg
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="171mm" viewBox="0 0 410 171" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,153 L 390,153 L 390,161 L 334,161 L 334,135 L 390,135
|
||||||
|
L 390,143 L 410,143 L 410,-0 L 396.333,-0 L 396.333,24 L 23.6667,24
|
||||||
|
L 23.6667,48 L 396.333,48 L 396.333,94 L 23.6667,94 L 23.6667,118 L 393.833,118
|
||||||
|
L 393.833,129 L 13.6667,129 L 13.6667,83 L 385.333,83 L 385.333,59 L 13.6667,59
|
||||||
|
L 13.6667,13 L 385.333,13 L 385.333,-0 L 0,-0 L 0,171 L 410,171
|
||||||
|
z
|
||||||
|
M 6.38196,33.9021 L 5.38196,33.1756 L 5,32 L 5.38196,30.8244 L 6.38196,30.0979 L 7.61803,30.0979
|
||||||
|
L 8.61803,30.8244 L 9,32 L 8.61803,33.1756 L 7.61803,33.9021 z
|
||||||
|
M 402.382,33.9021 L 401.382,33.1756 L 401,32 L 401.382,30.8244 L 402.382,30.0979 L 403.618,30.0979
|
||||||
|
L 404.618,30.8244 L 405,32 L 404.618,33.1756 L 403.618,33.9021 z
|
||||||
|
M 6.38196,165.902 L 5.38196,165.176 L 5,164 L 5.38196,162.824 L 6.38196,162.098 L 7.61803,162.098
|
||||||
|
L 8.61803,162.824 L 9,164 L 8.61803,165.176 L 7.61803,165.902 z
|
||||||
|
M 402.382,165.902 L 401.382,165.176 L 401,164 L 401.382,162.824 L 402.382,162.098 L 403.618,162.098
|
||||||
|
L 404.618,162.824 L 405,164 L 404.618,165.176 L 403.618,165.902 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
21
hw/layers/led_top.svg
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="239mm" viewBox="0 -239 410 239" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-239 L 0,-239 L 0,-0 L 385.333,-0 L 385.333,-11 L 13.6667,-11
|
||||||
|
L 13.6667,-57 L 385.333,-57 L 385.333,-81 L 13.6667,-81 L 13.6667,-127 L 385.333,-127
|
||||||
|
L 385.333,-151 L 13.6667,-151 L 13.6667,-197 L 393.833,-197 L 393.833,-186 L 23.6667,-186
|
||||||
|
L 23.6667,-162 L 396.333,-162 L 396.333,-116 L 23.6667,-116 L 23.6667,-92 L 396.333,-92
|
||||||
|
L 396.333,-46 L 23.6667,-46 L 23.6667,-22 L 396.333,-22 L 396.333,-0 L 410,-0
|
||||||
|
z
|
||||||
|
M 6.38196,-230.098 L 5.38196,-230.824 L 5,-232 L 5.38196,-233.176 L 6.38196,-233.902 L 7.61803,-233.902
|
||||||
|
L 8.61803,-233.176 L 9,-232 L 8.61803,-230.824 L 7.61803,-230.098 z
|
||||||
|
M 402.382,-230.098 L 401.382,-230.824 L 401,-232 L 401.382,-233.176 L 402.382,-233.902 L 403.618,-233.902
|
||||||
|
L 404.618,-233.176 L 405,-232 L 404.618,-230.824 L 403.618,-230.098 z
|
||||||
|
M 6.38196,-98.0979 L 5.38196,-98.8244 L 5,-100 L 5.38196,-101.176 L 6.38196,-101.902 L 7.61803,-101.902
|
||||||
|
L 8.61803,-101.176 L 9,-100 L 8.61803,-98.8244 L 7.61803,-98.0979 z
|
||||||
|
M 402.382,-98.0979 L 401.382,-98.8244 L 401,-100 L 401.382,-101.176 L 402.382,-101.902 L 403.618,-101.902
|
||||||
|
L 404.618,-101.176 L 405,-100 L 404.618,-98.8244 L 403.618,-98.0979 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
253
hw/layers/words_bottom.svg
Normal file
|
@ -0,0 +1,253 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="171mm" viewBox="0 0 410 171" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-0 L 0,-0 L 0,171 L 410,171 z
|
||||||
|
M 373.567,27.1118 L 373.87,27.087 L 375.546,26.619 L 376.985,25.839 L 378.189,24.747 L 379.139,23.3695
|
||||||
|
L 379.817,21.734 L 380.224,19.8405 L 380.36,17.689 L 380.223,15.6247 L 379.813,13.7948 L 379.129,12.1992
|
||||||
|
L 378.172,10.838 L 376.965,9.74951 L 375.533,8.972 L 373.875,8.50551 L 373.567,8.48007 L 373.567,5.83684
|
||||||
|
L 373.72,5.8447 L 375.33,6.11076 L 376.822,6.5542 L 378.195,7.175 L 379.432,7.96489 L 380.513,8.91551
|
||||||
|
L 381.44,10.0269 L 382.212,11.299 L 382.82,12.7127 L 383.254,14.2488 L 383.514,15.9072 L 383.601,17.688
|
||||||
|
L 383.513,19.465 L 383.25,21.1278 L 382.81,22.6765 L 382.195,24.111 L 381.416,25.4086 L 380.484,26.5465
|
||||||
|
L 379.4,27.5246 L 378.162,28.343 L 376.789,28.9892 L 375.297,29.4508 L 373.687,29.7277 L 373.567,29.7341
|
||||||
|
z
|
||||||
|
M 73.5667,27.1118 L 73.8699,27.087 L 75.5458,26.619 L 76.9854,25.839 L 78.189,24.747 L 79.1388,23.3695
|
||||||
|
L 79.8173,21.734 L 80.2243,19.8405 L 80.36,17.689 L 80.2233,15.6247 L 79.813,13.7948 L 79.1293,12.1992
|
||||||
|
L 78.172,10.838 L 76.9652,9.74951 L 75.5328,8.972 L 73.8747,8.50551 L 73.5667,8.48007 L 73.5667,5.83684
|
||||||
|
L 73.7198,5.8447 L 75.33,6.11076 L 76.8218,6.5542 L 78.195,7.175 L 79.4316,7.96489 L 80.5133,8.91551
|
||||||
|
L 81.4401,10.0269 L 82.212,11.299 L 82.8197,12.7127 L 83.2538,14.2488 L 83.5142,15.9072 L 83.601,17.688
|
||||||
|
L 83.5131,19.465 L 83.2495,21.1278 L 82.8101,22.6765 L 82.195,24.111 L 81.4161,25.4086 L 80.4843,26.5465
|
||||||
|
L 79.3996,27.5246 L 78.162,28.343 L 76.7888,28.9892 L 75.297,29.4508 L 73.6868,29.7277 L 73.5667,29.7341
|
||||||
|
z
|
||||||
|
M 370.215,29.7287 L 368.596,29.455 L 367.1,28.9988 L 365.728,28.36 L 364.496,27.5481 L 363.419,26.5735
|
||||||
|
L 362.496,25.4361 L 361.728,24.136 L 361.124,22.6969 L 360.693,21.1425 L 360.434,19.4729 L 360.348,17.688
|
||||||
|
L 360.54,15.0365 L 361.117,12.691 L 362.079,10.6515 L 363.425,8.91801 L 365.114,7.53464 L 367.105,6.54651
|
||||||
|
L 369.397,5.95363 L 370.567,5.86453 L 370.567,8.46512 L 370.092,8.50345 L 368.423,8.96376 L 366.981,9.73094
|
||||||
|
L 365.769,10.805 L 364.808,12.1559 L 364.122,13.7535 L 363.71,15.5979 L 363.573,17.689 L 363.712,19.7731
|
||||||
|
L 364.128,21.6303 L 364.822,23.2606 L 365.794,24.664 L 367.012,25.7923 L 368.446,26.5983 L 370.094,27.0818
|
||||||
|
L 370.567,27.1227 L 370.567,29.7472 z
|
||||||
|
M 70.2149,29.7287 L 68.5955,29.455 L 67.0999,28.9988 L 65.728,28.36 L 64.4959,27.5481 L 63.4185,26.5735
|
||||||
|
L 62.4959,25.4361 L 61.728,24.136 L 61.1243,22.6969 L 60.693,21.1425 L 60.4343,19.4729 L 60.348,17.688
|
||||||
|
L 60.5403,15.0365 L 61.1173,12.691 L 62.0788,10.6515 L 63.425,8.91801 L 65.1143,7.53464 L 67.105,6.54651
|
||||||
|
L 69.3973,5.95363 L 70.5667,5.86453 L 70.5667,8.46512 L 70.0924,8.50345 L 68.4225,8.96376 L 66.9814,9.73094
|
||||||
|
L 65.769,10.805 L 64.8083,12.1559 L 64.122,13.7535 L 63.7103,15.5979 L 63.573,17.689 L 63.7118,19.7731
|
||||||
|
L 64.1283,21.6303 L 64.8223,23.2606 L 65.794,24.664 L 67.0121,25.7923 L 68.4455,26.5983 L 70.0941,27.0818
|
||||||
|
L 70.5667,27.1227 L 70.5667,29.7472 z
|
||||||
|
M 236.958,29.5 L 227.394,6.076 L 230.735,6.076 L 237.223,22.568 L 238.621,26.707 L 240.018,22.568
|
||||||
|
L 246.473,6.076 L 249.814,6.076 L 240.25,29.5 z
|
||||||
|
M 329.689,29.5 L 322.792,6.076 L 326.1,6.076 L 330.305,20.955 L 330.671,22.3619 L 331.023,23.7895
|
||||||
|
L 331.361,25.2379 L 331.684,26.707 L 331.891,25.7718 L 332.114,24.795 L 332.352,23.7768 L 332.606,22.717
|
||||||
|
L 333.091,20.8666 L 334.021,17.4763 L 335.397,12.5461 L 337.218,6.076 L 340.261,6.076 L 344.333,20.656
|
||||||
|
L 344.773,22.3745 L 345.163,23.9558 L 345.504,25.3999 L 345.795,26.707 L 345.945,26.125 L 346.159,25.2132
|
||||||
|
L 346.524,23.6547 L 346.675,23.008 L 347.073,21.4979 L 347.984,18.1725 L 349.408,13.0319 L 351.345,6.076
|
||||||
|
L 354.654,6.076 L 347.756,29.5 L 343.966,29.5 L 339.911,14.621 L 339.689,13.7848 L 339.421,12.672
|
||||||
|
L 339.107,11.2828 L 338.748,9.617 L 338.54,10.5416 L 338.349,11.3873 L 338.175,12.1541 L 338.017,12.842
|
||||||
|
L 337.621,14.3695 L 336.733,17.655 L 335.353,22.6985 L 333.48,29.5 z
|
||||||
|
M 103.749,29.7546 L 102.449,29.5582 L 101.24,29.2311 L 100.122,28.773 L 99.1108,28.1904 L 98.2199,27.4895
|
||||||
|
L 97.4493,26.6704 L 96.7991,25.733 L 96.2829,24.6882 L 95.9141,23.5478 L 95.6929,22.3117 L 95.6191,20.98
|
||||||
|
L 95.6191,6.076 L 98.7941,6.076 L 98.7941,20.713 L 98.8959,22.2199 L 99.2011,23.5338 L 99.7099,24.6544
|
||||||
|
L 100.422,25.582 L 101.327,26.3087 L 102.412,26.8278 L 103.678,27.1392 L 105.124,27.243 L 106.614,27.1356
|
||||||
|
L 107.929,26.8133 L 109.069,26.2761 L 110.033,25.524 L 110.8,24.5648 L 111.348,23.4073 L 111.677,22.0513
|
||||||
|
L 111.786,20.497 L 111.786,6.076 L 114.945,6.076 L 114.945,20.681 L 114.87,22.0531 L 114.644,23.3275
|
||||||
|
L 114.267,24.5041 L 113.74,25.583 L 113.075,26.5523 L 112.286,27.4003 L 111.372,28.1268 L 110.333,28.732
|
||||||
|
L 109.183,29.208 L 107.935,29.548 L 106.587,29.752 L 105.141,29.82 z
|
||||||
|
M 164.304,29.5 L 164.304,6.076 L 180.948,6.076 L 180.948,8.67001 L 167.479,8.67001 L 167.479,17.404
|
||||||
|
L 180.549,17.404 L 180.549,20.031 L 167.479,20.031 L 167.479,29.5 z
|
||||||
|
M 303.657,29.5 L 303.657,8.67001 L 295.61,8.67001 L 295.61,6.076 L 314.864,6.076 L 314.864,8.67001
|
||||||
|
L 306.816,8.67001 L 306.816,29.5 z
|
||||||
|
M 129.119,29.5 L 129.119,6.076 L 137.233,6.076 L 137.233,8.62001 L 132.294,8.62001 L 132.294,17.276
|
||||||
|
L 137.233,17.276 L 137.233,19.786 L 132.294,19.786 L 132.294,29.5 z
|
||||||
|
M 263.372,29.5 L 263.372,6.076 L 281.152,6.076 L 281.152,8.67001 L 266.547,8.67001 L 266.547,16.188
|
||||||
|
L 280.154,16.188 L 280.154,18.748 L 266.547,18.748 L 266.547,26.906 L 281.834,26.906 L 281.834,29.5
|
||||||
|
z
|
||||||
|
M 30.9711,29.5 L 30.9711,6.076 L 47.6151,6.076 L 47.6151,8.67001 L 34.1461,8.67001 L 34.1461,17.404
|
||||||
|
L 47.216,17.404 L 47.216,20.031 L 34.1461,20.031 L 34.1461,29.5 z
|
||||||
|
M 203.527,29.5 L 203.527,6.076 L 206.703,6.076 L 206.703,29.5 z
|
||||||
|
M 145.667,29.5 L 140.233,20.8193 L 140.233,17.2586 L 141.136,17.2027 L 142.177,16.9828 L 143.075,16.6162
|
||||||
|
L 143.831,16.103 L 144.431,15.4573 L 144.86,14.694 L 145.117,13.8133 L 145.202,12.815 L 145.116,11.8519
|
||||||
|
L 144.856,11.0108 L 144.422,10.2914 L 143.815,9.694 L 143.046,9.22414 L 142.123,8.8885 L 141.048,8.68713
|
||||||
|
L 140.233,8.64258 L 140.233,6.08176 L 142.001,6.18675 L 143.64,6.51901 L 145.054,7.07275 L 146.242,7.84801
|
||||||
|
L 147.184,8.82088 L 147.856,9.96751 L 148.26,11.2879 L 148.394,12.782 L 148.299,14.0361 L 148.014,15.1863
|
||||||
|
L 147.539,16.2326 L 146.873,17.175 L 146.041,17.9829 L 145.065,18.6265 L 143.944,19.1059 L 142.678,19.421
|
||||||
|
L 149.324,29.5 z
|
||||||
|
M 6.38196,33.9021 L 5.38196,33.1756 L 5,32 L 5.38196,30.8244 L 6.38196,30.0979 L 7.61803,30.0979
|
||||||
|
L 8.61803,30.8244 L 9,32 L 8.61803,33.1756 L 7.61803,33.9021 z
|
||||||
|
M 402.382,33.9021 L 401.382,33.1756 L 401,32 L 401.382,30.8244 L 402.382,30.0979 L 403.618,30.0979
|
||||||
|
L 404.618,30.8244 L 405,32 L 404.618,33.1756 L 403.618,33.9021 z
|
||||||
|
M 103.816,64.7287 L 102.168,64.455 L 100.647,63.9988 L 99.2534,63.36 L 98.0013,62.5492 L 96.9061,61.5778
|
||||||
|
L 95.9678,60.4457 L 95.1864,59.153 L 94.5717,57.7188 L 94.1326,56.1633 L 93.8692,54.4863 L 93.7814,52.688
|
||||||
|
L 93.9726,50.0028 L 94.5464,47.639 L 95.5026,45.5968 L 96.8414,43.876 L 98.5267,42.511 L 100.522,41.536
|
||||||
|
L 102.827,40.951 L 105.441,40.756 L 107.296,40.8379 L 108.967,41.0835 L 110.456,41.4929 L 111.761,42.066
|
||||||
|
L 112.906,42.8194 L 113.912,43.7698 L 114.778,44.9169 L 115.504,46.261 L 112.478,47.156 L 111.932,46.2303
|
||||||
|
L 111.291,45.439 L 110.556,44.7823 L 109.725,44.26 L 108.794,43.8619 L 107.756,43.5775 L 106.611,43.4069
|
||||||
|
L 105.358,43.35 L 103.448,43.5029 L 101.778,43.9618 L 100.346,44.7264 L 99.1534,45.797 L 98.2145,47.145
|
||||||
|
L 97.5439,48.743 L 97.1415,50.591 L 97.0074,52.689 L 97.1498,54.7869 L 97.5771,56.6515 L 98.2893,58.2829
|
||||||
|
L 99.2863,59.681 L 100.535,60.8019 L 102.002,61.6025 L 103.688,62.0829 L 105.591,62.243 L 106.72,62.1995
|
||||||
|
L 107.81,62.069 L 108.861,61.8515 L 109.874,61.547 L 110.821,61.1679 L 111.673,60.7268 L 112.431,60.2234
|
||||||
|
L 113.093,59.658 L 113.093,55.448 L 106.089,55.448 L 106.089,52.788 L 116.019,52.788 L 116.019,60.854
|
||||||
|
L 115.035,61.7466 L 113.946,62.5323 L 112.752,63.2111 L 111.453,63.783 L 110.073,64.2367 L 108.636,64.5607
|
||||||
|
L 107.142,64.7552 L 105.59,64.82 z
|
||||||
|
M 30.0385,64.5 L 30.0385,41.076 L 47.8185,41.076 L 47.8185,43.67 L 33.2135,43.67 L 33.2135,51.188
|
||||||
|
L 46.8204,51.188 L 46.8204,53.748 L 33.2135,53.748 L 33.2135,61.906 L 48.5005,61.906 L 48.5005,64.5
|
||||||
|
z
|
||||||
|
M 303.625,64.5 L 294.061,41.076 L 297.402,41.076 L 303.89,57.568 L 305.288,61.707 L 306.685,57.568
|
||||||
|
L 313.14,41.076 L 316.481,41.076 L 306.917,64.5 z
|
||||||
|
M 330.038,64.5 L 330.038,41.076 L 347.818,41.076 L 347.818,43.67 L 333.213,43.67 L 333.213,51.188
|
||||||
|
L 346.82,51.188 L 346.82,53.748 L 333.213,53.748 L 333.213,61.906 L 348.5,61.906 L 348.5,64.5
|
||||||
|
z
|
||||||
|
M 129.119,64.5 L 129.119,41.076 L 132.294,41.076 L 132.294,50.996 L 144.953,50.996 L 144.953,41.076
|
||||||
|
L 148.128,41.076 L 148.128,64.5 L 144.953,64.5 L 144.953,53.656 L 132.294,53.656 L 132.294,64.5
|
||||||
|
z
|
||||||
|
M 70.1935,64.5 L 70.1935,41.076 L 73.3695,41.076 L 73.3695,64.5 z
|
||||||
|
M 231.881,64.5 L 231.881,41.076 L 235.056,41.076 L 235.056,61.906 L 246.9,61.906 L 246.9,64.5
|
||||||
|
z
|
||||||
|
M 170.323,64.5 L 170.323,43.67 L 162.276,43.67 L 162.276,41.076 L 181.53,41.076 L 181.53,43.67
|
||||||
|
L 173.482,43.67 L 173.482,64.5 z
|
||||||
|
M 263.372,64.5 L 263.372,41.076 L 281.152,41.076 L 281.152,43.67 L 266.547,43.67 L 266.547,51.188
|
||||||
|
L 280.154,51.188 L 280.154,53.748 L 266.547,53.748 L 266.547,61.906 L 281.834,61.906 L 281.834,64.5
|
||||||
|
z
|
||||||
|
M 362.453,64.5 L 362.453,41.076 L 366.144,41.076 L 378.802,61.158 L 378.715,59.6412 L 378.653,58.3488
|
||||||
|
L 378.615,57.2807 L 378.603,56.437 L 378.603,41.076 L 381.462,41.076 L 381.462,64.5 L 377.638,64.5
|
||||||
|
L 365.113,44.551 L 365.196,46.164 L 365.279,48.94 L 365.279,64.5 z
|
||||||
|
M 196.705,64.5 L 196.705,41.076 L 214.485,41.076 L 214.485,43.67 L 199.88,43.67 L 199.88,51.188
|
||||||
|
L 213.487,51.188 L 213.487,53.748 L 199.88,53.748 L 199.88,61.906 L 215.167,61.906 L 215.167,64.5
|
||||||
|
z
|
||||||
|
M 34.8886,99.448 L 31.956,98.332 L 29.9236,96.472 L 28.7915,93.868 L 31.8675,93.253 L 32.2083,94.2388
|
||||||
|
L 32.699,95.0843 L 33.3393,95.7893 L 34.1295,96.354 L 35.0728,96.7867 L 36.172,97.0958 L 37.4268,97.2812
|
||||||
|
L 38.8374,97.343 L 40.2886,97.2772 L 41.5639,97.0798 L 42.6636,96.7507 L 43.5874,96.29 L 44.319,95.7019
|
||||||
|
L 44.8414,94.9905 L 45.155,94.1559 L 45.2595,93.198 L 45.2267,92.6525 L 45.1284,92.161 L 44.9647,91.7235
|
||||||
|
L 44.7355,91.34 L 44.447,90.9986 L 44.1055,90.6883 L 43.711,90.4091 L 43.2635,90.161 L 42.7666,89.9379
|
||||||
|
L 42.224,89.7335 L 41.6356,89.5479 L 41.0014,89.381 L 40.3268,89.2204 L 39.6167,89.0535 L 38.8713,88.8804
|
||||||
|
L 38.0905,88.701 L 36.7852,88.394 L 35.6472,88.087 L 34.6767,87.78 L 33.8735,87.473 L 33.1919,87.1568
|
||||||
|
L 32.5862,86.823 L 32.0564,86.4718 L 31.6025,86.103 L 31.2113,85.7094 L 30.869,85.2838 L 30.5753,84.8259
|
||||||
|
L 30.3305,84.336 L 30.1375,83.8113 L 29.9997,83.2493 L 29.917,82.6498 L 29.8895,82.013 L 30.0334,80.5971
|
||||||
|
L 30.4652,79.3535 L 31.1849,78.2821 L 32.1925,77.383 L 33.4687,76.6712 L 34.9932,76.1628 L 36.7662,75.8577
|
||||||
|
L 38.7875,75.756 L 40.666,75.8324 L 42.3094,76.0615 L 43.718,76.4434 L 44.8914,76.978 L 45.8689,77.6965
|
||||||
|
L 46.6882,78.63 L 47.3494,79.7785 L 47.8524,81.142 L 44.7274,81.691 L 44.4113,80.8239 L 43.9787,80.0848
|
||||||
|
L 43.4298,79.4734 L 42.7645,78.99 L 41.9713,78.6225 L 41.0387,78.36 L 39.9668,78.2025 L 38.7554,78.15
|
||||||
|
L 37.4327,78.2081 L 36.2762,78.3823 L 35.2862,78.6726 L 34.4625,79.079 L 33.815,79.6 L 33.3525,80.235
|
||||||
|
L 33.075,80.984 L 32.9825,81.847 L 33.0183,82.3631 L 33.126,82.8325 L 33.3053,83.2551 L 33.5565,83.631
|
||||||
|
L 33.8752,83.9701 L 34.2572,84.2823 L 34.7027,84.5676 L 35.2115,84.826 L 35.8861,85.0846 L 36.829,85.3713
|
||||||
|
L 38.0401,85.6861 L 39.5195,86.029 L 40.0594,86.154 L 40.5984,86.28 L 41.1365,86.407 L 41.6734,86.535
|
||||||
|
L 42.2042,86.6698 L 42.7234,86.817 L 43.2312,86.9768 L 43.7274,87.149 L 44.2102,87.3353 L 44.6775,87.5373
|
||||||
|
L 45.1292,87.7548 L 45.5655,87.988 L 45.9799,88.242 L 46.3662,88.523 L 46.7244,88.831 L 47.0545,89.166
|
||||||
|
L 47.3533,89.5301 L 47.6177,89.9253 L 47.8478,90.3516 L 48.0435,90.809 L 48.2001,91.3027 L 48.312,91.8378
|
||||||
|
L 48.3791,92.4142 L 48.4015,93.032 L 48.2429,94.5592 L 47.7672,95.9038 L 46.9744,97.0657 L 45.8645,98.045
|
||||||
|
L 44.467,98.8216 L 42.8107,99.3763 L 40.8955,99.7091 L 38.7215,99.82 z
|
||||||
|
M 336.958,99.5 L 327.394,76.076 L 330.735,76.076 L 337.223,92.568 L 338.621,96.707 L 340.018,92.568
|
||||||
|
L 346.473,76.076 L 349.814,76.076 L 340.25,99.5 z
|
||||||
|
M 203.657,99.5 L 203.657,78.67 L 195.61,78.67 L 195.61,76.076 L 214.864,76.076 L 214.864,78.67
|
||||||
|
L 206.816,78.67 L 206.816,99.5 z
|
||||||
|
M 63.3718,99.5 L 63.3718,76.076 L 81.1518,76.076 L 81.1518,78.67 L 66.5468,78.67 L 66.5468,86.188
|
||||||
|
L 80.1538,86.188 L 80.1538,88.748 L 66.5468,88.748 L 66.5468,96.906 L 81.8338,96.906 L 81.8338,99.5
|
||||||
|
z
|
||||||
|
M 103.625,99.5 L 94.0611,76.076 L 97.4021,76.076 L 103.89,92.568 L 105.288,96.707 L 106.685,92.568
|
||||||
|
L 113.14,76.076 L 116.481,76.076 L 106.917,99.5 z
|
||||||
|
M 130.038,99.5 L 130.038,76.076 L 147.818,76.076 L 147.818,78.67 L 133.213,78.67 L 133.213,86.188
|
||||||
|
L 146.82,86.188 L 146.82,88.748 L 133.213,88.748 L 133.213,96.906 L 148.5,96.906 L 148.5,99.5
|
||||||
|
z
|
||||||
|
M 162.453,99.5 L 162.453,76.076 L 166.144,76.076 L 178.802,96.158 L 178.715,94.6412 L 178.653,93.3488
|
||||||
|
L 178.615,92.2807 L 178.603,91.437 L 178.603,76.076 L 181.462,76.076 L 181.462,99.5 L 177.638,99.5
|
||||||
|
L 165.113,79.551 L 165.196,81.164 L 165.279,83.94 L 165.279,99.5 z
|
||||||
|
M 229.689,99.5 L 222.792,76.076 L 226.1,76.076 L 230.305,90.955 L 230.671,92.3619 L 231.023,93.7895
|
||||||
|
L 231.361,95.2379 L 231.684,96.707 L 231.891,95.7718 L 232.114,94.795 L 232.352,93.7768 L 232.606,92.717
|
||||||
|
L 233.091,90.8666 L 234.021,87.4763 L 235.397,82.5461 L 237.218,76.076 L 240.261,76.076 L 244.333,90.656
|
||||||
|
L 244.773,92.3745 L 245.163,93.9558 L 245.504,95.3999 L 245.795,96.707 L 245.945,96.125 L 246.159,95.2132
|
||||||
|
L 246.524,93.6547 L 246.675,93.008 L 247.073,91.4979 L 247.984,88.1725 L 249.408,83.0319 L 251.345,76.076
|
||||||
|
L 254.654,76.076 L 247.756,99.5 L 243.966,99.5 L 239.911,84.621 L 239.689,83.7848 L 239.421,82.672
|
||||||
|
L 239.107,81.2828 L 238.748,79.617 L 238.54,80.5416 L 238.349,81.3873 L 238.175,82.1541 L 238.017,82.842
|
||||||
|
L 237.621,84.3695 L 236.733,87.655 L 235.353,92.6985 L 233.48,99.5 z
|
||||||
|
M 263.372,99.5 L 263.372,76.076 L 281.152,76.076 L 281.152,78.67 L 266.547,78.67 L 266.547,86.188
|
||||||
|
L 280.154,86.188 L 280.154,88.748 L 266.547,88.748 L 266.547,96.906 L 281.834,96.906 L 281.834,99.5
|
||||||
|
z
|
||||||
|
M 298.548,99.5 L 298.548,76.076 L 301.723,76.076 L 301.723,96.906 L 313.567,96.906 L 313.567,99.5
|
||||||
|
z
|
||||||
|
M 363.372,99.5 L 363.372,76.076 L 381.152,76.076 L 381.152,78.67 L 366.547,78.67 L 366.547,86.188
|
||||||
|
L 380.154,86.188 L 380.154,88.748 L 366.547,88.748 L 366.547,96.906 L 381.834,96.906 L 381.834,99.5
|
||||||
|
z
|
||||||
|
M 134.889,134.448 L 131.956,133.332 L 129.924,131.472 L 128.791,128.868 L 131.867,128.253 L 132.208,129.239
|
||||||
|
L 132.699,130.084 L 133.339,130.789 L 134.129,131.354 L 135.073,131.787 L 136.172,132.096 L 137.427,132.281
|
||||||
|
L 138.837,132.343 L 140.289,132.277 L 141.564,132.08 L 142.664,131.751 L 143.587,131.29 L 144.319,130.702
|
||||||
|
L 144.841,129.991 L 145.155,129.156 L 145.259,128.198 L 145.227,127.653 L 145.128,127.161 L 144.965,126.724
|
||||||
|
L 144.735,126.34 L 144.447,125.999 L 144.105,125.688 L 143.711,125.409 L 143.263,125.161 L 142.767,124.938
|
||||||
|
L 142.224,124.734 L 141.636,124.548 L 141.001,124.381 L 140.327,124.22 L 139.617,124.054 L 138.871,123.88
|
||||||
|
L 138.09,123.701 L 136.785,123.394 L 135.647,123.087 L 134.677,122.78 L 133.873,122.473 L 133.192,122.157
|
||||||
|
L 132.586,121.823 L 132.056,121.472 L 131.602,121.103 L 131.211,120.709 L 130.869,120.284 L 130.575,119.826
|
||||||
|
L 130.33,119.336 L 130.138,118.811 L 130,118.249 L 129.917,117.65 L 129.889,117.013 L 130.033,115.597
|
||||||
|
L 130.465,114.354 L 131.185,113.282 L 132.192,112.383 L 133.469,111.671 L 134.993,111.163 L 136.766,110.858
|
||||||
|
L 138.787,110.756 L 140.666,110.832 L 142.309,111.062 L 143.718,111.443 L 144.891,111.978 L 145.869,112.697
|
||||||
|
L 146.688,113.63 L 147.349,114.779 L 147.852,116.142 L 144.727,116.691 L 144.411,115.824 L 143.979,115.085
|
||||||
|
L 143.43,114.473 L 142.764,113.99 L 141.971,113.623 L 141.039,113.36 L 139.967,113.203 L 138.755,113.15
|
||||||
|
L 137.433,113.208 L 136.276,113.382 L 135.286,113.673 L 134.462,114.079 L 133.815,114.6 L 133.352,115.235
|
||||||
|
L 133.075,115.984 L 132.982,116.847 L 133.018,117.363 L 133.126,117.833 L 133.305,118.255 L 133.556,118.631
|
||||||
|
L 133.875,118.97 L 134.257,119.282 L 134.703,119.568 L 135.211,119.826 L 135.886,120.085 L 136.829,120.371
|
||||||
|
L 138.04,120.686 L 139.519,121.029 L 140.059,121.154 L 140.598,121.28 L 141.136,121.407 L 141.673,121.535
|
||||||
|
L 142.204,121.67 L 142.723,121.817 L 143.231,121.977 L 143.727,122.149 L 144.21,122.335 L 144.677,122.537
|
||||||
|
L 145.129,122.755 L 145.565,122.988 L 145.98,123.242 L 146.366,123.523 L 146.724,123.831 L 147.054,124.166
|
||||||
|
L 147.353,124.53 L 147.618,124.925 L 147.848,125.352 L 148.043,125.809 L 148.2,126.303 L 148.312,126.838
|
||||||
|
L 148.379,127.414 L 148.401,128.032 L 148.243,129.559 L 147.767,130.904 L 146.974,132.066 L 145.864,133.045
|
||||||
|
L 144.467,133.822 L 142.811,134.376 L 140.896,134.709 L 138.721,134.82 z
|
||||||
|
M 173.567,132.112 L 173.87,132.087 L 175.546,131.619 L 176.985,130.839 L 178.189,129.747 L 179.139,128.37
|
||||||
|
L 179.817,126.734 L 180.224,124.841 L 180.36,122.689 L 180.223,120.625 L 179.813,118.795 L 179.129,117.199
|
||||||
|
L 178.172,115.838 L 176.965,114.75 L 175.533,113.972 L 173.875,113.506 L 173.567,113.48 L 173.567,110.837
|
||||||
|
L 173.72,110.845 L 175.33,111.111 L 176.822,111.554 L 178.195,112.175 L 179.432,112.965 L 180.513,113.916
|
||||||
|
L 181.44,115.027 L 182.212,116.299 L 182.82,117.713 L 183.254,119.249 L 183.514,120.907 L 183.601,122.688
|
||||||
|
L 183.513,124.465 L 183.25,126.128 L 182.81,127.676 L 182.195,129.111 L 181.416,130.409 L 180.484,131.547
|
||||||
|
L 179.4,132.525 L 178.162,133.343 L 176.789,133.989 L 175.297,134.451 L 173.687,134.728 L 173.567,134.734
|
||||||
|
z
|
||||||
|
M 170.215,134.729 L 168.596,134.455 L 167.1,133.999 L 165.728,133.36 L 164.496,132.548 L 163.419,131.574
|
||||||
|
L 162.496,130.436 L 161.728,129.136 L 161.124,127.697 L 160.693,126.143 L 160.434,124.473 L 160.348,122.688
|
||||||
|
L 160.54,120.037 L 161.117,117.691 L 162.079,115.652 L 163.425,113.918 L 165.114,112.535 L 167.105,111.547
|
||||||
|
L 169.397,110.954 L 170.567,110.865 L 170.567,113.465 L 170.092,113.503 L 168.423,113.964 L 166.981,114.731
|
||||||
|
L 165.769,115.805 L 164.808,117.156 L 164.122,118.754 L 163.71,120.598 L 163.573,122.689 L 163.712,124.773
|
||||||
|
L 164.128,126.63 L 164.822,128.261 L 165.794,129.664 L 167.012,130.792 L 168.446,131.598 L 170.094,132.082
|
||||||
|
L 170.567,132.123 L 170.567,134.747 z
|
||||||
|
M 95.7861,134.5 L 95.7861,111.076 L 99.4771,111.076 L 112.135,131.158 L 112.048,129.641 L 111.986,128.349
|
||||||
|
L 111.949,127.281 L 111.936,126.437 L 111.936,111.076 L 114.795,111.076 L 114.795,134.5 L 110.971,134.5
|
||||||
|
L 98.4461,114.551 L 98.5291,116.164 L 98.6121,118.94 L 98.6121,134.5 z
|
||||||
|
M 363.372,134.5 L 363.372,111.076 L 381.152,111.076 L 381.152,113.67 L 366.547,113.67 L 366.547,121.188
|
||||||
|
L 380.154,121.188 L 380.154,123.748 L 366.547,123.748 L 366.547,131.906 L 381.834,131.906 L 381.834,134.5
|
||||||
|
z
|
||||||
|
M 329.119,134.5 L 329.119,111.076 L 336.862,111.076 L 337.233,111.101 L 337.233,113.649 L 336.796,113.62
|
||||||
|
L 332.294,113.62 L 332.294,131.956 L 337.233,131.956 L 337.233,134.5 z
|
||||||
|
M 303.749,134.755 L 302.449,134.558 L 301.24,134.231 L 300.122,133.773 L 299.111,133.19 L 298.22,132.49
|
||||||
|
L 297.449,131.67 L 296.799,130.733 L 296.283,129.688 L 295.914,128.548 L 295.693,127.312 L 295.619,125.98
|
||||||
|
L 295.619,111.076 L 298.794,111.076 L 298.794,125.713 L 298.896,127.22 L 299.201,128.534 L 299.71,129.654
|
||||||
|
L 300.422,130.582 L 301.327,131.309 L 302.412,131.828 L 303.678,132.139 L 305.124,132.243 L 306.614,132.136
|
||||||
|
L 307.929,131.813 L 309.069,131.276 L 310.033,130.524 L 310.8,129.565 L 311.348,128.407 L 311.677,127.051
|
||||||
|
L 311.786,125.497 L 311.786,111.076 L 314.945,111.076 L 314.945,125.681 L 314.87,127.053 L 314.644,128.328
|
||||||
|
L 314.267,129.504 L 313.74,130.583 L 313.075,131.552 L 312.286,132.4 L 311.372,133.127 L 310.333,133.732
|
||||||
|
L 309.183,134.208 L 307.935,134.548 L 306.587,134.752 L 305.141,134.82 z
|
||||||
|
M 196.705,134.5 L 196.705,111.076 L 199.88,111.076 L 199.88,122.813 L 211.178,111.076 L 214.918,111.076
|
||||||
|
L 204.938,121.25 L 216.248,134.5 L 212.308,134.5 L 202.941,123.195 L 199.88,125.523 L 199.88,134.5
|
||||||
|
z
|
||||||
|
M 262.453,134.5 L 262.453,111.076 L 270.196,111.076 L 270.567,111.101 L 270.567,113.649 L 270.13,113.62
|
||||||
|
L 265.628,113.62 L 265.628,131.956 L 270.567,131.956 L 270.567,134.5 z
|
||||||
|
M 237.007,134.5 L 237.007,124.791 L 227.992,111.076 L 231.483,111.076 L 238.62,122.231 L 245.724,111.076
|
||||||
|
L 249.216,111.076 L 240.166,124.791 L 240.166,134.5 z
|
||||||
|
M 36.9901,134.5 L 36.9901,113.67 L 28.9431,113.67 L 28.9431,111.076 L 48.1971,111.076 L 48.1971,113.67
|
||||||
|
L 40.149,113.67 L 40.149,134.5 z
|
||||||
|
M 63.3718,134.5 L 63.3718,111.076 L 81.1518,111.076 L 81.1518,113.67 L 66.5468,113.67 L 66.5468,121.188
|
||||||
|
L 80.1538,121.188 L 80.1538,123.748 L 66.5468,123.748 L 66.5468,131.906 L 81.8338,131.906 L 81.8338,134.5
|
||||||
|
z
|
||||||
|
M 273.567,131.576 L 274.357,131.32 L 275.372,130.826 L 276.291,130.198 L 277.097,129.446 L 277.79,128.569
|
||||||
|
L 278.37,127.567 L 278.828,126.455 L 279.155,125.248 L 279.351,123.945 L 279.417,122.547 L 279.268,120.499
|
||||||
|
L 278.821,118.709 L 278.076,117.178 L 277.033,115.906 L 275.707,114.906 L 274.115,114.192 L 273.567,114.065
|
||||||
|
L 273.567,111.391 L 275.466,111.822 L 277.591,112.755 L 279.377,114.06 L 280.791,115.709 L 281.801,117.674
|
||||||
|
L 282.407,119.953 L 282.609,122.547 L 282.52,124.302 L 282.256,125.945 L 281.814,127.473 L 281.196,128.889
|
||||||
|
L 280.416,130.169 L 279.489,131.289 L 278.414,132.251 L 277.192,133.054 L 275.846,133.687 L 274.4,134.139
|
||||||
|
L 273.567,134.285 z
|
||||||
|
M 340.233,131.576 L 341.024,131.32 L 342.038,130.826 L 342.958,130.198 L 343.764,129.446 L 344.457,128.569
|
||||||
|
L 345.036,127.567 L 345.495,126.455 L 345.822,125.248 L 346.018,123.945 L 346.083,122.547 L 345.934,120.499
|
||||||
|
L 345.487,118.709 L 344.742,117.178 L 343.699,115.906 L 342.374,114.906 L 340.782,114.192 L 340.233,114.065
|
||||||
|
L 340.233,111.391 L 342.132,111.822 L 344.258,112.755 L 346.043,114.06 L 347.457,115.709 L 348.467,117.674
|
||||||
|
L 349.073,119.953 L 349.275,122.547 L 349.187,124.302 L 348.922,125.945 L 348.481,127.473 L 347.862,128.889
|
||||||
|
L 347.083,130.169 L 346.155,131.289 L 345.081,132.251 L 343.858,133.054 L 342.513,133.687 L 341.067,134.139
|
||||||
|
L 340.233,134.285 z
|
||||||
|
M 6.38196,165.902 L 5.38196,165.176 L 5,164 L 5.38196,162.824 L 6.38196,162.098 L 7.61803,162.098
|
||||||
|
L 8.61803,162.824 L 9,164 L 8.61803,165.176 L 7.61803,165.902 z
|
||||||
|
M 402.382,165.902 L 401.382,165.176 L 401,164 L 401.382,162.824 L 402.382,162.098 L 403.618,162.098
|
||||||
|
L 404.618,162.824 L 405,164 L 404.618,165.176 L 403.618,165.902 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 22 KiB |
428
hw/layers/words_top.svg
Normal file
|
@ -0,0 +1,428 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="410mm" height="239mm" viewBox="0 -239 410 239" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||||
|
<title>OpenSCAD Model</title>
|
||||||
|
<path d="
|
||||||
|
M 410,-239 L 0,-239 L 0,-0 L 410,-0 z
|
||||||
|
M 6.38196,-230.098 L 5.38196,-230.824 L 5,-232 L 5.38196,-233.176 L 6.38196,-233.902 L 7.61803,-233.902
|
||||||
|
L 8.61803,-233.176 L 9,-232 L 8.61803,-230.824 L 7.61803,-230.098 z
|
||||||
|
M 402.382,-230.098 L 401.382,-230.824 L 401,-232 L 401.382,-233.176 L 402.382,-233.902 L 403.618,-233.902
|
||||||
|
L 404.618,-233.176 L 405,-232 L 404.618,-230.824 L 403.618,-230.098 z
|
||||||
|
M 168.222,-180.552 L 165.289,-181.668 L 163.257,-183.528 L 162.125,-186.132 L 165.201,-186.747 L 165.542,-185.761
|
||||||
|
L 166.032,-184.916 L 166.673,-184.211 L 167.463,-183.646 L 168.406,-183.213 L 169.505,-182.904 L 170.76,-182.719
|
||||||
|
L 172.171,-182.657 L 173.622,-182.723 L 174.897,-182.92 L 175.997,-183.249 L 176.921,-183.71 L 177.652,-184.298
|
||||||
|
L 178.175,-185.009 L 178.488,-185.844 L 178.593,-186.802 L 178.56,-187.347 L 178.462,-187.839 L 178.298,-188.276
|
||||||
|
L 178.069,-188.66 L 177.78,-189.001 L 177.439,-189.312 L 177.044,-189.591 L 176.597,-189.839 L 176.1,-190.062
|
||||||
|
L 175.557,-190.266 L 174.969,-190.452 L 174.335,-190.619 L 173.66,-190.78 L 172.95,-190.946 L 172.205,-191.12
|
||||||
|
L 171.424,-191.299 L 170.118,-191.606 L 168.981,-191.913 L 168.01,-192.22 L 167.207,-192.527 L 166.525,-192.843
|
||||||
|
L 165.92,-193.177 L 165.39,-193.528 L 164.936,-193.897 L 164.545,-194.291 L 164.202,-194.716 L 163.909,-195.174
|
||||||
|
L 163.664,-195.664 L 163.471,-196.189 L 163.333,-196.751 L 163.25,-197.35 L 163.223,-197.987 L 163.367,-199.403
|
||||||
|
L 163.799,-200.646 L 164.518,-201.718 L 165.526,-202.617 L 166.802,-203.329 L 168.327,-203.837 L 170.099,-204.142
|
||||||
|
L 172.121,-204.244 L 173.999,-204.168 L 175.643,-203.938 L 177.051,-203.557 L 178.225,-203.022 L 179.202,-202.303
|
||||||
|
L 180.022,-201.37 L 180.683,-200.221 L 181.186,-198.858 L 178.061,-198.309 L 177.745,-199.176 L 177.312,-199.915
|
||||||
|
L 176.763,-200.527 L 176.098,-201.01 L 175.305,-201.377 L 174.372,-201.64 L 173.3,-201.797 L 172.089,-201.85
|
||||||
|
L 170.766,-201.792 L 169.61,-201.618 L 168.619,-201.327 L 167.796,-200.921 L 167.148,-200.4 L 166.686,-199.765
|
||||||
|
L 166.408,-199.016 L 166.316,-198.153 L 166.352,-197.637 L 166.459,-197.167 L 166.639,-196.745 L 166.89,-196.369
|
||||||
|
L 167.208,-196.03 L 167.591,-195.718 L 168.036,-195.432 L 168.545,-195.174 L 169.219,-194.915 L 170.162,-194.629
|
||||||
|
L 171.373,-194.314 L 172.853,-193.971 L 173.393,-193.846 L 173.932,-193.72 L 174.47,-193.593 L 175.007,-193.465
|
||||||
|
L 175.538,-193.33 L 176.057,-193.183 L 176.565,-193.023 L 177.061,-192.851 L 177.544,-192.665 L 178.011,-192.463
|
||||||
|
L 178.463,-192.245 L 178.899,-192.012 L 179.313,-191.758 L 179.7,-191.477 L 180.058,-191.169 L 180.388,-190.834
|
||||||
|
L 180.687,-190.47 L 180.951,-190.075 L 181.181,-189.648 L 181.377,-189.191 L 181.533,-188.697 L 181.645,-188.162
|
||||||
|
L 181.712,-187.586 L 181.735,-186.968 L 181.576,-185.441 L 181.101,-184.096 L 180.308,-182.934 L 179.198,-181.955
|
||||||
|
L 177.8,-181.178 L 176.144,-180.624 L 174.229,-180.291 L 172.055,-180.18 z
|
||||||
|
M 101.555,-180.552 L 98.6226,-181.668 L 96.5903,-183.528 L 95.4581,-186.132 L 98.5341,-186.747 L 98.875,-185.761
|
||||||
|
L 99.3656,-184.916 L 100.006,-184.211 L 100.796,-183.646 L 101.74,-183.213 L 102.839,-182.904 L 104.094,-182.719
|
||||||
|
L 105.504,-182.657 L 106.955,-182.723 L 108.231,-182.92 L 109.33,-183.249 L 110.254,-183.71 L 110.986,-184.298
|
||||||
|
L 111.508,-185.009 L 111.822,-185.844 L 111.926,-186.802 L 111.893,-187.347 L 111.795,-187.839 L 111.631,-188.276
|
||||||
|
L 111.402,-188.66 L 111.114,-189.001 L 110.772,-189.312 L 110.378,-189.591 L 109.93,-189.839 L 109.433,-190.062
|
||||||
|
L 108.891,-190.266 L 108.302,-190.452 L 107.668,-190.619 L 106.993,-190.78 L 106.283,-190.946 L 105.538,-191.12
|
||||||
|
L 104.757,-191.299 L 103.452,-191.606 L 102.314,-191.913 L 101.343,-192.22 L 100.54,-192.527 L 99.8586,-192.843
|
||||||
|
L 99.2529,-193.177 L 98.7231,-193.528 L 98.2691,-193.897 L 97.878,-194.291 L 97.5356,-194.716 L 97.242,-195.174
|
||||||
|
L 96.9971,-195.664 L 96.8042,-196.189 L 96.6664,-196.751 L 96.5837,-197.35 L 96.5561,-197.987 L 96.7001,-199.403
|
||||||
|
L 97.1319,-200.646 L 97.8516,-201.718 L 98.8591,-202.617 L 100.135,-203.329 L 101.66,-203.837 L 103.433,-204.142
|
||||||
|
L 105.454,-204.244 L 107.333,-204.168 L 108.976,-203.938 L 110.385,-203.557 L 111.558,-203.022 L 112.536,-202.303
|
||||||
|
L 113.355,-201.37 L 114.016,-200.221 L 114.519,-198.858 L 111.394,-198.309 L 111.078,-199.176 L 110.645,-199.915
|
||||||
|
L 110.096,-200.527 L 109.431,-201.01 L 108.638,-201.377 L 107.705,-201.64 L 106.633,-201.797 L 105.422,-201.85
|
||||||
|
L 104.099,-201.792 L 102.943,-201.618 L 101.953,-201.327 L 101.129,-200.921 L 100.482,-200.4 L 100.019,-199.765
|
||||||
|
L 99.7416,-199.016 L 99.6491,-198.153 L 99.685,-197.637 L 99.7926,-197.167 L 99.972,-196.745 L 100.223,-196.369
|
||||||
|
L 100.542,-196.03 L 100.924,-195.718 L 101.369,-195.432 L 101.878,-195.174 L 102.553,-194.915 L 103.496,-194.629
|
||||||
|
L 104.707,-194.314 L 106.186,-193.971 L 106.726,-193.846 L 107.265,-193.72 L 107.803,-193.593 L 108.34,-193.465
|
||||||
|
L 108.871,-193.33 L 109.39,-193.183 L 109.898,-193.023 L 110.394,-192.851 L 110.877,-192.665 L 111.344,-192.463
|
||||||
|
L 111.796,-192.245 L 112.232,-192.012 L 112.647,-191.758 L 113.033,-191.477 L 113.391,-191.169 L 113.721,-190.834
|
||||||
|
L 114.02,-190.47 L 114.284,-190.075 L 114.514,-189.648 L 114.71,-189.191 L 114.867,-188.697 L 114.979,-188.162
|
||||||
|
L 115.046,-187.586 L 115.068,-186.968 L 114.91,-185.441 L 114.434,-184.096 L 113.641,-182.934 L 112.531,-181.955
|
||||||
|
L 111.134,-181.178 L 109.477,-180.624 L 107.562,-180.291 L 105.388,-180.18 z
|
||||||
|
M 234.889,-180.552 L 231.956,-181.668 L 229.924,-183.528 L 228.791,-186.132 L 231.867,-186.747 L 232.208,-185.761
|
||||||
|
L 232.699,-184.916 L 233.339,-184.211 L 234.129,-183.646 L 235.073,-183.213 L 236.172,-182.904 L 237.427,-182.719
|
||||||
|
L 238.837,-182.657 L 240.289,-182.723 L 241.564,-182.92 L 242.664,-183.249 L 243.587,-183.71 L 244.319,-184.298
|
||||||
|
L 244.841,-185.009 L 245.155,-185.844 L 245.259,-186.802 L 245.227,-187.347 L 245.128,-187.839 L 244.965,-188.276
|
||||||
|
L 244.735,-188.66 L 244.447,-189.001 L 244.105,-189.312 L 243.711,-189.591 L 243.263,-189.839 L 242.767,-190.062
|
||||||
|
L 242.224,-190.266 L 241.636,-190.452 L 241.001,-190.619 L 240.327,-190.78 L 239.617,-190.946 L 238.871,-191.12
|
||||||
|
L 238.09,-191.299 L 236.785,-191.606 L 235.647,-191.913 L 234.677,-192.22 L 233.873,-192.527 L 233.192,-192.843
|
||||||
|
L 232.586,-193.177 L 232.056,-193.528 L 231.602,-193.897 L 231.211,-194.291 L 230.869,-194.716 L 230.575,-195.174
|
||||||
|
L 230.33,-195.664 L 230.138,-196.189 L 230,-196.751 L 229.917,-197.35 L 229.889,-197.987 L 230.033,-199.403
|
||||||
|
L 230.465,-200.646 L 231.185,-201.718 L 232.192,-202.617 L 233.469,-203.329 L 234.993,-203.837 L 236.766,-204.142
|
||||||
|
L 238.787,-204.244 L 240.666,-204.168 L 242.309,-203.938 L 243.718,-203.557 L 244.891,-203.022 L 245.869,-202.303
|
||||||
|
L 246.688,-201.37 L 247.349,-200.221 L 247.852,-198.858 L 244.727,-198.309 L 244.411,-199.176 L 243.979,-199.915
|
||||||
|
L 243.43,-200.527 L 242.764,-201.01 L 241.971,-201.377 L 241.039,-201.64 L 239.967,-201.797 L 238.755,-201.85
|
||||||
|
L 237.433,-201.792 L 236.276,-201.618 L 235.286,-201.327 L 234.462,-200.921 L 233.815,-200.4 L 233.352,-199.765
|
||||||
|
L 233.075,-199.016 L 232.982,-198.153 L 233.018,-197.637 L 233.126,-197.167 L 233.305,-196.745 L 233.556,-196.369
|
||||||
|
L 233.875,-196.03 L 234.257,-195.718 L 234.703,-195.432 L 235.211,-195.174 L 235.886,-194.915 L 236.829,-194.629
|
||||||
|
L 238.04,-194.314 L 239.519,-193.971 L 240.059,-193.846 L 240.598,-193.72 L 241.136,-193.593 L 241.673,-193.465
|
||||||
|
L 242.204,-193.33 L 242.723,-193.183 L 243.231,-193.023 L 243.727,-192.851 L 244.21,-192.665 L 244.677,-192.463
|
||||||
|
L 245.129,-192.245 L 245.565,-192.012 L 245.98,-191.758 L 246.366,-191.477 L 246.724,-191.169 L 247.054,-190.834
|
||||||
|
L 247.353,-190.47 L 247.618,-190.075 L 247.848,-189.648 L 248.043,-189.191 L 248.2,-188.697 L 248.312,-188.162
|
||||||
|
L 248.379,-187.586 L 248.401,-186.968 L 248.243,-185.441 L 247.767,-184.096 L 246.974,-182.934 L 245.864,-181.955
|
||||||
|
L 244.467,-181.178 L 242.811,-180.624 L 240.896,-180.291 L 238.721,-180.18 z
|
||||||
|
M 213.322,-180.5 L 210.644,-187.367 L 206.9,-187.367 L 206.9,-189.844 L 209.696,-189.844 L 206.9,-197.012
|
||||||
|
L 206.9,-203.924 L 207.15,-203.924 L 216.564,-180.5 z
|
||||||
|
M 70.3234,-180.5 L 70.3234,-201.33 L 62.2764,-201.33 L 62.2764,-203.924 L 81.5304,-203.924 L 81.5304,-201.33
|
||||||
|
L 73.4824,-201.33 L 73.4824,-180.5 z
|
||||||
|
M 36.8602,-180.5 L 36.8602,-203.924 L 40.0362,-203.924 L 40.0362,-180.5 z
|
||||||
|
M 136.86,-180.5 L 136.86,-203.924 L 140.036,-203.924 L 140.036,-180.5 z
|
||||||
|
M 193.978,-180.5 L 203.542,-203.924 L 203.9,-203.924 L 203.9,-197.471 L 200.929,-189.844 L 203.9,-189.844
|
||||||
|
L 203.9,-187.367 L 199.964,-187.367 L 197.269,-180.5 z
|
||||||
|
M 260.645,-180.5 L 270.209,-203.924 L 270.567,-203.924 L 270.567,-197.471 L 267.596,-189.844 L 270.567,-189.844
|
||||||
|
L 270.567,-187.367 L 266.631,-187.367 L 263.936,-180.5 z
|
||||||
|
M 279.989,-180.5 L 277.311,-187.367 L 273.567,-187.367 L 273.567,-189.844 L 276.363,-189.844 L 273.567,-197.012
|
||||||
|
L 273.567,-203.924 L 273.817,-203.924 L 283.231,-180.5 z
|
||||||
|
M 360.61,-180.5 L 360.61,-203.924 L 364.783,-203.924 L 371.014,-187.682 L 371.178,-187.183 L 371.34,-186.666
|
||||||
|
L 371.498,-186.131 L 371.653,-185.579 L 371.794,-185.057 L 371.909,-184.613 L 371.998,-184.246 L 372.061,-183.958
|
||||||
|
L 372.146,-184.334 L 372.267,-184.795 L 372.424,-185.344 L 372.617,-185.978 L 372.812,-186.593 L 372.972,-187.081
|
||||||
|
L 373.098,-187.445 L 373.19,-187.682 L 379.305,-203.924 L 383.378,-203.924 L 383.378,-180.5 L 380.519,-180.5
|
||||||
|
L 380.519,-196.127 L 380.528,-197.411 L 380.556,-198.67 L 380.603,-199.905 L 380.668,-201.114 L 380.271,-199.707
|
||||||
|
L 379.896,-198.462 L 379.54,-197.38 L 379.206,-196.459 L 373.157,-180.5 L 370.931,-180.5 L 364.799,-196.459
|
||||||
|
L 363.868,-199.285 L 363.32,-201.114 L 363.37,-199.269 L 363.436,-196.127 L 363.436,-180.5 z
|
||||||
|
M 330.038,-180.5 L 330.038,-203.924 L 337.233,-203.924 L 337.233,-201.38 L 333.213,-201.38 L 333.213,-192.148
|
||||||
|
L 337.233,-192.148 L 337.233,-189.638 L 333.213,-189.638 L 333.213,-180.5 z
|
||||||
|
M 293.943,-180.5 L 293.943,-203.924 L 298.116,-203.924 L 304.347,-187.682 L 304.512,-187.183 L 304.673,-186.666
|
||||||
|
L 304.831,-186.131 L 304.986,-185.579 L 305.127,-185.057 L 305.242,-184.613 L 305.331,-184.246 L 305.394,-183.958
|
||||||
|
L 305.479,-184.334 L 305.6,-184.795 L 305.757,-185.344 L 305.95,-185.978 L 306.145,-186.593 L 306.306,-187.081
|
||||||
|
L 306.432,-187.445 L 306.523,-187.682 L 312.638,-203.924 L 316.711,-203.924 L 316.711,-180.5 L 313.852,-180.5
|
||||||
|
L 313.852,-196.127 L 313.862,-197.411 L 313.89,-198.67 L 313.936,-199.905 L 314.001,-201.114 L 313.605,-199.707
|
||||||
|
L 313.229,-198.462 L 312.874,-197.38 L 312.539,-196.459 L 306.49,-180.5 L 304.264,-180.5 L 298.132,-196.459
|
||||||
|
L 297.201,-199.285 L 296.653,-201.114 L 296.703,-199.269 L 296.769,-196.127 L 296.769,-180.5 z
|
||||||
|
M 340.233,-192.221 L 341.982,-192.442 L 343.645,-193.323 L 344.644,-194.791 L 344.976,-196.847 L 344.635,-198.83
|
||||||
|
L 343.612,-200.247 L 341.907,-201.097 L 340.233,-201.295 L 340.233,-203.903 L 341.761,-203.809 L 343.398,-203.463
|
||||||
|
L 344.813,-202.887 L 346.005,-202.08 L 346.952,-201.064 L 347.628,-199.858 L 348.033,-198.464 L 348.168,-196.881
|
||||||
|
L 348.033,-195.305 L 347.626,-193.899 L 346.947,-192.663 L 345.997,-191.598 L 344.815,-190.74 L 343.438,-190.128
|
||||||
|
L 341.866,-189.76 L 340.233,-189.647 z
|
||||||
|
M 371.095,-145.272 L 369.504,-145.547 L 368.033,-146.006 L 366.681,-146.648 L 365.466,-147.461 L 364.405,-148.432
|
||||||
|
L 363.497,-149.561 L 362.743,-150.847 L 362.15,-152.275 L 361.727,-153.829 L 361.473,-155.508 L 361.389,-157.312
|
||||||
|
L 361.578,-159.957 L 362.145,-162.298 L 363.09,-164.338 L 364.413,-166.074 L 366.071,-167.461 L 368.019,-168.451
|
||||||
|
L 370.258,-169.046 L 372.788,-169.244 L 374.58,-169.153 L 376.219,-168.879 L 377.704,-168.423 L 379.036,-167.784
|
||||||
|
L 380.207,-166.966 L 381.213,-165.972 L 382.052,-164.802 L 382.725,-163.455 L 379.715,-162.46 L 379.246,-163.418
|
||||||
|
L 378.654,-164.257 L 377.937,-164.975 L 377.098,-165.573 L 376.155,-166.044 L 375.128,-166.381 L 374.016,-166.583
|
||||||
|
L 372.821,-166.65 L 370.985,-166.494 L 369.365,-166.026 L 367.961,-165.245 L 366.773,-164.153 L 365.828,-162.789
|
||||||
|
L 365.154,-161.194 L 364.749,-159.368 L 364.614,-157.311 L 364.754,-155.268 L 365.177,-153.436 L 365.88,-151.814
|
||||||
|
L 366.865,-150.402 L 368.089,-149.259 L 369.513,-148.443 L 371.134,-147.953 L 372.954,-147.79 L 375.26,-148.095
|
||||||
|
L 377.261,-149.009 L 378.957,-150.534 L 380.347,-152.668 L 382.941,-151.37 L 382.145,-149.946 L 381.202,-148.704
|
||||||
|
L 380.113,-147.642 L 378.878,-146.761 L 377.517,-146.069 L 376.051,-145.575 L 374.48,-145.279 L 372.805,-145.18
|
||||||
|
z
|
||||||
|
M 71.0946,-145.272 L 69.5038,-145.547 L 68.0326,-146.006 L 66.6808,-146.648 L 65.466,-147.461 L 64.4048,-148.432
|
||||||
|
L 63.4971,-149.561 L 62.7428,-150.847 L 62.1504,-152.275 L 61.7273,-153.829 L 61.4734,-155.508 L 61.3888,-157.312
|
||||||
|
L 61.5778,-159.957 L 62.1448,-162.298 L 63.0898,-164.338 L 64.4128,-166.074 L 66.0706,-167.461 L 68.0191,-168.451
|
||||||
|
L 70.2581,-169.046 L 72.7878,-169.244 L 74.5804,-169.153 L 76.2193,-168.879 L 77.7044,-168.423 L 79.0358,-167.784
|
||||||
|
L 80.2072,-166.966 L 81.2125,-165.972 L 82.0517,-164.802 L 82.7248,-163.455 L 79.7148,-162.46 L 79.246,-163.418
|
||||||
|
L 78.6535,-164.257 L 77.9375,-164.975 L 77.0978,-165.573 L 76.1547,-166.044 L 75.1275,-166.381 L 74.0162,-166.583
|
||||||
|
L 72.8208,-166.65 L 70.9848,-166.494 L 69.3648,-166.026 L 67.9608,-165.245 L 66.7728,-164.153 L 65.8282,-162.789
|
||||||
|
L 65.1535,-161.194 L 64.7487,-159.368 L 64.6138,-157.311 L 64.7545,-155.268 L 65.1766,-153.436 L 65.88,-151.814
|
||||||
|
L 66.8648,-150.402 L 68.0895,-149.259 L 69.5126,-148.443 L 71.134,-147.953 L 72.9538,-147.79 L 75.2601,-148.095
|
||||||
|
L 77.261,-149.009 L 78.9566,-150.534 L 80.3468,-152.668 L 82.9408,-151.37 L 82.1446,-149.946 L 81.202,-148.704
|
||||||
|
L 80.1131,-147.642 L 78.8778,-146.761 L 77.5168,-146.069 L 76.051,-145.575 L 74.4803,-145.279 L 72.8048,-145.18
|
||||||
|
z
|
||||||
|
M 109.846,-139.125 L 108.758,-139.394 L 107.78,-139.841 L 106.913,-140.467 L 106.9,-140.481 L 106.9,-147.885
|
||||||
|
L 107.203,-147.91 L 108.879,-148.378 L 110.319,-149.159 L 111.522,-150.251 L 112.472,-151.629 L 113.151,-153.264
|
||||||
|
L 113.558,-155.158 L 113.693,-157.31 L 113.557,-159.374 L 113.146,-161.204 L 112.463,-162.8 L 111.505,-164.161
|
||||||
|
L 110.299,-165.25 L 108.866,-166.028 L 107.208,-166.494 L 106.9,-166.52 L 106.9,-169.163 L 107.053,-169.155
|
||||||
|
L 108.663,-168.889 L 110.155,-168.446 L 111.528,-167.825 L 112.765,-167.035 L 113.847,-166.084 L 114.773,-164.973
|
||||||
|
L 115.545,-163.7 L 116.153,-162.286 L 116.587,-160.75 L 116.848,-159.091 L 116.934,-157.31 L 116.778,-154.947
|
||||||
|
L 116.311,-152.804 L 115.531,-150.88 L 114.439,-149.177 L 113.07,-147.747 L 111.458,-146.642 L 109.602,-145.863
|
||||||
|
L 107.503,-145.41 L 107.871,-144.426 L 108.291,-143.588 L 108.765,-142.898 L 109.291,-142.354 L 109.881,-141.942
|
||||||
|
L 110.545,-141.648 L 111.283,-141.472 L 112.094,-141.413 L 112.557,-141.427 L 113.03,-141.467 L 113.514,-141.535
|
||||||
|
L 114.007,-141.63 L 114.007,-139.402 L 113.242,-139.242 L 112.494,-139.128 L 111.762,-139.059 L 111.046,-139.036
|
||||||
|
z
|
||||||
|
M 102.67,-145.411 L 101.194,-145.744 L 99.8305,-146.244 L 98.5804,-146.912 L 97.4575,-147.737 L 96.4761,-148.708
|
||||||
|
L 95.636,-149.828 L 94.9373,-151.094 L 94.3878,-152.488 L 93.9953,-153.988 L 93.7599,-155.596 L 93.6814,-157.31
|
||||||
|
L 93.8737,-159.962 L 94.4506,-162.308 L 95.4122,-164.348 L 96.7583,-166.082 L 98.4476,-167.465 L 100.438,-168.453
|
||||||
|
L 102.731,-169.046 L 103.9,-169.135 L 103.9,-166.535 L 103.426,-166.496 L 101.756,-166.036 L 100.315,-165.268
|
||||||
|
L 99.1024,-164.194 L 98.1416,-162.843 L 97.4554,-161.245 L 97.0436,-159.401 L 96.9064,-157.31 L 97.0452,-155.225
|
||||||
|
L 97.4616,-153.367 L 98.1557,-151.737 L 99.1273,-150.333 L 100.345,-149.205 L 101.779,-148.399 L 103.427,-147.915
|
||||||
|
L 103.9,-147.874 L 103.9,-145.282 z
|
||||||
|
M 263.372,-145.5 L 263.372,-168.924 L 281.152,-168.924 L 281.152,-166.33 L 266.547,-166.33 L 266.547,-158.812
|
||||||
|
L 280.154,-158.812 L 280.154,-156.252 L 266.547,-156.252 L 266.547,-148.094 L 281.834,-148.094 L 281.834,-145.5
|
||||||
|
z
|
||||||
|
M 236.99,-145.5 L 236.99,-166.33 L 228.943,-166.33 L 228.943,-168.924 L 248.197,-168.924 L 248.197,-166.33
|
||||||
|
L 240.149,-166.33 L 240.149,-145.5 z
|
||||||
|
M 179.989,-145.5 L 177.311,-152.367 L 173.567,-152.367 L 173.567,-154.844 L 176.363,-154.844 L 173.567,-162.012
|
||||||
|
L 173.567,-168.924 L 173.817,-168.924 L 183.231,-145.5 z
|
||||||
|
M 160.645,-145.5 L 170.209,-168.924 L 170.567,-168.924 L 170.567,-162.471 L 167.596,-154.844 L 170.567,-154.844
|
||||||
|
L 170.567,-152.367 L 166.631,-152.367 L 163.936,-145.5 z
|
||||||
|
M 137.083,-145.245 L 135.782,-145.442 L 134.573,-145.769 L 133.455,-146.227 L 132.444,-146.81 L 131.553,-147.51
|
||||||
|
L 130.783,-148.33 L 130.132,-149.267 L 129.616,-150.312 L 129.247,-151.452 L 129.026,-152.688 L 128.952,-154.02
|
||||||
|
L 128.952,-168.924 L 132.127,-168.924 L 132.127,-154.287 L 132.229,-152.78 L 132.534,-151.466 L 133.043,-150.346
|
||||||
|
L 133.755,-149.418 L 134.66,-148.691 L 135.745,-148.172 L 137.011,-147.861 L 138.457,-147.757 L 139.948,-147.864
|
||||||
|
L 141.263,-148.187 L 142.402,-148.724 L 143.366,-149.476 L 144.133,-150.435 L 144.681,-151.593 L 145.01,-152.949
|
||||||
|
L 145.119,-154.503 L 145.119,-168.924 L 148.278,-168.924 L 148.278,-154.319 L 148.203,-152.947 L 147.977,-151.672
|
||||||
|
L 147.601,-150.496 L 147.073,-149.417 L 146.409,-148.448 L 145.619,-147.6 L 144.705,-146.873 L 143.666,-146.268
|
||||||
|
L 142.517,-145.792 L 141.268,-145.452 L 139.921,-145.248 L 138.474,-145.18 z
|
||||||
|
M 27.3115,-145.5 L 36.8755,-168.924 L 37.2333,-168.924 L 37.2333,-162.471 L 34.2625,-154.844 L 37.2333,-154.844
|
||||||
|
L 37.2333,-152.367 L 33.2975,-152.367 L 30.6025,-145.5 z
|
||||||
|
M 295.786,-145.5 L 295.786,-168.924 L 303.9,-168.924 L 303.9,-166.38 L 298.961,-166.38 L 298.961,-157.724
|
||||||
|
L 303.9,-157.724 L 303.9,-155.214 L 298.961,-155.214 L 298.961,-145.5 z
|
||||||
|
M 329.119,-145.5 L 329.119,-168.924 L 336.862,-168.924 L 337.233,-168.899 L 337.233,-166.351 L 336.796,-166.38
|
||||||
|
L 332.294,-166.38 L 332.294,-148.044 L 337.233,-148.044 L 337.233,-145.5 z
|
||||||
|
M 195.786,-145.5 L 195.786,-168.924 L 203.9,-168.924 L 203.9,-166.38 L 198.961,-166.38 L 198.961,-157.724
|
||||||
|
L 203.9,-157.724 L 203.9,-155.214 L 198.961,-155.214 L 198.961,-145.5 z
|
||||||
|
M 46.6555,-145.5 L 43.9774,-152.367 L 40.2333,-152.367 L 40.2333,-154.844 L 43.0294,-154.844 L 40.2333,-162.012
|
||||||
|
L 40.2333,-168.924 L 40.4835,-168.924 L 49.8975,-145.5 z
|
||||||
|
M 312.334,-145.5 L 306.9,-154.181 L 306.9,-157.741 L 307.802,-157.797 L 308.843,-158.017 L 309.742,-158.384
|
||||||
|
L 310.498,-158.897 L 311.098,-159.543 L 311.526,-160.306 L 311.783,-161.187 L 311.869,-162.185 L 311.782,-163.148
|
||||||
|
L 311.522,-163.989 L 311.089,-164.709 L 310.482,-165.306 L 309.712,-165.776 L 308.79,-166.111 L 307.715,-166.313
|
||||||
|
L 306.9,-166.357 L 306.9,-168.918 L 308.667,-168.813 L 310.307,-168.481 L 311.72,-167.927 L 312.909,-167.152
|
||||||
|
L 313.851,-166.179 L 314.523,-165.032 L 314.927,-163.712 L 315.061,-162.218 L 314.966,-160.964 L 314.681,-159.814
|
||||||
|
L 314.206,-158.767 L 313.54,-157.825 L 312.708,-157.017 L 311.731,-156.373 L 310.61,-155.894 L 309.345,-155.579
|
||||||
|
L 315.991,-145.5 z
|
||||||
|
M 212.334,-145.5 L 206.9,-154.181 L 206.9,-157.741 L 207.802,-157.797 L 208.843,-158.017 L 209.742,-158.384
|
||||||
|
L 210.498,-158.897 L 211.098,-159.543 L 211.526,-160.306 L 211.783,-161.187 L 211.869,-162.185 L 211.782,-163.148
|
||||||
|
L 211.522,-163.989 L 211.089,-164.709 L 210.482,-165.306 L 209.712,-165.776 L 208.79,-166.111 L 207.715,-166.313
|
||||||
|
L 206.9,-166.357 L 206.9,-168.918 L 208.667,-168.813 L 210.307,-168.481 L 211.72,-167.927 L 212.909,-167.152
|
||||||
|
L 213.851,-166.179 L 214.523,-165.032 L 214.927,-163.712 L 215.061,-162.218 L 214.966,-160.964 L 214.681,-159.814
|
||||||
|
L 214.206,-158.767 L 213.54,-157.825 L 212.708,-157.017 L 211.731,-156.373 L 210.61,-155.894 L 209.345,-155.579
|
||||||
|
L 215.991,-145.5 z
|
||||||
|
M 340.233,-148.424 L 341.024,-148.68 L 342.038,-149.174 L 342.958,-149.802 L 343.764,-150.554 L 344.457,-151.431
|
||||||
|
L 345.036,-152.433 L 345.495,-153.545 L 345.822,-154.752 L 346.018,-156.055 L 346.083,-157.453 L 345.934,-159.501
|
||||||
|
L 345.487,-161.291 L 344.742,-162.822 L 343.699,-164.094 L 342.374,-165.094 L 340.782,-165.808 L 340.233,-165.935
|
||||||
|
L 340.233,-168.609 L 342.132,-168.178 L 344.258,-167.245 L 346.043,-165.94 L 347.457,-164.291 L 348.467,-162.326
|
||||||
|
L 349.073,-160.047 L 349.275,-157.453 L 349.187,-155.698 L 348.922,-154.055 L 348.481,-152.527 L 347.862,-151.111
|
||||||
|
L 347.083,-149.831 L 346.155,-148.711 L 345.081,-147.749 L 343.858,-146.946 L 342.513,-146.313 L 341.067,-145.861
|
||||||
|
L 340.233,-145.715 z
|
||||||
|
M 36.9901,-110.5 L 36.9901,-131.33 L 28.9431,-131.33 L 28.9431,-133.924 L 48.1971,-133.924 L 48.1971,-131.33
|
||||||
|
L 40.149,-131.33 L 40.149,-110.5 z
|
||||||
|
M 63.0223,-110.5 L 56.1253,-133.924 L 59.4333,-133.924 L 63.6383,-119.045 L 64.0046,-117.638 L 64.3565,-116.21
|
||||||
|
L 64.6941,-114.762 L 65.0173,-113.293 L 65.2245,-114.228 L 65.4473,-115.205 L 65.6855,-116.223 L 65.9393,-117.283
|
||||||
|
L 66.424,-119.133 L 67.3543,-122.524 L 68.73,-127.454 L 70.5513,-133.924 L 73.5942,-133.924 L 77.6662,-119.344
|
||||||
|
L 78.1064,-117.626 L 78.4967,-116.044 L 78.8374,-114.6 L 79.1283,-113.293 L 79.2782,-113.875 L 79.4919,-114.787
|
||||||
|
L 79.8569,-116.345 L 80.0082,-116.992 L 80.4062,-118.502 L 81.3172,-121.827 L 82.7412,-126.968 L 84.6782,-133.924
|
||||||
|
L 87.9872,-133.924 L 81.0892,-110.5 L 77.2992,-110.5 L 73.2442,-125.379 L 73.0219,-126.215 L 72.754,-127.328
|
||||||
|
L 72.4404,-128.717 L 72.0812,-130.383 L 71.8736,-129.458 L 71.6825,-128.613 L 71.5081,-127.846 L 71.3503,-127.158
|
||||||
|
L 70.9546,-125.63 L 70.0665,-122.345 L 68.6861,-117.301 L 66.8133,-110.5 z
|
||||||
|
M 203.674,-110.5 L 203.674,-120.209 L 194.659,-133.924 L 198.15,-133.924 L 205.287,-122.769 L 212.391,-133.924
|
||||||
|
L 215.883,-133.924 L 206.833,-120.209 L 206.833,-110.5 z
|
||||||
|
M 361.343,-110.5 L 370.258,-122.669 L 362.025,-133.924 L 365.533,-133.924 L 372.054,-124.731 L 378.393,-133.924
|
||||||
|
L 381.901,-133.924 L 373.884,-122.786 L 382.583,-110.5 L 379.075,-110.5 L 372.038,-120.741 L 364.851,-110.5
|
||||||
|
z
|
||||||
|
M 330.038,-110.5 L 330.038,-133.924 L 347.818,-133.924 L 347.818,-131.33 L 333.213,-131.33 L 333.213,-123.812
|
||||||
|
L 346.82,-123.812 L 346.82,-121.252 L 333.213,-121.252 L 333.213,-113.094 L 348.5,-113.094 L 348.5,-110.5
|
||||||
|
z
|
||||||
|
M 303.625,-110.5 L 294.061,-133.924 L 297.402,-133.924 L 303.89,-117.432 L 305.288,-113.293 L 306.685,-117.432
|
||||||
|
L 313.14,-133.924 L 316.481,-133.924 L 306.917,-110.5 z
|
||||||
|
M 270.194,-110.5 L 270.194,-133.924 L 273.37,-133.924 L 273.37,-110.5 z
|
||||||
|
M 230.971,-110.5 L 230.971,-133.924 L 247.615,-133.924 L 247.615,-131.33 L 234.146,-131.33 L 234.146,-122.596
|
||||||
|
L 247.216,-122.596 L 247.216,-119.969 L 234.146,-119.969 L 234.146,-110.5 z
|
||||||
|
M 129.119,-110.5 L 129.119,-133.924 L 132.81,-133.924 L 145.468,-113.842 L 145.381,-115.359 L 145.319,-116.651
|
||||||
|
L 145.282,-117.719 L 145.269,-118.563 L 145.269,-133.924 L 148.128,-133.924 L 148.128,-110.5 L 144.304,-110.5
|
||||||
|
L 131.779,-130.449 L 131.862,-128.836 L 131.945,-126.06 L 131.945,-110.5 z
|
||||||
|
M 96.7051,-110.5 L 96.7051,-133.924 L 114.485,-133.924 L 114.485,-131.33 L 99.8801,-131.33 L 99.8801,-123.812
|
||||||
|
L 113.487,-123.812 L 113.487,-121.252 L 99.8801,-121.252 L 99.8801,-113.094 L 115.167,-113.094 L 115.167,-110.5
|
||||||
|
z
|
||||||
|
M 170.323,-110.5 L 170.323,-131.33 L 162.276,-131.33 L 162.276,-133.924 L 181.53,-133.924 L 181.53,-131.33
|
||||||
|
L 173.482,-131.33 L 173.482,-110.5 z
|
||||||
|
M 6.38196,-98.0979 L 5.38196,-98.8244 L 5,-100 L 5.38196,-101.176 L 6.38196,-101.902 L 7.61803,-101.902
|
||||||
|
L 8.61803,-101.176 L 9,-100 L 8.61803,-98.8244 L 7.61803,-98.0979 z
|
||||||
|
M 402.382,-98.0979 L 401.382,-98.8244 L 401,-100 L 401.382,-101.176 L 402.382,-101.902 L 403.618,-101.902
|
||||||
|
L 404.618,-101.176 L 405,-100 L 404.618,-98.8244 L 403.618,-98.0979 z
|
||||||
|
M 168.222,-75.552 L 165.289,-76.668 L 163.257,-78.528 L 162.125,-81.132 L 165.201,-81.747 L 165.542,-80.7612
|
||||||
|
L 166.032,-79.9157 L 166.673,-79.2107 L 167.463,-78.646 L 168.406,-78.2133 L 169.505,-77.9042 L 170.76,-77.7188
|
||||||
|
L 172.171,-77.657 L 173.622,-77.7228 L 174.897,-77.9202 L 175.997,-78.2493 L 176.921,-78.71 L 177.652,-79.2981
|
||||||
|
L 178.175,-80.0095 L 178.488,-80.8441 L 178.593,-81.802 L 178.56,-82.3475 L 178.462,-82.839 L 178.298,-83.2765
|
||||||
|
L 178.069,-83.66 L 177.78,-84.0014 L 177.439,-84.3117 L 177.044,-84.5909 L 176.597,-84.839 L 176.1,-85.0621
|
||||||
|
L 175.557,-85.2665 L 174.969,-85.4521 L 174.335,-85.619 L 173.66,-85.7796 L 172.95,-85.9465 L 172.205,-86.1196
|
||||||
|
L 171.424,-86.299 L 170.118,-86.606 L 168.981,-86.913 L 168.01,-87.22 L 167.207,-87.527 L 166.525,-87.8432
|
||||||
|
L 165.92,-88.177 L 165.39,-88.5282 L 164.936,-88.897 L 164.545,-89.2906 L 164.202,-89.7162 L 163.909,-90.1741
|
||||||
|
L 163.664,-90.664 L 163.471,-91.1887 L 163.333,-91.7507 L 163.25,-92.3502 L 163.223,-92.987 L 163.367,-94.4029
|
||||||
|
L 163.799,-95.6465 L 164.518,-96.7179 L 165.526,-97.617 L 166.802,-98.3288 L 168.327,-98.8372 L 170.099,-99.1423
|
||||||
|
L 172.121,-99.244 L 173.999,-99.1676 L 175.643,-98.9385 L 177.051,-98.5566 L 178.225,-98.022 L 179.202,-97.3035
|
||||||
|
L 180.022,-96.37 L 180.683,-95.2215 L 181.186,-93.858 L 178.061,-93.309 L 177.745,-94.1761 L 177.312,-94.9152
|
||||||
|
L 176.763,-95.5266 L 176.098,-96.01 L 175.305,-96.3775 L 174.372,-96.64 L 173.3,-96.7975 L 172.089,-96.85
|
||||||
|
L 170.766,-96.7919 L 169.61,-96.6177 L 168.619,-96.3274 L 167.796,-95.921 L 167.148,-95.4 L 166.686,-94.765
|
||||||
|
L 166.408,-94.016 L 166.316,-93.153 L 166.352,-92.6369 L 166.459,-92.1675 L 166.639,-91.7449 L 166.89,-91.369
|
||||||
|
L 167.208,-91.0299 L 167.591,-90.7177 L 168.036,-90.4324 L 168.545,-90.174 L 169.219,-89.9154 L 170.162,-89.6287
|
||||||
|
L 171.373,-89.3139 L 172.853,-88.971 L 173.393,-88.846 L 173.932,-88.72 L 174.47,-88.593 L 175.007,-88.465
|
||||||
|
L 175.538,-88.3302 L 176.057,-88.183 L 176.565,-88.0232 L 177.061,-87.851 L 177.544,-87.6647 L 178.011,-87.4627
|
||||||
|
L 178.463,-87.2452 L 178.899,-87.012 L 179.313,-86.758 L 179.7,-86.477 L 180.058,-86.169 L 180.388,-85.834
|
||||||
|
L 180.687,-85.4699 L 180.951,-85.0747 L 181.181,-84.6484 L 181.377,-84.191 L 181.533,-83.6973 L 181.645,-83.1622
|
||||||
|
L 181.712,-82.5858 L 181.735,-81.968 L 181.576,-80.4408 L 181.101,-79.0962 L 180.308,-77.9343 L 179.198,-76.955
|
||||||
|
L 177.8,-76.1784 L 176.144,-75.6237 L 174.229,-75.2909 L 172.055,-75.18 z
|
||||||
|
M 373.567,-77.8882 L 373.87,-77.913 L 375.546,-78.381 L 376.985,-79.161 L 378.189,-80.253 L 379.139,-81.6305
|
||||||
|
L 379.817,-83.266 L 380.224,-85.1595 L 380.36,-87.311 L 380.223,-89.3753 L 379.813,-91.2052 L 379.129,-92.8008
|
||||||
|
L 378.172,-94.162 L 376.965,-95.2505 L 375.533,-96.028 L 373.875,-96.4945 L 373.567,-96.5199 L 373.567,-99.1632
|
||||||
|
L 373.72,-99.1553 L 375.33,-98.8892 L 376.822,-98.4458 L 378.195,-97.825 L 379.432,-97.0351 L 380.513,-96.0845
|
||||||
|
L 381.44,-94.9731 L 382.212,-93.701 L 382.82,-92.2873 L 383.254,-90.7512 L 383.514,-89.0928 L 383.601,-87.312
|
||||||
|
L 383.513,-85.535 L 383.25,-83.8722 L 382.81,-82.3235 L 382.195,-80.889 L 381.416,-79.5914 L 380.484,-78.4535
|
||||||
|
L 379.4,-77.4754 L 378.162,-76.657 L 376.789,-76.0108 L 375.297,-75.5492 L 373.687,-75.2723 L 373.567,-75.2659
|
||||||
|
z
|
||||||
|
M 370.215,-75.2713 L 368.596,-75.545 L 367.1,-76.0012 L 365.728,-76.64 L 364.496,-77.4519 L 363.419,-78.4265
|
||||||
|
L 362.496,-79.5639 L 361.728,-80.864 L 361.124,-82.3031 L 360.693,-83.8575 L 360.434,-85.5271 L 360.348,-87.312
|
||||||
|
L 360.54,-89.9635 L 361.117,-92.309 L 362.079,-94.3485 L 363.425,-96.082 L 365.114,-97.4654 L 367.105,-98.4535
|
||||||
|
L 369.397,-99.0464 L 370.567,-99.1355 L 370.567,-96.5349 L 370.092,-96.4966 L 368.423,-96.0362 L 366.981,-95.2691
|
||||||
|
L 365.769,-94.195 L 364.808,-92.8441 L 364.122,-91.2465 L 363.71,-89.4021 L 363.573,-87.311 L 363.712,-85.2269
|
||||||
|
L 364.128,-83.3697 L 364.822,-81.7394 L 365.794,-80.336 L 367.012,-79.2077 L 368.446,-78.4017 L 370.094,-77.9182
|
||||||
|
L 370.567,-77.8773 L 370.567,-75.2528 z
|
||||||
|
M 203.657,-75.5 L 203.657,-96.33 L 195.61,-96.33 L 195.61,-98.924 L 214.864,-98.924 L 214.864,-96.33
|
||||||
|
L 206.816,-96.33 L 206.816,-75.5 z
|
||||||
|
M 29.1195,-75.5 L 29.1195,-98.924 L 32.2945,-98.924 L 32.2945,-89.004 L 44.9535,-89.004 L 44.9535,-98.924
|
||||||
|
L 48.1285,-98.924 L 48.1285,-75.5 L 44.9535,-75.5 L 44.9535,-86.344 L 32.2945,-86.344 L 32.2945,-75.5
|
||||||
|
z
|
||||||
|
M 336.99,-75.5 L 336.99,-96.33 L 328.943,-96.33 L 328.943,-98.924 L 348.197,-98.924 L 348.197,-96.33
|
||||||
|
L 340.149,-96.33 L 340.149,-75.5 z
|
||||||
|
M 297.638,-75.5 L 297.638,-98.924 L 314.282,-98.924 L 314.282,-96.33 L 300.813,-96.33 L 300.813,-87.596
|
||||||
|
L 313.883,-87.596 L 313.883,-84.969 L 300.813,-84.969 L 300.813,-75.5 z
|
||||||
|
M 262.453,-75.5 L 262.453,-98.924 L 266.144,-98.924 L 278.802,-78.842 L 278.715,-80.3588 L 278.653,-81.6512
|
||||||
|
L 278.615,-82.7193 L 278.603,-83.563 L 278.603,-98.924 L 281.462,-98.924 L 281.462,-75.5 L 277.638,-75.5
|
||||||
|
L 265.113,-95.449 L 265.196,-93.836 L 265.279,-91.06 L 265.279,-75.5 z
|
||||||
|
M 230.038,-75.5 L 230.038,-98.924 L 247.818,-98.924 L 247.818,-96.33 L 233.213,-96.33 L 233.213,-88.812
|
||||||
|
L 246.82,-88.812 L 246.82,-86.252 L 233.213,-86.252 L 233.213,-78.094 L 248.5,-78.094 L 248.5,-75.5
|
||||||
|
z
|
||||||
|
M 130.971,-75.5 L 130.971,-98.924 L 147.615,-98.924 L 147.615,-96.33 L 134.146,-96.33 L 134.146,-87.596
|
||||||
|
L 147.216,-87.596 L 147.216,-84.969 L 134.146,-84.969 L 134.146,-75.5 z
|
||||||
|
M 98.5479,-75.5 L 98.5479,-98.924 L 101.723,-98.924 L 101.723,-78.094 L 113.567,-78.094 L 113.567,-75.5
|
||||||
|
z
|
||||||
|
M 79.9888,-75.5 L 77.3108,-82.367 L 73.5667,-82.367 L 73.5667,-84.844 L 76.3628,-84.844 L 73.5667,-92.0121
|
||||||
|
L 73.5667,-98.924 L 73.8168,-98.924 L 83.2308,-75.5 z
|
||||||
|
M 60.6448,-75.5 L 70.2088,-98.924 L 70.5667,-98.924 L 70.5667,-92.4706 L 67.5958,-84.844 L 70.5667,-84.844
|
||||||
|
L 70.5667,-82.367 L 66.6308,-82.367 L 63.9358,-75.5 z
|
||||||
|
M 101.555,-40.552 L 98.6226,-41.668 L 96.5903,-43.528 L 95.4581,-46.132 L 98.5341,-46.747 L 98.875,-45.7612
|
||||||
|
L 99.3656,-44.9157 L 100.006,-44.2107 L 100.796,-43.646 L 101.74,-43.2133 L 102.839,-42.9042 L 104.094,-42.7188
|
||||||
|
L 105.504,-42.657 L 106.955,-42.7228 L 108.231,-42.9202 L 109.33,-43.2493 L 110.254,-43.71 L 110.986,-44.2981
|
||||||
|
L 111.508,-45.0095 L 111.822,-45.8441 L 111.926,-46.802 L 111.893,-47.3475 L 111.795,-47.839 L 111.631,-48.2765
|
||||||
|
L 111.402,-48.66 L 111.114,-49.0014 L 110.772,-49.3117 L 110.378,-49.5909 L 109.93,-49.839 L 109.433,-50.0621
|
||||||
|
L 108.891,-50.2665 L 108.302,-50.4521 L 107.668,-50.619 L 106.993,-50.7796 L 106.283,-50.9465 L 105.538,-51.1196
|
||||||
|
L 104.757,-51.299 L 103.452,-51.606 L 102.314,-51.913 L 101.343,-52.22 L 100.54,-52.527 L 99.8586,-52.8432
|
||||||
|
L 99.2529,-53.177 L 98.7231,-53.5282 L 98.2691,-53.897 L 97.878,-54.2906 L 97.5356,-54.7162 L 97.242,-55.1741
|
||||||
|
L 96.9971,-55.664 L 96.8042,-56.1887 L 96.6664,-56.7507 L 96.5837,-57.3502 L 96.5561,-57.987 L 96.7001,-59.4029
|
||||||
|
L 97.1319,-60.6465 L 97.8516,-61.7179 L 98.8591,-62.617 L 100.135,-63.3288 L 101.66,-63.8372 L 103.433,-64.1423
|
||||||
|
L 105.454,-64.244 L 107.333,-64.1676 L 108.976,-63.9385 L 110.385,-63.5566 L 111.558,-63.022 L 112.536,-62.3035
|
||||||
|
L 113.355,-61.37 L 114.016,-60.2215 L 114.519,-58.858 L 111.394,-58.309 L 111.078,-59.1761 L 110.645,-59.9152
|
||||||
|
L 110.096,-60.5266 L 109.431,-61.01 L 108.638,-61.3775 L 107.705,-61.64 L 106.633,-61.7975 L 105.422,-61.85
|
||||||
|
L 104.099,-61.7919 L 102.943,-61.6177 L 101.953,-61.3274 L 101.129,-60.921 L 100.482,-60.4 L 100.019,-59.765
|
||||||
|
L 99.7416,-59.016 L 99.6491,-58.153 L 99.685,-57.6369 L 99.7926,-57.1675 L 99.972,-56.7449 L 100.223,-56.369
|
||||||
|
L 100.542,-56.0299 L 100.924,-55.7177 L 101.369,-55.4324 L 101.878,-55.174 L 102.553,-54.9154 L 103.496,-54.6287
|
||||||
|
L 104.707,-54.3139 L 106.186,-53.971 L 106.726,-53.846 L 107.265,-53.72 L 107.803,-53.593 L 108.34,-53.465
|
||||||
|
L 108.871,-53.3302 L 109.39,-53.183 L 109.898,-53.0232 L 110.394,-52.851 L 110.877,-52.6647 L 111.344,-52.4627
|
||||||
|
L 111.796,-52.2452 L 112.232,-52.012 L 112.647,-51.758 L 113.033,-51.477 L 113.391,-51.169 L 113.721,-50.834
|
||||||
|
L 114.02,-50.4699 L 114.284,-50.0747 L 114.514,-49.6484 L 114.71,-49.191 L 114.867,-48.6973 L 114.979,-48.1622
|
||||||
|
L 115.046,-47.5858 L 115.068,-46.968 L 114.91,-45.4408 L 114.434,-44.0962 L 113.641,-42.9343 L 112.531,-41.955
|
||||||
|
L 111.134,-41.1784 L 109.477,-40.6237 L 107.562,-40.2909 L 105.388,-40.18 z
|
||||||
|
M 262.453,-40.5 L 262.453,-63.924 L 266.144,-63.924 L 278.802,-43.842 L 278.715,-45.3588 L 278.653,-46.6512
|
||||||
|
L 278.615,-47.7193 L 278.603,-48.563 L 278.603,-63.924 L 281.462,-63.924 L 281.462,-40.5 L 277.638,-40.5
|
||||||
|
L 265.113,-60.449 L 265.196,-58.836 L 265.279,-56.06 L 265.279,-40.5 z
|
||||||
|
M 303.527,-40.5 L 303.527,-63.924 L 306.703,-63.924 L 306.703,-40.5 z
|
||||||
|
M 30.0385,-40.5 L 30.0385,-63.924 L 37.2333,-63.924 L 37.2333,-61.38 L 33.2135,-61.38 L 33.2135,-52.148
|
||||||
|
L 37.2333,-52.148 L 37.2333,-49.638 L 33.2135,-49.638 L 33.2135,-40.5 z
|
||||||
|
M 195.786,-40.5 L 195.786,-63.924 L 203.9,-63.924 L 203.9,-61.38 L 198.961,-61.38 L 198.961,-52.724
|
||||||
|
L 203.9,-52.724 L 203.9,-50.214 L 198.961,-50.214 L 198.961,-40.5 z
|
||||||
|
M 163.372,-40.5 L 163.372,-63.924 L 181.152,-63.924 L 181.152,-61.33 L 166.547,-61.33 L 166.547,-53.812
|
||||||
|
L 180.154,-53.812 L 180.154,-51.252 L 166.547,-51.252 L 166.547,-43.094 L 181.834,-43.094 L 181.834,-40.5
|
||||||
|
z
|
||||||
|
M 136.99,-40.5 L 136.99,-61.33 L 128.943,-61.33 L 128.943,-63.924 L 148.197,-63.924 L 148.197,-61.33
|
||||||
|
L 140.149,-61.33 L 140.149,-40.5 z
|
||||||
|
M 329.119,-40.5 L 329.119,-63.924 L 332.81,-63.924 L 345.468,-43.842 L 345.381,-45.3588 L 345.319,-46.6512
|
||||||
|
L 345.282,-47.7193 L 345.269,-48.563 L 345.269,-63.924 L 348.128,-63.924 L 348.128,-40.5 L 344.304,-40.5
|
||||||
|
L 331.779,-60.449 L 331.862,-58.836 L 331.945,-56.06 L 331.945,-40.5 z
|
||||||
|
M 237.083,-40.2454 L 235.782,-40.4418 L 234.573,-40.7689 L 233.455,-41.227 L 232.444,-41.8096 L 231.553,-42.5105
|
||||||
|
L 230.783,-43.3296 L 230.132,-44.267 L 229.616,-45.3118 L 229.247,-46.4522 L 229.026,-47.6883 L 228.952,-49.02
|
||||||
|
L 228.952,-63.924 L 232.127,-63.924 L 232.127,-49.287 L 232.229,-47.7801 L 232.534,-46.4662 L 233.043,-45.3456
|
||||||
|
L 233.755,-44.418 L 234.66,-43.6913 L 235.745,-43.1722 L 237.011,-42.8608 L 238.457,-42.757 L 239.948,-42.8644
|
||||||
|
L 241.263,-43.1867 L 242.402,-43.7239 L 243.366,-44.476 L 244.133,-45.4352 L 244.681,-46.5927 L 245.01,-47.9487
|
||||||
|
L 245.119,-49.503 L 245.119,-63.924 L 248.278,-63.924 L 248.278,-49.319 L 248.203,-47.9469 L 247.977,-46.6725
|
||||||
|
L 247.601,-45.4959 L 247.073,-44.417 L 246.409,-43.4477 L 245.619,-42.5997 L 244.705,-41.8732 L 243.666,-41.268
|
||||||
|
L 242.517,-40.792 L 241.268,-40.452 L 239.921,-40.248 L 238.474,-40.18 z
|
||||||
|
M 79.9888,-40.5 L 77.3108,-47.367 L 73.5667,-47.367 L 73.5667,-49.844 L 76.3628,-49.844 L 73.5667,-57.0121
|
||||||
|
L 73.5667,-63.924 L 73.8168,-63.924 L 83.2308,-40.5 z
|
||||||
|
M 363.372,-40.5 L 363.372,-63.924 L 381.152,-63.924 L 381.152,-61.33 L 366.547,-61.33 L 366.547,-53.812
|
||||||
|
L 380.154,-53.812 L 380.154,-51.252 L 366.547,-51.252 L 366.547,-43.094 L 381.834,-43.094 L 381.834,-40.5
|
||||||
|
z
|
||||||
|
M 60.6448,-40.5 L 70.2088,-63.924 L 70.5667,-63.924 L 70.5667,-57.4706 L 67.5958,-49.844 L 70.5667,-49.844
|
||||||
|
L 70.5667,-47.367 L 66.6308,-47.367 L 63.9358,-40.5 z
|
||||||
|
M 212.334,-40.5 L 206.9,-49.1807 L 206.9,-52.7414 L 207.802,-52.7973 L 208.843,-53.0172 L 209.742,-53.3838
|
||||||
|
L 210.498,-53.897 L 211.098,-54.5427 L 211.526,-55.306 L 211.783,-56.1867 L 211.869,-57.185 L 211.782,-58.1481
|
||||||
|
L 211.522,-58.9892 L 211.089,-59.7086 L 210.482,-60.306 L 209.712,-60.7759 L 208.79,-61.1115 L 207.715,-61.3129
|
||||||
|
L 206.9,-61.3574 L 206.9,-63.9182 L 208.667,-63.8132 L 210.307,-63.481 L 211.72,-62.9272 L 212.909,-62.152
|
||||||
|
L 213.851,-61.1791 L 214.523,-60.0325 L 214.927,-58.7121 L 215.061,-57.218 L 214.966,-55.9639 L 214.681,-54.8137
|
||||||
|
L 214.206,-53.7674 L 213.54,-52.825 L 212.708,-52.0171 L 211.731,-51.3735 L 210.61,-50.8941 L 209.345,-50.579
|
||||||
|
L 215.991,-40.5 z
|
||||||
|
M 40.2333,-52.2212 L 41.9817,-52.4417 L 43.6454,-53.3227 L 44.6437,-54.7912 L 44.9765,-56.847 L 44.6354,-58.8302
|
||||||
|
L 43.6122,-60.2467 L 41.9069,-61.0967 L 40.2333,-61.2953 L 40.2333,-63.9034 L 41.7612,-63.8087 L 43.3985,-63.463
|
||||||
|
L 44.8132,-62.8867 L 46.0054,-62.08 L 46.9518,-61.0636 L 47.6277,-59.8582 L 48.0333,-58.4641 L 48.1685,-56.881
|
||||||
|
L 48.0328,-55.3047 L 47.6257,-53.8987 L 46.9473,-52.6632 L 45.9975,-51.598 L 44.8148,-50.7405 L 43.4377,-50.128
|
||||||
|
L 41.8663,-49.7605 L 40.2333,-49.6472 z
|
||||||
|
M 134.889,-5.55199 L 131.956,-6.668 L 129.924,-8.528 L 128.791,-11.132 L 131.867,-11.747 L 132.208,-10.7612
|
||||||
|
L 132.699,-9.91574 L 133.339,-9.21068 L 134.129,-8.646 L 135.073,-8.2133 L 136.172,-7.90424 L 137.427,-7.71881
|
||||||
|
L 138.837,-7.657 L 140.289,-7.72281 L 141.564,-7.92024 L 142.664,-8.2493 L 143.587,-8.70999 L 144.319,-9.29811
|
||||||
|
L 144.841,-10.0095 L 145.155,-10.8441 L 145.259,-11.802 L 145.227,-12.3475 L 145.128,-12.839 L 144.965,-13.2765
|
||||||
|
L 144.735,-13.66 L 144.447,-14.0014 L 144.105,-14.3117 L 143.711,-14.5909 L 143.263,-14.839 L 142.767,-15.0621
|
||||||
|
L 142.224,-15.2665 L 141.636,-15.4521 L 141.001,-15.619 L 140.327,-15.7796 L 139.617,-15.9465 L 138.871,-16.1196
|
||||||
|
L 138.09,-16.299 L 136.785,-16.606 L 135.647,-16.913 L 134.677,-17.22 L 133.873,-17.527 L 133.192,-17.8432
|
||||||
|
L 132.586,-18.177 L 132.056,-18.5282 L 131.602,-18.897 L 131.211,-19.2906 L 130.869,-19.7162 L 130.575,-20.1741
|
||||||
|
L 130.33,-20.664 L 130.138,-21.1887 L 130,-21.7507 L 129.917,-22.3502 L 129.889,-22.987 L 130.033,-24.4029
|
||||||
|
L 130.465,-25.6465 L 131.185,-26.7179 L 132.192,-27.617 L 133.469,-28.3288 L 134.993,-28.8372 L 136.766,-29.1423
|
||||||
|
L 138.787,-29.244 L 140.666,-29.1676 L 142.309,-28.9385 L 143.718,-28.5566 L 144.891,-28.022 L 145.869,-27.3035
|
||||||
|
L 146.688,-26.37 L 147.349,-25.2215 L 147.852,-23.858 L 144.727,-23.309 L 144.411,-24.1761 L 143.979,-24.9152
|
||||||
|
L 143.43,-25.5266 L 142.764,-26.01 L 141.971,-26.3775 L 141.039,-26.64 L 139.967,-26.7975 L 138.755,-26.85
|
||||||
|
L 137.433,-26.7919 L 136.276,-26.6177 L 135.286,-26.3274 L 134.462,-25.921 L 133.815,-25.4 L 133.352,-24.765
|
||||||
|
L 133.075,-24.016 L 132.982,-23.153 L 133.018,-22.6369 L 133.126,-22.1675 L 133.305,-21.7449 L 133.556,-21.369
|
||||||
|
L 133.875,-21.0299 L 134.257,-20.7177 L 134.703,-20.4324 L 135.211,-20.174 L 135.886,-19.9154 L 136.829,-19.6287
|
||||||
|
L 138.04,-19.3139 L 139.519,-18.971 L 140.059,-18.846 L 140.598,-18.72 L 141.136,-18.593 L 141.673,-18.465
|
||||||
|
L 142.204,-18.3302 L 142.723,-18.183 L 143.231,-18.0232 L 143.727,-17.851 L 144.21,-17.6647 L 144.677,-17.4627
|
||||||
|
L 145.129,-17.2452 L 145.565,-17.012 L 145.98,-16.758 L 146.366,-16.477 L 146.724,-16.169 L 147.054,-15.834
|
||||||
|
L 147.353,-15.4699 L 147.618,-15.0747 L 147.848,-14.6484 L 148.043,-14.191 L 148.2,-13.6973 L 148.312,-13.1622
|
||||||
|
L 148.379,-12.5858 L 148.401,-11.968 L 148.243,-10.4408 L 147.767,-9.09624 L 146.974,-7.93431 L 145.864,-6.95499
|
||||||
|
L 144.467,-6.17844 L 142.811,-5.62375 L 140.896,-5.29094 L 138.721,-5.18001 z
|
||||||
|
M 40.2333,-7.88824 L 40.5366,-7.91299 L 42.2124,-8.381 L 43.6521,-9.161 L 44.8557,-10.253 L 45.8055,-11.6305
|
||||||
|
L 46.4839,-13.266 L 46.891,-15.1595 L 47.0267,-17.311 L 46.8899,-19.3753 L 46.4797,-21.2052 L 45.7959,-22.8008
|
||||||
|
L 44.8387,-24.162 L 43.6319,-25.2505 L 42.1994,-26.028 L 40.5414,-26.4945 L 40.2333,-26.5199 L 40.2333,-29.1632
|
||||||
|
L 40.3864,-29.1553 L 41.9967,-28.8892 L 43.4884,-28.4458 L 44.8617,-27.825 L 46.0982,-27.0351 L 47.1799,-26.0845
|
||||||
|
L 48.1067,-24.9731 L 48.8787,-23.701 L 49.4864,-22.2873 L 49.9204,-20.7512 L 50.1809,-19.0928 L 50.2677,-17.312
|
||||||
|
L 50.1798,-15.535 L 49.9162,-13.8722 L 49.4768,-12.3235 L 48.8617,-10.889 L 48.0827,-9.59137 L 47.1509,-8.45349
|
||||||
|
L 46.0662,-7.47537 L 44.8287,-6.657 L 43.4554,-6.0108 L 41.9637,-5.54924 L 40.3534,-5.27232 L 40.2333,-5.26591
|
||||||
|
z
|
||||||
|
M 36.8816,-5.27126 L 35.2622,-5.545 L 33.7666,-6.00124 L 32.3947,-6.64 L 31.1626,-7.45187 L 30.0852,-8.4265
|
||||||
|
L 29.1626,-9.56387 L 28.3947,-10.864 L 27.7909,-12.3031 L 27.3597,-13.8575 L 27.101,-15.5271 L 27.0147,-17.312
|
||||||
|
L 27.207,-19.9635 L 27.784,-22.309 L 28.7455,-24.3485 L 30.0917,-26.082 L 31.7809,-27.4654 L 33.7717,-28.4535
|
||||||
|
L 36.0639,-29.0464 L 37.2333,-29.1355 L 37.2333,-26.5349 L 36.7591,-26.4966 L 35.0892,-26.0362 L 33.6481,-25.2691
|
||||||
|
L 32.4357,-24.195 L 31.4749,-22.8441 L 30.7887,-21.2465 L 30.3769,-19.4021 L 30.2397,-17.311 L 30.3785,-15.2269
|
||||||
|
L 30.795,-13.3697 L 31.489,-11.7394 L 32.4607,-10.336 L 33.6788,-9.20769 L 35.1122,-8.40175 L 36.7608,-7.91818
|
||||||
|
L 37.2333,-7.87732 L 37.2333,-5.25284 z
|
||||||
|
M 236.99,-5.5 L 236.99,-26.33 L 228.943,-26.33 L 228.943,-28.924 L 248.197,-28.924 L 248.197,-26.33
|
||||||
|
L 240.149,-26.33 L 240.149,-5.5 z
|
||||||
|
M 262.453,-5.5 L 262.453,-28.924 L 265.628,-28.924 L 265.628,-19.004 L 278.287,-19.004 L 278.287,-28.924
|
||||||
|
L 281.462,-28.924 L 281.462,-5.5 L 278.287,-5.5 L 278.287,-16.344 L 265.628,-16.344 L 265.628,-5.5
|
||||||
|
z
|
||||||
|
M 363.372,-5.5 L 363.372,-28.924 L 381.152,-28.924 L 381.152,-26.33 L 366.547,-26.33 L 366.547,-18.812
|
||||||
|
L 380.154,-18.812 L 380.154,-16.252 L 366.547,-16.252 L 366.547,-8.09399 L 381.834,-8.09399 L 381.834,-5.5
|
||||||
|
z
|
||||||
|
M 330.038,-5.5 L 330.038,-28.924 L 347.818,-28.924 L 347.818,-26.33 L 333.213,-26.33 L 333.213,-18.812
|
||||||
|
L 346.82,-18.812 L 346.82,-16.252 L 333.213,-16.252 L 333.213,-8.09399 L 348.5,-8.09399 L 348.5,-5.5
|
||||||
|
z
|
||||||
|
M 295.786,-5.5 L 295.786,-28.924 L 303.9,-28.924 L 303.9,-26.38 L 298.961,-26.38 L 298.961,-17.724
|
||||||
|
L 303.9,-17.724 L 303.9,-15.214 L 298.961,-15.214 L 298.961,-5.5 z
|
||||||
|
M 62.4528,-5.5 L 62.4528,-28.924 L 66.1438,-28.924 L 78.8018,-8.842 L 78.7147,-10.3588 L 78.6525,-11.6512
|
||||||
|
L 78.6152,-12.7193 L 78.6028,-13.563 L 78.6028,-28.924 L 81.4618,-28.924 L 81.4618,-5.5 L 77.6378,-5.5
|
||||||
|
L 65.1128,-25.449 L 65.1958,-23.836 L 65.2788,-21.06 L 65.2788,-5.5 z
|
||||||
|
M 170.194,-5.5 L 170.194,-28.924 L 173.37,-28.924 L 173.37,-5.5 z
|
||||||
|
M 96.7051,-5.5 L 96.7051,-28.924 L 114.485,-28.924 L 114.485,-26.33 L 99.8801,-26.33 L 99.8801,-18.812
|
||||||
|
L 113.487,-18.812 L 113.487,-16.252 L 99.8801,-16.252 L 99.8801,-8.09399 L 115.167,-8.09399 L 115.167,-5.5
|
||||||
|
z
|
||||||
|
M 194.676,-5.5 L 203.591,-17.669 L 195.358,-28.924 L 198.866,-28.924 L 205.387,-19.731 L 211.726,-28.924
|
||||||
|
L 215.234,-28.924 L 207.217,-17.786 L 215.916,-5.5 L 212.408,-5.5 L 205.371,-15.741 L 198.184,-5.5
|
||||||
|
z
|
||||||
|
M 312.334,-5.5 L 306.9,-14.1807 L 306.9,-17.7414 L 307.802,-17.7973 L 308.843,-18.0172 L 309.742,-18.3838
|
||||||
|
L 310.498,-18.897 L 311.098,-19.5427 L 311.526,-20.306 L 311.783,-21.1867 L 311.869,-22.185 L 311.782,-23.1481
|
||||||
|
L 311.522,-23.9892 L 311.089,-24.7086 L 310.482,-25.306 L 309.712,-25.7759 L 308.79,-26.1115 L 307.715,-26.3129
|
||||||
|
L 306.9,-26.3574 L 306.9,-28.9182 L 308.667,-28.8132 L 310.307,-28.481 L 311.72,-27.9272 L 312.909,-27.152
|
||||||
|
L 313.851,-26.1791 L 314.523,-25.0325 L 314.927,-23.7121 L 315.061,-22.218 L 314.966,-20.9639 L 314.681,-19.8137
|
||||||
|
L 314.206,-18.7674 L 313.54,-17.825 L 312.708,-17.0171 L 311.731,-16.3735 L 310.61,-15.8941 L 309.345,-15.579
|
||||||
|
L 315.991,-5.5 z
|
||||||
|
" stroke="black" fill="lightgray" stroke-width="0.5"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 41 KiB |
263
hw/wordclock.scad
Normal file
|
@ -0,0 +1,263 @@
|
||||||
|
/* ITLISASAMPM */
|
||||||
|
/* ACQUARTERDC */
|
||||||
|
/* TWENTYFIVEX */
|
||||||
|
/* FALFSTENFTO */
|
||||||
|
/* PASTERUNINE */
|
||||||
|
/* ONESIXTHREE */
|
||||||
|
/* FOURFIVETWO */
|
||||||
|
/* EIGHTELEVEN */
|
||||||
|
/* SEVENTWELVE */
|
||||||
|
/* TENSEOCLOCK */
|
||||||
|
|
||||||
|
a3 = [297, 420];
|
||||||
|
e = 0.2;
|
||||||
|
|
||||||
|
// Overall is [335, 330] on [450, 450] with 58 mm margins.
|
||||||
|
s = [410, 410, 4];
|
||||||
|
|
||||||
|
module rcube(s, r=5) {
|
||||||
|
hull() {
|
||||||
|
for (x = [r, s[0]-r]) {
|
||||||
|
for (y = [r, s[1] - r]) {
|
||||||
|
translate([x, y, 0])
|
||||||
|
cylinder(r=r, s[2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Size of one LED on a strip.
|
||||||
|
sled = [100/3, 10+1, 3];
|
||||||
|
|
||||||
|
module led_strip(n) {
|
||||||
|
dc = 28+2.5;
|
||||||
|
w = 10;
|
||||||
|
h = 3;
|
||||||
|
lh = 2;
|
||||||
|
d = 5;
|
||||||
|
|
||||||
|
cube([n*dc, w, h-lh]);
|
||||||
|
for (x = [0..dc*n]) {
|
||||||
|
translate([x, 0, 0])
|
||||||
|
difference() {
|
||||||
|
cube([d, d, h-lh]);
|
||||||
|
translate([d/2, d/2, h-1])
|
||||||
|
cylinder(d=(d-1), 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Width and height in characters
|
||||||
|
cx = 11;
|
||||||
|
cy = 10;
|
||||||
|
// Separation between LEDs
|
||||||
|
dx = sled[0];
|
||||||
|
dy = 35;
|
||||||
|
t = 4;
|
||||||
|
sleds = [dx*cx, dy*cy, t];
|
||||||
|
|
||||||
|
module layer_plate() {
|
||||||
|
square([s[0], s[1]], center=false);
|
||||||
|
}
|
||||||
|
|
||||||
|
module mholes() {
|
||||||
|
inset = 7;
|
||||||
|
m = 4;
|
||||||
|
d = s[0] - inset*2;
|
||||||
|
for (x = [inset, s[0]-inset]) {
|
||||||
|
for (y = [inset:d/3:inset+d]) {
|
||||||
|
translate([x, y, 0])
|
||||||
|
circle(d=m, $fn=10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module back_layer() {
|
||||||
|
difference() {
|
||||||
|
layer_plate();
|
||||||
|
mholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module led_layer() {
|
||||||
|
module cutout() {
|
||||||
|
// Done as a snake
|
||||||
|
// LED strips
|
||||||
|
for (y = [0:dy:dy*cy-1]) {
|
||||||
|
translate([sled[1]/2, y, 0])
|
||||||
|
# square([sled[0]*cx+sled[1], sled[1]]);
|
||||||
|
}
|
||||||
|
// Verticals
|
||||||
|
for (y = [0:dy*2:dy*cy-1]) {
|
||||||
|
translate([3, y, 0])
|
||||||
|
square([sled[1]-1, dy+sled[1]]);
|
||||||
|
}
|
||||||
|
for (y = [dy:dy*2:dy*(cy-1)-1]) {
|
||||||
|
translate([sled[0]*cx+sled[1]-3, y+cy-sled[1]+1, 0])
|
||||||
|
square([sled[1], dy+sled[1]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sc = [dx*cx+sled[1]*2, dy*(cy-1)+sled[1], 4];
|
||||||
|
difference() {
|
||||||
|
layer_plate();
|
||||||
|
translate((s-sc)/2)
|
||||||
|
cutout();
|
||||||
|
nodemcu();
|
||||||
|
mholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module holes_layer() {
|
||||||
|
// LED hole radius
|
||||||
|
lhr = 6;
|
||||||
|
module holes() {
|
||||||
|
for (y = [0:dy:dy*cy-1]) {
|
||||||
|
for (x = [0:dx:dx*cx-1]) {
|
||||||
|
translate([x+lhr, y+lhr, 0])
|
||||||
|
circle(r=lhr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sh = [dx*(cx-1)+lhr*2, dy*(cy-1)+lhr*2, t];
|
||||||
|
difference() {
|
||||||
|
layer_plate();
|
||||||
|
translate((s-sh)/2)
|
||||||
|
holes();
|
||||||
|
nodemcu();
|
||||||
|
mholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module diffuse_layer() {
|
||||||
|
// LED hole radius
|
||||||
|
lhr = dx-6;
|
||||||
|
module holes() {
|
||||||
|
for (y = [0:dy:dy*cy-1]) {
|
||||||
|
for (x = [0:dx:dx*cx-1]) {
|
||||||
|
translate([x+lhr/2, y+lhr/2, 0])
|
||||||
|
square([lhr, lhr]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sh = [dx*(cx-1)+lhr*2, dy*(cy-1)+lhr*2, t];
|
||||||
|
difference() {
|
||||||
|
layer_plate();
|
||||||
|
translate((s-sh)/2)
|
||||||
|
holes();
|
||||||
|
mholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Diffuser sheet.
|
||||||
|
sd = [340, 340, 5];
|
||||||
|
|
||||||
|
module diffuser_layer() {
|
||||||
|
difference() {
|
||||||
|
layer_plate();
|
||||||
|
translate((s - sd)/2+[0, 0, -e])
|
||||||
|
cube(sd);
|
||||||
|
mholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Front words panel
|
||||||
|
|
||||||
|
module words_layer() {
|
||||||
|
module character(ch) {
|
||||||
|
if (len(search(str(ch), "APQRDO")) > 0) {
|
||||||
|
difference() {
|
||||||
|
text(text=ch, size=dy*.7, font="Bitstream Vera Sans Mono:style=Bold", halign="center");
|
||||||
|
translate([-.8-.3, -6, 0])
|
||||||
|
square([3, 30]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
text(text=ch, size=dy*.7, font="Bitstream Vera Sans Mono:style=Bold", halign="center");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
module row(v) {
|
||||||
|
for (i = [0:len(v)-1]) {
|
||||||
|
translate([sled[0]*i, 0, 0])
|
||||||
|
character(v[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
module rows() {
|
||||||
|
texts = [
|
||||||
|
"ITSISASAMPM",
|
||||||
|
"ACQUARTERDC",
|
||||||
|
"TWENTYFIVEX",
|
||||||
|
"HALFSTENFTO",
|
||||||
|
"PASTERUNINE",
|
||||||
|
"ONESIXTHREE",
|
||||||
|
"FOURFIVETWO",
|
||||||
|
"EIGHTELEVEN",
|
||||||
|
"SEVENTWELVE",
|
||||||
|
"TENSOKYDUDE",
|
||||||
|
];
|
||||||
|
for (i = [0:len(texts)-1]) {
|
||||||
|
translate([0, dy*i, 0])
|
||||||
|
row(texts[len(texts)-i-1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
layer_plate();
|
||||||
|
translate((s-sleds+[dx, dy, 0])/2 + [0, -11, 0])
|
||||||
|
rows();
|
||||||
|
mholes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module nodemcu(h=t*2) {
|
||||||
|
sn = [26, 48+8, h];
|
||||||
|
susb = [10, 20, h];
|
||||||
|
translate([s[0]-susb[0]*2, 10, 0])
|
||||||
|
rotate(90, [0, 0, 1]) {
|
||||||
|
translate([(sn[0]-susb[0])/2, -susb[1], 0])
|
||||||
|
square([susb[0], susb[1]], center=false);
|
||||||
|
square([sn[0], sn[1]], center=false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module clock() {
|
||||||
|
back_layer();
|
||||||
|
translate([0, 0, t*1])
|
||||||
|
led_layer();
|
||||||
|
translate([0, 0, t*2])
|
||||||
|
holes_layer();
|
||||||
|
translate([0, 0, t*3])
|
||||||
|
diffuser_layer();
|
||||||
|
translate([0, 0, t*4])
|
||||||
|
words_layer();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module sliced(c, o) {
|
||||||
|
h = 600;
|
||||||
|
difference() {
|
||||||
|
translate([0, -c, 0])
|
||||||
|
children();
|
||||||
|
translate([-10, o*h, 0])
|
||||||
|
square(h);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module slice_bottom() {
|
||||||
|
sliced(cut, 0) children();
|
||||||
|
}
|
||||||
|
|
||||||
|
module slice_top() {
|
||||||
|
sliced(cut, -1) children();
|
||||||
|
}
|
||||||
|
|
||||||
|
// cut is how far up to cut the layer into two parts.
|
||||||
|
cut = 410-(410-297+58);
|
||||||
|
|
||||||
|
// The following is a bit messy. For each layer you should do a
|
||||||
|
// slice_top() layer(); export to svg; then do a slice_bottom()
|
||||||
|
// layer(); then export to svg.
|
||||||
|
|
||||||
|
//slice_top()
|
||||||
|
slice_bottom()
|
||||||
|
words_layer();
|
||||||
|
//diffuse_layer();
|
||||||
|
//holes_layer();
|
||||||
|
//led_layer()
|
8
src/Makefile
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
SRC = $(wildcard *.py)
|
||||||
|
|
||||||
|
put: $(SRC:%.py=put-%.stamp)
|
||||||
|
ampy -p /dev/ttyUSB? ls
|
||||||
|
|
||||||
|
put-%.stamp: %.py
|
||||||
|
ampy -p /dev/ttyUSB? put $*.py
|
||||||
|
cp -a $< $@
|
37
src/asynced.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def delay(secs: float) -> generator:
|
||||||
|
end = time.monotonic() + secs
|
||||||
|
while time.monotonic() < end:
|
||||||
|
yield None
|
||||||
|
|
||||||
|
|
||||||
|
def fps(fps: float) -> generator:
|
||||||
|
yield None
|
||||||
|
dt = 1 / fps
|
||||||
|
until = time.monotonic() + dt
|
||||||
|
while True:
|
||||||
|
remain = until - time.monotonic()
|
||||||
|
if remain > 0:
|
||||||
|
time.sleep(remain)
|
||||||
|
until += dt
|
||||||
|
if remain < -dt:
|
||||||
|
# Catch up a bit
|
||||||
|
until += -remain / 3
|
||||||
|
yield None
|
||||||
|
|
||||||
|
|
||||||
|
def wait(stop: int) -> generator:
|
||||||
|
start = time.monotonic()
|
||||||
|
while True:
|
||||||
|
elapsed = int((time.monotonic() - start) * 1000)
|
||||||
|
elapsed = min(stop, elapsed)
|
||||||
|
yield elapsed
|
||||||
|
if elapsed >= stop:
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
def test():
|
||||||
|
for f in delay(2.0):
|
||||||
|
print(utime.ticks_ms())
|
|
@ -1,25 +1,24 @@
|
||||||
import random
|
import random
|
||||||
|
|
||||||
import ujson
|
|
||||||
import utime
|
|
||||||
import urllib.urequest
|
import urllib.urequest
|
||||||
|
|
||||||
import asynced
|
import asynced
|
||||||
|
import ujson
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
def _fetch():
|
def _fetch():
|
||||||
try:
|
try:
|
||||||
resp = urllib.urequest.urlopen(
|
resp = urllib.urequest.urlopen('https://juju.nz/api/iptime/now')
|
||||||
'http://127.0.0.1:5000/iptime?ip=1.2.3.4')
|
|
||||||
t = ujson.load(resp)
|
t = ujson.load(resp)
|
||||||
resp.close()
|
resp.close()
|
||||||
return t
|
return t
|
||||||
except OSError as ex:
|
except OSError as ex:
|
||||||
|
print(ex)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def _jitter(mid):
|
def _jitter(mid: int) -> int:
|
||||||
return random.randint(mid, mid * 120 / 100)
|
return random.randint(mid, mid * 120 // 100)
|
||||||
|
|
||||||
|
|
||||||
def _sync() -> generator:
|
def _sync() -> generator:
|
||||||
|
@ -34,7 +33,7 @@ def _sync() -> generator:
|
||||||
|
|
||||||
# Poll slowly until the connection drops.
|
# Poll slowly until the connection drops.
|
||||||
while True:
|
while True:
|
||||||
yield from asynced.delay(_jitter(5)) #60 * 60))
|
yield from asynced.delay(_jitter(60 * 60))
|
||||||
got = _fetch()
|
got = _fetch()
|
||||||
if got is None:
|
if got is None:
|
||||||
break
|
break
|
||||||
|
@ -48,21 +47,21 @@ def day_sec() -> generator:
|
||||||
if got is None:
|
if got is None:
|
||||||
yield None, None
|
yield None, None
|
||||||
continue
|
continue
|
||||||
base_ms = utime.ticks_ms()
|
local = time.monotonic()
|
||||||
base = got.get('day_sec', None)
|
base = got.get('day_sec', None)
|
||||||
if base is not None:
|
if base is not None:
|
||||||
break
|
break
|
||||||
good = got
|
good = got
|
||||||
|
|
||||||
for got in s:
|
for got in s:
|
||||||
now = base + utime.ticks_diff(utime.ticks_ms(), base_ms) // 1000
|
now = base + time.monotonic() - local
|
||||||
yield now % (60 * 60 * 24), good
|
yield now % (60 * 60 * 24), good
|
||||||
|
|
||||||
if got is not None:
|
if got is not None:
|
||||||
# Update the baseline.
|
# Update the baseline.
|
||||||
b2 = got.get('day_sec', None)
|
b2 = got.get('day_sec', None)
|
||||||
if b2 is not None:
|
if b2 is not None:
|
||||||
base_ms = utime.ticks_ms()
|
local = time.monotonic()
|
||||||
base = b2
|
base = b2
|
||||||
good = got
|
good = got
|
||||||
|
|
||||||
|
@ -70,4 +69,8 @@ def day_sec() -> generator:
|
||||||
def test():
|
def test():
|
||||||
for secs, meta in day_sec():
|
for secs, meta in day_sec():
|
||||||
print(secs)
|
print(secs)
|
||||||
utime.sleep_ms(300)
|
time.sleep(0.3)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
test()
|
12
src/main.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
import time
|
||||||
|
|
||||||
|
import wordclock
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
time.sleep(1)
|
||||||
|
wordclock.main()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
11
src/misc.py
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
def show_stdout(f: Frame):
|
||||||
|
out = '\033\143'
|
||||||
|
stride = 11
|
||||||
|
dots = '.123456789#'
|
||||||
|
for y in range(len(f.pixels) // stride):
|
||||||
|
s = f.pixels[y * stride:(y + 1) * stride]
|
||||||
|
if y & 1 != 0:
|
||||||
|
s.reverse()
|
||||||
|
d = [dots[x * len(dots) // (Frame.Max + 1)] for x in s]
|
||||||
|
out += ''.join(d) + '\n'
|
||||||
|
print(out + '\n')
|
223
src/wordclock.py
Normal file
|
@ -0,0 +1,223 @@
|
||||||
|
import array
|
||||||
|
import random
|
||||||
|
import time
|
||||||
|
|
||||||
|
import asynced
|
||||||
|
import iptime
|
||||||
|
|
||||||
|
from neopixel_write import neopixel_write
|
||||||
|
import board
|
||||||
|
import machine
|
||||||
|
import neopixel
|
||||||
|
|
||||||
|
RANGES = {
|
||||||
|
'dude': 0,
|
||||||
|
'ok': 5,
|
||||||
|
'ten': 8,
|
||||||
|
'seven': 11,
|
||||||
|
'twelve': 16,
|
||||||
|
'even': 22,
|
||||||
|
'eleven': 22,
|
||||||
|
'eight': 28,
|
||||||
|
'four': 33,
|
||||||
|
'five': 37,
|
||||||
|
'two': 41,
|
||||||
|
'three': 44,
|
||||||
|
'six': 49,
|
||||||
|
'one': 52,
|
||||||
|
'past': 55,
|
||||||
|
'run': 60,
|
||||||
|
'nine': 62,
|
||||||
|
'to': 66,
|
||||||
|
'TEN': 69,
|
||||||
|
'HALF': 73,
|
||||||
|
'TWENTY': 77,
|
||||||
|
'TWENTYFIVE': 77,
|
||||||
|
'FIVE': 83,
|
||||||
|
'QUARTER': 90,
|
||||||
|
'A': 98,
|
||||||
|
'AM': 106,
|
||||||
|
'PM': 108,
|
||||||
|
'is': 102,
|
||||||
|
'it': 99,
|
||||||
|
'its': 99,
|
||||||
|
}
|
||||||
|
|
||||||
|
CIEL8 = (0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 8, 8, 9,
|
||||||
|
10, 11, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 28,
|
||||||
|
30, 31, 33, 35, 37, 39, 40, 42, 44, 46, 49, 51, 53, 55, 57, 60, 63,
|
||||||
|
66, 68, 71, 74, 77, 80, 83, 86, 90, 93, 96, 100, 103, 107, 111, 115,
|
||||||
|
118, 122, 127, 131, 136, 140, 144, 149, 153, 158, 163, 168, 173, 179,
|
||||||
|
184, 189, 195, 200, 206, 212, 218, 224, 230, 236, 242, 249, 255)
|
||||||
|
|
||||||
|
MINUTES = ('oclock', 'FIVE past', 'TEN past', 'QUARTER past', 'TWENTY past',
|
||||||
|
'TWENTYFIVE past', 'HALF past', 'TWENTYFIVE to', 'TWENTY to',
|
||||||
|
'QUARTER to', 'TEN to', 'FIVE to')
|
||||||
|
|
||||||
|
HOURS = ('twelve', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
|
||||||
|
'eight', 'nine', 'ten', 'eleven')
|
||||||
|
|
||||||
|
AMPM = ('AM', 'PM')
|
||||||
|
|
||||||
|
ITS = ('its', 'it is', 'its dude', 'it is dude', 'its ok', 'it is ok')
|
||||||
|
|
||||||
|
COLOUR = (200, 255, 200)
|
||||||
|
|
||||||
|
|
||||||
|
def split(secs: int) -> tuple:
|
||||||
|
secs = int(secs)
|
||||||
|
mins = (secs // 60) % 60
|
||||||
|
minute = mins // 5
|
||||||
|
hour = (secs // 3600) % 24
|
||||||
|
if mins >= 35:
|
||||||
|
hour += 1
|
||||||
|
ampm = (hour // 12) % len(AMPM)
|
||||||
|
hour %= len(HOURS)
|
||||||
|
return MINUTES[minute], HOURS[hour], AMPM[ampm]
|
||||||
|
|
||||||
|
|
||||||
|
def to_rgb(i, colour) -> tuple:
|
||||||
|
return ((i * colour[0]) >> 8, (i * colour[1]) >> 8, (i * colour[2]) >> 8)
|
||||||
|
|
||||||
|
|
||||||
|
class Frame:
|
||||||
|
Max = 255
|
||||||
|
Zeros = tuple([0] * (11 * 10))
|
||||||
|
|
||||||
|
def __init__(self, n: int = 11 * 10, pixels: list = None):
|
||||||
|
if pixels is None:
|
||||||
|
pixels = list(self.Zeros)
|
||||||
|
self.pixels = pixels
|
||||||
|
|
||||||
|
def set(self, idx: int) -> Frame:
|
||||||
|
self.pixels[idx] = self.Max
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __add__(self, other):
|
||||||
|
return Frame(pixels=[
|
||||||
|
min(self.Max, x + y) for x, y in zip(self.pixels, other.pixels)
|
||||||
|
])
|
||||||
|
|
||||||
|
def muldiv(self, num: int, den: int):
|
||||||
|
return Frame(pixels=[x * num // den for x in self.pixels])
|
||||||
|
|
||||||
|
|
||||||
|
@micropython.native
|
||||||
|
def merge(f1: Frame, f2: Frame, num1: int, num2: int, den: int) -> Frame:
|
||||||
|
m = Frame.Max
|
||||||
|
p1 = f1.pixels
|
||||||
|
p2 = f2.pixels
|
||||||
|
o = array.array('H', Frame.Zeros)
|
||||||
|
for i in range(len(p1)):
|
||||||
|
k = (p1[i] * num1 + p2[i] * num2) // den
|
||||||
|
if k >= m:
|
||||||
|
k = m
|
||||||
|
o[i] = k
|
||||||
|
return Frame(pixels=o)
|
||||||
|
|
||||||
|
|
||||||
|
def render(words: list) -> Frame:
|
||||||
|
f = Frame()
|
||||||
|
for word in words:
|
||||||
|
for w in word.split():
|
||||||
|
idx = RANGES.get(w, None)
|
||||||
|
if idx is not None:
|
||||||
|
for i in range(len(w)):
|
||||||
|
f.set(idx + i)
|
||||||
|
else:
|
||||||
|
print('warning: %s is missing' % w)
|
||||||
|
return f
|
||||||
|
|
||||||
|
|
||||||
|
def prefix() -> tuple:
|
||||||
|
return (ITS[random.randint(0, len(ITS) - 1)], )
|
||||||
|
|
||||||
|
|
||||||
|
def show(f: Frame, n):
|
||||||
|
p = f.pixels
|
||||||
|
buf = bytearray(len(p) * 3)
|
||||||
|
r, g, b = COLOUR
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
for c in p:
|
||||||
|
buf[i + 1] = (r * c) >> 8
|
||||||
|
buf[i + 0] = (g * c) >> 8
|
||||||
|
buf[i + 2] = (b * c) >> 8
|
||||||
|
i += 3
|
||||||
|
neopixel_write(n.pin, buf)
|
||||||
|
|
||||||
|
|
||||||
|
def scan() -> generator:
|
||||||
|
f = Frame()
|
||||||
|
while True:
|
||||||
|
for i in range(len(f.pixels)):
|
||||||
|
yield f.set(i)
|
||||||
|
f = f.muldiv(80, 100)
|
||||||
|
|
||||||
|
|
||||||
|
def intensity(num: int, den: int) -> int:
|
||||||
|
idx = num * len(CIEL8) // den
|
||||||
|
if idx >= len(CIEL8):
|
||||||
|
return 255
|
||||||
|
return CIEL8[idx]
|
||||||
|
|
||||||
|
|
||||||
|
def run() -> generator:
|
||||||
|
words = None
|
||||||
|
fade = 2000
|
||||||
|
secs = iptime.day_sec()
|
||||||
|
|
||||||
|
# Flash until time is synced.
|
||||||
|
sc = scan()
|
||||||
|
for s, meta in secs:
|
||||||
|
if s is not None and meta is not None:
|
||||||
|
break
|
||||||
|
yield next(sc)
|
||||||
|
|
||||||
|
src = Frame()
|
||||||
|
while True:
|
||||||
|
yield src
|
||||||
|
s, m2 = next(secs)
|
||||||
|
nxt = split(s)
|
||||||
|
if nxt == words:
|
||||||
|
yield from asynced.delay(1)
|
||||||
|
continue
|
||||||
|
dest = render(prefix() + nxt)
|
||||||
|
for at in asynced.wait(fade):
|
||||||
|
yield merge(src, dest, intensity(fade - at, fade),
|
||||||
|
intensity(at, fade), 255)
|
||||||
|
words = nxt
|
||||||
|
src = dest
|
||||||
|
|
||||||
|
|
||||||
|
def blink() -> generator:
|
||||||
|
led = machine.Pin(16, machine.Pin.OUT)
|
||||||
|
while True:
|
||||||
|
led.off()
|
||||||
|
yield from asynced.delay(0.1)
|
||||||
|
led.on()
|
||||||
|
yield from asynced.delay(0.8)
|
||||||
|
|
||||||
|
|
||||||
|
def bench() -> generator:
|
||||||
|
yield None
|
||||||
|
i = 30
|
||||||
|
while True:
|
||||||
|
start = time.monotonic()
|
||||||
|
yield from range(i)
|
||||||
|
elapsed = time.monotonic() - start
|
||||||
|
print('%d in %.3f %.3f/1 %.1f FPS' % (i, elapsed, elapsed / i,
|
||||||
|
i / elapsed))
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
num = 11 * 10
|
||||||
|
n = neopixel.NeoPixel(board.GPIO2, num, brightness=1, auto_write=False)
|
||||||
|
routines = (run(), blink(), asynced.fps(30), bench())
|
||||||
|
while True:
|
||||||
|
for r in routines:
|
||||||
|
f = next(r)
|
||||||
|
if f is None:
|
||||||
|
continue
|
||||||
|
elif isinstance(f, Frame):
|
||||||
|
show(f, n)
|
|
@ -6,6 +6,7 @@ from geoip import geolite2
|
||||||
import astral
|
import astral
|
||||||
import dateutil.tz
|
import dateutil.tz
|
||||||
import flask
|
import flask
|
||||||
|
import requests
|
||||||
|
|
||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
|
|
||||||
|
@ -14,11 +15,14 @@ def to_sec(dt):
|
||||||
return dt.hour * 60 * 60 + dt.minute * 60 + dt.second
|
return dt.hour * 60 * 60 + dt.minute * 60 + dt.second
|
||||||
|
|
||||||
|
|
||||||
@app.route('/iptime')
|
@app.route('/now')
|
||||||
def iptime():
|
def now():
|
||||||
ip = flask.request.args.get('ip')
|
ip = flask.request.args.get('ip')
|
||||||
if not ip:
|
if not ip:
|
||||||
ip = flask.request.remote_addr
|
ip = flask.request.remote_addr
|
||||||
|
if ip.startswith('192.168.') or ip.startswith('10.'):
|
||||||
|
r = requests.get('https://api.ipify.org?format=json')
|
||||||
|
ip = r.json().get('ip')
|
||||||
loc = geolite2.lookup(ip)
|
loc = geolite2.lookup(ip)
|
||||||
if loc is None:
|
if loc is None:
|
||||||
flask.abort(
|
flask.abort(
|
||||||
|
|
15
srv/iptime.service
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[Unit]
|
||||||
|
Description=iptime
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=juju
|
||||||
|
Group=juju
|
||||||
|
WorkingDirectory=/home/juju/lib/wordclock/srv
|
||||||
|
ExecStart=/usr/bin/uwsgi --umask 0000 -s /tmp/iptime.sock --manage-script-name --plugin python3 --mount /api/iptime=iptime:app
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|