This commit is contained in:
Sasza Stanczew 2025-11-02 15:53:42 +01:00
parent e2bc49dc87
commit a389f7ffde
26 changed files with 418 additions and 15 deletions

42
Admin/sluchawki.scad Normal file
View 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
View 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);
}
}

Binary file not shown.

View file

@ -0,0 +1 @@
This thing was created by Thingiverse user lemonfoxmere, and is licensed under Creative Commons - Attribution - Share Alike

View file

@ -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. Im 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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,014 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View 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
View 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
View 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);
}

View file

@ -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

View file

@ -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
View 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);
}
}
}

View file

@ -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() {
@ -70,4 +70,36 @@ 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]);
}
}

View file

@ -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
View 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]);
}

View file

@ -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

View 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
View 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);