//Размеры платы
board_size_x = 116.9;
board_size_y = 115.7;
board_size_z = 2;
board_pos_x = 4;
board_pos_y = 4;
board_color = "Blue";
//Отверстия в плате
board_hole_diam = 3;
board_hole1_pos_x = 2.5+board_hole_diam/2;
board_hole1_pos_y = 2+board_hole_diam/2;
board_hole2_pos_x = 2.6+board_hole_diam/2;
board_hole2_pos_y = board_size_y-2.7-board_hole_diam/2;
board_hole3_pos_x = board_size_x-2.4-board_hole_diam/2;
board_hole3_pos_y = board_size_y-2.8-board_hole_diam/2;
board_hole4_pos_x = board_size_x-2.2-board_hole_diam/2;
board_hole4_pos_y = 3.1+board_hole_diam/2;
//Размеры корпуса
box_size_x = 125;
box_size_y = 125;
box_size_z = 25;
box_thickness = 2;
box_walls_color = "Green";
box_down_color = "Red";
//понставка для крепления платы к корпусу
step_size_x = 12;
step_size_y = 12;
step_size_z = 22;
step_color = "Yellow";
step1_pos_x = box_thickness;
step1_pos_y = box_thickness;
step2_pos_x = box_thickness;
step2_pos_y = box_size_y-box_thickness-step_size_y;
step3_pos_x = box_size_x-box_thickness-step_size_x;
step3_pos_y = box_size_y-box_thickness-step_size_y;
step4_pos_x = box_size_x-box_thickness-step_size_x;
step4_pos_y = box_thickness;
//Отверстия в подставках
step_hole_diam = 2;
step_hole_height = 16;
step1_hole_pos_x = board_pos_x-box_thickness+board_hole1_pos_x;
step1_hole_pos_y = board_pos_y-box_thickness+board_hole1_pos_y;
step2_hole_pos_x = board_pos_x-box_thickness+board_hole2_pos_x;
step2_hole_pos_y = board_pos_y+board_hole2_pos_y-step2_pos_y;
step3_hole_pos_x = board_pos_x+board_hole3_pos_x-step3_pos_x;
step3_hole_pos_y = board_pos_y+board_hole3_pos_y-step3_pos_y;
step4_hole_pos_x = board_pos_x+board_hole4_pos_x-step4_pos_x;
step4_hole_pos_y = board_pos_y-box_thickness+board_hole4_pos_y;
step_hole_pos_z = step_size_z-step_hole_height+1;
//Размеры и положение отверстия для провода
box_wire_hole_height = 10;
wire_hole_diam = 4;
wire_hole_height = box_thickness+2;
box_wire_hole_y_pos = box_size_y-box_thickness-1;
box_wire_hole_x_pos = 5+step_size_x;
//Размеры и положение отверстий для кнопок и крепёжных шурупов
button_size_x = 5;
button_size_y = 6;
button_size_z = 6;
button_distance = 2;
button_color = "Cyan";
button_pos_x = box_thickness+2;
button1_pos_y = step2_pos_y-button_size_y-button_distance-10;
button2_pos_y = button1_pos_y-button_size_y-button_distance;
button_pos_z = (box_size_z-button_size_z)/2;
button_hole_diam = 3.5;
button_hole_height = box_thickness+2;
box_button_hole_height = box_size_z/2;
box_button1_hole_y_pos = button1_pos_y+button_size_y/2;
box_button2_hole_y_pos = button2_pos_y+button_size_y/2;
box_button_hole_x_pos = -1;
screw_hole_diam = 2.5;
box_screw_hole1_y = button2_pos_y-5;
box_screw_hole2_y = box_screw_hole1_y + button_size_y*2+10+button_distance;
//Кнопки
button_height1 = 9;
button_height2 = 2;
button_diam1 = 3;
button_diam2 = 5;
button1_color = "Magenta";
//Планка для кнопок
plane_size_x = button_size_x*2;
plane_size_y = box_screw_hole2_y-box_screw_hole1_y+5;
plane_size_z = box_thickness;
plane_hole_diam = 2;
//Выключатель
switch_size_x = box_thickness+2;
switch_size_y = 8;
switch_size_z = 14;
switch_pos_x = -1;
switch_pos_y = box_screw_hole1_y-switch_size_y-6;
switch_pos_z = (box_size_z-switch_size_z)/2;
//Печатная плата
/*color(board_color) translate([board_pos_x, board_pos_y, step_size_z+box_thickness]){
difference(){
cube([board_size_x, board_size_y, board_size_z]);
translate([board_hole1_pos_x, board_hole1_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
translate([board_hole2_pos_x, board_hole2_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
translate([board_hole3_pos_x, board_hole3_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
translate([board_hole4_pos_x, board_hole4_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
}
}*/
color(box_down_color) cube([box_size_x, box_size_y, box_thickness]);
translate([0, 0, box_thickness]){
color(box_walls_color){
difference(){
cube([box_thickness, box_size_x, box_size_z]);
//Отверстия под кнопки
translate([box_button_hole_x_pos, box_button1_hole_y_pos, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = button_hole_diam, $fn = 100);
translate([box_button_hole_x_pos, box_button2_hole_y_pos, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = button_hole_diam, $fn = 100);
//отверстия под винты
translate([box_button_hole_x_pos, box_screw_hole1_y, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = screw_hole_diam, $fn = 100);
translate([box_button_hole_x_pos, box_screw_hole2_y, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = screw_hole_diam, $fn = 100);
//Отверстие под кнопку включения
translate([switch_pos_x, switch_pos_y, switch_pos_z])
cube([switch_size_x, switch_size_y, switch_size_z]);
}
difference(){
translate([0, box_size_y-box_thickness, 0]) cube([box_size_x, box_thickness, box_size_z]);
translate([box_wire_hole_x_pos, box_wire_hole_y_pos, box_wire_hole_height])
rotate([-90, 0, 0])
cylinder(h = wire_hole_height, d = wire_hole_diam, $fn = 100);
}
cube([box_size_x, box_thickness, box_size_z]);
translate([box_size_x-box_thickness, 0, 0]) cube([box_thickness, box_size_y, box_size_z]);
}
//Кнопки
/*color(button_color){
translate([button_pos_x, button1_pos_y, button_pos_z]) cube([button_size_x, button_size_y, button_size_z]);
translate([button_pos_x, button2_pos_y, button_pos_z]) cube([button_size_x, button_size_y, button_size_z]);
}*/
//Отверстие под кнопку включения
}
//Подставки под плату с отверстиями под винты
color(step_color){
translate([step1_pos_x, step1_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step1_hole_pos_x, step1_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
translate([step2_pos_x, step2_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step2_hole_pos_x, step2_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
translate([step3_pos_x, step3_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step3_hole_pos_x, step3_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
translate([step4_pos_x, step4_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step4_hole_pos_x, step4_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
}
//Кнопки
color(button1_color){
translate([130, 10, 0]){
cylinder(h = button_height1, d = button_diam1, $fn = 100);
cylinder(h = button_height2, d = button_diam2, $fn = 100);
}
translate([130, 16, 0]){
cylinder(h = button_height1, d = button_diam1, $fn = 100);
cylinder(h = button_height2, d = button_diam2, $fn = 100);
}
translate([130, 20, 0])
difference(){
cube([plane_size_x, plane_size_y, plane_size_z]);
translate([plane_size_x/2, 2.5, -1])
cylinder(h = box_thickness+2, d = plane_hole_diam, $fn = 100);
translate([plane_size_x/2, box_screw_hole2_y-box_screw_hole1_y+2.5, -1])
cylinder(h = box_thickness+2, d = plane_hole_diam, $fn = 100);
}
}
//Толщина стенок корпуса
box_thickness = 4;
//Размеры платы
board_size_x = 116.9;
board_size_y = 115.7;
board_size_z = 2;
board_abs_pos_x = box_thickness + 3;
board_abs_pos_y = box_thickness + 3;
board_pos_x = 3;
board_pos_y = 3;
board_color = "Blue";
//Размеры корпуса
box_size_x = board_size_x + box_thickness*2 + board_pos_x*2;
box_size_y = board_size_y + box_thickness*2 + board_pos_y*2;
box_size_z = 40;
box_walls_color = "Green";
box_down_color = "Red";
//Отверстия в плате
board_hole_diam = 3;
board_hole1_pos_x = 2.5+board_hole_diam/2;
board_hole1_pos_y = 2+board_hole_diam/2;
board_hole2_pos_x = 2.6+board_hole_diam/2;
board_hole2_pos_y = board_size_y-2.7-board_hole_diam/2;
board_hole3_pos_x = board_size_x-2.4-board_hole_diam/2;
board_hole3_pos_y = board_size_y-2.8-board_hole_diam/2;
board_hole4_pos_x = board_size_x-2.2-board_hole_diam/2;
board_hole4_pos_y = 3.1+board_hole_diam/2;
//подставка для крепления платы к корпусу
step_size_x = 12;
step_size_y = 12;
step_size_z = 35;
step_color = "Yellow";
step1_pos_x = box_thickness;
step1_pos_y = box_thickness;
step2_pos_x = box_thickness;
step2_pos_y = box_size_y-box_thickness-step_size_y;
step3_pos_x = box_size_x-box_thickness-step_size_x;
step3_pos_y = box_size_y-box_thickness-step_size_y;
step4_pos_x = box_size_x-box_thickness-step_size_x;
step4_pos_y = box_thickness;
//Отверстия в подставках
step_hole_diam = 2;
step_hole_height = 16;
step1_hole_pos_x = board_abs_pos_x-box_thickness+board_hole1_pos_x;
step1_hole_pos_y = board_abs_pos_y-box_thickness+board_hole1_pos_y;
step2_hole_pos_x = board_abs_pos_x-box_thickness+board_hole2_pos_x;
step2_hole_pos_y = board_abs_pos_y+board_hole2_pos_y-step2_pos_y;
step3_hole_pos_x = board_abs_pos_x+board_hole3_pos_x-step3_pos_x;
step3_hole_pos_y = board_abs_pos_y+board_hole3_pos_y-step3_pos_y;
step4_hole_pos_x = board_abs_pos_x+board_hole4_pos_x-step4_pos_x;
step4_hole_pos_y = board_abs_pos_y-box_thickness+board_hole4_pos_y;
step_hole_pos_z = step_size_z-step_hole_height+1;
//Размеры и положение отверстия для провода
box_wire_hole_height = 10;
wire_hole_diam = 4;
wire_hole_height = box_thickness+2;
box_wire_hole_y_pos = box_size_y-box_thickness-1;
box_wire_hole_x_pos = 10+step_size_x;
//Размеры и положение отверстий для кнопок и крепёжных шурупов
button_size_x = 5;
button_size_y = 6;
button_size_z = 6;
button_distance = 2;
button_color = "Cyan";
button_pos_x = box_thickness+2;
button1_pos_y = step2_pos_y-button_size_y-button_distance-10;
button2_pos_y = button1_pos_y-button_size_y-button_distance;
button_pos_z = (box_size_z-button_size_z)/2;
button_hole_diam = 3.5;
button_hole_height = box_thickness+2;
box_button_hole_height = box_size_z/2;
box_button1_hole_y_pos = button1_pos_y+button_size_y/2;
box_button2_hole_y_pos = button2_pos_y+button_size_y/2;
box_button_hole_x_pos = -1;
screw_hole_diam = 2.5;
box_screw_hole1_y = button2_pos_y-5;
box_screw_hole2_y = box_screw_hole1_y + button_size_y*2+10+button_distance;
//Кнопки
button_height1 = 9;
button_height2 = 2;
button_diam1 = 3;
button_diam2 = 5;
button1_color = "Magenta";
//Планка для кнопок
plane_size_x = button_size_x*2;
plane_size_y = box_screw_hole2_y-box_screw_hole1_y+5;
plane_size_z = 2;
plane_hole_diam = 2;
//Выключатель
switch_size_x = box_thickness+2;
switch_size_y = 8;
switch_size_z = 14;
switch_pos_x = -1;
switch_pos_y = box_screw_hole1_y-switch_size_y-6;
switch_pos_z = (box_size_z-switch_size_z)/2;
//Печатная плата
/*color(board_color) translate([board_abs_pos_x, board_abs_pos_y, step_size_z+box_thickness]){
difference(){
cube([board_size_x, board_size_y, board_size_z]);
translate([board_hole1_pos_x, board_hole1_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
translate([board_hole2_pos_x, board_hole2_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
translate([board_hole3_pos_x, board_hole3_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
translate([board_hole4_pos_x, board_hole4_pos_y, -1])
cylinder(h = board_size_z+2, d = board_hole_diam, $fn = 100);
}
}*/
color(box_down_color) cube([box_size_x, box_size_y, box_thickness]);
translate([0, 0, box_thickness]){
color(box_walls_color){
difference(){
cube([box_thickness, box_size_y, box_size_z]);
//Отверстия под кнопки
translate([box_button_hole_x_pos, box_button1_hole_y_pos, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = button_hole_diam, $fn = 100);
translate([box_button_hole_x_pos, box_button2_hole_y_pos, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = button_hole_diam, $fn = 100);
//отверстия под винты
translate([box_button_hole_x_pos, box_screw_hole1_y, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = screw_hole_diam, $fn = 100);
translate([box_button_hole_x_pos, box_screw_hole2_y, box_button_hole_height])
rotate([0, 90, 0])
cylinder(h = button_hole_height, d = screw_hole_diam, $fn = 100);
//Отверстие под кнопку включения
translate([switch_pos_x, switch_pos_y, switch_pos_z])
cube([switch_size_x, switch_size_y, switch_size_z]);
}
difference(){
translate([0, box_size_y-box_thickness, 0]) cube([box_size_x, box_thickness, box_size_z]);
translate([box_wire_hole_x_pos, box_wire_hole_y_pos, box_wire_hole_height])
rotate([-90, 0, 0])
cylinder(h = wire_hole_height, d = wire_hole_diam, $fn = 100);
}
cube([box_size_x, box_thickness, box_size_z]);
translate([box_size_x-box_thickness, 0, 0]) cube([box_thickness, box_size_y, box_size_z]);
}
}
//Подставки под плату с отверстиями под винты
color(step_color){
translate([step1_pos_x, step1_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step1_hole_pos_x, step1_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
translate([step2_pos_x, step2_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step2_hole_pos_x, step2_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
translate([step3_pos_x, step3_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step3_hole_pos_x, step3_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
translate([step4_pos_x, step4_pos_y, box_thickness])
difference(){
cube([step_size_x, step_size_y, step_size_z]);
translate([step4_hole_pos_x, step4_hole_pos_y, step_hole_pos_z])
cylinder(h = step_hole_height, d = step_hole_diam, $fn = 100);
}
}
//Кнопки
color(button1_color){
translate([140, 10, 0]){
cylinder(h = button_height1, d = button_diam1, $fn = 100);
cylinder(h = button_height2, d = button_diam2, $fn = 100);
}
translate([140, 16, 0]){
cylinder(h = button_height1, d = button_diam1, $fn = 100);
cylinder(h = button_height2, d = button_diam2, $fn = 100);
}
translate([140, 20, 0])
difference(){
cube([plane_size_x, plane_size_y, plane_size_z]);
translate([plane_size_x/2, 2.5, -1])
cylinder(h = box_thickness+2, d = plane_hole_diam, $fn = 100);
translate([plane_size_x/2, box_screw_hole2_y-box_screw_hole1_y+2.5, -1])
cylinder(h = box_thickness+2, d = plane_hole_diam, $fn = 100);
}
}
На здоровье.Можно попросить корпус в STL выложить?