Загрузка данных


// ПАРАМЕТРЫ
d_tube  = 255;   // диаметр трубы
gap     = 0.3;   // зазор
bot_x   = 35;    // низ по X
bot_y   = 45;    // низ по Y (было 40)
top_x   = 15;    // верх по X
top_y   = 25;    // верх по Y
height  = 33;    // высота
hole    = 3;     // отверстие
cut     = 2;     // глубина седла
head_d  = 11;    // диаметр шляпки самореза
head_h  = 1.5;   // глубина утопления шляпки
r = d_tube/2 + gap;

difference() {
  union() {
    hull() {
      translate([-bot_x/2, -bot_y/2, 0])
        cube([bot_x, bot_y, 0.01]);
      translate([-top_x/2, -top_y/2, height])
        cube([top_x, top_y, 0.01]);
    }
    translate([-bot_x/2, -bot_y/2, -cut])
      cube([bot_x, bot_y, cut + 0.01]);
  }
  translate([0, 0, -r]) rotate([0, 90, 0])
    cylinder(r=r, h=bot_x*3, center=true, $fn=256);
  translate([0, 0, -cut - 5])
    cylinder(d=hole, h=height + cut + 10, $fn=32);
  translate([0, 0, height - head_h])
    cylinder(d=head_d, h=head_h + 0.1, $fn=64);
}