1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-09-15 00:53:15 +02:00

857 Commits
v1.3 ... v2.2

Author SHA1 Message Date
Justin Lin
6d3a4fba03 update readme 2020-02-06 17:56:30 +08:00
Justin Lin
c06388fcdb update examples 2020-01-29 08:42:08 +08:00
Justin Lin
4e46dcb8fb not necessary 2020-01-29 08:36:42 +08:00
Justin Lin
aca1a3ab96 update README 2020-01-28 20:51:04 +08:00
Justin Lin
f8e7c45b03 update comments 2020-01-28 20:49:08 +08:00
Justin Lin
bd1e6166fc update README 2020-01-28 17:58:03 +08:00
Justin Lin
7baaef8421 update RELEASE 2020-01-28 17:57:02 +08:00
Justin Lin
7d4023445b not necessary since 2.2 2020-01-28 17:53:01 +08:00
Justin Lin
27da9ffdae update README 2020-01-28 17:52:30 +08:00
Justin Lin
9dd793541f update all docs 2020-01-28 17:51:20 +08:00
Justin Lin
232225bf83 add deps 2020-01-28 14:43:24 +08:00
Justin Lin
00118ed183 refactor deps 2020-01-28 10:08:01 +08:00
Justin Lin
72c5ddafec refactor deps 2020-01-28 09:52:16 +08:00
Justin Lin
948d4aafae use scad 2020-01-28 09:47:39 +08:00
Justin Lin
8d796a001f use scad 2020-01-28 09:46:29 +08:00
Justin Lin
0390817c03 include scad 2020-01-28 09:44:36 +08:00
Justin Lin
eb70c87117 refactor deps 2020-01-28 09:18:38 +08:00
Justin Lin
9b80531d47 use scad 2020-01-28 09:13:15 +08:00
Justin Lin
e87e219671 use scad 2020-01-28 09:12:45 +08:00
Justin Lin
0829106ed3 use scad 2020-01-28 09:12:11 +08:00
Justin Lin
d3f2fedfac refactor deps 2020-01-28 09:11:36 +08:00
Justin Lin
8fcb52550b use scad 2020-01-28 09:10:51 +08:00
Justin Lin
170a3aa33d use scad 2020-01-28 09:10:19 +08:00
Justin Lin
97a3e2acfd refactor deps 2020-01-28 09:09:45 +08:00
Justin Lin
ce46dd1b12 use scad 2020-01-28 09:08:48 +08:00
Justin Lin
19d20c40a7 refactor deps 2020-01-28 09:08:21 +08:00
Justin Lin
01b45bf25f refactor deps 2020-01-28 09:07:39 +08:00
Justin Lin
4f74a6302e refactor 2020-01-28 09:06:08 +08:00
Justin Lin
bb70134be9 use scad 2020-01-27 21:45:06 +08:00
Justin Lin
ba7f7422a9 refactor 2020-01-27 21:44:29 +08:00
Justin Lin
7bb8acaed0 use scad 2020-01-27 21:42:25 +08:00
Justin Lin
6fe1021d50 use scad 2020-01-27 21:41:31 +08:00
Justin Lin
6dae9ec2ad use scad 2020-01-27 21:40:58 +08:00
Justin Lin
9c2ede680b use scad 2020-01-27 21:40:31 +08:00
Justin Lin
47fbf6437c use scad 2020-01-27 21:40:06 +08:00
Justin Lin
b478067f9c use scad 2020-01-27 21:39:31 +08:00
Justin Lin
1276c471e7 refactor deps 2020-01-27 21:38:39 +08:00
Justin Lin
c958138e8f use scad 2020-01-27 21:37:17 +08:00
Justin Lin
e8c87b1632 use scad 2020-01-27 21:36:37 +08:00
Justin Lin
31141aa1db use scad 2020-01-27 21:35:29 +08:00
Justin Lin
55926726e4 use scad 2020-01-27 21:34:57 +08:00
Justin Lin
22eac8bfb3 refactor deps 2020-01-27 21:34:35 +08:00
Justin Lin
237045ccd5 use scad 2020-01-27 21:33:30 +08:00
Justin Lin
744206b554 use scad 2020-01-27 21:32:44 +08:00
Justin Lin
8b1175ba2b use scad 2020-01-27 21:32:18 +08:00
Justin Lin
65fcfdfbc7 reduce deps 2020-01-27 16:53:22 +08:00
Justin Lin
7dd8ffdd10 use scad 2020-01-27 16:52:47 +08:00
Justin Lin
8fc1c225eb reduce deps 2020-01-27 16:52:07 +08:00
Justin Lin
93cc69f661 reduce deps 2020-01-27 16:50:29 +08:00
Justin Lin
47a2f00573 reduce deps 2020-01-27 16:49:45 +08:00
Justin Lin
4831d47a7a use scad 2020-01-27 16:48:38 +08:00
Justin Lin
e9ed9602fd use scad 2020-01-27 16:48:04 +08:00
Justin Lin
1cf53c0c6d use scad 2020-01-27 16:47:18 +08:00
Justin Lin
606aba22a9 reduce deps 2020-01-27 16:45:11 +08:00
Justin Lin
32fd8a3e21 reduce deps 2020-01-27 16:44:19 +08:00
Justin Lin
18e69d7c9a reduce deps 2020-01-27 16:42:42 +08:00
Justin Lin
7aada2d208 reduce deps 2020-01-27 16:41:52 +08:00
Justin Lin
b479725b59 refactor deps 2020-01-27 16:38:45 +08:00
Justin Lin
a6a673173f refactor testcase 2020-01-27 16:37:38 +08:00
Justin Lin
b12e5c7446 use scad 2020-01-27 16:37:16 +08:00
Justin Lin
d4caf1f7e8 use scad 2020-01-27 16:35:29 +08:00
Justin Lin
a212700dfe refactor deps 2020-01-27 16:34:09 +08:00
Justin Lin
d88fd6ac55 refactor deps 2020-01-27 16:31:13 +08:00
Justin Lin
9c23eb1a46 use scad 2020-01-27 16:28:12 +08:00
Justin Lin
46c485db16 refactor testcase 2020-01-27 16:27:51 +08:00
Justin Lin
e76c35e9a1 refactor deps 2020-01-27 16:26:40 +08:00
Justin Lin
eab6aadc05 refactor deps 2020-01-27 16:23:39 +08:00
Justin Lin
a646846b9a use scad 2020-01-27 16:22:14 +08:00
Justin Lin
e6b10ab416 refactor deps 2020-01-27 16:21:51 +08:00
Justin Lin
e98fd39278 refactor deps 2020-01-27 16:20:33 +08:00
Justin Lin
e6274d6202 refactor deps 2020-01-27 16:18:00 +08:00
Justin Lin
4779343a85 refactor deps 2020-01-27 16:16:02 +08:00
Justin Lin
b7966c80a5 refactor deps 2020-01-27 16:14:00 +08:00
Justin Lin
fa18ee0b91 use scad 2020-01-27 16:09:29 +08:00
Justin Lin
ce0bbc5b6e refactor deps 2020-01-27 16:09:05 +08:00
Justin Lin
ee709a6620 refactor deps 2020-01-27 16:05:09 +08:00
Justin Lin
9797e9ba71 refactor deps 2020-01-27 16:04:27 +08:00
Justin Lin
c8dbc4bce0 refactor deps 2020-01-27 16:03:11 +08:00
Justin Lin
803de57be9 refactor deps 2020-01-27 15:59:07 +08:00
Justin Lin
6ed6b39777 refactor deps 2020-01-27 15:57:28 +08:00
Justin Lin
ceac65bc5b refactor deps 2020-01-27 15:53:24 +08:00
Justin Lin
640b54f948 refactor deps 2020-01-27 15:51:14 +08:00
Justin Lin
da36511c99 refactor deps 2020-01-27 15:40:56 +08:00
Justin Lin
38b1774390 refactor deps 2020-01-27 15:35:35 +08:00
Justin Lin
0241c83ec2 refactor deps 2020-01-27 15:30:14 +08:00
Justin Lin
440e5ec6a7 refactor deps 2020-01-27 15:28:39 +08:00
Justin Lin
4a125077a6 use scad 2020-01-27 15:26:01 +08:00
Justin Lin
4aca215d23 fix deps 2020-01-27 15:23:19 +08:00
Justin Lin
d2c222ec02 use scad 2020-01-27 15:17:42 +08:00
Justin Lin
61922a3f64 refactor deps 2020-01-27 15:16:38 +08:00
Justin Lin
9a3767ccbd remove code 2020-01-27 15:16:19 +08:00
Justin Lin
4b0974807c use scad 2020-01-27 15:13:08 +08:00
Justin Lin
3ae3029b57 use scad 2020-01-27 15:11:40 +08:00
Justin Lin
3ad03be311 refactor testcase 2020-01-27 15:10:29 +08:00
Justin Lin
62e8d2af84 refactor deps 2020-01-27 15:06:30 +08:00
Justin Lin
15c549c0c0 format 2020-01-27 14:59:43 +08:00
Justin Lin
207cc23f7b refactor testcase 2020-01-27 14:59:20 +08:00
Justin Lin
9fc93a0448 use scad 2020-01-27 14:59:15 +08:00
Justin Lin
1e97f09092 refactor testcase 2020-01-27 14:57:04 +08:00
Justin Lin
b125336ae4 refactor deps 2020-01-27 14:53:26 +08:00
Justin Lin
aded6760ab use scad 2020-01-27 14:50:08 +08:00
Justin Lin
d4d3d5f4d5 refactor deps 2020-01-27 14:49:33 +08:00
Justin Lin
38a91fe2bd use scad 2020-01-27 14:45:22 +08:00
Justin Lin
05d564af41 refactor deps 2020-01-27 13:45:04 +08:00
Justin Lin
cef421c6b0 refactor deps 2020-01-27 13:34:29 +08:00
Justin Lin
a42fa85fae fix "search term not found" 2020-01-27 12:11:03 +08:00
Justin Lin
69e8910c1b refactor deps 2020-01-27 12:06:04 +08:00
Justin Lin
6a0694b81f refactor deps 2020-01-27 12:05:59 +08:00
Justin Lin
77d3a71c40 use scad 2020-01-27 11:53:11 +08:00
Justin Lin
61d841ca4b refactor deps 2020-01-27 11:51:05 +08:00
Justin Lin
2c0c83c669 refactor deps 2020-01-27 11:49:56 +08:00
Justin Lin
53106fe963 refactor deps 2020-01-27 11:46:01 +08:00
Justin Lin
275ec843d3 refactor deps 2020-01-27 10:38:23 +08:00
Justin Lin
4a25e489cd refactor deps 2020-01-27 10:37:00 +08:00
Justin Lin
9e563e92e3 refactor deps 2020-01-27 10:32:40 +08:00
Justin Lin
3683beaae6 use scad 2020-01-27 10:24:24 +08:00
Justin Lin
9be7582777 refactor deps 2020-01-27 10:18:36 +08:00
Justin Lin
a2deee0784 refactor testcase 2020-01-27 10:11:15 +08:00
Justin Lin
7ef226c549 refactor deps 2020-01-27 10:03:31 +08:00
Justin Lin
16da72c02b refactor deps 2020-01-27 09:53:06 +08:00
Justin Lin
b9590c4a10 refactor 2020-01-27 09:41:16 +08:00
Justin Lin
d8c4d8f51f reduce deps 2020-01-27 09:24:53 +08:00
Justin Lin
a1626d88f3 use scad 2020-01-27 09:16:48 +08:00
Justin Lin
cd11de64c3 fix name 2020-01-27 09:13:14 +08:00
Justin Lin
bb4d83fa01 reduce deps 2020-01-27 09:11:38 +08:00
Justin Lin
e1ec2ac66a reduce deps 2020-01-27 09:05:20 +08:00
Justin Lin
76e3a01326 fix wrong name 2020-01-27 08:57:47 +08:00
Justin Lin
31d8782cec reduce deps 2020-01-27 08:55:23 +08:00
Justin Lin
c7b1c74292 refactor 2020-01-27 08:54:17 +08:00
Justin Lin
6529e56820 refactor 2020-01-27 08:52:04 +08:00
Justin Lin
00b3d95c32 use scad 2020-01-27 08:30:24 +08:00
Justin Lin
66a97cf5d9 use scad 2020-01-27 08:27:50 +08:00
Justin Lin
267dcd498f use scad 2020-01-27 08:25:40 +08:00
Justin Lin
6e136008bf use scad 2020-01-27 08:25:18 +08:00
Justin Lin
f92bb8788e use scad 2020-01-27 08:24:44 +08:00
Justin Lin
8fcabc6d4d use scad 2020-01-27 07:46:55 +08:00
Justin Lin
acf64ed84f use scad 2020-01-27 07:45:05 +08:00
Justin Lin
0b6739a143 use scad 2020-01-27 07:43:28 +08:00
Justin Lin
b719e95ce5 use scad 2020-01-27 07:41:43 +08:00
Justin Lin
dd7ed32f4c use scad 2020-01-26 20:45:02 +08:00
Justin Lin
f749e4808a use scad 2020-01-26 20:44:55 +08:00
Justin Lin
8eabde6be9 use scad 2020-01-26 20:37:33 +08:00
Justin Lin
07d96b2e10 use scad 2020-01-26 20:34:26 +08:00
Justin Lin
be08328c32 use scad 2020-01-26 20:31:20 +08:00
Justin Lin
a49b27ecb1 use scad 2020-01-26 20:28:44 +08:00
Justin Lin
65f297070f use scad 2020-01-26 18:08:43 +08:00
Justin Lin
10a6727215 use scad 2020-01-26 18:05:27 +08:00
Justin Lin
e2e6b9437c use scad 2020-01-26 18:01:08 +08:00
Justin Lin
724046397d use full path 2020-01-26 17:47:41 +08:00
Justin Lin
73d40a312e add testcase 2020-01-26 17:34:55 +08:00
Justin Lin
60d9cba21a use scad 2020-01-26 17:19:50 +08:00
Justin Lin
67a5465e09 use scad to reduce deps 2020-01-26 17:05:05 +08:00
Justin Lin
a5772f7ee6 use scad 2020-01-26 16:59:02 +08:00
Justin Lin
cd4b87287f add testcase 2020-01-26 16:58:58 +08:00
Justin Lin
8b429529c5 use scad 2020-01-26 16:55:08 +08:00
Justin Lin
8c4fb236bf use scad to reduce deps 2020-01-26 16:54:09 +08:00
Justin Lin
c16d43669e use scad to reduce dependencies 2020-01-26 16:50:52 +08:00
Justin Lin
e82545fe37 modify comment 2020-01-26 16:45:02 +08:00
Justin Lin
a7121c6a33 use scad 2020-01-26 16:32:02 +08:00
Justin Lin
ead4450b1c refactor 2020-01-26 16:31:15 +08:00
Justin Lin
020bf01023 refactor 2020-01-26 16:30:27 +08:00
Justin Lin
b7ad7ea46e refactor unittest 2020-01-26 16:26:19 +08:00
Justin Lin
e1774765de rename 2020-01-24 14:41:15 +08:00
Justin Lin
96ed654236 rename 2020-01-24 14:39:45 +08:00
Justin Lin
241d6dcb21 rename 2020-01-24 14:38:21 +08:00
Justin Lin
2dfc5f4174 rename 2020-01-24 14:36:42 +08:00
Justin Lin
b7fb2632b8 add trefoil_klein_bottle 2020-01-23 11:19:01 +08:00
Justin Lin
de9515e1ac format 2020-01-23 10:32:11 +08:00
Justin Lin
f18d5b69e1 smooth path 2020-01-23 10:31:37 +08:00
Justin Lin
5cfa5108d4 refactor 2020-01-11 14:12:08 +08:00
Justin Lin
6873f12403 format 2020-01-11 14:10:55 +08:00
Justin Lin
d3618e968f refactor 2020-01-11 14:08:58 +08:00
Justin Lin
943498700c refactor 2020-01-11 14:07:56 +08:00
Justin Lin
64f39ff904 refactor 2020-01-11 14:05:53 +08:00
Justin Lin
b80cb1a3b6 format 2020-01-11 11:41:23 +08:00
Justin Lin
0416c449f5 refactor 2020-01-11 11:39:54 +08:00
Justin Lin
6bdfeb8d6b added chair score 2019-12-27 08:26:07 +08:00
Justin Lin
a63a08fd5c update README 2019-12-14 21:25:40 +08:00
Justin Lin
f65d20b68b added SD_Card_Taiwan 2019-12-11 15:12:19 +08:00
Justin Lin
022717206e change default value 2019-12-09 13:44:30 +08:00
Justin Lin
48d50d5f61 add comment 2019-12-08 07:37:41 +08:00
Justin Lin
082689db2a add style param 2019-12-08 07:36:02 +08:00
Justin Lin
9b85b09878 add soccer_jogsaw 2019-12-07 20:41:46 +08:00
Justin Lin
f3eca190f1 move file 2019-12-07 20:41:27 +08:00
Justin Lin
f9d4203a27 add part param 2019-12-07 20:10:51 +08:00
Justin Lin
e69ab760de pre_calculate 2019-12-07 19:46:32 +08:00
Justin Lin
74c425bb84 adjust space and h 2019-12-07 19:42:38 +08:00
Justin Lin
0458eea63d format 2019-12-07 17:50:39 +08:00
Justin Lin
f370b1105f half space 2019-12-07 17:35:03 +08:00
Justin Lin
25d26216e9 offset to make space 2019-12-07 17:14:27 +08:00
Justin Lin
61d4d38feb change param 2019-12-06 11:28:51 +08:00
Justin Lin
6255c9ef87 rename 2019-11-22 20:06:53 +08:00
Justin Lin
56e7992ad9 add tai chi 2019-11-22 17:04:54 +08:00
Justin Lin
a5e7d1b4c9 change scale 2019-11-01 06:52:08 +08:00
Justin Lin
7f12425364 scale x, y 2019-10-31 21:46:07 +08:00
Justin Lin
16f6fcfbb6 scale x, y 2019-10-31 21:44:49 +08:00
Justin Lin
4e463a51f3 add rose 2019-10-31 15:46:51 +08:00
Justin Lin
4f75ba64ef remove code not necessary 2019-10-28 17:01:38 +08:00
Justin Lin
94cae52f9d add nautilus_shell 2019-10-28 15:29:41 +08:00
Justin Lin
367c9e4b9d add fn 2019-10-25 18:24:29 +08:00
Justin Lin
db239d34cb add simple_seashell 2019-10-25 16:10:56 +08:00
Justin Lin
40579752ab update RELEASE 2019-10-18 18:09:00 +08:00
Justin Lin
2ef63ddd38 update RELEASE 2019-10-18 18:06:35 +08:00
Justin Lin
a2cd79cfa7 update README 2019-10-18 09:18:33 +08:00
Justin Lin
24cbc8924c update all 2019-10-18 08:36:12 +08:00
Justin Lin
98f62e9b29 update RELEASE 2019-10-18 08:35:02 +08:00
Justin Lin
0c15ed2954 update README 2019-10-18 08:29:24 +08:00
Justin Lin
4b663aa563 color it 2019-10-13 06:59:09 +08:00
Justin Lin
8caa2f02d6 add soccer_polyhedron 2019-10-12 21:51:20 +08:00
Justin Lin
107837bbdd a uniform knot vector is enough 2019-10-12 07:45:24 +08:00
Justin Lin
3ccb725645 update doc 2019-10-11 20:47:21 +08:00
Justin Lin
426f2623f7 tube use bspline_curve 2019-10-11 20:44:36 +08:00
Justin Lin
16637b098c format 2019-10-11 18:15:29 +08:00
Justin Lin
e42d70c11e update image 2019-10-11 13:57:00 +08:00
Justin Lin
385258bbc9 add triangle_splice 2019-10-07 20:41:55 +08:00
Justin Lin
7db613cef2 add gyro maze 2019-10-06 15:54:46 +08:00
Justin Lin
6cacd821e8 remove offset 2019-10-06 11:55:59 +08:00
Justin Lin
702a2c9577 add name 2019-10-06 10:43:34 +08:00
Justin Lin
132bdba10f add heart2heart_maze 2019-10-06 10:41:36 +08:00
Justin Lin
3d29408155 remove offset 2019-10-06 10:06:06 +08:00
Justin Lin
9fb90341af remove star 2019-10-06 09:55:52 +08:00
Justin Lin
3cd041d2bf change wall width 2019-10-06 09:55:21 +08:00
Justin Lin
b0c299e0a4 change road width 2019-10-06 09:53:18 +08:00
Justin Lin
9210fee4fc externalize maze 2019-10-06 09:29:22 +08:00
Justin Lin
f3c39702ac change shell 2019-10-06 09:28:06 +08:00
Justin Lin
fabdfb6bed adjust params 2019-10-05 17:27:53 +08:00
Justin Lin
b8901a9d3c use ellipse_extrude 2019-10-05 17:08:14 +08:00
Justin Lin
fb383f787b add heart_maze 2019-10-05 16:18:32 +08:00
Justin Lin
f64c0b6612 render 2d first 2019-10-05 15:12:36 +08:00
Justin Lin
e5e734c440 UPDATE ALL 2019-10-04 13:47:09 +08:00
Justin Lin
7b5996c756 update doc 2019-10-04 13:30:59 +08:00
Justin Lin
2e271bab3c add doc 2019-10-04 13:29:50 +08:00
Justin Lin
92324ba78f update all 2019-10-04 13:27:30 +08:00
Justin Lin
cb2a580de0 add comment 2019-10-04 13:27:03 +08:00
Justin Lin
4b37babadb update testcase 2019-10-04 13:21:53 +08:00
Justin Lin
982cbefec5 refactor 2019-10-04 09:52:15 +08:00
Justin Lin
0badb22b54 refactor 2019-10-04 09:50:33 +08:00
Justin Lin
6c15fc2fe0 refactor 2019-10-04 09:44:28 +08:00
Justin Lin
7ba82e0279 update doc 2019-10-04 09:26:28 +08:00
Justin Lin
44857c2875 update doc 2019-10-04 09:19:59 +08:00
Justin Lin
ce549c54cf refactor 2019-10-04 09:19:01 +08:00
Justin Lin
5a7fc3130b reduce dependencies 2019-10-04 09:18:56 +08:00
Justin Lin
12c490481a add cat_protector 2019-10-04 09:10:59 +08:00
Justin Lin
aa82cd4af4 add thickness 2019-10-04 09:05:14 +08:00
Justin Lin
8c6f3aad2d add tableware_organizer 2019-10-03 19:57:20 +08:00
Justin Lin
0aa52ae97f rename 2019-10-03 17:55:29 +08:00
Justin Lin
3577813f62 add lotus_like_flower 2019-10-03 15:10:27 +08:00
Justin Lin
3f356e0e7c update all 2019-10-03 15:09:50 +08:00
Justin Lin
602c7e6541 add all 2019-10-03 15:09:07 +08:00
Justin Lin
a9270db161 rename 2019-10-03 15:09:01 +08:00
Justin Lin
7ef6e6fbf7 add fib_seq 2019-10-03 15:07:05 +08:00
Justin Lin
7e71667694 extract fast fib 2019-10-03 15:06:55 +08:00
Justin Lin
9556f60050 fix point order 2019-10-03 08:16:33 +08:00
Justin Lin
69cbd7e88a update all 2019-10-02 09:57:22 +08:00
Justin Lin
9d751ada18 fix offset 2019-10-02 09:56:46 +08:00
Justin Lin
5d67b717e0 update doc 2019-10-02 09:12:27 +08:00
Justin Lin
07b95f0240 scale bottom 2019-10-02 09:12:03 +08:00
Justin Lin
e7e0494aa1 update doc 2019-10-02 09:07:19 +08:00
Justin Lin
5fcd2c473e use box_extrude to refactor 2019-10-02 09:04:08 +08:00
Justin Lin
19185c677a add params 2019-10-02 09:03:34 +08:00
Justin Lin
64ada004ba since 2.1 2019-10-02 08:08:40 +08:00
Justin Lin
1fc7cad25e update readme 2019-10-01 13:40:49 +08:00
Justin Lin
4e7c46d495 add image 2019-10-01 13:40:11 +08:00
Justin Lin
98f6a46c9b add readme 2019-10-01 13:37:02 +08:00
Justin Lin
1d969a2cd4 99 segs 2019-10-01 11:09:51 +08:00
Justin Lin
48ec27ff2c add moving fish 2019-10-01 11:09:22 +08:00
Justin Lin
533a5b2833 format 2019-09-29 16:41:47 +08:00
Justin Lin
e3ff941430 add fern_leaf_stencil 2019-09-29 16:39:23 +08:00
Justin Lin
e933aee5a8 update doc 2019-09-29 15:03:41 +08:00
Justin Lin
f31cfde720 update doc 2019-09-29 15:02:07 +08:00
Justin Lin
1aeae78e5d update all 2019-09-29 14:53:04 +08:00
Justin Lin
7f92f417c5 update doc 2019-09-29 14:49:25 +08:00
Justin Lin
373e3c3064 update doc 2019-09-29 14:47:30 +08:00
Justin Lin
8404b3332e add functions 2019-09-29 14:46:17 +08:00
Justin Lin
bc9818b59b add doc 2019-09-29 14:45:31 +08:00
Justin Lin
f03296c672 update init data 2019-09-29 14:17:06 +08:00
Justin Lin
df52a9e52e update doc 2019-09-29 14:15:44 +08:00
Justin Lin
c335111b44 add doc 2019-09-29 14:09:17 +08:00
Justin Lin
5212f6ffc4 add comment 2019-09-29 12:12:23 +08:00
Justin Lin
36b4cdf0d2 add doc 2019-09-29 12:11:46 +08:00
Justin Lin
aba9f192b9 format 2019-09-29 10:21:18 +08:00
Justin Lin
b7026a1b92 format 2019-09-29 10:20:49 +08:00
Justin Lin
cf70c376ac use t3d to refactor 2019-09-29 10:20:40 +08:00
Justin Lin
f8bfe807a0 add t3d 2019-09-29 10:20:30 +08:00
Justin Lin
2f6e3e9252 format 2019-09-29 10:16:52 +08:00
Justin Lin
38fe5aded2 change param 2019-09-29 09:56:32 +08:00
Justin Lin
693d5465ba refactor 2019-09-29 09:45:31 +08:00
Justin Lin
2da3c97212 update comment 2019-09-28 20:36:56 +08:00
Justin Lin
aa6afab346 rename 2019-09-28 20:36:17 +08:00
Justin Lin
3b13717d3d refactor 2019-09-28 20:34:50 +08:00
Justin Lin
0210035a50 format 2019-09-28 20:30:24 +08:00
Justin Lin
c7dacfddd8 refactor 2019-09-28 20:29:53 +08:00
Justin Lin
92c32b70a1 use t2d to refactor 2019-09-28 20:28:25 +08:00
Justin Lin
6a6b9289af refactor 2019-09-28 20:02:45 +08:00
Justin Lin
ebf6dc5bca reduce param 2019-09-28 19:54:20 +08:00
Justin Lin
ca40a5c120 rename 2019-09-28 18:14:59 +08:00
Justin Lin
5f8e4fed0f simplify param 2019-09-28 18:11:15 +08:00
Justin Lin
4fad8da2fa experimental t2d 2019-09-28 18:05:06 +08:00
Justin Lin
7488f62df7 rename 2019-09-28 17:33:04 +08:00
Justin Lin
33276552e9 rename 2019-09-28 17:29:51 +08:00
Justin Lin
58d03af46b remove extra tri 2019-09-28 11:36:57 +08:00
Justin Lin
df97574a66 refactor 2019-09-28 09:58:34 +08:00
Justin Lin
ea401ce009 refactor 2019-09-28 09:58:30 +08:00
Justin Lin
3d3ad1151a move 2019-09-27 21:40:29 +08:00
Justin Lin
918fde08a1 add sierpinski_pyramid 2019-09-27 11:13:54 +08:00
Justin Lin
fe27685932 format 2019-09-27 08:52:54 +08:00
Justin Lin
a6131f8da3 rename 2019-09-27 08:52:06 +08:00
Justin Lin
103f848a80 format 2019-09-27 08:51:28 +08:00
Justin Lin
e3ef5a3de9 format 2019-09-27 08:42:43 +08:00
Justin Lin
5e0bdc068b format 2019-09-27 08:42:12 +08:00
Justin Lin
939161bdba rename 2019-09-27 07:37:02 +08:00
Justin Lin
0309699822 add stereographic_projection_chars 2019-09-27 07:34:48 +08:00
Justin Lin
08c51370dd add dragon 2019-09-26 17:44:26 +08:00
Justin Lin
dfec4ba772 rename 2019-09-26 12:08:51 +08:00
Justin Lin
8bb38eceb2 add dancing_cubes 2019-09-26 11:36:27 +08:00
Justin Lin
00521289f3 diff directly 2019-09-26 11:35:39 +08:00
Justin Lin
4c8c578fbf refactor 2019-09-26 09:13:42 +08:00
Justin Lin
78b45beaa2 refactor 2019-09-26 09:12:14 +08:00
Justin Lin
e4ac6dcb98 format 2019-09-26 08:53:47 +08:00
Justin Lin
ea0fee1148 format 2019-09-26 08:24:48 +08:00
Justin Lin
2cd6e31a65 format 2019-09-26 08:22:41 +08:00
Justin Lin
ddbed585b0 format 2019-09-26 08:21:55 +08:00
Justin Lin
81cb948a53 format 2019-09-26 08:21:39 +08:00
Justin Lin
7333d474e1 format 2019-09-26 08:21:15 +08:00
Justin Lin
aa6a1a9453 format 2019-09-26 08:20:54 +08:00
Justin Lin
8a2667b8f1 format 2019-09-26 08:19:42 +08:00
Justin Lin
566acf7a99 format 2019-09-26 08:19:19 +08:00
Justin Lin
954948480b format 2019-09-26 08:18:58 +08:00
Justin Lin
b56c516fe7 format 2019-09-26 08:17:54 +08:00
Justin Lin
78f7b0b4aa format 2019-09-26 08:17:30 +08:00
Justin Lin
0fc52bd023 format 2019-09-26 08:17:10 +08:00
Justin Lin
f9f22d9fc2 format 2019-09-26 08:15:50 +08:00
Justin Lin
348f04b10f format 2019-09-26 08:14:36 +08:00
Justin Lin
19e57f965e format 2019-09-26 08:14:09 +08:00
Justin Lin
86fb7c1279 format 2019-09-26 08:12:43 +08:00
Justin Lin
55400c9d2c add center param 2019-09-26 08:10:38 +08:00
Justin Lin
1be93b3bb1 unnecessary module 2019-09-26 07:26:41 +08:00
Justin Lin
a6c3e1ee8a use square directly 2019-09-26 07:26:07 +08:00
Justin Lin
bb686e7077 add joint_T 2019-09-25 21:00:56 +08:00
Justin Lin
4123be7a66 use joint_T to refactor 2019-09-25 20:59:57 +08:00
Justin Lin
f924000a4a add joint_T 2019-09-25 20:59:47 +08:00
Justin Lin
8456295e0a change value 2019-09-25 15:39:33 +08:00
Justin Lin
d3611493fb add wall_radius 2019-09-25 15:34:43 +08:00
Justin Lin
91b127210b modify unit 2019-09-25 15:22:42 +08:00
Justin Lin
f599107da2 modify leng2 2019-09-25 13:39:02 +08:00
Justin Lin
78a28239dd modify bottom walkway 2019-09-25 13:19:56 +08:00
Justin Lin
114cece327 change height 2019-09-25 10:25:40 +08:00
Justin Lin
ef9035120d modify comment 2019-09-25 10:22:41 +08:00
Justin Lin
33a09d4332 add walk_torus83_fort 2019-09-25 10:21:46 +08:00
Justin Lin
f29e410654 add box 2019-09-24 13:44:02 +08:00
Justin Lin
34dc0d2f3a extract triangle2square 2019-09-24 13:43:57 +08:00
Justin Lin
3704abf382 rename 2019-09-24 13:41:32 +08:00
Justin Lin
d258a062ea diff not necessary 2019-09-24 13:10:17 +08:00
Justin Lin
3330ac3f7d to ratio of leng 2019-09-24 09:23:07 +08:00
Justin Lin
ad5dbbc143 add triangle2square 2019-09-24 09:02:08 +08:00
Justin Lin
e2eb36bb57 add stick_tower 2019-09-23 08:26:54 +08:00
Justin Lin
2fc63d1904 add text_box 2019-09-23 08:15:37 +08:00
Justin Lin
1f9ee747ae refactor 2019-09-22 20:19:52 +08:00
Justin Lin
374000df9c don't rotate when 0 2019-09-22 19:37:17 +08:00
Justin Lin
c5bfc89c4a add golden_taiwan 2019-09-22 13:39:08 +08:00
Justin Lin
ad07fbe1b5 update README 2019-09-21 19:25:40 +08:00
Justin Lin
68afaab061 update all 2019-09-21 19:23:22 +08:00
Justin Lin
8b239c22a3 update doc 2019-09-21 19:21:48 +08:00
Justin Lin
828e3ae5ff change featured img 2019-09-21 19:20:04 +08:00
Justin Lin
275a01396a add comment 2019-09-21 19:14:38 +08:00
Justin Lin
75284851e9 add cone doc 2019-09-21 13:27:14 +08:00
Justin Lin
bf1f3ce23e update img 2019-09-21 13:20:01 +08:00
Justin Lin
08a414909e update img 2019-09-21 13:19:52 +08:00
Justin Lin
9e0dc10ed4 update doc 2019-09-21 13:08:51 +08:00
Justin Lin
2f16883109 rename param 2019-09-21 10:18:22 +08:00
Justin Lin
45ccf8aed3 rename param 2019-09-21 10:17:31 +08:00
Justin Lin
927d551620 add doc 2019-09-21 10:16:45 +08:00
Justin Lin
2129c09fb9 rename param 2019-09-21 10:13:46 +08:00
Justin Lin
76306a2a80 modified because of connector_peg param changed 2019-09-21 09:58:35 +08:00
Justin Lin
6451029b9f fixed head height 2019-09-21 09:57:57 +08:00
Justin Lin
cbea572747 add height param 2019-09-21 09:19:37 +08:00
Justin Lin
386e8b934e refactor 2019-09-21 08:25:26 +08:00
Justin Lin
6b906292aa refactor 2019-09-21 08:24:01 +08:00
Justin Lin
03bca85e34 refactor 2019-09-21 08:22:22 +08:00
Justin Lin
237232dc07 refactor 2019-09-21 08:19:29 +08:00
Justin Lin
a3a0767ea3 update doc 2019-09-20 18:15:48 +08:00
Justin Lin
719217ad6c refactor 2019-09-20 17:51:11 +08:00
Justin Lin
3c3e2b7356 refactor 2019-09-20 15:47:06 +08:00
Justin Lin
50903803c3 refactor 2019-09-20 15:45:38 +08:00
Justin Lin
e6aec7f07e format 2019-09-20 14:52:35 +08:00
Justin Lin
3cb8f8fb7d rename 2019-09-20 11:57:50 +08:00
Justin Lin
7a588bb95b format 2019-09-20 11:48:06 +08:00
Justin Lin
8e8a09b030 format 2019-09-20 11:48:01 +08:00
Justin Lin
a1185cc9c7 rename 2019-09-20 11:08:57 +08:00
Justin Lin
7dcf44cd67 refactor 2019-09-19 17:53:11 +08:00
Justin Lin
5e86912b2e refactor 2019-09-19 17:48:22 +08:00
Justin Lin
6d95a8bf9f refactor 2019-09-19 17:44:15 +08:00
Justin Lin
d4bec58375 refactor 2019-09-19 17:41:24 +08:00
Justin Lin
d8dafe7224 format 2019-09-19 15:49:36 +08:00
Justin Lin
4d5cf0e59b format 2019-09-19 15:47:19 +08:00
Justin Lin
eb9b13841f refactor 2019-09-19 15:41:16 +08:00
Justin Lin
afa3dbcd62 refactor 2019-09-19 15:39:38 +08:00
Justin Lin
7634a0dd72 add cone 2019-09-19 10:12:27 +08:00
Justin Lin
4c7ef79c17 add string_tetrahedron 2019-09-19 10:10:32 +08:00
Justin Lin
4914dda1ac add corn 2019-09-19 09:58:58 +08:00
Justin Lin
1229716878 remove default value 2019-09-19 09:08:48 +08:00
Justin Lin
e87321fc32 rename 2019-09-19 08:48:53 +08:00
Justin Lin
d0712918a2 add connector_peg 2019-09-18 21:03:44 +08:00
Justin Lin
373f10a52b rotate_extrude 2D 2019-09-18 20:04:18 +08:00
Justin Lin
0edf8c2946 use connector_peg to refactor 2019-09-18 18:07:34 +08:00
Justin Lin
3252461b32 use peg to refactor 2019-09-18 17:36:59 +08:00
Justin Lin
e572b6bf1f add peg 2019-09-18 17:36:52 +08:00
Justin Lin
25366f54e6 mirror it 2019-09-18 14:48:33 +08:00
Justin Lin
cf1d60045f format 2019-09-18 14:39:45 +08:00
Justin Lin
e145a137f0 add qr_coder 2019-09-18 14:38:10 +08:00
Justin Lin
0623296ad9 add multiplication_puzzle. 2019-09-15 20:43:26 +08:00
Justin Lin
538ed7b38e remove option 2019-09-15 08:45:58 +08:00
Justin Lin
bc8bf7f67b fix base orientation 2019-09-15 08:26:02 +08:00
Justin Lin
f5f0c7d5f8 rotate, not mirror 2019-09-15 08:06:45 +08:00
Justin Lin
842bb858c0 add spiral_cube 2019-09-14 20:59:50 +08:00
Justin Lin
0205686b9f add cargo 2019-09-13 15:00:16 +08:00
Justin Lin
e6eca1f526 move 2019-09-13 14:59:59 +08:00
Justin Lin
1c43b879f9 refactor 2019-09-11 14:57:01 +08:00
Justin Lin
89d1233c9f format 2019-09-11 14:55:11 +08:00
Justin Lin
ae217d6426 support different sides 2019-09-11 14:55:03 +08:00
Justin Lin
2760ba2b65 rename 2019-09-11 14:49:55 +08:00
Justin Lin
47228742ed rename 2019-09-11 14:47:38 +08:00
Justin Lin
e327df46f3 refactor 2019-09-11 14:46:58 +08:00
Justin Lin
ba71c3099f refactor 2019-09-11 14:30:51 +08:00
Justin Lin
553e47a010 rename 2019-09-11 14:16:49 +08:00
Justin Lin
d2d9a0b48f refactor 2019-09-11 14:16:08 +08:00
Justin Lin
3ae965216b remove param 2019-09-11 09:55:44 +08:00
Justin Lin
e83ac7489a delete 2019-09-11 09:49:33 +08:00
Justin Lin
a308bc7422 add floor_stand_text 2019-09-11 09:48:05 +08:00
Justin Lin
368c6db77e format 2019-09-11 09:44:02 +08:00
Justin Lin
4c6130f851 add floor_stand_symbol 2019-09-11 09:40:26 +08:00
Justin Lin
1a15d307a6 add floor_stand 2019-09-10 14:01:58 +08:00
Justin Lin
b8295ab5f1 refactor 2019-09-10 13:30:48 +08:00
Justin Lin
256971467c add pyramid_maze 2019-09-10 13:24:10 +08:00
Justin Lin
34303057a2 rename 2019-09-10 09:00:00 +08:00
Justin Lin
9fe1994049 refactor 2019-09-09 09:30:25 +08:00
Justin Lin
bfcd168e4b refactor 2019-09-09 09:23:20 +08:00
Justin Lin
c8a5993787 refactor 2019-09-09 09:18:13 +08:00
Justin Lin
f439c17c1f refactor 2019-09-09 09:16:31 +08:00
Justin Lin
d7d34fa322 refactor 2019-09-09 09:08:27 +08:00
Justin Lin
32361d57c5 refactor 2019-09-09 09:03:46 +08:00
Justin Lin
247574c2e4 refactor 2019-09-09 09:03:29 +08:00
Justin Lin
bd0325979f add vampire_holder 2019-09-09 08:45:17 +08:00
Justin Lin
dace753dde add melted_clock 2019-09-08 20:41:42 +08:00
Justin Lin
1ba1ceddc7 rename 2019-09-08 19:45:47 +08:00
Justin Lin
bfba37c99f rename 2019-09-08 19:45:36 +08:00
Justin Lin
ccd0be5551 add regular_polygon_maze 2019-09-08 17:18:01 +08:00
Justin Lin
ff2cf213da move files 2019-09-08 14:56:09 +08:00
Justin Lin
10744c9337 add spring_dog 2019-09-08 14:55:32 +08:00
Justin Lin
b022b859cc replace parentheses 2019-09-07 16:43:51 +08:00
Justin Lin
0a0f18b323 modify angle 2019-09-07 16:18:36 +08:00
Justin Lin
f266d18efa fix a_step 2019-09-07 16:18:27 +08:00
Justin Lin
d86be387f1 add mobius_maze 2019-09-07 15:59:59 +08:00
Justin Lin
4174cde9d8 refactor 2019-09-07 15:59:47 +08:00
Justin Lin
dc31063b4c y twisted 2019-09-07 15:23:52 +08:00
Justin Lin
1b07f29fa8 add twisted_maze 2019-09-07 10:35:15 +08:00
Justin Lin
a19da610fb add bearing_captured_in_mobius_cut 2019-09-06 18:03:15 +08:00
Justin Lin
c4d1207cf8 refactor 2019-09-05 20:04:12 +08:00
Justin Lin
9e026d98ee add cube_maze 2019-09-05 20:01:57 +08:00
Justin Lin
5f816e4d5b rename 2019-09-04 08:29:38 +08:00
Justin Lin
25a8c24c4e add params 2019-09-04 08:26:58 +08:00
Justin Lin
113a7f876c rename 2019-09-04 08:25:05 +08:00
Justin Lin
921e67f511 refactor 2019-09-04 08:23:25 +08:00
Justin Lin
ed2845a4e8 refactor 2019-09-04 07:35:20 +08:00
Justin Lin
df4ebba3c3 refactor 2019-09-03 21:00:50 +08:00
Justin Lin
e6fe09c649 modify condition 2019-09-03 20:37:00 +08:00
Justin Lin
93c53d213d rename 2019-09-03 17:37:52 +08:00
Justin Lin
8f770f713b rename 2019-09-03 17:30:09 +08:00
Justin Lin
0dacbb8bee rename 2019-09-03 17:28:28 +08:00
Justin Lin
83a8382aea refactor 2019-09-03 17:24:04 +08:00
Justin Lin
8fc3939cae fix wrong param 2019-09-03 07:28:51 +08:00
Justin Lin
ba29e95bf5 refactor 2019-09-02 15:08:37 +08:00
Justin Lin
55a8675550 add cylinder_maze 2019-09-02 15:05:51 +08:00
Justin Lin
dce3d0018b circularable 2019-09-02 15:05:44 +08:00
Justin Lin
9f1276d232 refoactor 2019-09-02 09:01:33 +08:00
Justin Lin
1d46034298 refactor 2019-09-02 08:43:44 +08:00
Justin Lin
76c703dfc2 rename 2019-09-02 08:43:10 +08:00
Justin Lin
8957fb0e1d add comment 2019-09-02 08:40:41 +08:00
Justin Lin
4b539c3b3e refactor 2019-09-02 08:38:43 +08:00
Justin Lin
1f1744a58e format 2019-09-02 08:28:49 +08:00
Justin Lin
7c14a6339e all UPPER_RIGHT_WALL 2019-09-02 08:25:26 +08:00
Justin Lin
181602df7a update comment 2019-09-02 08:22:02 +08:00
Justin Lin
d50bc8d5a8 add pyramidal_maze 2019-09-02 08:15:19 +08:00
Justin Lin
3a4f168835 refactor 2019-09-01 20:25:03 +08:00
Justin Lin
daefe1e8d1 change value 2019-09-01 20:20:08 +08:00
Justin Lin
d5b232cdb5 refactor 2019-09-01 20:19:38 +08:00
Justin Lin
c4372b13c8 rename 2019-09-01 20:03:51 +08:00
Justin Lin
db6adbb195 rename 2019-09-01 20:03:26 +08:00
Justin Lin
aa7be463f8 rename 2019-09-01 20:03:03 +08:00
Justin Lin
c7e00eaed5 del 2019-09-01 18:23:01 +08:00
Justin Lin
22d2cfa413 use square_maze 2019-09-01 18:20:41 +08:00
Justin Lin
ec399f3926 extract maze 2019-09-01 18:20:04 +08:00
Justin Lin
4708f039fc hex_maze_stereographic_projection 2019-09-01 11:58:44 +08:00
Justin Lin
60ba1b8ae1 extract maze 2019-09-01 11:58:10 +08:00
Justin Lin
7088e1652a add stereographic_projection_maze 2019-09-01 11:45:06 +08:00
Justin Lin
0f78b248f6 move modules into regular_polygon_maze 2019-09-01 11:43:40 +08:00
Justin Lin
cc6b19984b add maze_regular_polygon_generator 2019-09-01 11:03:23 +08:00
Justin Lin
355d78da86 fix wrong img 2019-09-01 10:50:38 +08:00
Justin Lin
3d8b1dcab7 update README 2019-08-31 17:21:32 +08:00
Justin Lin
75a95fa8d9 update README 2019-08-31 17:19:58 +08:00
Justin Lin
f66c19945f move 2019-08-31 17:19:40 +08:00
Justin Lin
a06f4ad267 update example 2019-08-31 17:18:50 +08:00
Justin Lin
e32402649c add px_spiral_text 2019-08-31 16:32:24 +08:00
Justin Lin
76c7d15179 update README 2019-08-29 08:47:40 +08:00
Justin Lin
132fa734e9 update dotSCAD all 2019-08-29 08:41:29 +08:00
Justin Lin
606fd3310c add module 2019-08-29 08:39:30 +08:00
Justin Lin
8700b0527c add comment 2019-08-29 08:38:45 +08:00
Justin Lin
6398003513 add doc 2019-08-29 08:38:07 +08:00
Justin Lin
e91c1b24ad add leopard_cat_taiwan 2019-08-29 07:51:27 +08:00
Justin Lin
2a207bf709 update example 2019-08-27 08:36:10 +08:00
Justin Lin
86a7f9bb9d change default value 2019-08-27 07:32:07 +08:00
Justin Lin
a900d5bf3b rename 2019-08-26 20:35:07 +08:00
Justin Lin
a226e0a625 add normalize parameter 2019-08-26 08:05:49 +08:00
Justin Lin
d692f700f7 update example 2019-08-26 07:36:17 +08:00
Justin Lin
e3e5d91ea9 add example 2019-08-25 20:48:47 +08:00
Justin Lin
108450b029 change levels format 2019-08-25 19:50:17 +08:00
Justin Lin
00f1b3a63d change binaries format 2019-08-25 18:13:36 +08:00
Justin Lin
993bd617aa fix end cond 2019-08-25 18:12:59 +08:00
Justin Lin
4dc5fdd1d9 update doc 2019-08-25 17:58:58 +08:00
Justin Lin
d98c3ee6f6 update doc 2019-08-25 17:57:59 +08:00
Justin Lin
6c570ef757 size is not necessary 2019-08-25 17:56:34 +08:00
Justin Lin
1af801f54a add px_gray 2019-08-25 15:44:14 +08:00
Justin Lin
b72ae73c2e based on idx 2019-08-25 08:30:56 +08:00
Justin Lin
b144df1db1 add comment 2019-08-24 15:59:34 +08:00
Justin Lin
dde70b656c add doc 2019-08-24 15:56:29 +08:00
Justin Lin
5504ef1b89 update doc 2019-08-24 13:52:33 +08:00
Justin Lin
d246d4b8f8 rename 2019-08-24 10:42:35 +08:00
Justin Lin
65497a1bd2 update doc 2019-08-24 10:39:33 +08:00
Justin Lin
9927662c90 update doc 2019-08-24 10:38:32 +08:00
Justin Lin
1be303c2fe add comment 2019-08-24 10:36:58 +08:00
Justin Lin
a5a477f602 add doc 2019-08-24 10:35:16 +08:00
Justin Lin
801bc1afae update docs 2019-08-24 10:13:25 +08:00
Justin Lin
1c2e9b3293 fix name error 2019-08-24 08:58:10 +08:00
Justin Lin
a115f06e7c rename 2019-08-24 08:57:03 +08:00
Justin Lin
a9ee80d42f rename 2019-08-24 08:56:50 +08:00
Justin Lin
b673a41c4f rename 2019-08-24 08:56:27 +08:00
Justin Lin
40d71b3b3f rename 2019-08-24 08:56:15 +08:00
Justin Lin
9c4a783f02 add functions 2019-08-23 20:48:59 +08:00
Justin Lin
16e06de537 add 8x8char 2019-08-23 20:43:27 +08:00
Justin Lin
8655ab4df4 fix height bug 2019-08-23 11:11:35 +08:00
Justin Lin
38717abd1a allow different size 2019-08-23 08:40:18 +08:00
Justin Lin
9ec796696c fix end condition 2019-08-22 09:16:10 +08:00
Justin Lin
bbf6f7d5ca change order of points 2019-08-22 07:50:12 +08:00
Justin Lin
2db1b5fedc add bitmap 2019-08-21 21:03:53 +08:00
Justin Lin
ef7adbdbc0 refactor 2019-08-21 19:55:10 +08:00
Justin Lin
76f8debeb2 not necessary 2019-08-19 21:34:04 +08:00
Justin Lin
fd6fce1eae add .scad 2019-08-19 21:24:58 +08:00
Justin Lin
e83fa5f249 add packing circles 2019-08-18 10:03:38 +08:00
Justin Lin
db28df088b updata doc 2019-08-16 09:50:38 +08:00
Justin Lin
bf7a481011 add comment 2019-08-16 09:50:02 +08:00
Justin Lin
4754438be4 update comments 2019-08-16 09:49:18 +08:00
Justin Lin
fcb0d89a27 add doc 2019-08-16 09:45:06 +08:00
Justin Lin
a5039c8f5a add parameters 2019-08-11 11:37:24 +08:00
Justin Lin
99e68cfb31 use rands directly 2019-08-11 11:06:38 +08:00
Justin Lin
6bda7cc3fa add rand 2019-08-11 10:54:22 +08:00
Justin Lin
fd5cb7f54c add comment 2019-08-11 10:53:24 +08:00
Justin Lin
4916d30c08 Hypnotic squares 2019-08-11 10:45:32 +08:00
Justin Lin
ade18af430 add forest 2019-08-10 10:15:21 +08:00
Justin Lin
e9aa9f6c36 add tiled_lines 2019-08-10 09:50:06 +08:00
Justin Lin
e31a7b7883 fix wrong rotation 2019-08-09 21:25:43 +08:00
Justin Lin
f25c02a37d add doc 2019-08-07 21:07:31 +08:00
Justin Lin
d7c9a326cc ignore if knots is undef 2019-08-07 20:45:09 +08:00
Justin Lin
ee2e4d1c0e not necessary 2019-08-04 09:17:48 +08:00
Justin Lin
fa8a524c90 add euler_maze 2019-08-03 20:42:16 +08:00
Justin Lin
c718d58e15 added twist_bottle 2019-07-30 15:49:31 +08:00
Justin Lin
c71b612d01 add sierpinski_triangle 2019-07-29 20:46:06 +08:00
Justin Lin
c0c98c125e Checking parameters 2019-07-29 07:47:42 +08:00
Justin Lin
5dc3132fcf update doc 2019-07-28 18:24:48 +08:00
Justin Lin
2cde1a5bcb update doc 2019-07-28 18:24:18 +08:00
Justin Lin
aeda6fc34c remove temp var 2019-07-28 18:23:41 +08:00
Justin Lin
9940e18fff accept 2d points 2019-07-28 18:21:17 +08:00
Justin Lin
f400281c15 add bspline_curve 2019-07-28 17:22:34 +08:00
Justin Lin
749a9a95ae format 2019-07-27 18:19:31 +08:00
Justin Lin
f5b3024b09 add heart_chain 2019-07-27 16:53:47 +08:00
Justin Lin
8d9f6d5f9b refactor 2019-07-19 15:25:31 +08:00
Justin Lin
cc38eee4ed add chrome_dino 2019-07-18 17:27:23 +08:00
Justin Lin
86f94d2499 update readme 2019-07-17 08:45:07 +08:00
Justin Lin
6737b4a43e fix conflicts 2019-07-17 08:37:33 +08:00
Justin Lin
3dde9f2745 add dotSCAD 2019-07-15 08:24:54 +08:00
Justin Lin
3ac4136043 fix include 2019-07-15 08:23:38 +08:00
Justin Lin
70879d4c73 update release 2019-07-15 08:18:50 +08:00
Justin Lin
840f8df3ae add voronoi_vase 2019-07-14 11:10:05 +08:00
Justin Lin
49e13d920a add superformula_vase 2019-07-14 10:58:31 +08:00
Justin Lin
948410ec56 rename 2019-07-14 10:15:27 +08:00
Justin Lin
8576d93dd8 update tree 2019-07-14 10:14:10 +08:00
Justin Lin
47a3f9c155 add tree 2019-07-14 10:10:29 +08:00
Justin Lin
93c7ea5c9d add dancing_taiwan 2019-07-13 18:21:04 +08:00
Justin Lin
cfda38c8bd add text_sphere.scad 2019-07-13 16:44:24 +08:00
Justin Lin
d3640830c4 add klein bottle 2019-07-12 16:38:49 +08:00
Justin Lin
dac87e49c5 update README 2019-07-09 07:33:36 +08:00
Justin Lin
843063db31 add knot 2019-07-08 08:10:31 +08:00
Justin Lin
30c1e0fb13 add stereographic_projection 2019-07-06 18:26:21 +08:00
Justin Lin
8727bfbf8b refactor 2019-07-06 07:51:14 +08:00
Justin Lin
c12e160e03 add blackbear 2019-07-05 21:09:48 +08:00
Justin Lin
110bc5c400 update image 2019-07-05 21:01:59 +08:00
Justin Lin
8fdd195949 update featured image 2019-07-05 20:57:35 +08:00
Justin Lin
4c65e12a88 add voronoi_bracelet 2019-07-05 20:06:51 +08:00
Justin Lin
1816aad98e add text_tower 2019-07-05 13:50:34 +08:00
Justin Lin
28e8a5c4b2 update README 2019-07-04 14:54:08 +08:00
Justin Lin
d849034bc7 add comment 2019-07-04 14:53:34 +08:00
Justin Lin
2c1f8faa56 format 2019-07-04 14:53:14 +08:00
Justin Lin
b998cc8f32 add doc 2019-07-04 14:52:57 +08:00
Justin Lin
e126b1af1d add comment 2019-07-04 14:47:09 +08:00
Justin Lin
b256bf7c90 add doc 2019-07-04 14:46:40 +08:00
Justin Lin
3c830cc90d add example 2019-07-02 16:17:48 +08:00
Justin Lin
76b973d824 update README 2019-07-02 15:43:57 +08:00
Justin Lin
90c05523ce add comments 2019-07-02 15:43:23 +08:00
Justin Lin
0cfa510874 add doc 2019-07-02 15:42:35 +08:00
Justin Lin
9b6c17ace4 add doc 2019-07-02 15:35:57 +08:00
Justin Lin
43f84ba478 update doc 2019-07-02 15:29:11 +08:00
Justin Lin
8ee52bd672 update RELEASE 2019-07-02 14:31:20 +08:00
Justin Lin
dc5e063b25 update RELEASE 2019-07-02 14:29:25 +08:00
Justin Lin
aae8f688c0 update functions 2019-07-02 14:28:36 +08:00
Justin Lin
60931ec8b9 refactor 2019-07-01 10:02:12 +08:00
Justin Lin
5a15dd9fdb refactor 2019-07-01 10:01:12 +08:00
Justin Lin
6bb3b445b4 refactor 2019-07-01 07:46:25 +08:00
Justin Lin
66bb8ef643 update comments 2019-07-01 07:44:41 +08:00
Justin Lin
4d02e6bb65 add comments 2019-07-01 07:43:54 +08:00
Justin Lin
681d697840 update doc 2019-06-30 20:30:12 +08:00
Justin Lin
8a8e28c61d update README 2019-06-30 20:28:22 +08:00
Justin Lin
55c2cd6fda add comment 2019-06-30 20:27:21 +08:00
Justin Lin
273d32dc69 add doc 2019-06-30 20:25:53 +08:00
Justin Lin
472d5c7ba7 update doc 2019-06-30 20:22:03 +08:00
Justin Lin
eba7f63576 update README 2019-06-30 18:29:45 +08:00
Justin Lin
ec18d2eeeb add comment 2019-06-30 18:28:58 +08:00
Justin Lin
51e5356f21 add doc 2019-06-30 18:28:01 +08:00
Justin Lin
582050d096 rename 2019-06-30 18:27:57 +08:00
Justin Lin
b7d8d3e87c update doc 2019-06-29 18:18:51 +08:00
Justin Lin
ed6ddec02c update doc 2019-06-29 18:18:11 +08:00
Justin Lin
ab0504607d update test case 2019-06-29 18:16:06 +08:00
Justin Lin
b3ae216b72 change default value 2019-06-29 18:15:12 +08:00
Justin Lin
a6caaac787 rename 2019-06-29 17:53:55 +08:00
Justin Lin
f915b07289 rename 2019-06-29 17:53:38 +08:00
Justin Lin
1ff5d848d2 add width param 2019-06-29 17:52:19 +08:00
Justin Lin
8de9c7f138 update test case 2019-06-29 17:52:06 +08:00
Justin Lin
92c1667194 update test case 2019-06-29 17:47:54 +08:00
Justin Lin
e26e6d7472 add width param 2019-06-29 17:46:14 +08:00
Justin Lin
47b5b91b0a use internal px_circle 2019-06-29 17:14:10 +08:00
Justin Lin
cda26241dd change order 2019-06-29 17:01:36 +08:00
Justin Lin
cfa0d211ed update doc 2019-06-29 10:40:03 +08:00
Justin Lin
0a73460884 update README 2019-06-29 10:31:21 +08:00
Justin Lin
774229e3f9 add doc 2019-06-29 10:29:43 +08:00
Justin Lin
b1c3e371a3 change default value 2019-06-29 10:29:37 +08:00
Justin Lin
e45c16fe3f refactor 2019-06-29 10:15:28 +08:00
Justin Lin
2b36c42c99 update doc 2019-06-29 10:02:47 +08:00
Justin Lin
bec487baba add doc 2019-06-29 10:01:46 +08:00
Justin Lin
ce0daaf6bc update doc 2019-06-29 10:01:43 +08:00
Justin Lin
46c25aa51e add doc 2019-06-29 09:53:02 +08:00
Justin Lin
f542661e2a rename 2019-06-29 09:52:06 +08:00
Justin Lin
172e1f8ceb change order 2019-06-28 07:54:08 +08:00
Justin Lin
31c6ee8599 order by y, order by x 2019-06-28 06:41:18 +08:00
Justin Lin
d9199bf9ed use range 2019-06-28 06:38:15 +08:00
Justin Lin
3b57412108 update README 2019-06-27 08:54:18 +08:00
Justin Lin
fd684a10cb add sort 2019-06-27 08:53:15 +08:00
Justin Lin
aa5fc938d0 change order 2019-06-27 07:32:05 +08:00
Justin Lin
ac1167eacc fix wrong variable 2019-06-26 09:43:40 +08:00
Justin Lin
691a8f3ff9 add modules 2019-06-26 09:42:40 +08:00
Justin Lin
e6280ad9f4 update README 2019-06-25 18:12:27 +08:00
Justin Lin
0c6744c62d fix variable name 2019-06-25 18:09:36 +08:00
Justin Lin
6d858125c2 modify dep 2019-06-25 18:09:15 +08:00
Justin Lin
cad5623248 add px_polygon 2019-06-25 18:08:14 +08:00
Justin Lin
07fd4e47e3 fix variable name 2019-06-25 18:05:26 +08:00
Justin Lin
108a232981 update README 2019-06-24 20:06:16 +08:00
Justin Lin
912adba419 add slice 2019-06-24 20:05:58 +08:00
Justin Lin
53a69477d6 refactor 2019-06-24 18:02:24 +08:00
Justin Lin
5f3bfb391d update doc 2019-06-24 07:29:42 +08:00
Justin Lin
16509eec6c update README 2019-06-23 10:09:55 +08:00
Justin Lin
15a03b7fb2 update doc 2019-06-23 10:07:44 +08:00
Justin Lin
deec59b408 change dir 2019-06-23 10:07:06 +08:00
Justin Lin
8fa2de0a60 update doc 2019-06-23 10:05:02 +08:00
Justin Lin
5d012ece48 change dir 2019-06-23 10:04:18 +08:00
Justin Lin
b1687bece2 update doc 2019-06-23 10:02:08 +08:00
Justin Lin
2d9562c8b6 change dir 2019-06-23 10:00:40 +08:00
Justin Lin
c8e1244651 update README 2019-06-23 09:51:18 +08:00
Justin Lin
862fabcd3a add reverse 2019-06-23 09:50:25 +08:00
Justin Lin
1a28d90853 change dir 2019-06-23 09:49:16 +08:00
Justin Lin
9d1804a4d1 rename __private__ to __comm__ 2019-06-23 09:37:02 +08:00
Justin Lin
502ef06db2 refactor 2019-06-23 09:34:38 +08:00
Justin Lin
810f298c70 refactor 2019-06-23 09:33:03 +08:00
Justin Lin
0408ec9cbe refactor 2019-06-23 09:30:32 +08:00
Justin Lin
be05e3b68e fix end i 2019-06-23 09:10:37 +08:00
Justin Lin
65119984fd fix include 2019-06-23 09:02:53 +08:00
Justin Lin
bdb4dace7f fix include 2019-06-23 08:57:23 +08:00
Justin Lin
4aff538837 change end cond 2019-06-23 08:53:32 +08:00
Justin Lin
c0fb254c43 update README 2019-06-22 14:38:53 +08:00
Justin Lin
dd03a9f3db fix wrong funcall 2019-06-22 14:35:39 +08:00
Justin Lin
eca1d20c70 update README 2019-06-22 14:28:21 +08:00
Justin Lin
d9f065a734 fix wrong funcall 2019-06-22 14:25:31 +08:00
Justin Lin
a5d2c24ea1 refactor 2019-06-22 14:24:22 +08:00
Justin Lin
aa12110504 refactor 2019-06-22 14:23:02 +08:00
Justin Lin
8f0b40322e rename 2019-06-22 14:21:50 +08:00
Justin Lin
d4aaee1db9 update doc 2019-06-22 14:16:04 +08:00
Justin Lin
ee89119f2f add dir 2019-06-22 14:15:18 +08:00
Justin Lin
d1bd586bee not necessary 2019-06-22 14:14:00 +08:00
Justin Lin
f88b7bf8f3 rename 2019-06-22 14:13:35 +08:00
Justin Lin
fbd10cd25d update doc 2019-06-22 14:10:37 +08:00
Justin Lin
dfe76bff78 update doc 2019-06-22 14:06:50 +08:00
Justin Lin
d743f36086 update doc 2019-06-22 13:52:07 +08:00
Justin Lin
f1eda43ac0 add test case 2019-06-22 13:48:47 +08:00
Justin Lin
569171971b use dir to simulate namespace 2019-06-22 13:41:59 +08:00
Justin Lin
cb4b3e6685 update test case 2019-06-22 13:40:34 +08:00
Justin Lin
eaed7ff34f refactor 2019-06-22 13:38:57 +08:00
Justin Lin
2c00ef8525 refactor 2019-06-22 13:38:17 +08:00
Justin Lin
17c62ba293 refactor 2019-06-22 13:37:27 +08:00
Justin Lin
ae78c61491 refactor 2019-06-22 09:19:59 +08:00
Justin Lin
e9b1e7f61f don't cal repeatly 2019-06-22 09:17:45 +08:00
Justin Lin
9ed4e1c42b update README 2019-06-21 20:23:15 +08:00
Justin Lin
72197670cb add test case 2019-06-21 20:22:56 +08:00
Justin Lin
b9d88334c5 add px_sphere 2019-06-21 20:17:31 +08:00
Justin Lin
937b6a35bd update README 2019-06-21 17:47:00 +08:00
Justin Lin
5aec44eba8 modify test case 2019-06-21 07:33:52 +08:00
Justin Lin
2f6a170d2c delete center 2019-06-21 07:33:44 +08:00
Justin Lin
5fff65c0d1 modify test case 2019-06-21 07:29:37 +08:00
Justin Lin
3aa5d552c0 delete center 2019-06-21 07:29:29 +08:00
Justin Lin
631d0c8506 change default value 2019-06-21 06:38:01 +08:00
Justin Lin
5d8abc1028 search from OPENSCADPATH 2019-06-20 20:49:29 +08:00
Justin Lin
59ae810383 OpenSCAD search from OPENSCADPATH 2019-06-20 20:48:58 +08:00
Justin Lin
ccce2706f0 update README 2019-06-20 20:31:59 +08:00
Justin Lin
c680780d11 update README 2019-06-20 20:29:58 +08:00
Justin Lin
0d829b7185 add px_cylinder 2019-06-20 20:23:53 +08:00
Justin Lin
e3706e1f87 add px_cylinder 2019-06-20 20:23:36 +08:00
Justin Lin
9f1aa6a653 add test case 2019-06-20 20:22:49 +08:00
Justin Lin
67a7d20880 add px_cylinder 2019-06-20 20:15:21 +08:00
Justin Lin
7cc01a05c6 modify test case 2019-06-20 20:02:02 +08:00
Justin Lin
f9dd9deb53 set center default [0, 0] 2019-06-20 20:01:51 +08:00
Justin Lin
a747bcff3a update README 2019-06-20 18:33:22 +08:00
Justin Lin
d94381dee2 update README 2019-06-20 14:35:53 +08:00
Justin Lin
8ef20b16e3 add px_circle 2019-06-20 10:11:38 +08:00
Justin Lin
de1d0166e6 update README 2019-06-20 09:27:55 +08:00
Justin Lin
eb8305966d update doc 2019-06-20 09:27:30 +08:00
Justin Lin
2d74627e45 use dir to simulate namespace 2019-06-20 09:27:24 +08:00
Justin Lin
945aeacdc4 update README 2019-06-20 09:21:10 +08:00
Justin Lin
17b731ad8f use dir to simulate namespace 2019-06-20 09:19:42 +08:00
Justin Lin
3830a2e523 update README 2019-06-20 08:37:03 +08:00
Justin Lin
62840eb510 add test_px_circle 2019-06-20 08:36:51 +08:00
Justin Lin
d6021374ba add px_circle 2019-06-20 08:34:29 +08:00
Justin Lin
43e5e66529 update README 2019-06-19 09:07:37 +08:00
Justin Lin
dde0156642 add px_polyline 2019-06-19 09:03:00 +08:00
Justin Lin
edabcb8f79 add test case 2019-06-19 09:02:17 +08:00
Justin Lin
f7398f0d84 add px_polyline 2019-06-19 08:59:05 +08:00
Justin Lin
0f37651bc3 fix end cond 2019-06-19 08:48:23 +08:00
Justin Lin
2df7a64ad7 add px_line 2019-06-18 20:28:47 +08:00
Justin Lin
0b4097fd09 add test case 2019-06-18 20:28:16 +08:00
Justin Lin
0bad260d46 add px_line.scad 2019-06-18 20:27:14 +08:00
Justin Lin
e414d2859b update README 2019-06-17 20:25:03 +08:00
Justin Lin
c9d0122779 update RELEASE 2019-06-17 20:24:29 +08:00
Justin Lin
daed828c9a add dotSCAD.scad 2019-06-17 20:23:33 +08:00
Justin Lin
8ceae06645 update RELEASE 2019-06-17 20:18:45 +08:00
Justin Lin
299b3869fd update README 2019-06-17 20:18:28 +08:00
Justin Lin
80fb650df4 update RELEASE 2019-06-17 20:15:38 +08:00
Justin Lin
919ae2f158 update RLEASE 2019-06-17 20:14:59 +08:00
Justin Lin
a851ee6bb7 add dotSCAD 2019-06-17 20:12:34 +08:00
Justin Lin
340847cd19 add missing doc 2019-06-17 10:02:25 +08:00
Justin Lin
5b21cc10d7 add missing doc 2019-06-17 10:01:45 +08:00
Justin Lin
ab99a24352 update docs 2019-06-17 08:33:00 +08:00
Justin Lin
f4696f231e fix wrong scope 2019-06-17 08:26:21 +08:00
Justin Lin
218db7f7a8 update test case 2019-06-17 08:18:54 +08:00
Justin Lin
bb8604e42b fix wrong angs 2019-06-17 08:18:40 +08:00
Justin Lin
9182575ff2 add test case 2019-06-17 07:36:17 +08:00
Justin Lin
ed9477ece5 refactor 2019-06-16 21:09:41 +08:00
Justin Lin
56d2fb648f refactor 2019-06-16 21:07:23 +08:00
Justin Lin
057ad863af refactor 2019-06-16 18:25:45 +08:00
Justin Lin
002711ae3e add test case 2019-06-16 18:23:10 +08:00
Justin Lin
8a5956e852 sub_str can handle undef 2019-06-16 17:42:17 +08:00
Justin Lin
0eb1387f27 refactor 2019-06-16 17:31:51 +08:00
Justin Lin
46dfe4ff25 update test case 2019-06-16 17:30:17 +08:00
Justin Lin
323e81a82c refactor 2019-06-16 16:47:44 +08:00
Justin Lin
61c6e9f70d refactor 2019-06-16 16:44:01 +08:00
Justin Lin
2af270a8da refactor 2019-06-16 11:05:43 +08:00
Justin Lin
c4c9831798 add test_case 2019-06-16 10:33:55 +08:00
Justin Lin
03ac58acaa refactor 2019-06-15 21:14:16 +08:00
Justin Lin
2110b9cb31 refactor 2019-06-15 20:53:54 +08:00
Justin Lin
93d7c0239d not necessary 2019-06-15 11:20:00 +08:00
Justin Lin
5a37620a5b use for each 2019-06-15 11:19:31 +08:00
Justin Lin
8bc6a0b4c9 refactor 2019-06-15 11:04:16 +08:00
Justin Lin
06831ffe15 c-style for loop 2019-06-15 10:56:33 +08:00
Justin Lin
df5775bd05 avoid warning 2019-06-15 10:49:58 +08:00
Justin Lin
6f83a6192a update RELEASE 2019-06-15 10:45:42 +08:00
Justin Lin
85f8acdbee update doc 2019-06-15 10:42:28 +08:00
Justin Lin
c75bf8bfee to3d to avoid warning 2019-06-15 10:42:08 +08:00
Justin Lin
2d755a6cbf update doc 2019-06-15 10:20:40 +08:00
Justin Lin
01fc0298f6 remove dependency 2019-06-15 10:18:43 +08:00
Justin Lin
a07244fd47 update doc 2019-06-15 10:18:19 +08:00
Justin Lin
e3443bf0e8 remove dependency 2019-06-15 10:15:21 +08:00
Justin Lin
e2771ca01c update RELEASE 2019-06-15 10:11:54 +08:00
Justin Lin
643266f4a3 c-style for loop 2019-06-14 21:26:28 +08:00
Justin Lin
5a0a4a8fa4 add test case 2019-06-14 21:24:15 +08:00
Justin Lin
78127faba6 c-style for loop 2019-06-14 21:21:08 +08:00
Justin Lin
d203fe4030 add test case 2019-06-14 21:18:22 +08:00
Justin Lin
3be3a271e6 c-style for loop 2019-06-14 13:44:47 +08:00
Justin Lin
f5d813839b add test case 2019-06-14 13:44:38 +08:00
Justin Lin
0a604c5793 c-style for loop 2019-06-14 13:38:32 +08:00
Justin Lin
f1a8d6f0dc c-style for loop 2019-06-14 13:35:10 +08:00
Justin Lin
af084fb043 c-style for loop 2019-06-14 09:01:43 +08:00
Justin Lin
0510b18516 c-style for and each 2019-06-14 08:50:35 +08:00
Justin Lin
78bfb2f31d add test case 2019-06-14 08:44:02 +08:00
Justin Lin
e185e9b7e9 c-style for loop 2019-06-14 08:38:24 +08:00
Justin Lin
3fb08570c6 add test case 2019-06-14 08:37:51 +08:00
Justin Lin
41db148815 c-style for loop 2019-06-14 08:32:28 +08:00
Justin Lin
beaebfcc37 c-style for loop 2019-06-14 08:31:04 +08:00
Justin Lin
6493eea0ac refactor 2019-06-13 20:46:53 +08:00
Justin Lin
6299da9d23 c-style for loop 2019-06-13 20:37:16 +08:00
Justin Lin
e5850f871d c-style for loop 2019-06-13 20:35:55 +08:00
Justin Lin
85c75018f1 add test case 2019-06-13 20:27:01 +08:00
Justin Lin
e84c7bc7a0 refactor 2019-06-13 20:26:21 +08:00
Justin Lin
26db1cf25b fixed name error 2019-06-13 20:19:35 +08:00
Justin Lin
f9d609087d add test case 2019-06-13 20:19:09 +08:00
Justin Lin
14bbb3f205 fixed name error 2019-06-13 20:19:01 +08:00
Justin Lin
3376b870a7 c-style for loop 2019-06-13 20:07:20 +08:00
Justin Lin
90d2f1ac9c c-style for loop 2019-06-13 09:11:04 +08:00
Justin Lin
fe8256ef0d c-style for loop 2019-06-13 09:08:44 +08:00
Justin Lin
7351e401c9 c-style for loop 2019-06-13 09:06:55 +08:00
Justin Lin
e26d1d3233 refactor 2019-06-13 08:45:13 +08:00
Justin Lin
ad7819f1eb fix missing dependency 2019-06-13 08:41:48 +08:00
Justin Lin
957e5ab5d5 missing dependency 2019-06-13 08:31:54 +08:00
Justin Lin
0218724b48 refactor 2019-06-12 20:40:55 +08:00
Justin Lin
8983b01b30 c-style for loop 2019-06-12 20:31:20 +08:00
Justin Lin
7c59a3e11b c-style for loop 2019-06-12 20:29:51 +08:00
Justin Lin
f433a79c31 c-style for loop 2019-06-12 20:28:18 +08:00
Justin Lin
700f46bfef c-style for loop 2019-06-12 13:36:48 +08:00
Justin Lin
e34bc73def c-style for loop 2019-06-12 13:35:21 +08:00
Justin Lin
cec42209f2 c-style for loop 2019-06-12 13:33:43 +08:00
Justin Lin
758b14715f c-style for loop 2019-06-12 13:30:34 +08:00
Justin Lin
f89794e3cc modify use case 2019-06-12 13:18:26 +08:00
Justin Lin
edd022bca2 modify use case 2019-06-12 13:08:07 +08:00
Justin Lin
c5c9ca40c9 update README 2019-06-12 09:16:54 +08:00
Justin Lin
423fc36f1c c-style for loop 2019-06-12 09:06:36 +08:00
Justin Lin
283b091c7c use built-in is_undef 2019-06-12 08:59:54 +08:00
Justin Lin
bf0601eaef never used 2019-06-12 08:58:32 +08:00
Justin Lin
8c4d2b5333 c-style for loop 2019-06-12 08:42:10 +08:00
Justin Lin
88b0868358 c-style for loop 2019-06-12 08:39:54 +08:00
Justin Lin
68ad185712 add test_shape_arc 2019-06-12 08:37:00 +08:00
Justin Lin
2e1def3556 use c-style for loop 2019-06-12 08:32:52 +08:00
Justin Lin
9a2e66f999 refactor 2019-06-12 08:23:40 +08:00
Justin Lin
e1985e85b0 multify directly 2019-06-12 08:20:16 +08:00
Justin Lin
c31145be3b modify message 2019-06-12 08:18:54 +08:00
Justin Lin
fee00580be modify use case 2019-06-12 08:17:50 +08:00
Justin Lin
5a836b02d6 modify use case 2019-06-12 07:36:15 +08:00
Justin Lin
bec05fb5b4 modify use_case 2019-06-12 07:32:26 +08:00
Justin Lin
15c1a98b8d update README 2019-06-11 15:36:42 +08:00
Justin Lin
e170918a5d update README 2019-06-11 15:35:31 +08:00
Justin Lin
5a7c13a548 change expected 2019-06-11 15:31:56 +08:00
Justin Lin
f34f2e0bbf not necessary 2019-06-11 15:30:45 +08:00
Justin Lin
f47267c656 annoying float errors XD 2019-06-11 15:28:16 +08:00
Justin Lin
2e2079a323 use built-in assert 2019-06-11 15:15:52 +08:00
Justin Lin
627909fc9e use new assertEqualPoints 2019-06-11 14:52:44 +08:00
Justin Lin
fcddf7b187 refactor 2019-06-11 14:49:12 +08:00
Justin Lin
eaeb0d1e28 refactor 2019-06-11 14:38:51 +08:00
Justin Lin
6b64ca01ab refactor to use assertEqualNum 2019-06-11 14:32:21 +08:00
Justin Lin
df0f293825 use built-in assert 2019-06-11 13:49:31 +08:00
Justin Lin
37e272e333 use 0 directly 2019-06-11 09:30:07 +08:00
Justin Lin
799790932e use built-in angle 2019-06-11 09:26:26 +08:00
Justin Lin
a56d443686 use built-in PI 2019-06-11 09:02:41 +08:00
Justin Lin
d581e60678 use built-in PI 2019-06-11 08:58:50 +08:00
Justin Lin
d1ae9174a9 use built-in is_num 2019-06-11 08:39:57 +08:00
Justin Lin
9d63c4ffeb not necessary 2019-06-11 08:27:11 +08:00
Justin Lin
db6c77a523 use is_num 2019-06-11 08:26:47 +08:00
452 changed files with 12769 additions and 5218 deletions

