Thomas Buck преди 3 години
родител
ревизия
78082c1be8
променени са 4 файла, в които са добавени 31017 реда и са изтрити 0 реда
  1. 66
    0
      ikea-lack/lack-simple-bracket.scad
  2. 14702
    0
      ikea-lack/lack-simple-bracket.stl
  3. 91
    0
      ikea-lack/pipe_holder.scad
  4. 16158
    0
      ikea-lack/pipe_holder.stl

+ 66
- 0
ikea-lack/lack-simple-bracket.scad Целия файл

@@ -0,0 +1,66 @@
1
+lack_foot_width = 50;
2
+lack_foot_height = 100;
3
+lack_foot_dist = 5;
4
+
5
+bracket_height = 70;
6
+bracket_width = 40;
7
+bracket_wall = 10;
8
+
9
+screw_head_length = 4.5;
10
+screw_head_dia_max = 8.0;
11
+screw_head_dia_min = 3.2;
12
+screw_body_dia = 2.4;
13
+screw_body_length = 25;
14
+
15
+$fn = 20;
16
+
17
+module screw() {
18
+    cylinder(d1 = screw_body_dia, d2 = screw_head_dia_min, h = screw_body_length + 0.1);
19
+    translate([0, 0, screw_body_length])
20
+    cylinder(d1 = screw_head_dia_min, d2 = screw_head_dia_max, h = screw_head_length);
21
+}
22
+
23
+module screw_block() {
24
+    translate([bracket_width / 3, screw_body_length + screw_head_length - bracket_wall - 0.1, 10])
25
+    rotate([90, 0, 0])
26
+    screw();
27
+    
28
+    translate([bracket_width * 2 / 3, screw_body_length + screw_head_length - bracket_wall - 0.1, 20])
29
+    rotate([90, 0, 0])
30
+    screw();
31
+}
32
+
33
+module bracket_body() {
34
+    translate([-bracket_wall, -bracket_wall, 0])
35
+    cube([bracket_width + bracket_wall, bracket_wall, bracket_height]);
36
+    
37
+    translate([-bracket_wall, 0, 0])
38
+    cube([bracket_wall, bracket_width, bracket_height]);
39
+}
40
+
41
+module bracket() {
42
+    difference() {
43
+        bracket_body();
44
+        
45
+        screw_block();
46
+        translate([0, 0, bracket_height / 2 + lack_foot_dist])
47
+        screw_block();
48
+        
49
+        translate([0, bracket_width, 0])
50
+        rotate([0, 0, -90])
51
+        screw_block();
52
+        
53
+        translate([0, bracket_width, bracket_height / 2 + lack_foot_dist])
54
+        rotate([0, 0, -90])
55
+        screw_block();
56
+    }
57
+}
58
+
59
+// feet visualization
60
+%translate([0, 0, -lack_foot_height])
61
+cube([lack_foot_width, lack_foot_width, lack_foot_height]);
62
+translate([0, 0, lack_foot_dist])
63
+%cube([lack_foot_width, lack_foot_width, lack_foot_height]);
64
+
65
+translate([0, 0, (lack_foot_dist - bracket_height) / 2])
66
+bracket();

+ 14702
- 0
ikea-lack/lack-simple-bracket.stl
Файловите разлики са ограничени, защото са твърде много
Целия файл


+ 91
- 0
ikea-lack/pipe_holder.scad Целия файл

@@ -0,0 +1,91 @@
1
+tube = 16.5;
2
+wall = 6;
3
+depth = 12;
4
+mount = 1;
5
+wall_off = 3;
6
+tab = 11;
7
+hole = 4.1;
8
+
9
+head_min = hole;
10
+head_max = 7.9;
11
+head_height = 2.5;
12
+
13
+fix_height = 9;
14
+fix_wall = 4;
15
+fix_dia = 40;
16
+fix_hole = 2.8;
17
+
18
+double = true;
19
+
20
+$fn = 42;
21
+
22
+module fix() {
23
+    difference() {
24
+        cylinder(d = fix_dia, h = fix_height);
25
+        
26
+        translate([0, 0, -1])
27
+        cylinder(d = tube, h = fix_height + 2);
28
+            
29
+        translate([0, -1, fix_height / 2])
30
+        rotate([90, 0, 0])
31
+        cylinder(d = fix_hole, h = fix_dia / 2);
32
+            
33
+        translate([1, 0, fix_height / 2])
34
+        rotate([0, 90, 0])
35
+        cylinder(d = fix_hole, h = fix_dia / 2);
36
+    }
37
+}
38
+
39
+module tab() {
40
+    difference() {
41
+        cube([wall + wall_off, tab, depth]);
42
+        
43
+        translate([-1, tab / 2, depth / 2])
44
+        rotate([0, 90, 0]) {
45
+            cylinder(d = hole, h = wall + wall_off + 2);
46
+            
47
+            translate([0, 0, wall + wall_off + 1 - head_height])
48
+            cylinder(d1 = head_min, d2 = head_max, h = head_height + 0.01);
49
+        }
50
+    }
51
+}
52
+
53
+module main_part() {
54
+    hull() {
55
+        cylinder(d = tube + (2 * wall), h = depth);
56
+        
57
+        translate([-tube / 2 - wall_off, tube / 2 + wall, 0])
58
+        cube([wall + wall_off, mount, depth]);
59
+        
60
+        translate([-tube / 2 - wall_off, -tube / 2 - wall - mount, 0])
61
+        cube([wall + wall_off, mount, depth]);
62
+    }
63
+    
64
+    translate([-tube / 2 - wall_off, tube / 2 + wall + mount, 0])
65
+    tab();
66
+    
67
+    translate([-tube / 2 - wall_off, -tube / 2 - wall - mount - tab, 0])
68
+    tab();
69
+}
70
+
71
+module whole() {
72
+    difference() {
73
+        main_part();
74
+        
75
+        translate([0, 0, -1])
76
+        cylinder(d = tube, h = depth + 2);
77
+        
78
+        translate([-100 - tube / 2 - wall_off, -50, -50])
79
+        cube([100, 100, 100]);
80
+    }
81
+}
82
+
83
+translate([fix_dia + 10, 0, 0])
84
+fix();
85
+
86
+whole();
87
+
88
+if (double) {
89
+    translate([0, 0, depth])
90
+    whole();
91
+}

+ 16158
- 0
ikea-lack/pipe_holder.stl
Файловите разлики са ограничени, защото са твърде много
Целия файл


Loading…
Отказ
Запис