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


// === НАСТРОЙКИ ===
base_length = 60;
base_width = 24;
base_thickness = 8;

hole_spacing = 20;
hole_diameter = 4.2;

rod_diameter = 8.5;

bracket_height = 35;
bracket_thickness = 8;

angle = 60; // угол стойки

// === ОСНОВАНИЕ ===
module base() {
    difference() {
        cube([base_length, base_width, base_thickness]);

        // отверстия крепления
        for (x = [-hole_spacing/2, hole_spacing/2]) {
            translate([base_length/2 + x, base_width/2, -1])
                cylinder(h = base_thickness + 2, d = hole_diameter, $fn=40);
        }
    }
}

// === СТОЙКА ===
module angled_support() {
    rotate([0, angle, 0])
    difference() {
        cube([bracket_thickness, 20, bracket_height]);

        // отверстие под шпильку
        translate([bracket_thickness/2, 10, bracket_height - 10])
            rotate([90, 0, 0])
            cylinder(h = 30, d = rod_diameter, $fn=50);
    }
}

// === РЕБРО ЖЁСТКОСТИ ===
module rib() {
    polyhedron(
        points=[
            [0,0,0],
            [30,0,0],
            [0,0,30],
            [0,6,0],
            [30,6,0],
            [0,6,30]
        ],
        faces=[
            [0,1,2],
            [3,5,4],
            [0,3,4,1],
            [1,4,5,2],
            [2,5,3,0]
        ]
    );
}

// === СБОРКА ===
union() {
    base();

    translate([10, 2, base_thickness])
        angled_support();

    translate([10, 9, base_thickness])
        rib();
}