215
README.md
View File

@@ -1,133 +1,164 @@
# dotSCAD 1.3
# dotSCAD 2.2
> Reduce the burden of 3D modeling in mathematics. Compatible with OpenSCAD 2015.03 or laters.
> **Reduce the burden of 3D modeling in mathematics.**
![dotSCAD](WhirlingTaiwan.JPG)
![dotSCAD](featured_img/LeopardCatTaiwan.JPG)
[![license/LGPL](https://img.shields.io/badge/license-LGPL-blue.svg)](https://github.com/JustinSDK/lib-openscad/blob/master/LICENSE)
[![license/LGPL](LICENSE.svg)](https://github.com/JustinSDK/lib-openscad/blob/master/LICENSE)
## Introduction
**Based on OpenSCAD 2019.05.** For old OpenSCAD versions, please use dotSCAD 1.3. You can download all versions from the [releases](https://github.com/JustinSDK/dotSCAD/releases).
OpenSCAD uses three library locations, the installation library, built-in library, and user defined libraries. It's convenient to set `OPENSCADPATH`. Check [Setting OPENSCADPATH](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries#Setting_OPENSCADPATH) in [OpenSCAD User Manual/Libraries](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries) for details.
Every module or function is located in the file which has the same name as the module or the function. For example, if you want to use the `line2d` module to draw a line, `include <line2d.scad>;` first.
Every module or function is located in the file which has the same name as the module or the function. For example, if you want to use the `line2d` module to draw a line, `use <line2d.scad>;` first.
include <line2d.scad>;
use <line2d.scad>;
line2d(p1 = [0, 0], p2 = [5, 0], width = 1);
Some modules depend on other modules. For example, the `polyline2d` module depends on the `line2d` module, so you also have to `include <line2d.scad>;` besides `include <polyline3d.scad>;`.
Some module files are organized in a directory. For example, px_circle.scad exists in `pixel` directory. You have to prefix the directory name when including `px_circle`.
include <line2d.scad>;
include <polyline3d.scad>;
use <pixel/px_circle.scad>;
points = px_circle(radius = 10);
for(pt = points) {
translate(pt) square(1);
}
polyline2d(points = [[1, 2], [-5, -4], [-5, 3], [5, 5]], width = 1);
## Examples
If OpenSCAD generates "WARNING: Ignoring unknown xxx function" or "WARNING: Ignoring unknown xxx module" when using one module of dotSCAD. Just try to `include <xxx.scad>;`.
See [examples](examples).
Too many dependencies? Because OpenSCAD doesn't provide namespace management, I personally think that exposing dependencies is better than hiding them. In this way, users can have their own way to manage dependencies. How to categorize dependencies is up to you. For example, you can include your commonly-used modules and functions in "commonly_used.scad" and then `include <commonly_used.scad>;` in the ".scad" file of your project.
![examples](examples/images/gallery.JPG)
## Documentation
- 2D
- [arc](https://openhome.cc/eGossip/OpenSCAD/lib-arc.html)
- [pie](https://openhome.cc/eGossip/OpenSCAD/lib-pie.html)
- [rounded_square](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_square.html)
- [line2d](https://openhome.cc/eGossip/OpenSCAD/lib-line2d.html)
- [polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib-polyline2d.html)
- [hull_polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib-hull_polyline2d.html)
- [hexagons](https://openhome.cc/eGossip/OpenSCAD/lib-hexagons.html)
- [polytransversals](https://openhome.cc/eGossip/OpenSCAD/lib-polytransversals.html)
- [multi_line_text](https://openhome.cc/eGossip/OpenSCAD/lib-multi_line_text.html)
- [voronoi2d](https://openhome.cc/eGossip/OpenSCAD/lib-voronoi2d.html)
- [arc](https://openhome.cc/eGossip/OpenSCAD/lib2x-arc.html)
- [pie](https://openhome.cc/eGossip/OpenSCAD/lib2x-pie.html)
- [rounded_square](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_square.html)
- [line2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-line2d.html)
- [polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-polyline2d.html)
- [hull_polyline2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-hull_polyline2d.html)
- [hexagons](https://openhome.cc/eGossip/OpenSCAD/lib2x-hexagons.html)
- [polytransversals](https://openhome.cc/eGossip/OpenSCAD/lib2x-polytransversals.html)
- [multi_line_text](https://openhome.cc/eGossip/OpenSCAD/lib2x-multi_line_text.html)
- [voronoi2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi2d.html)
- 3D
- [rounded_cube](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_cube.html)
- [rounded_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_cylinder.html)
- [crystal_ball](https://openhome.cc/eGossip/OpenSCAD/lib-crystal_ball.html)
- [line3d](https://openhome.cc/eGossip/OpenSCAD/lib-line3d.html)
- [polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib-polyline3d.html)
- [hull_polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib-hull_polyline3d.html)
- [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib-function_grapher.html)
- [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html)
- [starburst](https://openhome.cc/eGossip/OpenSCAD/lib-starburst.html)
- [voronoi3d](https://openhome.cc/eGossip/OpenSCAD/lib-voronoi3d.html)
- [rounded_cube](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_cube.html)
- [rounded_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_cylinder.html)
- [crystal_ball](https://openhome.cc/eGossip/OpenSCAD/lib2x-crystal_ball.html)
- [line3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-line3d.html)
- [polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-polyline3d.html)
- [hull_polyline3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-hull_polyline3d.html)
- [function_grapher](https://openhome.cc/eGossip/OpenSCAD/lib2x-function_grapher.html)
- [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html)
- [starburst](https://openhome.cc/eGossip/OpenSCAD/lib2x-starburst.html)
- [voronoi3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi3d.html)
- Transformation
- [along_with](https://openhome.cc/eGossip/OpenSCAD/lib-along_with.html)
- [hollow_out](https://openhome.cc/eGossip/OpenSCAD/lib-hollow_out.html)
- [bend](https://openhome.cc/eGossip/OpenSCAD/lib-bend.html)
- [shear](https://openhome.cc/eGossip/OpenSCAD/lib-shear.html)
- [along_with](https://openhome.cc/eGossip/OpenSCAD/lib2x-along_with.html)
- [hollow_out](https://openhome.cc/eGossip/OpenSCAD/lib2x-hollow_out.html)
- [bend](https://openhome.cc/eGossip/OpenSCAD/lib2x-bend.html)
- [shear](https://openhome.cc/eGossip/OpenSCAD/lib2x-shear.html)
- Functon
- [rotate_p](https://openhome.cc/eGossip/OpenSCAD/lib-rotate_p.html)
- [sub_str](https://openhome.cc/eGossip/OpenSCAD/lib-sub_str.html)
- [split_str](https://openhome.cc/eGossip/OpenSCAD/lib-split_str.html)
- [parse_number](https://openhome.cc/eGossip/OpenSCAD/lib-parse_number.html)
- [cross_sections](https://openhome.cc/eGossip/OpenSCAD/lib-cross_sections.html)
- [paths2sections](https://openhome.cc/eGossip/OpenSCAD/lib-paths2sections.html)
- [path_scaling_sections](https://openhome.cc/eGossip/OpenSCAD/lib-path_scaling_sections.html)
- [bijection_offset](https://openhome.cc/eGossip/OpenSCAD/lib-bijection_offset.html)
- [in_polyline](https://openhome.cc/eGossip/OpenSCAD/lib-in_polyline.html)
- [in_shape](https://openhome.cc/eGossip/OpenSCAD/lib-in_shape.html)
- [midpt_smooth](https://openhome.cc/eGossip/OpenSCAD/lib-midpt_smooth.html)
- [trim_shape](https://openhome.cc/eGossip/OpenSCAD/lib-trim_shape.html)
- [triangulate](https://openhome.cc/eGossip/OpenSCAD/lib-triangulate.html)
- [rotate_p](https://openhome.cc/eGossip/OpenSCAD/lib2x-rotate_p.html)
- [cross_sections](https://openhome.cc/eGossip/OpenSCAD/lib2x-cross_sections.html)
- [paths2sections](https://openhome.cc/eGossip/OpenSCAD/lib2x-paths2sections.html)
- [path_scaling_sections](https://openhome.cc/eGossip/OpenSCAD/lib2x-path_scaling_sections.html)
- [bijection_offset](https://openhome.cc/eGossip/OpenSCAD/lib2x-bijection_offset.html)
- [in_polyline](https://openhome.cc/eGossip/OpenSCAD/lib2x-in_polyline.html)
- [in_shape](https://openhome.cc/eGossip/OpenSCAD/lib2x-in_shape.html)
- [midpt_smooth](https://openhome.cc/eGossip/OpenSCAD/lib2x-midpt_smooth.html)
- [trim_shape](https://openhome.cc/eGossip/OpenSCAD/lib2x-trim_shape.html)
- [triangulate](https://openhome.cc/eGossip/OpenSCAD/lib2x-triangulate.html)
- Path
- [arc_path](https://openhome.cc/eGossip/OpenSCAD/lib-arc_path.html)
- [circle_path](https://openhome.cc/eGossip/OpenSCAD/lib-circle_path.html)
- [bezier_curve](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_curve.html)
- [bezier_surface](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_surface.html)
- [bezier_smooth](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_smooth.html)
- [helix](https://openhome.cc/eGossip/OpenSCAD/lib-helix.html)
- [golden_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-golden_spiral.html)
- [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-archimedean_spiral.html)
- [sphere_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-sphere_spiral.html)
- [torus_knot](https://openhome.cc/eGossip/OpenSCAD/lib-torus_knot.html)
- [arc_path](https://openhome.cc/eGossip/OpenSCAD/lib2x-arc_path.html)
- [circle_path](https://openhome.cc/eGossip/OpenSCAD/lib2x-circle_path.html)
- [bspline_curve](https://openhome.cc/eGossip/OpenSCAD/lib2x-bspline_curve.html)
- [bezier_curve](https://openhome.cc/eGossip/OpenSCAD/lib2x-bezier_curve.html)
- [bezier_surface](https://openhome.cc/eGossip/OpenSCAD/lib2x-bezier_surface.html)
- [bezier_smooth](https://openhome.cc/eGossip/OpenSCAD/lib2x-bezier_smooth.html)
- [helix](https://openhome.cc/eGossip/OpenSCAD/lib2x-helix.html)
- [golden_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-golden_spiral.html)
- [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-archimedean_spiral.html)
- [sphere_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-sphere_spiral.html)
- [torus_knot](https://openhome.cc/eGossip/OpenSCAD/lib2x-torus_knot.html)
- Extrusion
- [box_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-box_extrude.html)
- [ellipse_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-ellipse_extrude.html)
- [stereographic_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-stereographic_extrude.html)
- [rounded_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-rounded_extrude.html)
- [box_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-box_extrude.html)
- [ellipse_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-ellipse_extrude.html)
- [stereographic_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-stereographic_extrude.html)
- [rounded_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-rounded_extrude.html)
- 2D Shape
- [shape_taiwan](https://openhome.cc/eGossip/OpenSCAD/lib-shape_taiwan.html)
- [shape_arc](https://openhome.cc/eGossip/OpenSCAD/lib-shape_arc.html)
- [shape_pie](https://openhome.cc/eGossip/OpenSCAD/lib-shape_pie.html)
- [shape_ellipse](https://openhome.cc/eGossip/OpenSCAD/lib-shape_ellipse.html)
- [shape_square](https://openhome.cc/eGossip/OpenSCAD/lib-shape_square.html)
- [shape_trapezium](https://openhome.cc/eGossip/OpenSCAD/lib-shape_trapezium.html)
- [shape_cyclicpolygon](https://openhome.cc/eGossip/OpenSCAD/lib-shape_cyclicpolygon.html)
- [shape_pentagram](https://openhome.cc/eGossip/OpenSCAD/lib-shape_pentagram.html)
- [shape_starburst](https://openhome.cc/eGossip/OpenSCAD/lib-shape_starburst.html)
- [shape_superformula](https://openhome.cc/eGossip/OpenSCAD/lib-shape_superformula.html)
- [shape_glued2circles](https://openhome.cc/eGossip/OpenSCAD/lib-shape_glued2circles.html)
- [shape_path_extend](https://openhome.cc/eGossip/OpenSCAD/lib-shape_path_extend.html)
- [shape_taiwan](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_taiwan.html)
- [shape_arc](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_arc.html)
- [shape_pie](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_pie.html)
- [shape_ellipse](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_ellipse.html)
- [shape_square](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_square.html)
- [shape_trapezium](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_trapezium.html)
- [shape_cyclicpolygon](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_cyclicpolygon.html)
- [shape_pentagram](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_pentagram.html)
- [shape_starburst](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_starburst.html)
- [shape_superformula](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_superformula.html)
- [shape_glued2circles](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_glued2circles.html)
- [shape_path_extend](https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_path_extend.html)
- 2D Shape Extrusion
- [bend_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-bend_extrude.html)
- [path_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-path_extrude.html)
- [ring_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-ring_extrude.html)
- [helix_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-helix_extrude.html)
- [golden_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-golden_spiral_extrude.html)
- [archimedean_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-archimedean_spiral_extrude.html)
- [sphere_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-sphere_spiral_extrude.html)
- [bend_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-bend_extrude.html)
- [path_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-path_extrude.html)
- [ring_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-ring_extrude.html)
- [helix_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-helix_extrude.html)
- [golden_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-golden_spiral_extrude.html)
- [archimedean_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-archimedean_spiral_extrude.html)
- [sphere_spiral_extrude](https://openhome.cc/eGossip/OpenSCAD/lib2x-sphere_spiral_extrude.html)
- Utilities
- [util/sub_str](https://openhome.cc/eGossip/OpenSCAD/lib2x-sub_str.html)
- [util/split_str](https://openhome.cc/eGossip/OpenSCAD/lib2x-split_str.html)
- [util/parse_number](https://openhome.cc/eGossip/OpenSCAD/lib2x-parse_number.html)
- [util/reverse](https://openhome.cc/eGossip/OpenSCAD/lib2x-reverse.html)
- [util/slice](https://openhome.cc/eGossip/OpenSCAD/lib2x-slice.html)
- [util/sort](https://openhome.cc/eGossip/OpenSCAD/lib2x-sort.html)
- [util/rand](https://openhome.cc/eGossip/OpenSCAD/lib2x-rand.html)
- [util/fibseq](https://openhome.cc/eGossip/OpenSCAD/lib2x-fibseq.html)
- Matrix
- [m_cumulate](https://openhome.cc/eGossip/OpenSCAD/lib-m_cumulate.html)
- [m_translation](https://openhome.cc/eGossip/OpenSCAD/lib-m_translation.html)
- [m_rotation](https://openhome.cc/eGossip/OpenSCAD/lib-m_rotation.html)
- [m_scaling](https://openhome.cc/eGossip/OpenSCAD/lib-m_scaling.html)
- [m_mirror](https://openhome.cc/eGossip/OpenSCAD/lib-m_mirror.html)
- [m_shearing](https://openhome.cc/eGossip/OpenSCAD/lib-m_shearing.html)
- [matrix/m_cumulate](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_cumulate.html)
- [matrix/m_translation](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_translation.html)
- [matrix/m_rotation](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_rotation.html)
- [matrix/m_scaling](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_scaling.html)
- [matrix/m_mirror](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_mirror.html)
- [matrix/m_shearing](https://openhome.cc/eGossip/OpenSCAD/lib2x-m_shearing.html)
- Other
- [turtle2d](https://openhome.cc/eGossip/OpenSCAD/lib-turtle2d.html)
- [turtle3d](https://openhome.cc/eGossip/OpenSCAD/lib-turtle3d.html)
- [log](https://openhome.cc/eGossip/OpenSCAD/lib-log.html)
- Turtle
- [turtle/turtle2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-turtle2d.html)
- [turtle/turtle3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-turtle3d.html)
- [turtle/t2d](https://openhome.cc/eGossip/OpenSCAD/lib2x-t2d.html)
- [turtle/t3d](https://openhome.cc/eGossip/OpenSCAD/lib2x-t3d.html)
- Pixel
- [pixel/px_line](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_line.html)
- [pixel/px_polyline](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_polyline.html)
- [pixel/px_circle](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_circle.html)
- [pixel/px_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_cylinder.html)
- [pixel/px_sphere](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_sphere.html)
- [pixel/px_polygon](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_polygon.html)
- [pixel/px_from](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_from.html)
- [pixel/px_ascii](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_ascii.html)
- [pixel/px_gray](https://openhome.cc/eGossip/OpenSCAD/lib2x-px_gray.html)
- Part
- [part/connector_peg](https://openhome.cc/eGossip/OpenSCAD/lib2x-connector_peg.html)
- [part/cone](https://openhome.cc/eGossip/OpenSCAD/lib2x-cone.html)
- [part/joint_T](https://openhome.cc/eGossip/OpenSCAD/lib2-joint_T.html)
## Bugs and Feedback
For bugs, questions and discussions please use the [Github Issues](https://github.com/JustinSDK/dotSCAD/issues).

View File

@@ -1,5 +1,65 @@
> Version numbers are based on [Semantic Versioning](https://semver.org/).
# v2.2
- Bugfixes
- `util/sort`: fix "search term not found" warning when `by` is `"idx"`.
- Better dependency management. Just `use` modules you want. Existing scripts are not required to do any change.
# v2.1
- Bugfixes
- `bend_extrude`: fix wrong rotation.
- `bijection_offset`: fix point order.
- New parameters.
- `box_extrude`: new `twist` parameter.
- `crystall_ball`: new `thickness` parameter.
- New modules and functions.
- [bspline_curve](https://openhome.cc/eGossip/OpenSCAD/lib2-bspline_curve.html)
- [util/rand](https://openhome.cc/eGossip/OpenSCAD/lib2-rand.html)
- [util/fibseq](https://openhome.cc/eGossip/OpenSCAD/lib2-fibseq.html)
- [pixel/px_from](https://openhome.cc/eGossip/OpenSCAD/lib2-px_from.html)
- [pixel/px_ascii](https://openhome.cc/eGossip/OpenSCAD/lib2-px_ascii.html)
- [pixel/px_gray](https://openhome.cc/eGossip/OpenSCAD/lib2-px_gray.html)
- [part/connector_peg](https://openhome.cc/eGossip/OpenSCAD/lib2-connector_peg.html)
- [part/cone](https://openhome.cc/eGossip/OpenSCAD/lib2-cone.html)
- [part/joint_T](https://openhome.cc/eGossip/OpenSCAD/lib2-joint_T.html)
- [turtle/t2d](https://openhome.cc/eGossip/OpenSCAD/lib2-t2d.html)
- [turtle/t3d](https://openhome.cc/eGossip/OpenSCAD/lib2-t3d.html)
# v2.0
- Use new features of OpenSCAD-2019.05 to refactor internal implementation.
- Delete the `log` module which is never used.
- Directory changed.
- `m_cumulate`, `m_mirror`, `m_rotation`, `m_scaling`, `m_shearing` and `m_translation` are moved into the `matrix` directory.
- `turtle2d` and `turtle3d` are moved into the `turtle` directory.
- `parse_number`, `split_str` and `sub_str` are moved into the `util` directory.
- New modules and functions.
- [pixel/px_line](https://openhome.cc/eGossip/OpenSCAD/lib2-px_line.html)
- [pixel/px_polyline](https://openhome.cc/eGossip/OpenSCAD/lib2-px_polyline.html)
- [pixel/px_circle](https://openhome.cc/eGossip/OpenSCAD/lib2-px_circle.html)
- [pixel/px_cylinder](https://openhome.cc/eGossip/OpenSCAD/lib2-px_cylinder.html)
- [pixel/px_sphere](https://openhome.cc/eGossip/OpenSCAD/lib2-px_sphere.html)
- [pixel/px_polygon](https://openhome.cc/eGossip/OpenSCAD/lib2-px_polygon.html)
- [util/reverse](https://openhome.cc/eGossip/OpenSCAD/lib2-reverse.html)
- [util/slice](https://openhome.cc/eGossip/OpenSCAD/lib2-slice.html)
- [util/sort](https://openhome.cc/eGossip/OpenSCAD/lib2-sort.html)
# v1.3.3
- Bugfixes
- `in_shape`: Wrong variable name.
# v1.3.2
- All-in-one source file.
- You can use `include <dotSCAD.scad>;` or `use <dotSCAD.scad>;` if you really don't want to care about dependencies.
- Bugfixes
- `along_with`: Wrong variable scope.
# v1.3.1
- Bugfixes
- `in_polyline`: Wrong parameter name.
- `in_shape`: Missing dependency.
- `along_with`: Avoid warning when using 2D points.
# v1.3
- New modules:
- [bend_extrude](https://openhome.cc/eGossip/OpenSCAD/lib-bend_extrude.html)

BIN
docs/images/caterpillar.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/images/lib2-cone-1.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
docs/images/lib2-cone-2.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
docs/images/lib2-cone-3.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
docs/images/lib2-t2d-1.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
docs/images/lib2-t2d-2.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
docs/images/lib2-t3d-1.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/images/lib2-t3d-2.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -1,46 +0,0 @@
# log
A log module which supports simple level configurations and color titles.
## Parameters
- `$log_level` : The accepted values are `"OFF"` (-1), `"INFO"` (20),
`"WARNING"` (30), `"ERROR"` (40) or positive integers. The default value is `"INFO"`.
- `level` : The accepted values are `"OFF"` (-1), `"INFO"` (20),
`"WARNING"` (30), `"ERROR"` (40) or positive integers. If the value is greater or equal to `$log_level`, the `echo` message will display in the console.
- `level_color` : Controls the color of level title. It accepts the same values as the CSS `color` property.
## Examples
include <log.scad>;
log()
echo(" INFO message");
log("WARNING")
echo(" WARNING message");
log("ERROR") {
echo(" ERROR message 1");
echo(" ERROR message 2");
}
![log](images/lib-log-1.JPG)
include <log.scad>;
$log_level = "WARNING";
log()
echo(" INFO message");
log("WARNING", "purple")
echo(" WARNING message");
log("ERROR", "rgb(255, 100, 100)") {
echo(" ERROR message 1");
echo(" ERROR message 2");
}
![log](images/lib-log-2.JPG)

View File

@@ -1,25 +0,0 @@
# m_multiply
Multiply two 4x4 transformation matrice.
**Since:** 1.1
## Parameters
- `ma`, `mb` : Two 4x4 transformation matrice.
## Examples
include <m_multiply.scad>;
include <m_scaling.scad>;
include <m_rotation.scad>;
ma = m_scaling([0.5, 1, 2]);
mb = m_rotation([0, 0, 90]);
cube(10);
multmatrix(m_multiply(ma, mb))
translate([15, 0, 0]) cube(10);
![m_multiply](images/lib-m_multiply-1.JPG)

View File

@@ -1,16 +0,0 @@
# parse_number
Parses the string argument as an number. It depends on the `split_str` and the `sub_str` functions so remember to include split_str.scad and sub_str.scad.
## Parameters
- `t` : A string containing the number representation to be parsed.
## Examples
include <sub_str.scad>;
include <split_str.scad>;
include <parse_number.scad>;
echo(parse_number("10") + 1); // ECHO: 11
echo(parse_number("-1.1") + 1); // ECHO: -0.1

View File

@@ -12,20 +12,20 @@ Puts children along the given path. If there's only one child, it will put the c
## Examples
include <along_with.scad>;
include <circle_path.scad>;
use <along_with.scad>;
use <circle_path.scad>;
$fn = 24;
points = circle_path(radius = 50);
along_with(points)
sphere(5, center = true);
sphere(5);
![along_with](images/lib-along_with-1.JPG)
include <along_with.scad>;
include <circle_path.scad>;
use <along_with.scad>;
use <circle_path.scad>;
$fn = 24;
@@ -44,10 +44,8 @@ Puts children along the given path. If there's only one child, it will put the c
![along_with](images/lib-along_with-2.JPG)
include <along_with.scad>;
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
use <along_with.scad>;
use <golden_spiral.scad>;
pts_angles = golden_spiral(
from = 5,
@@ -65,8 +63,8 @@ Puts children along the given path. If there's only one child, it will put the c
![along_with](images/lib-along_with-3.JPG)
include <bezier_curve.scad>;
include <along_with.scad>;
use <bezier_curve.scad>;
use <along_with.scad>;
module scales() {
module one_scale() {

View File

@@ -6,13 +6,14 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
- `radius` : The radius of the circle.
- `angle` : A single value or a 2 element vector which defines the central angle. The first element of the vector is the beginning angle in degrees, and the second element is the ending angle.
- `width` : The width of the arc.
- `width_mode` : The default value is `"LINE_CROSS"`. The arc line will move outward by `width / 2` and inward by `width / 2`. If it's `"LINE_OUTWARD"`, The arc line moves outward by `width`. The `"LINE_INWARD"` moves the arc line inward by `width`.
- `$fa`, `$fs`, `$fn` : Check [the circle module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#circle) for more details.
## Examples
include <arc.scad>;
use <arc.scad>;
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2);
@@ -20,7 +21,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
![arc](images/lib-arc-1.JPG)
include <arc.scad>;
use <arc.scad>;
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2, width_mode = "LINE_OUTWARD");
@@ -28,7 +29,7 @@ Creates an arc. You can pass a 2 element vector to define the central angle. Its
![arc](images/lib-arc-2.JPG)
include <arc.scad>;
use <arc.scad>;
$fn = 24;
arc(radius = 20, angle = [45, 290], width = 2, width_mode = "LINE_INWARD");

View File

@@ -11,8 +11,8 @@ Creates an arc path. You can pass a 2 element vector to define the central angle
## Examples
include <arc_path.scad>;
include <hull_polyline2d.scad>;
use <arc_path.scad>;
use <hull_polyline2d.scad>;
$fn = 24;
points = arc_path(radius = 20, angle = [45, 290]);
@@ -20,8 +20,8 @@ Creates an arc path. You can pass a 2 element vector to define the central angle
![arc_path](images/lib-arc_path-1.JPG)
include <arc_path.scad>;
include <hull_polyline2d.scad>;
use <arc_path.scad>;
use <hull_polyline2d.scad>;
$fn = 24;
points = arc_path(radius = 20, angle = 135);

View File

@@ -16,9 +16,8 @@ An `init_angle` less than 180 degrees is not recommended because the function us
## Examples
include <line2d.scad>;
include <polyline2d.scad>;
include <archimedean_spiral.scad>;
use <polyline2d.scad>;
use <archimedean_spiral.scad>;
points_angles = archimedean_spiral(
arm_distance = 10,
@@ -31,10 +30,9 @@ An `init_angle` less than 180 degrees is not recommended because the function us
polyline2d(points, width = 1);
![archimedean_spiral](images/lib-archimedean_spiral-1.JPG)
include <archimedean_spiral.scad>;
use <archimedean_spiral.scad>;
points_angles = archimedean_spiral(
arm_distance = 10,

View File

@@ -2,25 +2,19 @@
Extrudes a 2D shape along the path of an archimedean spiral.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
Dependencies: `rotate_p`, `archimedean_spiral`, `cross_sections`, `polysections`.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
- `shape_pts` : A list of points represent a shape. See the example below.
- `arm_distance`, `init_angle`, `point_distance`, `num_of_points` and `rt_dir` : See [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-archimedean_spiral.html) for details.
- `arm_distance`, `init_angle`, `point_distance`, `num_of_points` and `rt_dir` : See [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-archimedean_spiral.html) for details.
- `twist` : The number of degrees of through which the shape is extruded.
- `scale` : Scales the 2D shape by this value over the length of the extrusion. Scale can be a scalar or a vector.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Examples
include <archimedean_spiral.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <archimedean_spiral_extrude.scad>;
use <archimedean_spiral_extrude.scad>;
shape_pts = [
[5, 0],

View File

@@ -12,7 +12,7 @@ Bends a 3D object into an arc shape.
The containing cube of the target object should be laid down on the x-y plane. For example.
include <bend.scad>;
use <bend.scad>;
x = 9.25;
y = 9.55;
@@ -25,7 +25,7 @@ The containing cube of the target object should be laid down on the x-y plane. F
Once you have the size of the containing cube, you can use it as the `size` argument of the `bend` module.
include <bend.scad>;
use <bend.scad>;
x = 9.25;
y = 9.55;
@@ -40,7 +40,7 @@ Once you have the size of the containing cube, you can use it as the `size` argu
The arc shape is smoother if the `frags` value is larger.
include <bend.scad>;
use <bend.scad>;
x = 9.25;
y = 9.55;

View File

@@ -25,7 +25,7 @@ The containing square of the target shape should be laid down on the x-y plane.
Once you have the size of the containing square, you can use it as the `size` argument of the `bend_extrude` module.
include <bend_extrude.scad>;
use <bend_extrude.scad>;
x = 9.25;
y = 9.55;

View File

@@ -5,14 +5,14 @@ Given a set of control points, the `bezier_curve` function returns points of the
## Parameters
- `t_step` : The distance between two points of the Bézier path.
- `points` : A set of `[x, y, z]` control points.
- `points` : A list of `[x, y]` or `[x, y, z]` control points.
## Examples
If you have four control points and combine with the `hull_polyline3d` module:
include <hull_polyline3d.scad>;
include <bezier_curve.scad>;
use <hull_polyline3d.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
width = 2;

View File

@@ -2,8 +2,6 @@
Given a path, the `bezier_smooth` function uses bazier curves to smooth all corners. You can use it to create smooth lines or rounded shapes.
Dependencies: the `bezier_curve` function.
## Parameters
- `path_pts` : A list of points represent the path.
@@ -13,9 +11,8 @@ Dependencies: the `bezier_curve` function.
## Examples
include <hull_polyline3d.scad>;
include <bezier_curve.scad>;
include <bezier_smooth.scad>;
use <hull_polyline3d.scad>;
use <bezier_smooth.scad>;
width = 2;
round_d = 15;
@@ -39,8 +36,7 @@ Dependencies: the `bezier_curve` function.
![bezier_smooth](images/lib-bezier_smooth-1.JPG)
include <bezier_curve.scad>;
include <bezier_smooth.scad>;
use <bezier_smooth.scad>;
round_d = 10;

View File

@@ -2,8 +2,6 @@
Given a set of control points, the `bezier_surface` function returns points of the Bézier surface. Combined with the `function_grapher` module defined in my library, you can create a Bézier surface.
It depends on the `bezier_curve` function so remember to include bezier_curve.scad.
## Parameters
- `t_step` : The distance between two points of the Bézier path.
@@ -13,9 +11,8 @@ It depends on the `bezier_curve` function so remember to include bezier_curve.sc
If you have 16 control points and combine with the `function_grapher` module:
include <bezier_curve.scad>;
include <bezier_surface.scad>;
include <function_grapher.scad>;
use <bezier_surface.scad>;
use <function_grapher.scad>;
t_step = 0.05;
thickness = 0.5;

View File

@@ -12,7 +12,7 @@ Move 2D outlines outward or inward by a given amount. Each point of the offsette
## Examples
include <bijection_offset.scad>;
use <bijection_offset.scad>;
shape = [
[15, 0],
@@ -32,11 +32,9 @@ Move 2D outlines outward or inward by a given amount. Each point of the offsette
![bijection_offset](images/lib-bijection_offset-1.JPG)
include <bijection_offset.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <bijection_offset.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
shape = [
[5, 0],

View File

@@ -8,17 +8,18 @@ Creates a box (container) from a 2D object.
- `shell_thickness` : The thickness between the exterior and interior.
- `offset_mode` : `"delta"` (default) or `"r"`. See [offset](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset) for details.
- `chamfer` : Default `false`. See [offset](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset) for details.
- `twist`, `slices`, `scale`: The same as `linear_extrude`. **Since:** 2.1.
## Examples
include <box_extrude.scad>;
use <box_extrude.scad>;
box_extrude(height = 30, shell_thickness = 2)
circle(r = 30);
![box_extrude](images/lib-box_extrude-1.JPG)
include <box_extrude.scad>;
use <box_extrude.scad>;
box_extrude(height = 30, shell_thickness = 2)
text("XD", size = 40, font = "Cooper Black");

View File

@@ -0,0 +1,86 @@
# bspline_curve
[B-spline](https://en.wikipedia.org/wiki/B-spline) interpolation using [de Boor's algorithm](https://en.wikipedia.org/wiki/De_Boor%27s_algorithm). This function returns points of the B-spline path. Combined with the `polyline`, `polyline3d` or `hull_polyline3d` module, you can create a B-spline curve.
**Since:** 2.1
## Parameters
- `t_step` : The increment amount along the curve in the [0, 1] range.
- `degree` : The degree of B-spline. Must be less than or equal to `len(points) - 1`.
- `points` : A list of `[x, y]` or `[x, y, z]` control points.
- `knots` : The knot vector. It's a non-decreasing sequence with length `len(points) + degree + 1`. If not provided, a uniform knot vector is generated automatically.
- `weights` : The weights of control points. If not provided, the weight of each point is 1.
## Examples
use <bspline_curve.scad>;
points = [
[-10, 0],
[-5, 5],
[ 5, -5],
[ 10, 0]
];
color("red") for(p = points) {
translate(p)
sphere(0.5);
}
// knots: [0, 1, 2, 3, 4, 5, 6]
// weights: [1, 1, 1, 1]
for(p = bspline_curve(0.01, 2, points)) {
translate(p)
sphere(0.1);
}
![bspline_curve](images/lib2-bspline_curve-1.JPG)
use <bspline_curve.scad>;
points = [
[-10, 0],
[-5, 5],
[ 5, -5],
[ 10, 0]
];
// a non-uniform B-spline curve
knots = [0, 1/8, 1/4, 1/2, 3/4, 4/5, 1];
color("red") for(p = points) {
translate(p)
sphere(0.5);
}
for(p = bspline_curve(0.01, 2, points, knots)) {
translate(p)
sphere(0.1);
}
![bspline_curve](images/lib2-bspline_curve-2.JPG)
use <bspline_curve.scad>;
points = [
[-10, 0],
[-5, 5],
[ 5, -5],
[ 10, 0]
];
// For a clamped B-spline curve, the first `degree + 1` and the last `degree + 1` knots must be identical.
knots = [0, 0, 0, 1, 2, 2, 2];
color("red") for(p = points) {
translate(p)
sphere(0.5);
}
for(p = bspline_curve(0.01, 2, points, knots)) {
translate(p)
sphere(0.1);
}
![bspline_curve](images/lib2-bspline_curve-3.JPG)

View File

@@ -10,7 +10,7 @@ Sometimes you need all points on the path of a circle. Here's the function. Its
## Examples
include <circle_path.scad>;
use <circle_path.scad>;
$fn = 24;

67
docs/lib2x-cone.md Normal file
View File

@@ -0,0 +1,67 @@
# cone
Create a cone for rotatable models.
![cone](images/lib2-cone-1.JPG)
**Since:** 2.1
## Parameters
- `radius` : The radius of the cone.
- `length` : The length of the cone.
- `spacing` : The spacing between the cone and void component. Default to `0.5`.
- `angle` : The angle between the bottom and hypotenuse. Default to `50` degree.
- `void` : The void component for differencing. It's used to create a cavity for a cone. Default to `false`.
- `ends` : Default to `false`. To create a double-ended cone, set it to `true`.
## Examples
use <part/cone.scad>;
radius = 2.5;
length = 2;
spacing = 0.5;
$fn = 48;
cone(
radius = radius,
spacing = spacing,
length = 2
);
%cone(
radius = radius,
spacing = spacing,
length = 2,
void = true
);
![cone](images/lib2-cone-2.JPG)
use <part/cone.scad>;
radius = 2.5;
length = 2;
spacing = 0.5;
$fn = 48;
cone(
radius = radius,
spacing = spacing,
length = 2,
ends = true
);
%cone(
radius = radius,
spacing = spacing,
length = 2,
void = true,
ends = true
);
![cone](images/lib2-cone-3.JPG)

View File

@@ -0,0 +1,60 @@
# connector_peg
Create a connector peg.
![connector_peg](images/lib2-connector_peg-3.JPG)
**Since:** 2.1
## Parameters
- `radius` : The shaft radius of the peg.
- `height` : The height of the pag. Default to `2.5 * radius`.
- `spacing` : The spacing between the peg and void component. Default to `0.5`.
- `void` : The void component for differencing. It's used to create a cavity for a peg. Default to `false`.
- `ends` : Default to `false`. To create a double-ended peg, set it to `true`.
## Examples
use <part/connector_peg.scad>;
radius = 2.5;
spacing = 0.5;
$fn = 48;
connector_peg(
radius = radius,
spacing = spacing
);
%connector_peg(
radius = radius,
spacing = spacing,
void = true
);
![connector_peg](images/lib2-connector_peg-1.JPG)
use <part/connector_peg.scad>;
radius = 2.5;
spacing = 0.5;
$fn = 48;
connector_peg(
radius = radius,
spacing = spacing,
ends = true
);
%connector_peg(
radius = radius,
spacing = spacing,
ends = true,
void = true
);
![connector_peg](images/lib2-connector_peg-2.JPG)

View File

@@ -2,8 +2,6 @@
Given a 2D shape, points and angles along the path, this function will return all cross-sections. Combined with the `polysections` module, you can create a specific path extrusion.
It depends on the `rotate_p` function. Remember to include "rotate_p.scad".
## Parameters
- `shape_pts`: A list of points represent a shape. See the example below.
@@ -14,10 +12,9 @@ It depends on the `rotate_p` function. Remember to include "rotate_p.scad".
## Examples
include <rotate_p.scad>;
include <polysections.scad>;
include <cross_sections.scad>;
include <archimedean_spiral.scad>;
use <polysections.scad>;
use <cross_sections.scad>;
use <archimedean_spiral.scad>;
shape_pts = [
[-2, -10],

View File

@@ -4,46 +4,42 @@ Uses spherical coordinate system to create a crystal ball.
![Spherical coordinates (r, θ, φ) often used in mathematics](https://upload.wikimedia.org/wikipedia/commons/d/dc/3D_Spherical_2.svg)
Dependencies: `rotate_p`, `cross_sections`, `polysections`, `ring_extrude`, `shape_pie`.
## Parameters
- `radius` : The radial distance r.
- `theta` : The azimuthal angle. It defaults to 360. It also accepts a 2 element vector. The first element of the vector is the beginning angle in degrees, and the second element is the ending angle.
- `phi` : The polar angle. It defaults to 180. It also accepts a 2 element vector. The first element of the vector is the beginning angle in degrees, and the second element is the ending angle.
- `thickness` : The thickness of the ball. **Since:** 2.1.
- `$fa`, `$fs`, `$fn` : Check [the circle module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_the_2D_Subsystem#circle) or [the sphere module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#sphere) for more details. The final fragments will be a multiple of 4 to fit edges.
## Examples
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <ring_extrude.scad>;
include <shape_pie.scad>;
include <crystal_ball.scad>;
use <crystal_ball.scad>;
crystal_ball(radius = 6);
translate([12, 0, 0])
crystal_ball(
radius = 6,
theta = 270,
$fn = 12
);
crystal_ball(
radius = 6,
theta = 270,
thickness = 1,
$fn = 12
);
translate([24, 0, 0])
crystal_ball(
radius = 6,
theta = 270,
phi = 90,
$fn = 12
);
crystal_ball(
radius = 6,
theta = 270,
phi = 90,
$fn = 12
);
translate([36, 0, 0])
crystal_ball(
radius = 6,
theta = [-30, 270],
phi = [30, 60]
);
crystal_ball(
radius = 6,
theta = [-30, 270],
phi = [30, 60],
thickness = 2
);
![crystal_ball](images/lib-crystal_ball-1.JPG)

View File

@@ -10,7 +10,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
## Examples
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 5;
@@ -19,7 +19,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib-ellipse_extrude-1.JPG)
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 5;
@@ -28,7 +28,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib-ellipse_extrude-2.JPG)
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 5;
@@ -39,7 +39,7 @@ Extrudes a 2D object along the path of an ellipse from 0 to 180 degrees. The sem
![ellipse_extrude](images/lib-ellipse_extrude-3.JPG)
include <ellipse_extrude.scad>;
use <ellipse_extrude.scad>;
semi_minor_axis = 10;

16
docs/lib2x-fibseq.md Normal file
View File

@@ -0,0 +1,16 @@
# fibseq
Generate a Fibonacci sequence.
**Since:**: 2.1
## Parameters
- `from` : The nth Fibonacci number you wanna start from.
- `to` : The nth Fibonacci number you wanna go to.
## Examples
use <util/fibseq.scad>;
echo(fibseq(1, 10)); // ECHO: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

View File

@@ -2,8 +2,6 @@
Given a set of points `[x, y, f(x, y)]` where `f(x, y)` is a mathematics function, the `function_grapher` module can create the graph of `f(x, y)`.
It depends on the `line3d`, `polyline3d`, `hull_polyline3d` modules so you have to include "line3d.scad", "polyline3d.scad" and "hull_polyline3d.scad".
## Parameters
- `points` : A set of points `[x, y, f(x, y)]`. See examples below.
@@ -14,10 +12,7 @@ It depends on the `line3d`, `polyline3d`, `hull_polyline3d` modules so you have
## Examples
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
points = [
[[0, 0, 1], [1, 0, 2], [2, 0, 2], [3, 0, 3]],
@@ -32,10 +27,7 @@ It depends on the `line3d`, `polyline3d`, `hull_polyline3d` modules so you have
![function_grapher](images/lib-function_grapher-1.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
function f(x, y) =
30 * (
@@ -60,10 +52,7 @@ It depends on the `line3d`, `polyline3d`, `hull_polyline3d` modules so you have
![function_grapher](images/lib-function_grapher-2.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
function f(x, y) =
30 * (
@@ -89,10 +78,7 @@ It depends on the `line3d`, `polyline3d`, `hull_polyline3d` modules so you have
![function_grapher](images/lib-function_grapher-3.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
include <hull_polyline3d.scad>;
include <function_grapher.scad>;
use <function_grapher.scad>;
function f(x, y) =
30 * (

View File

@@ -4,8 +4,6 @@ Gets all points and angles on the path of a golden spiral based on Fibonacci num
It returns a vector of `[[x, y], angle]`.
Because of depending on `circle_path` and `rotate_p`, remember to include "circle_path.scad" and "rotate_p.scad".
## Parameters
- `from` : The nth Fibonacci number you wanna start from.
@@ -15,9 +13,7 @@ Because of depending on `circle_path` and `rotate_p`, remember to include "circl
## Examples
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
use <golden_spiral.scad>;
pts_angles = golden_spiral(
from = 3,
@@ -32,9 +28,7 @@ Because of depending on `circle_path` and `rotate_p`, remember to include "circl
![golden_spiral](images/lib-golden_spiral-1.JPG)
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
use <golden_spiral.scad>;
pts_angles = golden_spiral(
from = 5,

View File

@@ -2,9 +2,7 @@
Extrudes a 2D shape along the path of a golden spiral.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
Dependencies: `circle_path`, `rotate_p`, `golden_spiral`, `cross_sections`, `polysections`.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
@@ -15,16 +13,11 @@ Dependencies: `circle_path`, `rotate_p`, `golden_spiral`, `cross_sections`, `pol
- `rt_dir` : `"CT_CLK"` for counterclockwise. `"CLK"` for clockwise. The default value is `"CT_CLK"`.
- `twist` : The number of degrees of through which the shape is extruded.
- `scale` : Scales the 2D shape by this value over the length of the extrusion. Scale can be a scalar or a vector.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Examples
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <golden_spiral_extrude.scad>;
shape_pts = [
[2, -10],
@@ -45,12 +38,8 @@ Dependencies: `circle_path`, `rotate_p`, `golden_spiral`, `cross_sections`, `pol
![golden_spiral_extrude](images/lib-golden_spiral_extrude-1.JPG)
include <circle_path.scad>;
include <rotate_p.scad>;
include <golden_spiral.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <golden_spiral_extrude.scad>;
use <circle_path.scad>;
use <golden_spiral_extrude.scad>;
$fn = 12;

View File

@@ -13,8 +13,8 @@ Gets all points on the path of a spiral around a cylinder. Its `$fa`, `$fs` and
## Examples
include <helix.scad>;
include <hull_polyline3d.scad>;
use <helix.scad>;
use <hull_polyline3d.scad>;
$fn = 12;
@@ -34,8 +34,8 @@ Gets all points on the path of a spiral around a cylinder. Its `$fa`, `$fs` and
![helix](images/lib-helix-1.JPG)
include <helix.scad>;
include <hull_polyline3d.scad>;
use <helix.scad>;
use <hull_polyline3d.scad>;
$fn = 12;

View File

@@ -2,12 +2,10 @@
Extrudes a 2D shape along a helix path.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
Its `$fa`, `$fs` and `$fn` parameters are consistent with the `cylinder` module.
Dependencies: `helix`, `rotate_p`, `cross_sections`, `polysections`.
## Parameters
- `shape_pts` : A list of points represent a shape. See the example below.
@@ -18,16 +16,12 @@ Dependencies: `helix`, `rotate_p`, `cross_sections`, `polysections`.
- `rt_dir` : `"CT_CLK"` for counterclockwise. `"CLK"` for clockwise. The default value is `"CT_CLK"`.
- `twist` : The number of degrees of through which the shape is extruded.
- `scale` : Scales the 2D shape by this value over the length of the extrusion. Scale can be a scalar or a vector.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
- `triangles` : `"SOLID"` (default), `"HOLLOW"` or user-defined indexes. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
- `$fa`, `$fs`, `$fn` : Check [the cylinder module](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#cylinder) for more details.
## Examples
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <helix_extrude.scad>;
shape_pts = [
[5, -2],
@@ -49,11 +43,7 @@ Dependencies: `helix`, `rotate_p`, `cross_sections`, `polysections`.
![helix_extrude](images/lib-helix_extrude-1.JPG)
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <helix_extrude.scad>;
r1 = 40;
r2 = 20;

View File

@@ -10,7 +10,7 @@ A hexagonal structure is useful in many situations. This module creates hexagons
## Examples
include <hexagons.scad>;
use <hexagons.scad>;
radius = 20;
spacing = 2;
@@ -20,7 +20,7 @@ A hexagonal structure is useful in many situations. This module creates hexagons
![hexagons](images/lib-hexagons-1.JPG)
include <hexagons.scad>;
use <hexagons.scad>;
radius = 20;
spacing = 2;

View File

@@ -8,7 +8,7 @@ Hollows out a 2D object.
## Examples
include <hollow_out.scad>;
use <hollow_out.scad>;
hollow_out(shell_thickness = 1) circle(r = 3, $fn = 48);
hollow_out(shell_thickness = 1) square([10, 5]);

View File

@@ -10,7 +10,7 @@ Creates a 2D polyline from a list of `[x, y]` coordinates. As the name says, it
## Examples
include <hull_polyline2d.scad>;
use <hull_polyline2d.scad>;
$fn = 4;

View File

@@ -10,7 +10,7 @@ Creates a 3D polyline from a list of `[x, y, z]` coordinates. As the name says,
## Examples
include <hull_polyline3d.scad>;
use <hull_polyline3d.scad>;
hull_polyline3d(
points = [
@@ -25,7 +25,7 @@ Creates a 3D polyline from a list of `[x, y, z]` coordinates. As the name says,
![polyline3d](images/lib-hull_polyline3d-1.JPG)
include <hull_polyline3d.scad>;
use <hull_polyline3d.scad>;
r = 50;
points = [

View File

@@ -12,7 +12,7 @@ Checks wether a point is on a line.
## Examples
include <in_polyline.scad>;
use <in_polyline.scad>;
pts = [
[0, 0],
@@ -27,7 +27,7 @@ Checks wether a point is on a line.
----
include <in_polyline.scad>;
use <in_polyline.scad>;
pts = [
[10, 0, 10],

View File

@@ -13,8 +13,8 @@ Checks wether a point is inside a shape.
## Examples
include <shape_taiwan.scad>;
include <in_shape.scad>;
use <shape_taiwan.scad>;
use <in_shape.scad>;
points = shape_taiwan(30);

32
docs/lib2x-joint_T.md Normal file
View File

@@ -0,0 +1,32 @@
# joint_T
Create a joint_T for rotatable models.
![joint_T](images/lib2-joint_T-1.JPG)
**Since:** 2.1
## Parameters
- `shaft_r` : The shaft radius of the joint_T.
- `shaft_h` : The height of the shaft.
- `t_leng` : The length of the T part.
- `thickness` : The thicnkess of the ring.
- `spacing` : The spacing between the shaft and the ring. Default to `0.5`.
- `center` : `false` (default) for z ranges from 0 to `shaft_h`. `true` for z ranges from `-shaft_h / 2` to `shaft_h / 2`.
## Examples
use <part/joint_T.scad>;
$fn = 48;
joint_T(
shaft_r = 2,
shaft_h = 15,
t_leng = 15,
thickness = 2,
spacing = 0.5
);
![joint_T](images/lib2-joint_T-2.JPG)

View File

@@ -13,7 +13,7 @@ Creates a line from two points. When the end points are `CAP_ROUND`, you can use
## Examples
include <line2d.scad>;
use <line2d.scad>;
$fn = 24;

View File

@@ -13,7 +13,7 @@ Creates a 3D line from two points.
## Examples
include <line3d.scad>;
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],
@@ -24,7 +24,7 @@ Creates a 3D line from two points.
![line3d](images/lib-line3d-1.JPG)
include <line3d.scad>;
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],
@@ -37,7 +37,7 @@ Creates a 3D line from two points.
![line3d](images/lib-line3d-2.JPG)
include <line3d.scad>;
use <line3d.scad>;
line3d(
p1 = [0, 0, 0],

View File

@@ -6,14 +6,16 @@ The power of using transformation matrice is that you can cumulate all transform
## Parameters
The dir changed since 2.0.
- `matrice` : A list of 4x4 transformation matrice.
## Examples
include <m_rotation.scad>;
include <m_scaling.scad>;
include <m_translation.scad>;
include <m_cumulate.scad>
use <matrix/m_rotation.scad>;
use <matrix/m_scaling.scad>;
use <matrix/m_translation.scad>;
use <matrix/m_cumulate.scad>
m = m_cumulate([
m_translation([10, 20, 10]), m_scaling(2), m_rotation(60)]

25
docs/lib2x-m_mirror.md Normal file
View File

@@ -0,0 +1,25 @@
# m_mirror
The dir changed since 2.0.
Generate a 4x4 transformation matrix which can pass into `multmatrix` to mirror the child element on a plane through the origin.
**Since:** 1.1
## Parameters
- `v` : The normal vector of a plane intersecting the origin through which to mirror the object.
## Examples
use <matrix/m_mirror.scad>;
rotate([0, 0, 10])
cube([3, 2, 1]);
multmatrix(m_mirror([1, 1, 0]))
rotate([0, 0, 10])
cube([3, 2, 1]);
![m_mirror](images/lib-m_mirror-1.JPG)

View File

@@ -1,5 +1,7 @@
# m_rotation
The dir changed since 2.0.
Generate a 4x4 transformation matrix which can pass into `multmatrix` to rotate the child element about the axis of the coordinate system or around an arbitrary axis.
**Since:** 1.1
@@ -11,7 +13,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to rotate
## Examples
include <m_rotation.scad>;
use <matrix/m_rotation.scad>;
point = [20, 0, 0];
a = [0, -45, 45];
@@ -25,7 +27,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to rotate
![m_rotation](images/lib-m_rotation-1.JPG)
include <m_rotation.scad>;
use <matrix/m_rotation.scad>;
v = [10, 10, 10];

View File

@@ -1,5 +1,7 @@
# m_scaling
The dir changed since 2.0.
Generate a 4x4 transformation matrix which can pass into `multmatrix` to scale its child elements using the specified vector.
**Since:** 1.1
@@ -10,7 +12,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to scale i
## Examples
include <m_scaling.scad>;
use <matrix/m_scaling.scad>;
cube(10);
translate([15, 0, 0])

View File

@@ -1,5 +1,7 @@
# m_shearing
The dir changed since 2.0.
Generate a 4x4 transformation matrix which can pass into `multmatrix` to shear all child elements along the X-axis, Y-axis, or Z-axis in 3D.
**Since:** 1.1
@@ -12,7 +14,7 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to shear a
## Examples
include <m_shearing.scad>;
use <matrix/m_shearing.scad>;
color("red") {
multmatrix(m_shearing(sx = [1, 0]))

View File

@@ -1,5 +1,7 @@
# m_translation
The dir changed since 2.0.
Generate a 4x4 transformation matrix which can pass into `multmatrix` to translates (moves) its child elements along the specified vector.
**Since:** 1.1
@@ -10,11 +12,11 @@ Generate a 4x4 transformation matrix which can pass into `multmatrix` to transla
## Examples
include <m_translation.scad>;
use <matrix/m_translation.scad>;
cube(2, center = true);
multmatrix(m_translation([5, 0, 0]))
sphere(1,center = true);
sphere(1);
![m_translation](images/lib-m_translation-1.JPG)

View File

@@ -12,10 +12,9 @@ Given a 2D path, this function constructs a mid-point smoothed version by joinin
## Examples
include <hull_polyline2d.scad>;
include <shape_taiwan.scad>;
include <bijection_offset.scad>;
include <midpt_smooth.scad>;
use <hull_polyline2d.scad>;
use <shape_taiwan.scad>;
use <midpt_smooth.scad>;
taiwan = shape_taiwan(50);
smoothed = midpt_smooth(taiwan, 20, true);

View File

@@ -9,7 +9,7 @@ Creates multi-line text from a list of strings. Parameters are the same as the b
## Examples
include <multi_line_text.scad>;
use <multi_line_text.scad>;
multi_line_text(
["Welcome", "to", "Taiwan"],

View File

@@ -0,0 +1,16 @@
# parse_number
The dir changed since 2.0.
Parses the string argument as an number.
## Parameters
- `t` : A string containing the number representation to be parsed.
## Examples
use <util/parse_number.scad>;
echo(parse_number("10") + 1); // ECHO: 11
echo(parse_number("-1.1") + 1); // ECHO: -0.1

View File

@@ -2,9 +2,7 @@
It extrudes a 2D shape along a path. This module is suitable for a path created by a continuous function.
It depends on the `rotate_p` function and the `polysections` module. Remember to include "rotate_p.scad" and "polysections.scad".
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib-polysections.html) for details.
When using this module, you should use points to represent the 2D shape. If your 2D shape is not solid, indexes of triangles are required. See [polysections](https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html) for details.
## Parameters
@@ -18,10 +16,8 @@ When using this module, you should use points to represent the 2D shape. If your
## Examples
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
width = 2;
@@ -47,10 +43,8 @@ When using this module, you should use points to represent the 2D shape. If your
![path_extrude](images/lib-path_extrude-1.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
@@ -81,10 +75,8 @@ When using this module, you should use points to represent the 2D shape. If your
![path_extrude](images/lib-path_extrude-2.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <bezier_curve.scad>;
use <path_extrude.scad>;
use <bezier_curve.scad>;
t_step = 0.05;
@@ -130,11 +122,7 @@ When using this module, you should use points to represent the 2D shape. If your
If you want to extrude a shape along a path precisely, providing enough information about how to rotate sections is necessary. If you want to extrude a shape along a helix, `helix_extrude` is more suitable because it knows how to dig out necessary data for rotating sections precisely.
include <helix.scad>;
include <rotate_p.scad>;
include <cross_sections.scad>;
include <polysections.scad>;
include <helix_extrude.scad>;
use <helix_extrude.scad>;
shape_pts = [
[0,0],
@@ -153,11 +141,8 @@ If you want to extrude a shape along a path precisely, providing enough informat
If you have only points, what `path_extrude` can do is to **guess** data about rotations. The different algorithm will dig out different data. For example:
include <helix.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <helix.scad>;
include <path_extrude.scad>;
use <helix.scad>;
use <path_extrude.scad>;
shape_pts = [
[0,0],
@@ -180,10 +165,8 @@ You might think this is wrong. Actually, it's not. It's the correct/default beha
The `method` parameter is default to `"AXIS_ANGLE"`, a way to guess information from points. It accepts `"EULER_ANGLE"`, too.
include <rotate_p.scad>;
include <polysections.scad>;
include <helix.scad>;
include <path_extrude.scad>;
use <helix.scad>;
use <path_extrude.scad>;
shape_pts = [
[0,0],
@@ -206,9 +189,7 @@ You might think this is wrong. Actually, it's not. It's the correct/default beha
`"EULER_ANGLE"` will generate an abrupt when the path is exactly vertical. [The problem happened in (older) Blender, too.](https://download.blender.org/documentation/htmlI/ch09s04.html)
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
use <path_extrude.scad>;
shape_pts = [[5, -5], [5, 5], [-5, 5], [-5, -5]];
@@ -232,9 +213,7 @@ You might think this is wrong. Actually, it's not. It's the correct/default beha
The problem doesn't happen when `method` is `"AXIS_ANGLE"`.
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
use <path_extrude.scad>;
shape_pts = [[5, -5], [5, 5], [-5, 5], [-5, -5]];
@@ -262,11 +241,9 @@ So, which is the correct method? Both methods are correct when you provide only
`"EULER_ANGLE"`, however, generates the same section at the same point. This means that you don't have to adjust sections if you want to extrude along a closed path. It's an advantage when extruding. For example:
include <shape_pentagram.scad>;
include <rotate_p.scad>;
include <polysections.scad>;
include <path_extrude.scad>;
include <torus_knot.scad>;
use <shape_pentagram.scad>;
use <path_extrude.scad>;
use <torus_knot.scad>;
p = 2;
q = 3;

View File

@@ -15,11 +15,10 @@ You can use any point as the first point of the edge path. Just remember that yo
## Examples
include <hull_polyline3d.scad>;
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <m_scaling.scad>;
include <polysections.scad>;
use <hull_polyline3d.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
taiwan = shape_taiwan(100);
fst_pt = [13, 0, 0];
@@ -39,12 +38,11 @@ You can use any point as the first point of the edge path. Just remember that yo
![path_scaling_sections](images/lib-path_scaling_sections-1.JPG)
include <hull_polyline3d.scad>;
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <m_scaling.scad>;
include <polysections.scad>;
include <bezier_curve.scad>;
use <hull_polyline3d.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
use <bezier_curve.scad>;
taiwan = shape_taiwan(100);
@@ -65,12 +63,11 @@ You can use any point as the first point of the edge path. Just remember that yo
![path_scaling_sections](images/lib-path_scaling_sections-2.JPG)
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <m_scaling.scad>;
include <polysections.scad>;
include <bezier_curve.scad>;
include <rotate_p.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
use <bezier_curve.scad>;
use <rotate_p.scad>;
taiwan = shape_taiwan(100);
fst_pt = [13, 0, 0];
@@ -102,12 +99,11 @@ You can use any point as the first point of the edge path. Just remember that yo
![path_scaling_sections](images/lib-path_scaling_sections-3.JPG)
include <hull_polyline3d.scad>;
include <shape_taiwan.scad>;
include <path_scaling_sections.scad>;
include <m_scaling.scad>;
include <polysections.scad>;
include <rotate_p.scad>;
use <hull_polyline3d.scad>;
use <shape_taiwan.scad>;
use <path_scaling_sections.scad>;
use <polysections.scad>;
use <rotate_p.scad>;
taiwan = shape_taiwan(100);

View File

@@ -10,9 +10,9 @@ You paths should be indexed count-clockwisely.
## Examples
include <paths2sections.scad>;
include <hull_polyline3d.scad>;
include <polysections.scad>;
use <paths2sections.scad>;
use <hull_polyline3d.scad>;
use <polysections.scad>;
paths = [
[[5, 0, 5], [15, 10, 10], [25, 20, 5]],
@@ -31,10 +31,10 @@ You paths should be indexed count-clockwisely.
![paths2sections](images/lib-paths2sections-1.JPG)
include <bezier_curve.scad>;
include <paths2sections.scad>;
include <hull_polyline3d.scad>;
include <polysections.scad>;
use <bezier_curve.scad>;
use <paths2sections.scad>;
use <hull_polyline3d.scad>;
use <polysections.scad>;
t_step = 0.05;

View File

@@ -10,7 +10,7 @@ Creates a pie (circular sector). You can pass a 2 element vector to define the c
## Examples
include <pie.scad>;
use <pie.scad>;
pie(radius = 20, angle = [210, 310]);
translate([-15, 0, 0]) pie(radius = 20, angle = [45, 135]);

View File

@@ -1,6 +1,6 @@
# polyline2d
Creates a polyline from a list of `x`, `y` coordinates. When the end points are `CAP_ROUND`, you can use `$fa`, `$fs` or `$fn` to controll the circle module used internally. It depends on the `line2d` module so you have to `include` line2d.scad.
Creates a polyline from a list of `x`, `y` coordinates. When the end points are `CAP_ROUND`, you can use `$fa`, `$fs` or `$fn` to controll the circle module used internally.
## Parameters
@@ -12,16 +12,14 @@ Creates a polyline from a list of `x`, `y` coordinates. When the end points are
## Examples
include <line2d.scad>;
include <polyline2d.scad>;
use <polyline2d.scad>;
$fn = 24;
polyline2d(points = [[1, 2], [-5, -4], [-5, 3], [5, 5]], width = 1);
![polyline2d](images/lib-polyline2d-1.JPG)
include <line2d.scad>;
include <polyline2d.scad>;
use <polyline2d.scad>;
$fn = 24;
polyline2d(points = [[1, 2], [-5, -4], [-5, 3], [5, 5]], width = 1,
@@ -29,8 +27,7 @@ Creates a polyline from a list of `x`, `y` coordinates. When the end points are
![polyline2d](images/lib-polyline2d-2.JPG)
include <line2d.scad>;
include <polyline2d.scad>;
use <polyline2d.scad>;
$fn = 24;
polyline2d(points = [[1, 2], [-5, -4], [-5, 3], [5, 5]], width = 1,

View File

@@ -1,6 +1,6 @@
# polyline3d
Creates a polyline from a list of `[x, y, z]` coordinates. It depends on the `line3d` module so you have to `include` line3d.scad.
Creates a polyline from a list of `[x, y, z]` coordinates.
## Parameters
@@ -12,8 +12,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates. It depends on the `li
## Examples
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
polyline3d(
points = [
@@ -28,8 +27,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates. It depends on the `li
![polyline3d](images/lib-polyline3d-1.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
polyline3d(
points = [
@@ -45,8 +43,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates. It depends on the `li
![polyline3d](images/lib-polyline3d-2.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
polyline3d(
points = [
@@ -63,8 +60,7 @@ Creates a polyline from a list of `[x, y, z]` coordinates. It depends on the `li
![polyline3d](images/lib-polyline3d-3.JPG)
include <line3d.scad>;
include <polyline3d.scad>;
use <polyline3d.scad>;
r = 20;
h = 5;

View File

@@ -44,8 +44,8 @@ When defining triangles, you can use clockwise or counter-clockwise indexes.
## Examples
include <rotate_p.scad>;
include <polysections.scad>;
use <rotate_p.scad>;
use <polysections.scad>;
section1 = [
[20, 0, 0],
@@ -68,8 +68,8 @@ When defining triangles, you can use clockwise or counter-clockwise indexes.
![polysections](images/lib-polysections-7.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
use <rotate_p.scad>;
use <polysections.scad>;
section1 = [
// outer
@@ -98,8 +98,8 @@ When defining triangles, you can use clockwise or counter-clockwise indexes.
![polysections](images/lib-polysections-8.JPG)
include <rotate_p.scad>;
include <polysections.scad>;
use <rotate_p.scad>;
use <polysections.scad>;
section1 = [
// outer

View File

@@ -18,9 +18,9 @@ You can view it as a better polyline2d module. If you have only the points of a
## Examples
include <rotate_p.scad>;
include <polytransversals.scad>;
include <hull_polyline2d.scad>;
use <rotate_p.scad>;
use <polytransversals.scad>;
use <hull_polyline2d.scad>;
r = 35;
tran_pts = [[-5, 0], [0, 5], [5, 0]];

40
docs/lib2x-px_ascii.md Normal file
View File

@@ -0,0 +1,40 @@
# px_ascii
Generate 8x8 pixel points of printable ASCII characters (codes 32dec to 126dec). You can use these points to build pixel-style models.
**Since:** 2.1
## Parameters
- `char` : A printable ASCII character.
- `center`: . If `true`, object is centered in X- and Y-axis. Otherwise, the object is placed in the positive quadrant. Defaults to `false`.
- `invert`: Inverts points of the character. Default to `false`.
## Examples
use <pixel/px_ascii.scad>;
for(i = [0:94]) {
translate([8 * (i % 10), -8 * floor(i / 10), 0])
for(p = px_ascii(chr(i + 32))) {
translate(p)
linear_extrude(1, scale = 0.8)
square(1);
}
}
![px_ascii](images/lib2-px_ascii-1.JPG)
use <pixel/px_ascii.scad>;
t = "dotSCAD";
for(i = [0:len(t) - 1]) {
translate([i * 8, 0])
for(pt = px_ascii(t[i], invert = true)) {
translate(pt)
sphere(0.5, $fn = 24);
}
}
![px_ascii](images/lib2-px_ascii-2.JPG)

32
docs/lib2x-px_circle.md Normal file
View File

@@ -0,0 +1,32 @@
# px_circle
Returns points that can be used to draw a pixel-style circle.
**Since:** 2.0
## Parameters
- `radius` : The circle radius. The value must be an integer.
- `filled` : Default to `false`. Set it `true` if you want a filled circle.
## Examples
use <pixel/px_circle.scad>;
for(pt = px_circle(10)) {
translate(pt)
square(1, center = true);
}
![px_circle](images/lib2-px_circle-1.JPG)
use <pixel/px_circle.scad>;
for(pt = px_circle(10, filled = true)) {
translate(pt)
linear_extrude(1, scale = 0.5)
square(1, center = true);
}
![px_circle](images/lib2-px_circle-2.JPG)

33
docs/lib2x-px_cylinder.md Normal file
View File

@@ -0,0 +1,33 @@
# px_cylinder
Returns points that can be used to draw a pixel-style cylinder.
**Since:** 2.0
## Parameters
- `radius` : The radius of the cylinder. It also accepts a vector `[r1, r2]`. `r1` is the bottom radius and `r2` is the top radius of a cone. Values must be an integer.
- `h` : The height of the cylinder or cone.
- `filled` : Default to `false`. Set it `true` if you want a filled cylinder.
- `thickness`: Default to 1. The thickness when `filled` is `false`. The value must be an integer.
## Examples
use <pixel/px_cylinder.scad>;
for(pt = px_cylinder([10, 15], 10)) {
translate(pt)
cube(1, center = true);
}
![px_cylinder](images/lib2-px_cylinder-1.JPG)
use <pixel/px_cylinder.scad>;
for(pt = px_cylinder([20, 15], h = 10, thickness = 3)) {
translate(pt)
cube(1, center = true);
}
![px_cylinder](images/lib2-px_cylinder-2.JPG)

108
docs/lib2x-px_from.md Normal file
View File

@@ -0,0 +1,108 @@
# px_from
Given a list of 0s and 1s that represent a black-and-white image. This function translates them into pixel points. You can use these points to build pixel-style models.
**Since:** 2.1
## Parameters
- `binaries` : A list of 0s and 1s.
- `center`: . If `true`, object is centered in X- and Y-axis. Otherwise, the object is placed in the positive quadrant. Defaults to `false`.
- `invert`: Inverts how binaries are translated into points. Default to `false`. 1s are translated into points. Otherwise, 0s are translated into points.
## Examples
use <pixel/px_from.scad>;
pts = px_from([
[0,0,0,0,0,0,0,0],
[0,0,0,1,1,0,0,0],
[0,0,1,1,1,1,0,0],
[0,1,1,0,0,1,1,0],
[0,1,1,0,0,1,1,0],
[0,1,1,1,1,1,1,0],
[0,1,1,0,0,1,1,0],
[0,0,0,0,0,0,0,0]
]);
for(pt = pts) {
translate(pt) square(1);
}
translate([8, 0]) for(pt = pts) {
translate(pt) text("A", font="Arial Black", 1);
}
![px_from](images/lib2-px_from-1.JPG)
I provide a tool [img2binary](https://github.com/JustinSDK/img2binary) for converting an image into 0 and 1. A black and white picture is suggested. 0 is for black and 1 is for white. Given an image like this:
![px_from](images/lib2-px_from-2.JPG)
The tool converts it into binaries. Combined with the `pixel_from`, you can build a model like this:
use <pixel/px_from.scad>;
pts = px_from([
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1],
[1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1],
[1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1],
[1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1],
[1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1],
[1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1],
[1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1],
[1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
], invert = true);
for(pt = pts) {
translate(pt) sphere(.5, $fn = 24);
}
![px_from](images/lib2-px_from-3.JPG)

187
docs/lib2x-px_gray.md Normal file
View File

@@ -0,0 +1,187 @@
# px_gray
Given a list of numbers (0 ~ 255) that represent a gray image. This function translates them into a list of `[x, y, level]`s.
**Since:** 2.1
## Parameters
- `levels` : A list of numbers (0 ~ 255).
- `center`: . If `true`, object is centered in X- and Y-axis. Otherwise, the object is placed in the positive quadrant. Defaults to `false`.
- `invert`: Inverts the `level` value of the returned `[x, y, value]`. Default to `false`.
- `normalize`: Normalize the `level` value of the returned `[x, y, value]`. Default to `false`. If it's `true`, the `level` value ranges from 0 to 1.
## Examples
use <pixel/px_gray.scad>;
levels = [
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 0, 0, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 255, 255],
[255, 255, 0, 0, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 255, 255],
[255, 255, 0, 0, 170, 170, 170, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 0, 0, 255, 255],
[255, 255, 0, 0, 170, 170, 170, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 0, 0, 255, 255],
[0, 0, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0],
[0, 0, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0],
[0, 0, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0],
[0, 0, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 85, 85, 0, 0],
[0, 0, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 85, 85, 0, 0],
[0, 0, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0],
[0, 0, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0],
[0, 0, 170, 170, 170, 170, 170, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0],
[0, 0, 170, 170, 170, 170, 170, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0],
[0, 0, 170, 170, 170, 170, 170, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0],
[0, 0, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 85, 85, 0, 0],
[0, 0, 170, 170, 170, 170, 170, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 170, 170, 170, 170, 170, 85, 85, 0, 0],
[0, 0, 170, 170, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 0, 0],
[0, 0, 170, 170, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 0, 0],
[0, 0, 170, 170, 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 0, 0],
[255, 255, 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 255, 255],
[255, 255, 0, 0, 0, 0, 0, 0, 0, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 0, 0, 0, 0, 0, 0, 0, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 0, 0, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 255, 255, 0, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 0, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 0, 0, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 0, 0, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255]
];
dots = px_gray(levels, center = true);
for(dot = dots) {
g = 1 - dot[1] / 255;
h = dot[1] / 85;
color([g, g, g])
translate(dot[0])
linear_extrude(h)
square(1);
}
![px_gray](images/lib2-px_gray-1.JPG)
I provide a tool [img2gray](https://github.com/JustinSDK/img2gray) for converting an image into data required by this function. Given an image like this:
![px_gray](images/caterpillar.JPG)
After converting the image, use the data in the text file as the `levels` value of `pixel_gray`, you can build a model like this:
include <pixel/px_gray.scad>;
levels = [
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 219, 255, 255, 224, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 85, 62, 173, 255, 255, 222, 154, 168, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 147, 16, 73, 166, 190, 8, 17, 99, 97, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 151, 11, 26, 153, 111, 61, 58, 40, 128, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 137, 73, 74, 154, 131, 24, 18, 95, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 217, 153, 162, 152, 97, 82, 120, 155, 66, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 194, 146, 146, 131, 118, 96, 75, 46, 46, 191, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 185, 139, 130, 117, 99, 78, 53, 38, 64, 168, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 194, 108, 102, 95, 74, 60, 38, 47, 89, 85, 153, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 101, 77, 67, 52, 38, 48, 82, 109, 73, 48, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 70, 40, 42, 57, 84, 107, 92, 62, 38, 164, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 100, 89, 102, 115, 91, 72, 44, 47, 105, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 112, 114, 102, 86, 68, 51, 41, 66, 101, 94, 140, 194, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 156, 93, 80, 65, 51, 36, 59, 97, 100, 69, 49, 110, 93, 223, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 222, 70, 54, 47, 45, 69, 96, 110, 91, 58, 40, 92, 76, 70, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 225, 222, 141, 104, 111, 140, 144, 109, 77, 41, 49, 87, 64, 42, 197, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 221, 227, 223, 224, 228, 227, 220, 166, 129, 116, 46, 74, 89, 42, 40, 155, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 224, 224, 224, 227, 223, 169, 130, 129, 129, 88, 100, 58, 37, 62, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 222, 226, 226, 226, 226, 216, 134, 130, 127, 130, 118, 76, 42, 54, 92, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 226, 223, 228, 225, 228, 221, 182, 131, 131, 129, 128, 112, 41, 56, 95, 182, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 202, 212, 209, 212, 220, 225, 225, 153, 129, 125, 127, 130, 120, 86, 118, 208, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 176, 176, 193, 191, 198, 201, 209, 134, 129, 128, 128, 127, 128, 185, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 154, 149, 152, 166, 168, 174, 181, 130, 128, 131, 131, 123, 128, 125, 189, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 142, 116, 123, 128, 138, 140, 145, 136, 128, 124, 131, 128, 130, 131, 133, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 206, 184, 224, 178, 158, 145, 108, 124, 131, 125, 130, 131, 129, 127, 130, 130, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 221, 226, 224, 222, 102, 100, 128, 131, 125, 127, 128, 128, 127, 129, 144, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 224, 227, 224, 194, 125, 117, 122, 128, 128, 124, 130, 128, 126, 129, 132, 145, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 225, 228, 224, 169, 128, 129, 95, 92, 127, 132, 124, 130, 130, 123, 127, 129, 172, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 227, 226, 227, 222, 136, 128, 122, 88, 83, 106, 128, 127, 133, 123, 132, 130, 128, 129, 185, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 223, 219, 219, 216, 205, 199, 196, 188, 179, 192, 212, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 225, 226, 225, 207, 131, 129, 124, 80, 80, 82, 103, 131, 126, 126, 131, 128, 129, 128, 130, 200, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 225, 224, 224, 224, 224, 223, 219, 215, 205, 201, 194, 183, 176, 158, 162, 210, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 224, 224, 228, 174, 128, 126, 207, 178, 89, 84, 84, 115, 129, 126, 125, 127, 127, 127, 127, 134, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 222, 227, 225, 222, 227, 227, 225, 223, 224, 223, 220, 215, 208, 196, 192, 179, 171, 168, 146, 138, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 225, 225, 225, 229, 144, 132, 132, 255, 255, 164, 77, 82, 83, 114, 129, 128, 129, 131, 129, 126, 124, 142, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 222, 226, 225, 222, 224, 223, 225, 223, 222, 223, 224, 226, 221, 214, 209, 204, 192, 188, 179, 160, 160, 144, 134, 137, 225, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 225, 226, 227, 211, 131, 130, 149, 255, 255, 255, 140, 79, 85, 82, 127, 126, 126, 129, 129, 128, 127, 124, 154, 255, 255, 255, 255, 255, 255, 255, 255, 228, 225, 221, 219, 219, 218, 220, 222, 222, 223, 223, 220, 223, 223, 219, 217, 203, 195, 191, 183, 174, 160, 150, 135, 128, 113, 186, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 225, 224, 226, 187, 132, 131, 186, 255, 255, 255, 255, 122, 80, 85, 89, 124, 131, 127, 128, 130, 127, 129, 131, 156, 255, 255, 255, 255, 255, 225, 221, 218, 213, 207, 195, 188, 190, 197, 194, 195, 211, 219, 220, 223, 223, 218, 210, 208, 201, 189, 182, 174, 162, 153, 147, 129, 114, 97, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 225, 227, 225, 160, 131, 127, 255, 255, 255, 255, 255, 255, 118, 81, 77, 91, 122, 129, 134, 124, 130, 130, 129, 127, 192, 255, 255, 255, 229, 219, 205, 181, 181, 173, 178, 179, 176, 176, 174, 169, 162, 172, 192, 214, 218, 218, 217, 204, 201, 191, 181, 175, 165, 159, 145, 131, 118, 106, 87, 181, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 220, 255, 228, 223, 222, 137, 124, 143, 255, 255, 255, 255, 255, 255, 223, 93, 81, 79, 101, 125, 127, 129, 129, 125, 134, 130, 122, 208, 255, 218, 201, 178, 177, 180, 172, 186, 173, 180, 177, 183, 178, 181, 183, 177, 175, 143, 168, 219, 200, 205, 197, 189, 187, 176, 164, 152, 150, 134, 125, 106, 93, 73, 198, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 223, 228, 220, 196, 131, 129, 172, 255, 255, 255, 255, 255, 255, 255, 221, 91, 80, 84, 97, 129, 127, 126, 127, 126, 128, 131, 130, 217, 184, 180, 152, 123, 125, 185, 174, 181, 179, 180, 175, 181, 173, 183, 175, 177, 178, 153, 142, 181, 209, 197, 190, 181, 174, 166, 158, 144, 134, 120, 110, 90, 86, 75, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 226, 229, 224, 168, 126, 131, 217, 255, 255, 255, 255, 255, 255, 255, 255, 221, 81, 81, 82, 105, 128, 127, 130, 126, 131, 129, 175, 184, 173, 99, 92, 133, 136, 100, 160, 179, 179, 177, 183, 177, 182, 177, 177, 180, 179, 179, 165, 145, 137, 189, 194, 181, 167, 166, 156, 142, 134, 127, 108, 95, 76, 62, 114, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 255, 220, 228, 225, 137, 133, 132, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 201, 83, 80, 84, 108, 131, 129, 128, 128, 134, 180, 172, 180, 158, 170, 175, 175, 154, 87, 176, 177, 179, 177, 173, 177, 136, 132, 180, 175, 168, 171, 164, 132, 121, 180, 181, 168, 161, 153, 147, 132, 116, 110, 95, 85, 60, 57, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 223, 227, 220, 206, 132, 128, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 183, 87, 79, 80, 114, 126, 133, 131, 173, 181, 182, 174, 172, 186, 170, 185, 180, 72, 180, 177, 181, 177, 110, 99, 123, 138, 106, 104, 159, 163, 158, 159, 122, 124, 175, 165, 158, 148, 142, 129, 120, 107, 90, 78, 66, 51, 113, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 225, 224, 226, 182, 129, 131, 196, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 148, 83, 83, 84, 122, 124, 153, 176, 178, 180, 174, 184, 164, 174, 180, 174, 111, 180, 176, 170, 99, 154, 174, 181, 184, 169, 173, 98, 155, 161, 150, 151, 116, 112, 158, 156, 145, 133, 125, 119, 102, 89, 81, 58, 55, 85, 223, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 229, 223, 225, 150, 127, 131, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 209, 117, 80, 82, 89, 121, 180, 179, 180, 176, 158, 72, 69, 61, 83, 184, 175, 173, 181, 175, 148, 178, 177, 174, 175, 177, 169, 156, 119, 159, 151, 145, 141, 95, 100, 151, 142, 133, 122, 114, 97, 87, 74, 58, 53, 72, 168, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 227, 225, 226, 218, 133, 129, 143, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 190, 153, 112, 83, 78, 124, 175, 182, 179, 173, 78, 89, 176, 163, 51, 128, 178, 179, 178, 177, 175, 180, 176, 176, 175, 170, 165, 162, 157, 151, 147, 139, 140, 122, 70, 134, 136, 132, 118, 107, 94, 83, 71, 54, 54, 79, 124, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 224, 223, 224, 193, 131, 133, 184, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 176, 115, 127, 131, 129, 151, 178, 179, 172, 167, 118, 175, 169, 100, 58, 78, 179, 177, 177, 162, 96, 59, 69, 61, 99, 163, 161, 157, 155, 147, 144, 138, 130, 128, 100, 83, 127, 123, 114, 102, 90, 78, 66, 54, 56, 79, 105, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 227, 223, 225, 160, 126, 130, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 85, 67, 87, 87, 175, 177, 183, 180, 179, 186, 175, 77, 27, 28, 81, 176, 183, 176, 80, 81, 178, 164, 160, 48, 75, 159, 158, 149, 144, 138, 133, 128, 124, 117, 77, 90, 117, 106, 96, 86, 73, 59, 51, 68, 80, 113, 225, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 225, 227, 223, 222, 139, 128, 133, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 195, 140, 114, 169, 178, 182, 180, 173, 178, 180, 66, 34, 37, 131, 172, 178, 151, 62, 169, 168, 149, 66, 47, 31, 149, 145, 143, 139, 134, 127, 128, 115, 111, 101, 53, 114, 100, 91, 79, 68, 54, 53, 66, 89, 114, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 225, 223, 224, 205, 132, 130, 164, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 178, 176, 177, 180, 176, 181, 154, 83, 111, 177, 174, 183, 172, 165, 173, 174, 83, 23, 15, 30, 135, 148, 140, 134, 131, 124, 120, 112, 105, 98, 52, 94, 96, 84, 72, 60, 53, 61, 77, 95, 118, 214, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 225, 225, 227, 175, 128, 129, 209, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 168, 31, 145, 173, 183, 178, 179, 174, 181, 177, 177, 176, 181, 178, 175, 173, 167, 161, 166, 100, 33, 25, 55, 142, 143, 134, 133, 123, 120, 115, 107, 104, 93, 65, 59, 88, 77, 66, 54, 53, 67, 80, 107, 131, 212, 255, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 225, 227, 221, 147, 126, 136, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 77, 4, 11, 45, 166, 167, 177, 179, 177, 176, 179, 180, 173, 172, 167, 174, 167, 166, 171, 156, 158, 106, 88, 141, 137, 131, 128, 127, 118, 113, 111, 101, 98, 93, 73, 52, 78, 68, 59, 53, 60, 74, 90, 111, 131, 202, 82, 4, 12, 36, 99, 148, 196, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 226, 225, 222, 208, 134, 129, 150, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 186, 29, 7, 2, 4, 17, 173, 175, 165, 168, 174, 172, 173, 170, 172, 170, 173, 162, 162, 160, 153, 156, 147, 148, 144, 133, 138, 130, 126, 115, 118, 109, 102, 97, 91, 81, 77, 76, 74, 60, 50, 56, 69, 84, 100, 116, 151, 38, 3, 1, 1, 1, 2, 2, 3, 18, 45, 113, 163, 222, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 219, 226, 226, 188, 129, 132, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 104, 9, 2, 1, 2, 2, 9, 149, 188, 187, 167, 168, 165, 167, 166, 164, 162, 162, 161, 157, 153, 150, 147, 143, 141, 136, 131, 126, 124, 116, 114, 108, 101, 96, 91, 84, 79, 73, 85, 66, 53, 51, 65, 76, 93, 109, 130, 157, 18, 4, 1, 3, 1, 2, 1, 5, 1, 3, 9, 0, 9, 38, 227, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 225, 228, 223, 155, 131, 130, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196, 39, 1, 1, 5, 3, 3, 7, 3, 92, 174, 188, 196, 192, 171, 157, 159, 159, 158, 155, 153, 150, 148, 144, 139, 135, 132, 130, 125, 120, 118, 110, 107, 101, 95, 90, 84, 77, 70, 64, 78, 57, 53, 61, 72, 85, 108, 124, 140, 135, 11, 7, 0, 0, 0, 1, 3, 1, 3, 1, 1, 6, 1, 7, 107, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 222, 229, 226, 218, 134, 128, 144, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 132, 7, 2, 5, 3, 1, 2, 1, 3, 11, 40, 160, 178, 175, 188, 189, 190, 184, 172, 159, 150, 145, 143, 142, 140, 135, 129, 126, 123, 118, 113, 109, 104, 100, 94, 89, 84, 78, 70, 64, 59, 72, 57, 60, 70, 85, 99, 112, 128, 158, 90, 2, 8, 0, 0, 1, 2, 1, 1, 1, 0, 0, 31, 48, 0, 51, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 225, 226, 223, 199, 132, 125, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 53, 0, 4, 2, 3, 3, 3, 1, 7, 1, 5, 8, 122, 159, 170, 175, 174, 176, 176, 175, 175, 174, 169, 159, 150, 141, 136, 130, 125, 120, 114, 107, 103, 99, 94, 87, 82, 78, 71, 62, 57, 53, 56, 60, 76, 81, 91, 108, 127, 151, 177, 25, 9, 4, 0, 5, 1, 2, 1, 0, 5, 7, 42, 104, 145, 47, 12, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 227, 224, 227, 167, 131, 130, 215, 255, 255, 255, 255, 255, 255, 255, 255, 255, 148, 6, 5, 4, 1, 1, 2, 0, 1, 1, 0, 4, 7, 6, 59, 139, 154, 160, 168, 168, 167, 165, 165, 166, 164, 158, 153, 150, 148, 143, 137, 131, 124, 117, 112, 105, 100, 93, 87, 80, 70, 61, 56, 53, 56, 69, 80, 92, 111, 124, 144, 160, 116, 11, 3, 0, 0, 0, 1, 1, 5, 3, 4, 103, 98, 177, 146, 79, 5, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 222, 228, 225, 225, 141, 129, 140, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 5, 2, 5, 1, 2, 4, 2, 1, 1, 1, 4, 2, 4, 4, 21, 139, 138, 149, 148, 152, 154, 156, 155, 152, 150, 147, 144, 141, 139, 136, 131, 125, 119, 112, 107, 98, 93, 86, 79, 69, 59, 52, 50, 55, 70, 86, 92, 106, 122, 133, 155, 164, 30, 8, 3, 1, 0, 3, 2, 0, 5, 12, 134, 151, 95, 83, 88, 81, 20, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 222, 227, 225, 202, 131, 129, 164, 255, 255, 255, 255, 255, 255, 255, 255, 56, 5, 2, 4, 0, 1, 7, 0, 1, 7, 1, 5, 3, 4, 4, 39, 203, 188, 116, 134, 136, 137, 140, 142, 141, 139, 137, 135, 134, 128, 126, 122, 117, 112, 107, 100, 94, 88, 81, 74, 67, 59, 54, 55, 61, 72, 79, 91, 107, 120, 135, 154, 160, 30, 14, 1, 1, 0, 5, 0, 5, 6, 17, 190, 184, 114, 128, 111, 78, 74, 8, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 224, 227, 224, 176, 130, 129, 194, 255, 255, 255, 255, 255, 255, 255, 141, 6, 1, 3, 2, 3, 4, 2, 2, 1, 2, 4, 1, 3, 5, 103, 223, 212, 197, 133, 105, 121, 125, 126, 127, 127, 127, 126, 123, 120, 119, 117, 111, 105, 100, 95, 87, 81, 77, 70, 61, 55, 52, 53, 63, 75, 85, 93, 103, 121, 133, 143, 108, 11, 8, 3, 4, 1, 1, 2, 1, 4, 49, 190, 203, 170, 108, 193, 164, 118, 45, 48, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 227, 227, 224, 219, 149, 127, 129, 255, 255, 255, 255, 255, 255, 255, 255, 13, 3, 1, 3, 5, 1, 1, 1, 1, 4, 2, 1, 3, 6, 153, 213, 202, 194, 177, 127, 80, 101, 110, 106, 115, 115, 112, 113, 108, 108, 105, 100, 94, 92, 89, 84, 77, 72, 65, 55, 52, 56, 52, 65, 78, 86, 95, 109, 120, 122, 93, 23, 7, 5, 1, 3, 0, 0, 3, 2, 5, 57, 208, 201, 179, 136, 151, 227, 193, 130, 55, 85, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 255, 223, 225, 217, 130, 131, 153, 255, 255, 255, 255, 255, 255, 255, 131, 1, 2, 1, 0, 0, 2, 0, 8, 0, 0, 0, 3, 14, 62, 133, 179, 186, 164, 151, 105, 118, 89, 81, 95, 96, 94, 97, 103, 94, 99, 92, 87, 82, 77, 75, 67, 61, 56, 53, 48, 50, 65, 69, 84, 87, 102, 101, 74, 42, 9, 6, 9, 0, 2, 4, 0, 0, 0, 1, 1, 39, 190, 187, 180, 159, 109, 169, 255, 201, 112, 36, 163, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 210, 197, 164, 255, 255, 255, 255, 255, 255, 255, 42, 6, 4, 0, 3, 1, 2, 2, 0, 4, 3, 2, 16, 87, 154, 134, 157, 150, 144, 112, 80, 120, 175, 102, 72, 76, 79, 81, 77, 79, 75, 77, 72, 68, 62, 61, 56, 55, 53, 53, 66, 72, 79, 84, 51, 22, 10, 6, 1, 3, 4, 2, 5, 1, 1, 0, 0, 2, 6, 2, 39, 96, 139, 163, 152, 127, 80, 169, 215, 180, 100, 9, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 211, 183, 151, 191, 255, 255, 255, 255, 220, 10, 1, 1, 1, 3, 0, 1, 0, 2, 0, 1, 6, 80, 181, 165, 141, 135, 116, 112, 92, 64, 117, 99, 109, 66, 58, 56, 65, 60, 63, 63, 62, 58, 55, 53, 52, 53, 58, 62, 69, 74, 84, 81, 22, 2, 6, 2, 2, 3, 1, 3, 0, 0, 1, 1, 0, 1, 3, 5, 97, 117, 176, 149, 134, 121, 97, 71, 125, 163, 122, 55, 37, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 218, 192, 156, 117, 255, 255, 255, 255, 158, 1, 0, 0, 1, 0, 0, 2, 2, 1, 2, 0, 35, 113, 89, 81, 88, 108, 74, 69, 61, 75, 120, 138, 104, 112, 15, 56, 55, 53, 54, 51, 53, 56, 56, 60, 60, 66, 74, 82, 89, 94, 73, 14, 6, 8, 2, 2, 4, 1, 4, 0, 6, 7, 1, 5, 0, 1, 18, 135, 103, 143, 117, 123, 104, 86, 67, 74, 129, 80, 98, 15, 138, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 210, 187, 160, 106, 142, 255, 255, 255, 104, 1, 5, 1, 2, 0, 3, 1, 0, 0, 5, 3, 71, 154, 123, 102, 67, 88, 78, 79, 97, 117, 148, 173, 105, 5, 8, 64, 185, 121, 77, 72, 71, 73, 77, 82, 86, 91, 96, 100, 109, 64, 9, 5, 4, 1, 2, 1, 2, 0, 2, 5, 0, 0, 2, 1, 2, 37, 201, 144, 99, 80, 69, 86, 84, 72, 77, 109, 148, 153, 53, 20, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 201, 181, 144, 96, 117, 255, 255, 255, 79, 4, 1, 1, 5, 0, 1, 0, 2, 0, 5, 2, 128, 207, 186, 153, 106, 45, 20, 32, 74, 81, 31, 9, 2, 7, 88, 255, 255, 255, 199, 146, 107, 99, 99, 95, 107, 108, 117, 117, 85, 6, 3, 2, 1, 5, 2, 0, 0, 1, 1, 4, 0, 1, 4, 4, 77, 202, 182, 104, 169, 144, 120, 79, 94, 84, 95, 121, 120, 28, 0, 127, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 217, 204, 187, 163, 124, 79, 139, 255, 255, 255, 18, 1, 4, 1, 0, 2, 4, 1, 0, 5, 0, 16, 178, 255, 219, 185, 115, 71, 1, 0, 1, 3, 3, 3, 19, 148, 255, 255, 255, 255, 255, 255, 255, 224, 203, 172, 175, 159, 163, 155, 17, 4, 5, 0, 0, 0, 0, 1, 0, 4, 2, 1, 2, 0, 2, 83, 216, 199, 160, 113, 217, 191, 151, 86, 4, 1, 0, 2, 1, 5, 48, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 213, 255, 255, 255, 255, 255, 255, 225, 212, 198, 181, 160, 127, 89, 77, 193, 255, 255, 255, 19, 1, 0, 0, 1, 0, 5, 0, 1, 3, 0, 34, 201, 255, 255, 189, 108, 38, 1, 1, 2, 0, 2, 52, 201, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 131, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 5, 0, 1, 6, 128, 208, 196, 179, 132, 133, 255, 212, 158, 81, 3, 0, 1, 0, 4, 69, 214, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 208, 193, 199, 208, 206, 205, 198, 193, 180, 166, 149, 123, 87, 73, 138, 217, 255, 255, 255, 104, 0, 1, 1, 3, 1, 2, 9, 0, 0, 5, 36, 193, 226, 211, 169, 107, 2, 7, 0, 6, 6, 75, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 17, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 2, 4, 80, 194, 185, 173, 149, 104, 145, 255, 210, 147, 62, 4, 6, 2, 0, 74, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 205, 186, 168, 154, 151, 140, 120, 95, 70, 86, 139, 143, 125, 255, 255, 255, 118, 4, 2, 1, 1, 6, 0, 0, 1, 0, 0, 35, 141, 165, 167, 113, 72, 2, 0, 3, 8, 134, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 4, 1, 1, 1, 0, 0, 1, 1, 1, 0, 3, 1, 7, 76, 95, 149, 156, 147, 123, 89, 143, 206, 181, 111, 36, 3, 0, 6, 73, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 177, 136, 105, 81, 113, 145, 156, 88, 84, 255, 255, 255, 197, 4, 3, 1, 1, 1, 1, 1, 4, 0, 5, 23, 130, 85, 91, 110, 5, 6, 2, 32, 196, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 71, 9, 1, 1, 0, 0, 0, 0, 1, 1, 3, 0, 2, 46, 151, 172, 140, 132, 117, 97, 65, 121, 122, 127, 72, 3, 1, 5, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 204, 188, 165, 145, 120, 82, 69, 182, 255, 255, 255, 64, 2, 4, 1, 0, 6, 1, 0, 3, 0, 10, 133, 139, 134, 30, 3, 2, 72, 217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 17, 2, 1, 1, 0, 0, 0, 0, 1, 1, 0, 6, 7, 113, 140, 120, 120, 91, 88, 66, 73, 126, 97, 108, 42, 2, 5, 138, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 210, 196, 179, 161, 138, 118, 83, 60, 141, 255, 255, 255, 255, 100, 29, 3, 1, 1, 1, 0, 6, 2, 4, 56, 121, 33, 5, 6, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 204, 6, 4, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 48, 103, 73, 69, 112, 68, 64, 78, 108, 150, 162, 73, 6, 15, 134, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 211, 199, 186, 169, 154, 135, 106, 159, 213, 169, 203, 255, 255, 255, 255, 255, 219, 152, 93, 41, 9, 0, 0, 0, 8, 2, 3, 20, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 168, 0, 2, 1, 0, 0, 1, 1, 1, 1, 1, 0, 5, 97, 157, 141, 104, 89, 71, 95, 106, 135, 94, 22, 7, 14, 198, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 227, 222, 218, 207, 199, 187, 176, 162, 147, 126, 114, 255, 255, 170, 113, 135, 255, 255, 255, 255, 255, 255, 255, 255, 255, 179, 100, 48, 11, 4, 57, 209, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 123, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 6, 164, 204, 176, 133, 65, 3, 3, 2, 0, 7, 3, 15, 199, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 226, 228, 227, 224, 222, 216, 209, 204, 196, 185, 174, 163, 153, 134, 115, 151, 255, 209, 157, 103, 67, 216, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 94, 0, 1, 2, 0, 3, 1, 0, 2, 0, 1, 1, 25, 220, 255, 203, 147, 63, 7, 0, 1, 2, 8, 35, 198, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 215, 211, 211, 203, 209, 202, 196, 188, 178, 172, 165, 150, 138, 125, 105, 151, 255, 184, 133, 86, 66, 156, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 91, 5, 0, 0, 5, 2, 2, 5, 0, 0, 5, 0, 42, 255, 255, 200, 134, 46, 0, 2, 3, 2, 49, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 194, 182, 172, 197, 193, 185, 185, 174, 169, 161, 149, 145, 126, 114, 94, 131, 200, 162, 118, 79, 68, 129, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 0, 0, 0, 3, 0, 0, 0, 2, 6, 0, 4, 52, 206, 210, 176, 98, 19, 5, 3, 0, 53, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 198, 111, 36, 182, 173, 177, 163, 164, 157, 143, 135, 129, 112, 101, 83, 82, 177, 135, 97, 62, 84, 138, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 162, 0, 1, 3, 0, 1, 5, 0, 0, 4, 2, 2, 60, 141, 158, 129, 86, 2, 0, 6, 74, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 229, 143, 2, 165, 165, 159, 152, 63, 61, 135, 123, 115, 104, 89, 70, 59, 128, 113, 79, 66, 103, 160, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196, 8, 0, 0, 1, 2, 0, 4, 5, 0, 1, 0, 48, 124, 81, 88, 45, 5, 3, 105, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 164, 7, 111, 147, 146, 140, 41, 28, 123, 112, 99, 87, 75, 60, 63, 87, 89, 65, 80, 131, 210, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 73, 2, 2, 0, 3, 0, 0, 2, 0, 3, 0, 38, 149, 142, 74, 0, 0, 103, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 44, 60, 132, 126, 129, 43, 11, 103, 96, 90, 73, 61, 62, 71, 100, 90, 93, 128, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 107, 46, 11, 0, 2, 4, 0, 0, 1, 2, 8, 100, 50, 5, 14, 136, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 147, 21, 115, 114, 106, 64, 3, 71, 83, 70, 58, 56, 73, 92, 112, 144, 177, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 188, 118, 56, 17, 6, 2, 10, 0, 3, 3, 11, 169, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 48, 68, 95, 94, 72, 2, 33, 68, 53, 64, 73, 91, 114, 136, 163, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 186, 127, 58, 8, 2, 25, 169, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 210, 102, 76, 69, 67, 12, 14, 53, 67, 77, 89, 108, 138, 158, 206, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 204, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 229, 139, 79, 57, 0, 58, 90, 102, 116, 140, 158, 212, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 169, 135, 124, 128, 136, 167, 198, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]
];
dots = px_gray(levels, center = true, normalize = true);
for(dot = dots) {
translate(dot[0])
square(dot[1]);
}
![px_gray](images/lib2-px_gray-2.JPG)

31
docs/lib2x-px_line.md Normal file
View File

@@ -0,0 +1,31 @@
# px_line
Given two points. `px_line` returns points that can be used to draw a pixel-style line.
**Since:** 2.0
## Parameters
- `p1` : The start point `[x, y]` or `[x, y, z]`. x, y, z must be integer.
- `p2` : The end point `[x, y]` or `[x, y, z]`. x, y, z must be integer.
## Examples
use <pixel/px_line.scad>;
for(pt = px_line([-10, 0], [20, 50])) {
translate(pt)
square(1, center = true);
}
![px_line](images/lib2-px_line-1.JPG)
use <pixel/px_line.scad>;
for(pt = px_line([-10, 0, -10], [20, 50, 10])) {
translate(pt)
cube(1, center = true);
}
![px_line](images/lib2-px_line-2.JPG)

36
docs/lib2x-px_polygon.md Normal file
View File

@@ -0,0 +1,36 @@
# px_polygon
Returns points that can be used to draw a pixel-style polygon.
**Since:** 2.0
## Parameters
- `points` : A list of points. Each point can be `[x, y]`. x, y must be integer.
- `filled` : Default to `false`. Set it `true` if you want a filled polygon.
## Examples
use <pixel/px_polygon.scad>;
use <shape_pentagram.scad>;
pentagram = [
for(pt = shape_pentagram(15))
[round(pt[0]), round(pt[1])]
];
for(pt = px_polygon(pentagram)) {
translate(pt)
linear_extrude(1, scale = 0.5)
square(1, center = true);
}
translate([30, 0])
for(pt = px_polygon(pentagram, filled = true)) {
translate(pt)
linear_extrude(1, scale = 0.5)
square(1, center = true);
}
![px_polygon](images/lib2-px_polygon-1.JPG)

52
docs/lib2x-px_polyline.md Normal file
View File

@@ -0,0 +1,52 @@
# px_polyline
Given a list of points. `px_polyline` returns points that can be used to draw a pixel-style polyline.
**Since:** 2.0
## Parameters
- `points` : A list of points. Each point can be `[x, y]` or `[x, y, z]`. x, y, z must be integer.
## Examples
use <pixel/px_polyline.scad>;
use <shape_pentagram.scad>;
pentagram = [
for(pt = shape_pentagram(15))
[round(pt[0]), round(pt[1])]
];
for(pt = px_polyline(concat(pentagram, [pentagram[0]]))) {
translate(pt)
linear_extrude(1, scale = 0.5)
square(1, center = true);
}
![px_polyline](images/lib2-px_polyline-1.JPG)
use <pixel/px_polyline.scad>;
use <sphere_spiral.scad>;
points_angles = sphere_spiral(
radius = 20,
za_step = 5
);
points = [
for(pa = points_angles)
let(pt = pa[0])
[round(pt[0]), round(pt[1]), round(pt[2])]
];
for(a = [0:30:330]) {
rotate(a)
for(pt = px_polyline(points)) {
translate(pt)
cube(1, center = true);
}
}
![px_polyline](images/lib2-px_polyline-2.JPG)

22
docs/lib2x-px_sphere.md Normal file
View File

@@ -0,0 +1,22 @@
# px_sphere
Returns points that can be used to draw a pixel-style sphere.
**Since:** 2.0
## Parameters
- `radius` : The radius of the sphere. The value must be an integer.
- `filled` : Default to `false`. Set it `true` if you want a filled sphere.
- `thickness`: Default to 1. The thickness when `filled` is `false`. The value must be an integer.
## Examples
use <pixel/px_sphere.scad>;
for(pt = px_sphere(10)) {
translate(pt)
cube(1, center = true);
}
![px_sphere](images/lib2-px_sphere-1.JPG)

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