wiedźmin - pudełko na karty, dodałem dziurę w podstawie i pokrywce żeby dało się łatwiej podejrzeć karty neptune 4 camera mount - nowa kamera, do szafki BROR neptune 4 filament... - przesunąłem detektor filamentu do głowicy, więc te modele są helperami żeby 1. trzymać detektor oraz 2. trzymać obcinaczkę do filamentu Oliwka pierścień - dla taty Oliwki inny rozmiar Tłumik - dla seby thumb rest - 1911 ulepszony
79 lines
No EOL
2.3 KiB
OpenSCAD
79 lines
No EOL
2.3 KiB
OpenSCAD
include <BOSL2/std.scad>
|
|
include <BOSL2/screws.scad>
|
|
|
|
t = 2;
|
|
t2 = 4;
|
|
$fn = 36;
|
|
|
|
// connection to the camera
|
|
cam_out_width = 25;
|
|
cam_width = 15;
|
|
cam_hex = "M3";
|
|
cam_head_d = 5.5;
|
|
cam_screw_l = 23.5;
|
|
cam_hole_d = 4;
|
|
cam_clearance = 3;
|
|
|
|
// connection between parts
|
|
conn_clearance = 0.2;
|
|
conn_cam_distance = 25;
|
|
conn_wall_distance = 23;
|
|
conn_screw_d = 6;
|
|
|
|
// wall mount
|
|
mount_h = 20;
|
|
mount_screw_d = 5;
|
|
mount_bror_dist = 17;
|
|
mount_bror_width = 5;
|
|
|
|
|
|
// NOT EDIT: helper functions
|
|
cam_out_width2 = (cam_out_width - cam_width)/2;
|
|
h = cam_hole_d + 2*t;
|
|
|
|
// connection to the camera
|
|
yrot(90) difference() {
|
|
// body
|
|
union() {
|
|
cyl(h=cam_out_width, d=h);
|
|
cuboid([h,h,cam_out_width], anchor=FWD);
|
|
}
|
|
// cutout from the middle
|
|
cyl(h=cam_width, d=h + cam_clearance);
|
|
// hole for the screw
|
|
cyl(h=cam_out_width+t, d=cam_hole_d);
|
|
// hole for the screw heads: hex and round
|
|
up(cam_screw_l/2) cyl(d=cam_head_d, h=cam_out_width2, anchor=BOTTOM);
|
|
down(cam_screw_l/2) nut(spec=cam_hex, thickness=cam_out_width2, anchor=TOP);
|
|
}
|
|
|
|
// connection between parts
|
|
back(conn_cam_distance) difference() {
|
|
// main body
|
|
union() {
|
|
cyl(h=h, d=cam_out_width);
|
|
up(h/2) cuboid([cam_out_width,conn_cam_distance - h,h/2-conn_clearance], anchor=TOP+BACK);
|
|
down(h/2) cuboid([cam_out_width,conn_wall_distance - t,h/2-conn_clearance], anchor=BOTTOM+FWD);
|
|
}
|
|
// slit in the middle
|
|
cyl(h=conn_clearance, d=cam_out_width*2);
|
|
// hole for screw
|
|
cyl(h=h, d=conn_screw_d);
|
|
}
|
|
|
|
// wall mount
|
|
back(conn_cam_distance + conn_wall_distance) difference() {
|
|
union() {
|
|
// bottom chamfer
|
|
down(conn_clearance) cuboid([cam_out_width,t2,2*t], anchor=BOTTOM+BACK, rounding=-2*t, edges=BOTTOM+FWD);
|
|
// wall mount body
|
|
down(h/2) cuboid([cam_out_width,t2,mount_h+h/2],anchor=BOTTOM+BACK, rounding=cam_out_width/2, edges=[TOP+LEFT, TOP+RIGHT]);
|
|
}
|
|
// hole for screw
|
|
up(mount_h/2 - t) xrot(90) cyl(h=t2, d=mount_screw_d, anchor=BOTTOM, chamfer2=-1);
|
|
// holes for Ikea BROR mount
|
|
up(mount_screw_d) left(mount_bror_dist/2)
|
|
fwd(t2/2) wedge([mount_h,mount_bror_width,mount_bror_width], anchor=TOP+FWD, orient=LEFT);
|
|
up(mount_screw_d) yrot(180) fwd(t2/2) left(mount_bror_dist/2) wedge([mount_h,mount_bror_width,mount_bror_width], anchor=TOP+FWD, orient=LEFT);
|
|
|
|
} |