2 GNU AGPLv3 (or later at your option)
3 see bottom for more license info.
4 please do not remove this notice.
7 //$fn = 30; // use this while editing
8 $fn
= 100; // use this for generating STL
10 // how big each ones place side is
13 // modify this to your aesthetic taste
14 corner_radius
= side_length
/ 6;
16 connector_thickness
= corner_radius
;
21 offset(-r
) { offset(r
) { children(); } } }
23 module
round_inside_corners(r
) {
24 fillet(r
) children(); }
26 module
round_outside_corners(r
) {
27 fillet(-r
) children(); }
29 module
connector_base(connector_thickness
) {
30 rotate([0, -90, -90]) {
31 translate([corner_radius
/ 2, 0, 0]) {
32 linear_extrude(height
= connector_thickness
) {
34 circle(corner_radius
, $fn
= 3);
35 translate([-corner_radius
, -corner_radius
]) {
36 square([corner_radius
, 2 * corner_radius
]); } }
37 round_outside_corners(corner_radius
/ 3) {
38 circle(corner_radius
, $fn
= 3); } } } } }
42 linear_extrude(height
= side_length
) {
43 round_outside_corners(corner_radius
) {
44 square(side_length
); } }
45 translate([side_length
/ 2, -0.1, -0.1]) {
46 connector_base(connector_thickness
); }
47 translate([side_length
/ 2,
48 side_length
- connector_thickness
+ fudge
,
50 connector_base(connector_thickness
); } }
51 translate([side_length
/ 2,
53 side_length
- 3 * fudge
]) {
54 connector_base(connector_thickness
- 3 * fudge
); }
55 translate([side_length
/ 2,
56 side_length
- connector_thickness
+ 3 * fudge
,
57 side_length
- 3 * fudge
]) {
58 connector_base(connector_thickness
- 3 * fudge
); } }
61 for(ones_index
= [0 : (10 - 1)]) {
62 translate([ones_index
* side_length
, 0]) {
65 module
hundreds_place() {
66 for(tens_index
= [0 : (10 - 1)]) {
67 for(ones_index
= [0 : (10 - 1)]) {
68 translate([ones_index
* side_length
,
69 tens_index
* side_length
]) {
72 module
thousands_place() {
73 for(hundreds_index
= [0 : (10 - 1)]) {
74 for(tens_index
= [0 : (10 - 1)]) {
75 for(ones_index
= [0 : (10 - 1)]) {
76 translate([ones_index
* side_length
,
77 tens_index
* side_length
,
78 hundreds_index
* side_length
]) {
79 ones_place(); } } } } }
83 //connector_base(connector_thickness);