pliki
42
Admin/sluchawki.scad
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
include <BOSL2/std.scad>
|
||||
include <BOSL2/screws.scad>
|
||||
|
||||
h = 190;
|
||||
w = 50;
|
||||
t = 10;
|
||||
d = 100;
|
||||
top_d = 150;
|
||||
|
||||
$fn=36*5;
|
||||
|
||||
// main vertical part
|
||||
cuboid([w,t,h]);
|
||||
|
||||
// bottom
|
||||
down(h/2 - t/2) fwd(d/2) difference() {
|
||||
cuboid([w,d,t]);
|
||||
for(i=[-w/3, w/3]) {
|
||||
for(j=[0, d/3]) {
|
||||
left(i) fwd(j) screw_hole("M4,10", head="flat");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bot_d = 30;
|
||||
up(bot_d/2) fwd(bot_d/2) down(h/2 - t/2) difference() {
|
||||
cuboid([w,bot_d,bot_d]);
|
||||
xrot(45) up(bot_d + 2) cuboid([bot_d*2,bot_d*2,bot_d*2]);
|
||||
//up(bot_d/2 + t/2) fwd(bot_d/2 + t/2) yrot(90) cyl(d=bot_d*2, h=w+1);
|
||||
}
|
||||
|
||||
// top
|
||||
up(h/2 - t/2) up(top_d/(sqrt(2)*2)) difference() {
|
||||
union() {
|
||||
yrot(90) fwd(top_d/3) cyl(d=top_d, h=w);
|
||||
down(w) fwd(w/2) cuboid([w,w,w]);
|
||||
down(w/2) fwd(5) xrot(45) cuboid([w,w*2,w*2]);
|
||||
}
|
||||
yrot(90) fwd(top_d/3) cyl(d=top_d - t*2, h=w + 1);
|
||||
up(top_d/5.6) cuboid([top_d*2,top_d*2,top_d]);
|
||||
back(50) cuboid([w+1,100,h]);
|
||||
}
|
||||
59
Artur/neuroshima_hex.scad
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
include <BOSL2/std.scad>
|
||||
include <BOSL2/screws.scad>
|
||||
|
||||
$slop=0.5;
|
||||
$fn=36;
|
||||
|
||||
in_d = 37;
|
||||
thread = "M45x3,80";
|
||||
in_h = 80;
|
||||
t = 3;
|
||||
|
||||
th_h = 10;
|
||||
cap_h = 12;
|
||||
|
||||
out_d = in_d + 2*t;
|
||||
|
||||
cap_d = 50;
|
||||
cap_n = 24; // how many cutouts on edge
|
||||
|
||||
hole_d = 15;
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
down(th_h/2) cyl(h=in_h - th_h, d=in_d + 2*t, rounding1=2);
|
||||
up(th_h/2) screw(thread);
|
||||
}
|
||||
down(th_h) difference() {
|
||||
cyl(h=in_h, d=out_d*2);
|
||||
cyl(h=in_h, d=out_d);
|
||||
}
|
||||
// inside hollow
|
||||
up(t) cyl(d=in_d, h=in_h);
|
||||
// cutoff at the top
|
||||
up(50 + in_h/2 + t/2)cuboid([100,100,100]);
|
||||
// hole in the bottom
|
||||
down(in_h/2 - t/2) cyl(h=t+0.1, d=hole_d, rounding=-1);
|
||||
}
|
||||
|
||||
right(100) union() {
|
||||
difference() {
|
||||
union() {
|
||||
nut(thread, thickness=th_h, bevel=false, ibevel=false, anchor=CENTER);
|
||||
up(th_h/2 + t/2) cyl(h=t, d=cap_d, rounding2=2);
|
||||
difference() {
|
||||
down(cap_h/2) cyl(d=cap_d, h=cap_h, rounding=2);
|
||||
down(cap_h/2) cyl(d=in_d+2*t+1, h=cap_h+1);
|
||||
}
|
||||
}
|
||||
difference() {
|
||||
cyl(d=cap_d*2, h=100);
|
||||
cyl(d=cap_d, h=101);
|
||||
}
|
||||
for(i = [0 : 360 / cap_n : 360]) {
|
||||
zrot(i) left(cap_d/2) cyl(h=cap_h*2);
|
||||
}
|
||||
// hole
|
||||
up(th_h/2 + t/2) cyl(h=t+0.1, d=hole_d, rounding=-1);
|
||||
}
|
||||
}
|
||||
BIN
Dom/minecraft_lantern/Assembly_Guide_-_Updated.pdf
Normal file
|
|
@ -0,0 +1 @@
|
|||
This thing was created by Thingiverse user lemonfoxmere, and is licensed under Creative Commons - Attribution - Share Alike
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
Minecraft Lantern Night Light by lemonfoxmere on Thingiverse: https://www.thingiverse.com/thing:6843856
|
||||
|
||||
Summary:
|
||||
Tired of your mundane and normal looking night lights? Now you can have a Minecraft lantern as a night light!Unlike most Minecraft lantern designs here, this one works with any standard light bulb. This means that if you want to turn this lamp into a smart IoT one, you can just install a smart bulbs like the Nanoleaf A19 Essential.However, since this uses city voltage, you need to be careful building this thing. Double-check all your connections before plugging it in, and make sure all your components can handle the current that you'll be putting it through. I’m not responsible if you accidentally burn your house down with it.For instructions on how to build this thing, check Assembly Guide.pdf. If you want to make some sort of remix of this, here is also the CAD file on onshape.
|
||||
|
After Width: | Height: | Size: 2 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1,014 KiB |
|
After Width: | Height: | Size: 391 KiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 530 KiB |
|
After Width: | Height: | Size: 1.9 MiB |
19
Dom/minecraft_lantern/oprawka.scad
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
include <BOSL2/std.scad>
|
||||
// oprawka
|
||||
|
||||
slop = 1;
|
||||
|
||||
d = 37 + slop;
|
||||
cyl_h = 41;
|
||||
top_d = 20 + slop;
|
||||
top_h = 21;
|
||||
top_d1 = 14 + slop;
|
||||
top_d2 = 10 + slop;
|
||||
h = 78;
|
||||
|
||||
$fn=36*2;
|
||||
|
||||
down(cyl_h/2) cyl(d=d, h=cyl_h);
|
||||
sphere(d=d);
|
||||
up(d/2) down(3) cyl(d=top_d, h=2);
|
||||
up(d/2 + top_h/2) down(3) cyl(h=top_h, d1=top_d1, d2=top_d2);
|
||||
66
Dom/stojak_golarka.scad
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
// stojak na golarkę i pędzel
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
h = 50;
|
||||
t = 5;
|
||||
razor_dist = 10;
|
||||
razor_w = 11;
|
||||
brush_dist = 15;
|
||||
brush_w = 32;
|
||||
dlugosc = razor_w + brush_w + 6*t;
|
||||
top_valley = 8;
|
||||
|
||||
slop = 0.3;
|
||||
$fn = 36;
|
||||
|
||||
szer = razor_w>brush_w ? razor_w+2*t : brush_w+2*t;
|
||||
|
||||
// podstawka
|
||||
union() {
|
||||
// dół
|
||||
union() {
|
||||
cuboid([t*4,szer,t], rounding=t/2)
|
||||
left((razor_dist+razor_w*6/4)/2)
|
||||
cuboid([razor_dist+razor_w*6/4,szer,t], rounding=t/2);
|
||||
right((brush_dist+brush_w)/2)
|
||||
cuboid([brush_dist+brush_w,szer,t], rounding=t/2);
|
||||
}
|
||||
// pion
|
||||
round3d(t/2) {
|
||||
up(h/2) cuboid([t, szer-t, h], rounding=-15, edges=[BOT+RIGHT, BOT+LEFT]);
|
||||
}
|
||||
up(h) cuboid([t, szer-t, t], rounding=t/2, edges="Z");
|
||||
// połączenia
|
||||
up(h+t) back(szer/4) cuboid([t,t,t], rounding=1, edges=TOP);
|
||||
up(h+t) fwd(szer/4) cuboid([t,t,t], rounding=1, edges=TOP);
|
||||
}
|
||||
|
||||
// góra
|
||||
back(szer*2) difference() {
|
||||
// góra
|
||||
union() {
|
||||
left(razor_dist-brush_dist)
|
||||
cuboid([(razor_dist+brush_dist),szer,t], rounding=t/2);
|
||||
left((razor_dist+razor_w)/2)
|
||||
cuboid([razor_dist+razor_w,szer,t], rounding=t/2);
|
||||
right((brush_dist+brush_w)/2)
|
||||
cuboid([brush_dist+brush_w,szer,t], rounding=t/2);
|
||||
}
|
||||
// dziury na połączenia
|
||||
back(szer/4) cuboid([t+slop,t+slop,t+slop], rounding=-1, edges=BOT);
|
||||
fwd(szer/4) cuboid([t+slop,t+slop,t+slop], rounding=-1, edges=BOT);
|
||||
// dziura na golarkę
|
||||
left(razor_dist + razor_w/2) union() {
|
||||
cyl(h=t+slop, d=razor_w, rounding=-2);
|
||||
left(dlugosc/2) cuboid([dlugosc, razor_w, t+slop], rounding=-2, edges="X");
|
||||
up((top_valley*razor_w/2)/2) xrot(90)
|
||||
cyl(h=szer, d=top_valley*razor_w/2, $fn=$fn*2);
|
||||
}
|
||||
// dziura na pędzel
|
||||
right(brush_dist+brush_w/2) union() {
|
||||
cyl(h=t+slop, d=brush_w, rounding=-2);
|
||||
right(dlugosc/2) cuboid([dlugosc, brush_w, t+slop], rounding=-2, edges="X");
|
||||
up((top_valley*brush_w/2)/2) xrot(90)
|
||||
cyl(h=szer, d=top_valley*brush_w/2, $fn=$fn*2);
|
||||
}
|
||||
}
|
||||
28
Neptune4/roll_holder.scad
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
include <BOSL2/std.scad>
|
||||
include <BOSL2/screws.scad>
|
||||
d1 = 80;
|
||||
d2 = 10;
|
||||
h = 30;
|
||||
t = 5;
|
||||
|
||||
thread = "";
|
||||
|
||||
$fn = 360;
|
||||
$slop = 0.3;
|
||||
|
||||
difference() {
|
||||
cyl(h=h, d=struct_val(screw_info("M6"),"diameter") + 2);
|
||||
// thread
|
||||
screw_hole(spec="M8", l=100, thread=true);
|
||||
}
|
||||
|
||||
difference() {
|
||||
cyl(d1=d1, d2=d2, h=h);
|
||||
screw_hole(spec="M8", l=100, thread=true);
|
||||
for(i=[0:3]) {
|
||||
zrot(120*i) left(d1/3) cyl(h=h+1, d=d1/2);
|
||||
zrot(120*i + 30) left(d1/2) cuboid([20,10,100]);
|
||||
zrot(120*i - 30) left(d1/2) cuboid([20,10,100]);
|
||||
}
|
||||
// cyl(d1=t*(d2-d1)/h + d1 - 2*t, d2=(h-t)*(d2-d1)/h + d1 - 2*t, h=h-2*t);
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// The following should be editable within reason to adjust for container and phone size
|
||||
|
||||
$fn=50; // number of facets to the cylinders - basically level of detail
|
||||
$fn=360; // number of facets to the cylinders - basically level of detail
|
||||
|
||||
drink_rad = 46; // radius of drink container - allow some wiggle room
|
||||
phone_width = 100/2; // width of phone - allow some wiggle room
|
||||
|
|
|
|||
|
|
@ -1,21 +1,24 @@
|
|||
include <BOSL2/std.scad>
|
||||
wys = 500;
|
||||
szer = 80;
|
||||
t = 7.5;
|
||||
szer = 60;
|
||||
t1 = 10;
|
||||
t2 = 6;
|
||||
|
||||
spike_h = 25;
|
||||
|
||||
ile=10;
|
||||
|
||||
$fn=36;
|
||||
|
||||
// paliki
|
||||
cylinder(h=wys, d=t);
|
||||
left(szer) cylinder(h=wys, d=t);
|
||||
cylinder(h=wys, d=t1);
|
||||
left(szer) cylinder(h=wys, d=t1);
|
||||
// drabinka
|
||||
for(i=[0:1:ile]) {
|
||||
up(i*(wys/ile)) yrot(-90) cylinder(d=t, h=szer);
|
||||
for(i=[2:1:ile]) {
|
||||
up(i*(wys/ile)) yrot(-90) cylinder(d=t2, h=szer);
|
||||
}
|
||||
// zaokrąglenie rogów
|
||||
up() left() sphere(d=t);
|
||||
up() left(szer) sphere(d=t);
|
||||
up(wys) left() sphere(d=t);
|
||||
up(wys) left(szer) sphere(d=t);
|
||||
down(spike_h/2) left() cyl(h=spike_h, d2=t1, d1=0);
|
||||
down(spike_h/2) left(szer) cyl(h=spike_h, d2=t1, d1=0);
|
||||
up(wys) left() sphere(d=t1);
|
||||
up(wys) left(szer) sphere(d=t1);
|
||||
23
Oliwka/drabinka2.scad
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
include <BOSL2/std.scad>
|
||||
|
||||
angle = 5;
|
||||
|
||||
wys = 500;
|
||||
szer = 80;
|
||||
t1 = 15;
|
||||
t2 = 7.5;
|
||||
spike_h = 20;
|
||||
|
||||
ile=10;
|
||||
|
||||
$fn=36;
|
||||
|
||||
for(i=[0,180]) {
|
||||
zrot(i) union() {
|
||||
left(szer/2) yrot(-angle) up(wys/2) cyl(h=wys, d=t1, rounding2=t1/2);
|
||||
left(szer/2) yrot(-angle) down(spike_h/2) cyl(h=spike_h, d2=t1, d1=0);
|
||||
for(j=[2:1:ile]) {
|
||||
up(j*((wys-t2*0.7)/ile)) yrot(-90) cyl(d=t2, h=2*(szer + t2), rounding=t2/2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -59,7 +59,7 @@ left(d*2) union() {
|
|||
down(h/2) difference() {
|
||||
union() {
|
||||
cyl(d=d-t*2 - conn_slop, h=conn_h*2);
|
||||
up(conn_h/2) cyl(d=d-t*2, h=conn_h);
|
||||
up(conn_h/2) cyl(d=d, h=conn_h);
|
||||
up(conn_h/2) cuboid([d,t,conn_h]);
|
||||
}
|
||||
difference() {
|
||||
|
|
@ -71,3 +71,35 @@ left(d*2) union() {
|
|||
down(h/2) up(conn_h/2) fwd(t/2) cuboid([d,t*2,conn_h]);
|
||||
|
||||
}
|
||||
|
||||
but_d = 35;
|
||||
but_h = 28;
|
||||
but_cap = 16;
|
||||
|
||||
// na butelke
|
||||
left(d*4) union() {
|
||||
down(h/2) difference() {
|
||||
union() {
|
||||
cyl(d=d-t*2 - conn_slop, h=conn_h*2);
|
||||
up(conn_h/2) cyl(d=d, h=conn_h);
|
||||
up(conn_h/2) cuboid([d,t,conn_h]);
|
||||
}
|
||||
difference() {
|
||||
cyl(d=d-t*4, h=conn_h*2 + 1);
|
||||
fwd(t) cuboid([d,t,conn_h]*2);
|
||||
}
|
||||
left(d/2+0.1) down(h+0.1) fwd(t/2 + conn_slop) cube([d+1, d+1, h*2+1]);
|
||||
}
|
||||
down(h/2) up(conn_h/2) fwd(t/2) cuboid([d,t*2,conn_h]);
|
||||
|
||||
// na butelke dziura
|
||||
down(h/2) up(conn_h*3/4) difference() {
|
||||
union() {
|
||||
cyl(d=d, h=conn_h/2);
|
||||
up(but_h/2) fwd(d/4) cyl(d=but_d + 2*t, h=but_h);
|
||||
}
|
||||
left(d/2+0.1) down(h+0.1) fwd(t/2 + conn_slop) cube([d+1, d+1, h*2+1]);
|
||||
up(but_h/2) fwd(d/4) cyl(d=but_d, h=but_h+10);
|
||||
up(but_h/2) cuboid([but_cap,d/4,but_h+1]);
|
||||
}
|
||||
}
|
||||
|
|
@ -17,13 +17,13 @@ include <BOSL2/std.scad>
|
|||
include <BOSL2/screws.scad>
|
||||
|
||||
test = 0; // 1 for exploded view
|
||||
$fn=36;
|
||||
$fn=36*5;
|
||||
|
||||
// overall dimensions
|
||||
len = 200;
|
||||
out_d = 22;
|
||||
t = 2;
|
||||
bullet_hole = 6; // for .22lr 5.6mm + some spare
|
||||
bullet_hole = 7.5; // for .22lr 5.6mm + some spare
|
||||
|
||||
// threaded portion
|
||||
th_len = 20;
|
||||
|
|
|
|||
27
Sasza/dyfuzor_emisar.scad
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
include <BOSL2/std.scad>
|
||||
|
||||
// latarka = ["D4", 28];
|
||||
// latarka = ["D1", 35];
|
||||
// latarka = ["DM11", 40];
|
||||
latarka = ["K1", 72.3];
|
||||
|
||||
od = latarka[1];
|
||||
txt = latarka[0];
|
||||
t = 2;
|
||||
top_t = 0.75;
|
||||
|
||||
h = 20;
|
||||
step_h = 12;
|
||||
$fn=360;
|
||||
|
||||
difference() {
|
||||
cyl(h=step_h, d=od+2*t);
|
||||
cyl(h=step_h+0.01, d1=od+0.5, d2=od, rounding1=-1, chamfer2=1);
|
||||
xrot(90) up(50 + od/2 + t/2) text3d(txt, h=100, center=true, size=step_h-1);
|
||||
}
|
||||
|
||||
up(step_h/2) difference() {
|
||||
sphere(d=od+2*t);
|
||||
sphere(d=od+2*t - 2*top_t);
|
||||
down(50) cuboid([100,100,100]);
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ in_length = 40;
|
|||
in_h=36.9; // including the half-circle
|
||||
in_h2=36.0;
|
||||
|
||||
in_hole_d=11.0;
|
||||
in_hole_d=10.5;
|
||||
in_hole_dist = 15; // hole distance from the end cap
|
||||
in_hole_h = 20 + 5; // +5 for clearance
|
||||
|
||||
|
|
|
|||
86
Sasza/wyzwanie_od_Artura.scad
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
include <BOSL2/std.scad>
|
||||
include <BOSL2/threading.scad>
|
||||
|
||||
module tube(d_in, d_out, h) {
|
||||
difference() {
|
||||
cyl(d=d_out, h=h);
|
||||
cyl(d=d_in, h=h+1);
|
||||
}
|
||||
}
|
||||
|
||||
module part4() {
|
||||
spur_gear(mod=2,teeth=17, thickness=15);
|
||||
// longer part
|
||||
down(15/2) union() {
|
||||
down(21/2 - 1) cyl(h=21 + 2, d=20, rounding=1/2);
|
||||
down(21+11/2 + 1/2) cyl(h=11, d=20, rounding=1/2);
|
||||
// shaft
|
||||
down(132/2) difference() {
|
||||
cyl(d=18, h=132);
|
||||
down(75/2)left(4/2 + 7) cuboid([4,4,75]);
|
||||
}
|
||||
}
|
||||
//shorter part
|
||||
up(15/2) union() {
|
||||
up(5/2 - 1) cyl(h=5 + 2, d=20, rounding=1/2);
|
||||
up(5 + 1 + 10/2) cyl(h=10, d=20, rounding=1/2);
|
||||
up(5)cyl(h=10, d=18);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module gear_holes(teeth, indent, h_num, h1, h1d, h2, h2d, cd1, cd2, ch) {
|
||||
difference() {
|
||||
spur_gear(mod=2, teeth=teeth, thickness=15);
|
||||
// middle hole
|
||||
cyl(d=30, h=15);
|
||||
// indent
|
||||
up(15/2) cyl(d=indent, h=7, rounding=0.5);
|
||||
down(15/2) cyl(d=indent, h=7, rounding=0.5);
|
||||
// holes
|
||||
for(i=[0:360/h_num:360]) {
|
||||
zrot(i) left(h1/2) cyl(d=h1d, h=15);
|
||||
zrot(30 + i) left(h2/2) cyl(d=h2d, h=15);
|
||||
}
|
||||
}
|
||||
difference() {
|
||||
cyl(d=cd1, h=15);
|
||||
difference() {
|
||||
cyl(d=cd2, h=15+1);
|
||||
left(50/2 + ch/2) cuboid([50,50,50]);
|
||||
right(50/2 + ch/2) cuboid([50,50,50]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module part6() {
|
||||
spur_gear(mod=2,teeth=18, thickness=15);
|
||||
// longer part
|
||||
down(15/2) union() {
|
||||
down(15/2)cyl(h=15, d=18, rounding1=1);
|
||||
down(4 + 1 + 10/2) cyl(h=10, d=20, rounding=1);
|
||||
difference() {
|
||||
down(4/2) cyl(d=25, h=4, rounding1=1);
|
||||
left(50/2 + 20/2) cuboid([50,50,50]);
|
||||
right(50/2 + 20/2) cuboid([50,50,50]);
|
||||
}
|
||||
}
|
||||
//shorter part
|
||||
up(15/2) union() {
|
||||
up(15/2 - 1) threaded_nut(nutwidth=21, pitch=0, id=5, h=15);
|
||||
cyl(d=28, h=2, rounding=1);
|
||||
up(14 + 5/2) cyl(h=5, d=20, rounding=1/2);
|
||||
up(14 + 5 + 1 + 10/2) cyl(h=10, d=20, rounding=1/2);
|
||||
up(14) cyl(h=20, d=18);
|
||||
}
|
||||
}
|
||||
|
||||
tube(20,30,4); //part 1
|
||||
left(50) tube(25,47,12); //part 2
|
||||
left(100)tube(20,42,12); //part 3
|
||||
|
||||
include <BOSL2/gears.scad>
|
||||
left(155) part4();
|
||||
left(250) gear_holes(56, 95, 7, 65, 20, 84, 8, 35, 25, 20); // part 5
|
||||
left(340) part6();
|
||||
left(450) gear_holes(73, 125, 6, 82.5, 30, 108, 10, 40, 30, 25); // part 7
|
||||
13
V40/ball_mount.scad
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
include <BOSL2/std.scad>
|
||||
|
||||
// variables
|
||||
h = 20;
|
||||
peg_d = 9;
|
||||
// constants
|
||||
ball_d = 17;
|
||||
|
||||
$fn=360;
|
||||
|
||||
fwd(46.5) right(14.65) down(27) import("BotonS40.stl");
|
||||
up(h/2) cyl(h=h, d=peg_d);
|
||||
up(h) sphere(d=ball_d);
|
||||