ソースを参照

more 3d-printable parts

kauzerei 8ヶ月前
コミット
dea372f1a8
4個のファイルの変更101行の追加3行の削除
  1. 3
    3
      3dprint/beam.scad
  2. 1
    0
      3dprint/enclosure.scad
  3. 26
    0
      actuator.json
  4. 71
    0
      actuator.scad

+ 3
- 3
3dprint/beam.scad ファイルの表示

@@ -35,7 +35,7 @@ hull() for (tr=[[0,0],[-hd/2-offset,0],[-hd/2-offset,vd],[-hd/2,vd]]) translate(
35 35
     translate([(i-0.5)*hd,vd-offset]) circle(d=hole);
36 36
   }
37 37
   }
38
-#translate([-hd/2-offset-wall/2,height/4-wall,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
39
-#translate([-hd/2-offset-wall/2,height/2-wall/2,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
40
-#translate([-hd/2-offset-wall/2,height*3/4,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
38
+translate([-hd/2-offset-wall/2,height/4-wall,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
39
+translate([-hd/2-offset-wall/2,height/2-wall/2,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
40
+translate([-hd/2-offset-wall/2,height*3/4,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
41 41
 }

+ 1
- 0
3dprint/enclosure.scad ファイルの表示

@@ -0,0 +1 @@
1
+part="bottom";//[bottom,top]

+ 26
- 0
actuator.json ファイルの表示

@@ -0,0 +1,26 @@
1
+{
2
+    "fileFormatVersion": "1",
3
+    "parameterSets": {
4
+        "New set 1": {
5
+            "air": "0.5",
6
+            "copper_height": "5",
7
+            "hole": "2",
8
+            "iron_d": "4",
9
+            "part": "cap",
10
+            "slit": "15",
11
+            "total_length": "50",
12
+            "wall": "0.80000000000000004"
13
+        },
14
+        "New set 2": {
15
+            "air": "0.5",
16
+            "copper_height": "5",
17
+            "hammer_flat": "false",
18
+            "hole": "2",
19
+            "iron_d": "4",
20
+            "part": "spool",
21
+            "slit": "15",
22
+            "total_length": "50",
23
+            "wall": "0.80000000000000004"
24
+        }
25
+    }
26
+}

+ 71
- 0
actuator.scad ファイルの表示

@@ -0,0 +1,71 @@
1
+$fa=1/1;
2
+$fs=1/2;
3
+bissl=1/2;
4
+part="spool";//[spool,cap,hammer,all]
5
+total_length=50;
6
+wall=0.8;
7
+air=0.5;
8
+copper_height=5;
9
+thick_wall=2*wall; //can be specified
10
+iron_d=4;
11
+iron_h=total_length/3; //can be changed, but this seems optimal
12
+spool_h=iron_h; //according to theory, optimum is a little more
13
+iron_travel=iron_h; //may be smaller with heavy beaters or returning springs
14
+extra_hold=iron_h/3;
15
+spool_id=iron_d+2*air;
16
+spool_od=spool_id+2*wall;
17
+cap_od=spool_od+2*copper_height;
18
+slit=15;
19
+hole=3;
20
+hammer_flat=true;
21
+module spool() {
22
+  difference() {
23
+    union() {
24
+      cylinder(d1=spool_od,d2=cap_od,h=thick_wall+iron_travel);
25
+      translate([0,0,iron_travel+thick_wall]) cylinder(d=spool_od,h=spool_h+extra_hold);
26
+    }
27
+    translate([0,0,thick_wall]) cylinder(d=spool_id,h=spool_h+iron_h+bissl+extra_hold);
28
+  }
29
+}
30
+module cap() {
31
+difference() {
32
+union() {
33
+cylinder(d=cap_od,h=thick_wall);
34
+translate([0,0,thick_wall])cylinder(d=spool_od+2*wall+2*air,h=extra_hold);
35
+translate([-cap_od/2,0,0])cube([cap_od,cap_od/2,thick_wall]);
36
+translate([-cap_od/2,cap_od/2,0])cube([cap_od,thick_wall,2*thick_wall+slit]);
37
+translate([-thick_wall/2,0,0])cube([thick_wall,cap_od/2,extra_hold+thick_wall]);
38
+}
39
+translate([0,0,-bissl])cylinder(d=spool_id,h=extra_hold+thick_wall+2*bissl);
40
+cylinder(d=spool_od+2*air,h=extra_hold);
41
+hull() {
42
+translate([cap_od/2-thick_wall-hole/2,cap_od/2+thick_wall/2,2*thick_wall+hole/2])rotate([90,0,0])cylinder (d=hole, h=thick_wall+bissl,center=true);
43
+translate([cap_od/2-thick_wall-hole/2,cap_od/2+thick_wall/2,slit])rotate([90,0,0])cylinder (d=hole, h=thick_wall+bissl,center=true);
44
+}
45
+hull() {
46
+translate([-cap_od/2+thick_wall+hole/2,cap_od/2+thick_wall/2,2*thick_wall+hole/2])rotate([90,0,0])cylinder (d=hole, h=thick_wall+bissl,center=true);
47
+translate([-cap_od/2+thick_wall+hole/2,cap_od/2+thick_wall/2,slit])rotate([90,0,0])cylinder (d=hole, h=thick_wall+bissl,center=true);
48
+}
49
+}
50
+}
51
+echo (cap_od-thick_wall*2-hole);
52
+module hammer() {
53
+if (hammer_flat) {
54
+cylinder(d=cap_od-2*air,h=thick_wall);
55
+translate([0,0,thick_wall]) cylinder(d1=cap_od-2*air,d2=iron_d,h=cap_od/2-iron_d/2-air/2);
56
+}
57
+else {
58
+cylinder(d2=cap_od/2,d1=iron_d,h=cap_od/4-iron_d/4);
59
+translate([0,0,cap_od/4-iron_d/4])cylinder(d=cap_od/2,h=thick_wall);
60
+translate([0,0,cap_od/4-iron_d/4+thick_wall]) cylinder(d1=cap_od/2,d2=iron_d,h=cap_od/4-iron_d/4);
61
+}
62
+translate([0,0,thick_wall+cap_od/2-iron_d/2-air/2]) cylinder(d=iron_d,h=1.5*iron_h);
63
+}
64
+if (part=="all") {
65
+spool();
66
+translate([0,0,spool_h+iron_h+bissl+air+thick_wall])cap();
67
+translate([0,0,total_length])mirror([0,0,1])hammer();
68
+}
69
+if (part=="spool") spool();
70
+if (part=="cap") cap();
71
+if (part=="hammer") hammer();

読み込み中…
キャンセル
保存