summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--body/Modular profile 20x20 - 973094/LICENSE.txt1
-rw-r--r--body/Modular profile 20x20 - 973094/README.txt4
-rw-r--r--body/Modular profile 20x20 - 973094/files/Profilo_20x20_L50.stlbin0 -> 341384 bytes
-rw-r--r--body/body.scad55
-rw-r--r--body/body_config.scad37
-rw-r--r--body/holes.scad32
-rw-r--r--body/noctua_nf_a4x20.scad2
-rw-r--r--body/radxa_zero_3e.scad27
-rw-r--r--body/stand.scad69
-rw-r--r--body/veye_imx287.scad2
10 files changed, 172 insertions, 57 deletions
diff --git a/body/Modular profile 20x20 - 973094/LICENSE.txt b/body/Modular profile 20x20 - 973094/LICENSE.txt
new file mode 100644
index 0000000..4cfe772
--- /dev/null
+++ b/body/Modular profile 20x20 - 973094/LICENSE.txt
@@ -0,0 +1 @@
+This thing was created by Thingiverse user RES3D, and is licensed under Creative Commons - Attribution - Share Alike \ No newline at end of file
diff --git a/body/Modular profile 20x20 - 973094/README.txt b/body/Modular profile 20x20 - 973094/README.txt
new file mode 100644
index 0000000..d59e1cb
--- /dev/null
+++ b/body/Modular profile 20x20 - 973094/README.txt
@@ -0,0 +1,4 @@
+Modular profile 20x20 by RES3D on Thingiverse: https://www.thingiverse.com/thing:973094
+
+Summary:
+Modular profile to create complex frames. \ No newline at end of file
diff --git a/body/Modular profile 20x20 - 973094/files/Profilo_20x20_L50.stl b/body/Modular profile 20x20 - 973094/files/Profilo_20x20_L50.stl
new file mode 100644
index 0000000..7fee22d
--- /dev/null
+++ b/body/Modular profile 20x20 - 973094/files/Profilo_20x20_L50.stl
Binary files differ
diff --git a/body/body.scad b/body/body.scad
index 94d25c7..cd9bd69 100644
--- a/body/body.scad
+++ b/body/body.scad
@@ -337,7 +337,7 @@ module cam_and_lense()
screw_hole(
m = m2,
id = id,
- il = hole_insert_height * 2,
+ il = m2_hole_insert_height * 2,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_top);
@@ -391,7 +391,7 @@ module laser_holder_screw_holes()
screw_hole(
m = m2,
id = id,
- il = hole_insert_height * 2,
+ il = m2_hole_insert_height * 2,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_bottom);
@@ -412,7 +412,7 @@ module cam_lense_holder_screw_holes()
screw_hole(
m = m2,
id = id,
- il = hole_insert_height,
+ il = m2_hole_insert_height,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_front);
@@ -668,6 +668,22 @@ module other()
%radxa();
}
+module body_to_print()
+{
+ difference()
+ {
+ scanner_main_frame();
+ camera_hole();
+ laser_glass_hole();
+ laser_holder_screw_holes();
+ //m12_connectors();
+ m12_connectors_to_cut();
+ cam_lense_holder_screw_holes();
+ //body_fan_holes();
+ radxa_body_cutter();
+ }
+}
+
// visual block
// visualize camera
@@ -691,25 +707,14 @@ module other()
}
}
-union()
+*union()
{
other();
*cam_lense_holder_screw_holes();
- color("green", 0.1)
- difference()
- {
- scanner_main_frame();
- camera_hole();
- laser_glass_hole();
- laser_holder_screw_holes();
- m12_connectors_to_cut();
- //m12_connectors_to_cut();
- cam_lense_holder_screw_holes();
- //body_fan_holes();
- radxa_body_cutter();
- }
+ color("green", 0.4)
+ body_to_print();
%m12_connectors();
//m12_connectors_to_cut();
}
@@ -726,19 +731,6 @@ union()
}
}
-// printing body
-*difference()
-{
- scanner_main_frame();
- camera_hole();
- laser_glass_hole();
- laser_holder_screw_holes();
- //m12_connectors();
- m12_connectors_to_cut();
- //body_fan_holes();
- radxa_body_cutter();
-}
-
*translate([0, -$laserZOffsetMm, 0])
{
%laser_body();
@@ -747,4 +739,5 @@ union()
//m12_connectors();
//m12_connectors_to_cut();
-//radxa_body_cutter(); \ No newline at end of file
+//radxa_body_cutter();
+//body_to_print(); \ No newline at end of file
diff --git a/body/body_config.scad b/body/body_config.scad
new file mode 100644
index 0000000..44ab49f
--- /dev/null
+++ b/body/body_config.scad
@@ -0,0 +1,37 @@
+include <design.scad>
+
+// laser
+default_laser_d = 14;
+default_laser_l = 45;
+default_laser_holder_padding = [4, 1.5, 1.5];
+
+// d - laser body diameter
+// l - laser body length
+// padding - see `laser_holder_wo_holes` for details
+function laser_holder_size(
+ d = default_laser_d,
+ l = 45,
+ padding = default_laser_holder_padding) = ([d, l / 2, d] + padding * 2);
+
+// main frame size
+// in scanner coords
+// inner height is a bit random
+// TODO: choose constant size to use one frame for
+// many similar ranges
+main_frame_height_y = 150;
+main_frame_width_x = 34;
+main_frame_depth_z = 56;
+
+// wall and wall thickness
+$sbfwo = $scannerBodyFrontWallOffsetMm;
+$wawt = -$scannerBodyFrontWallOffsetMm + $scannerBodyWallThicknessMm;
+wt = $scannerBodyWallThicknessMm;
+wzo = $scannerBodyFrontWallOffsetMm;
+fwo = -wzo;
+back_wall_offset = fwo - main_frame_depth_z;
+bwo = back_wall_offset;
+top_wall_offset = -laser_holder_size()[2] / 2 + main_frame_height_y;
+two = top_wall_offset;
+
+// scanner coords
+fan_y_offset = 80; \ No newline at end of file
diff --git a/body/holes.scad b/body/holes.scad
index 5074ddc..86a503a 100644
--- a/body/holes.scad
+++ b/body/holes.scad
@@ -19,10 +19,14 @@ m2_head_diameter = 3.75;
m2_head_height = 1.9;
m2 = 2;
+m4_head_diameter = 6.8;
+m4_head_height = 3.9;
+m4 = 4;
+
// some default values
// TODO: propagate everywhere
-hole_insert_height = 4;
-hole_insert_diameter = 4;
+m2_hole_insert_height = 4;
+m2_hole_insert_diameter = 4;
padding_around_insert = 2;
@@ -149,13 +153,13 @@ module screw_hole(m, id, il, hd, hh, hs, wt = $scannerBodyWallThicknessMm)
}
}
-function padded_hole_d(hd = hole_insert_diameter) =
+function padded_hole_d(hd = m2_hole_insert_diameter) =
hd + padding_around_insert * 2;
// h - height
// hd - hole diameter
// TODO: support usual holes, not only hot inserts
-module hole_holder(h, hd = hole_insert_diameter)
+module hole_holder(h, hd = m2_hole_insert_diameter)
{
d = padded_hole_d(hd);
cube_size = [d * 2, d / 2, h];
@@ -187,12 +191,14 @@ module hole_holder(h, hd = hole_insert_diameter)
// hs - hole side, see values above for details
module hole_holder_hot_inserts(
h = main_frame_width_x,
- hd = hole_insert_diameter,
+ hd = m2_hole_insert_diameter,
hs)
{
d = hd + padding_around_insert * 2;
rotate(hs)
+ // TODO: rewrite or create new holes closer to walls (d / 2)
+ //translate([0, 0, -d / 2])
difference()
{
hole_holder(h = h, hd = hd);
@@ -204,7 +210,7 @@ module hole_holder_hot_inserts(
screw_hole(
m = m2,
id = hd,
- il = hole_insert_height,
+ il = m2_hole_insert_height,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_left);
@@ -213,7 +219,7 @@ module hole_holder_hot_inserts(
screw_hole(
m = m2,
id = hd,
- il = hole_insert_height,
+ il = m2_hole_insert_height,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_right);
@@ -223,17 +229,19 @@ module hole_holder_hot_inserts(
*hole_holder_hot_inserts(
h = main_frame_width_x,
- hd = hole_insert_diameter,
+ hd = m2_hole_insert_diameter,
hs = hole_side_top);
*screw_hole(
m = m2,
- id = hole_insert_diameter,
- il = hole_insert_height * 2,
+ id = m2_hole_insert_diameter,
+ il = m2_hole_insert_height * 2,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_bottom);
-
+
//front_glass_hole(gw = 26.6, gh = 19.6, gt = 2, gcr = 1);
+//front_glass_hole(gw = 26.6, gh = 19.6, gt = 2, gcr = 1);
+
+//screw_hole(2);
-//screw_hole(2); \ No newline at end of file
diff --git a/body/noctua_nf_a4x20.scad b/body/noctua_nf_a4x20.scad
index 5d3a2a0..23e3dd8 100644
--- a/body/noctua_nf_a4x20.scad
+++ b/body/noctua_nf_a4x20.scad
@@ -42,7 +42,7 @@ module ld3007ms_holes()
screw_hole(
m = m2,
id = 4,
- il = hole_insert_height * 2,
+ il = m2_hole_insert_height * 2,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_back);
diff --git a/body/radxa_zero_3e.scad b/body/radxa_zero_3e.scad
index b5eca5f..d7eb353 100644
--- a/body/radxa_zero_3e.scad
+++ b/body/radxa_zero_3e.scad
@@ -104,8 +104,8 @@ module radxa_zero_3e_mount_plate()
outer_cyl_delta = so - oshd / 2;
ocd = outer_cyl_delta;
bph = radxa_zero_3e_mount_plate_h;
- hih = hole_insert_height;
- hid = hole_insert_diameter;
+ hih = m2_hole_insert_height;
+ hid = m2_hole_insert_diameter;
echo("radxa_zero_3e_pcb_distance_between_holes_h: ", radxa_zero_3e_pcb_distance_between_holes_h);
echo("dbhh: ", dbhh);
@@ -144,16 +144,19 @@ module radxa_zero_3e_mount_plate()
// fan: distance between holes
fdbh = ld3007ms_distance_between_holes;
- // fan/plate hole holders
- fan_plate_hole_holder_h = hih - bph;
- fphhh = fan_plate_hole_holder_h;
- translate([0, 0, -shh / 2])
- translate([0, -radxa_zero_3e_fan_hole_offset / 2 - (oshd - hid), -fphhh / 2])
- for (xo = [-fdbh / 2, fdbh / 2], yo = [0, 0 - fdbh])
+ //hull()
{
- //translate([-dbhw / 2, -so, 0])
- translate([xo, yo, 0])
- cylinder($fn = dToFn(oshd), d = oshd, h = fphhh, center = true);
+ // fan/plate hole holders
+ fan_plate_hole_holder_h = hih - bph;
+ fphhh = fan_plate_hole_holder_h;
+ translate([0, 0, -shh / 2])
+ translate([0, -radxa_zero_3e_fan_hole_offset / 2 - (oshd - hid), -fphhh / 2])
+ for (xo = [-fdbh / 2, fdbh / 2], yo = [0, 0 - fdbh])
+ {
+ //translate([-dbhw / 2, -so, 0])
+ translate([xo, yo, 0])
+ cylinder($fn = dToFn(oshd), d = oshd, h = fphhh, center = true);
+ }
}
}
}
@@ -179,7 +182,7 @@ module radxa_zero_3e_mount_plate_holes()
dbhw = radxa_zero_3e_pcb_distance_between_holes_w;
dbhh = radxa_zero_3e_pcb_distance_between_holes_h;
so = radxa_zero_3e_pcb_screw_offset;
- hid = hole_insert_diameter;
+ hid = m2_hole_insert_diameter;
// fan holes
translate([0, -radxa_zero_3e_fan_hole_offset, 0])
diff --git a/body/stand.scad b/body/stand.scad
new file mode 100644
index 0000000..8b801e4
--- /dev/null
+++ b/body/stand.scad
@@ -0,0 +1,69 @@
+include <helpers.scad>
+include <holes.scad>
+
+// 80 35 15
+
+// screw holes on back plate
+// 42.5 47.5
+
+// back plate height from profile 47, thickness 10
+// full h 67
+back_plate_s = [80, 10, 67];
+bps = back_plate_s;
+// dist bitw back plate and back screw holder 26
+bp_bsh_dist = 26;
+
+// openscad y is scanner z, and wise versa
+back_screw_holder_s = [80, 15, 35];
+bshs = back_screw_holder_s;
+
+// for base part mounted on profiles
+base_wall_thickness = 10;
+bwt = base_wall_thickness;
+
+side_wall_s = [bwt, 50, 55];
+sws = side_wall_s;
+
+module profile_20x20x50()
+{
+ scale([1, 1, 2])
+ translate([-0.06, -61, -10])
+ import("Modular profile 20x20 - 973094/files/Profilo_20x20_L50.stl");
+}
+
+// back plate/motor holder
+color("black", 0.5)
+translate([0, -bps[1] / 2, bps[2] / 2 - 20])
+cube(bps, center = true);
+
+// back screw holder
+color("black", 0.5)
+translate([0, bshs[1] / 2 + bp_bsh_dist, bshs[2] / 2])
+cube(bshs, center = true);
+
+// profiles base
+color("grey")
+{
+ translate([-(bshs[0] - 20) / 2, 0, -20 / 2])
+ rotate([-90, 0, 0])
+ profile_20x20x50();
+
+ translate([(bshs[0] - 20) / 2, 0, -20 / 2])
+ rotate([-90, 0, 0])
+ profile_20x20x50();
+}
+
+// base
+color("orange", 0.4)
+union()
+{
+ translate([-sws[0] / 2 - bshs[0] / 2, sws[1] / 2, sws[2] / 2 - 20])
+ cube(sws, center = true);
+
+ translate([sws[0] / 2 + bshs[0] / 2, sws[1] / 2, sws[2] / 2 - 20])
+ cube(sws, center = true);
+
+ top_s = [bshs[0] + bwt * 2, sws[1], bwt];
+ translate([0, top_s[1] / 2, top_s[2] / 2 + bshs[2]])
+ cube(top_s, center = true);
+} \ No newline at end of file
diff --git a/body/veye_imx287.scad b/body/veye_imx287.scad
index aed7db0..dd414bf 100644
--- a/body/veye_imx287.scad
+++ b/body/veye_imx287.scad
@@ -249,7 +249,7 @@ module veye_imx287_mount_holes()
screw_hole(
m = m2,
id = id,
- il = hole_insert_height,
+ il = m2_hole_insert_height,
hd = m2_head_diameter,
hh = m2_head_height,
hs = hole_side_back);