szerokosc_szklanki = 63; grubosc_szkla = 2.5; wysokosc_uchwytu = 10; dlugosc_uchwytu = 15; grubosc_uchwytu = 2; $fn=200; cut_angle = 30; glass_r = szerokosc_szklanki/2; glass_t = grubosc_szkla; h = wysokosc_uchwytu; l = dlugosc_uchwytu; t = grubosc_uchwytu; sq_h = 2.5; translate([glass_r-t-glass_t,0,0]) rotate([0,0,180+cut_angle/2]) difference() { union() { difference() { cylinder(r=glass_r+t, h=h); translate([0,0,-0.1]) cylinder(r=glass_r, h=h+0.1-sq_h); cylinder(r=glass_r-glass_t-t, h=h+1); } difference() { cylinder(r=glass_r-glass_t, h=h); translate([0,0,-0.1]) cylinder(r=glass_r-glass_t-t, h=h+0.2); } } translate([0,0,-0.1]) rotate_extrude(angle=360-cut_angle) square([glass_r*2, h+0.2]); } sq_w = 2.5; sq_l = 15; clamp_r = 7; clamp_t = 1.5; cut_size = 5; translate([sq_l/2,0,h-sq_h/2]) union() { cube([sq_l,sq_w,sq_h], center=true); translate([sq_l/2 + clamp_r - clamp_t,0,-sq_h/2]) difference() { cylinder(r=clamp_r,h=sq_h); translate([0,0,-0.1]) cylinder(r=clamp_r-clamp_t,h=sq_h+0.2); translate([clamp_r,0,sq_h/2]) cube([clamp_r*2,cut_size,sq_h*2], center=true); } }