$fn = 180;
// ---------------------
// Размеры
// ---------------------
outer_d = 75;
cap_height = 10;
lip_d = 72; // диаметр буртика бачка
lip_height = 4;
wall = 2.5;
clearance = 0.2;
// ---------------------
// Крышка
// ---------------------
difference()
{
union()
{
// Верхняя площадка
cylinder(d=outer_d,h=2);
// Юбка
translate([0,0,2])
cylinder(d=outer_d,h=cap_height-2);
// Внутреннее кольцо-защелка
translate([0,0,cap_height-lip_height])
difference()
{
cylinder(d=lip_d+2*wall,h=lip_height);
translate([0,0,-0.1])
cylinder(d=lip_d-clearance,h=lip_height+0.2);
}
// Надпись
translate([0,0,cap_height])
linear_extrude(height=1)
text(
"ТОВАРИЩ\nПОЛИЦЕЙСКИЙ\n\nАТПУТИТЕ\nПОЖАЛУЙСТА\n\nКОСТЯ\nНЕ ВИНОВАТ",
size=3,
halign="center",
valign="center",
font="DejaVu Sans:style=Bold"
);
}
// Полость внутри крышки
translate([0,0,2])
cylinder(d=outer_d-2*wall,h=20);
}