initial work for rack_1u case, rack.scad with mounting tabs
This commit is contained in:
83
lib/rack.scad
Normal file
83
lib/rack.scad
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
This file is part of SBC Case Builder https://github.com/hominoids/SBC_Case_Builder
|
||||
Copyright 2022,2023,2024,2025 Edward A. Kisiel hominoid@cablemi.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
Code released under GPLv3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
rack_end_bracket(side, size, thick)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NAME: rack_end_bracket
|
||||
DESCRIPTION: creates rack mounting ears
|
||||
TODO: none
|
||||
|
||||
USAGE: rack_end_bracket(side, size, thick)
|
||||
|
||||
side = "left", "right"
|
||||
size = "1u", "2u", "3u", "4u"
|
||||
thick = thickness of bracket
|
||||
|
||||
*/
|
||||
|
||||
module rack_end_bracket(side, size, thick) {
|
||||
|
||||
depth = size == "1u" ? 44.45 : size == "2u" ? 2*44.45 : size == "3u" ? 3*44.45 : 4*44.45;
|
||||
c_fillet = 2;
|
||||
hole = 3.2;
|
||||
rack_hole = 6;
|
||||
tab_width = 25;
|
||||
b_width = thick;
|
||||
b_depth = depth;
|
||||
b_height = 25;
|
||||
b_loc = [-thick,0,0];
|
||||
|
||||
adjust = .01;
|
||||
$fn=90;
|
||||
|
||||
if(side == "left") {
|
||||
translate([thick,-thick,depth]) rotate([270,0,0])
|
||||
difference() {
|
||||
union() {
|
||||
translate([(-tab_width/2),(depth/2),thick/2])
|
||||
cube_fillet_inside([tab_width,depth,thick],
|
||||
vertical=[0,c_fillet,c_fillet,0],top=[0,0,0,0],bottom=[0,0,0,0], $fn=90);
|
||||
translate([(b_width/2)+b_loc[0],(b_depth/2)+b_loc[1],(b_height/2)+b_loc[2]])
|
||||
cube_fillet_inside([b_width,b_depth,b_height],
|
||||
vertical=[0,0,0,0],top=[c_fillet,0,c_fillet,0],bottom=[0,0,0,0], $fn=90);
|
||||
}
|
||||
for (c=[7.5:15:depth]) {
|
||||
translate([-15,c,-adjust]) slot(rack_hole,3,thick+(adjust*2));
|
||||
}
|
||||
}
|
||||
}
|
||||
if(side == "right") {
|
||||
translate([-thick,-thick,0]) rotate([270,180,0])
|
||||
difference() {
|
||||
union() {
|
||||
translate([(-tab_width/2),(depth/2),thick/2])
|
||||
cube_fillet_inside([tab_width,depth,thick],
|
||||
vertical=[0,c_fillet,c_fillet,0],top=[0,0,0,0],bottom=[0,0,0,0], $fn=90);
|
||||
translate([(b_width/2)+b_loc[0],(b_depth/2)+b_loc[1],(b_height/2)+b_loc[2]])
|
||||
cube_fillet_inside([b_width,b_depth,b_height],
|
||||
vertical=[0,0,0,0],top=[c_fillet,0,c_fillet,0],bottom=[0,0,0,0], $fn=90);
|
||||
}
|
||||
for (c=[7.5:15:depth]) {
|
||||
translate([-15,c,-adjust]) slot(rack_hole,3,thick+(adjust*2));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7252,10 +7252,8 @@
|
||||
"uart_opening": "none",
|
||||
"view": "model",
|
||||
"wallthick": "3"
|
||||
|
||||
},
|
||||
"rpi5_panel_nas": {
|
||||
|
||||
"$fn": "90",
|
||||
"access_panel_location": "[10, 15]",
|
||||
"access_panel_orientation": "landscape",
|
||||
@@ -10873,6 +10871,247 @@
|
||||
"uart_opening": "default",
|
||||
"view": "model",
|
||||
"wallthick": "2"
|
||||
},
|
||||
"c4_rack_1u": {
|
||||
"$fn": "90",
|
||||
"Rack_Bay1": "c1+",
|
||||
"Rack_Bay2": "empty",
|
||||
"Rack_Bay3": "empty",
|
||||
"Rack_Bay4": "empty",
|
||||
"access_panel_location": "[10, 15]",
|
||||
"access_panel_orientation": "landscape",
|
||||
"access_panel_rotation": "0",
|
||||
"access_panel_size": "[70, 30]",
|
||||
"accessory_highlight": "false",
|
||||
"accessory_name": "none",
|
||||
"adj": "0.01",
|
||||
"bend_allowance": "1",
|
||||
"bottom_access_panel_enable": "false",
|
||||
"bottom_clearence": "3.5",
|
||||
"bottom_cover_pattern": "solid",
|
||||
"bottom_front_left_adjust": "0",
|
||||
"bottom_front_left_enable": "true",
|
||||
"bottom_front_left_support": "front",
|
||||
"bottom_front_right_adjust": "0",
|
||||
"bottom_front_right_enable": "true",
|
||||
"bottom_front_right_support": "front",
|
||||
"bottom_rear_left_adjust": "0",
|
||||
"bottom_rear_left_enable": "true",
|
||||
"bottom_rear_left_support": "rear",
|
||||
"bottom_rear_right_adjust": "0",
|
||||
"bottom_rear_right_enable": "true",
|
||||
"bottom_rear_right_support": "rear",
|
||||
"bottom_sidewall_support": "false",
|
||||
"bottom_standoff_diameter": "5.75",
|
||||
"bottom_standoff_hole_size": "3.4",
|
||||
"bottom_standoff_insert": "false",
|
||||
"bottom_standoff_insert_dia": "4.2",
|
||||
"bottom_standoff_insert_height": "5.1",
|
||||
"bottom_standoff_pillar": "hex",
|
||||
"bottom_standoff_reverse": "false",
|
||||
"bottom_standoff_size": "m3",
|
||||
"bottom_standoff_support_height": "4",
|
||||
"bottom_standoff_support_size": "10",
|
||||
"bottom_standoff_type": "countersunk",
|
||||
"case_design": "rack",
|
||||
"case_offset_bz": "0",
|
||||
"case_offset_tz": "0",
|
||||
"case_offset_x": "0",
|
||||
"case_offset_y": "25",
|
||||
"cooling": "default",
|
||||
"corner_fillet": "3",
|
||||
"edge_fillet": "0",
|
||||
"ext_bottom_front_left_adjust": "0",
|
||||
"ext_bottom_front_left_enable": "true",
|
||||
"ext_bottom_front_left_support": "front",
|
||||
"ext_bottom_front_right_adjust": "0",
|
||||
"ext_bottom_front_right_enable": "true",
|
||||
"ext_bottom_front_right_support": "front",
|
||||
"ext_bottom_rear_left_adjust": "0",
|
||||
"ext_bottom_rear_left_enable": "true",
|
||||
"ext_bottom_rear_left_support": "rear",
|
||||
"ext_bottom_rear_right_adjust": "0",
|
||||
"ext_bottom_rear_right_enable": "true",
|
||||
"ext_bottom_rear_right_support": "rear",
|
||||
"ext_bottom_sidewall_support": "true",
|
||||
"ext_bottom_standoff_diameter": "5.75",
|
||||
"ext_bottom_standoff_hole_size": "3.4",
|
||||
"ext_bottom_standoff_insert": "false",
|
||||
"ext_bottom_standoff_insert_dia": "4.2",
|
||||
"ext_bottom_standoff_insert_height": "5.1",
|
||||
"ext_bottom_standoff_pillar": "hex",
|
||||
"ext_bottom_standoff_reverse": "false",
|
||||
"ext_bottom_standoff_size": "m3",
|
||||
"ext_bottom_standoff_support_height": "4",
|
||||
"ext_bottom_standoff_support_size": "10",
|
||||
"ext_bottom_standoff_type": "countersunk",
|
||||
"ext_bottom_standoffs": "false",
|
||||
"ext_top_front_left_adjust": "0",
|
||||
"ext_top_front_left_enable": "true",
|
||||
"ext_top_front_left_support": "front",
|
||||
"ext_top_front_right_adjust": "0",
|
||||
"ext_top_front_right_enable": "true",
|
||||
"ext_top_front_right_support": "front",
|
||||
"ext_top_rear_left_adjust": "0",
|
||||
"ext_top_rear_left_enable": "true",
|
||||
"ext_top_rear_left_support": "rear",
|
||||
"ext_top_rear_right_adjust": "0",
|
||||
"ext_top_rear_right_enable": "true",
|
||||
"ext_top_rear_right_support": "rear",
|
||||
"ext_top_sidewall_support": "true",
|
||||
"ext_top_standoff_diameter": "5.75",
|
||||
"ext_top_standoff_hole_size": "2.75",
|
||||
"ext_top_standoff_insert": "false",
|
||||
"ext_top_standoff_insert_dia": "4.2",
|
||||
"ext_top_standoff_insert_height": "5.1",
|
||||
"ext_top_standoff_pillar": "hex",
|
||||
"ext_top_standoff_reverse": "true",
|
||||
"ext_top_standoff_size": "m3",
|
||||
"ext_top_standoff_support_height": "4",
|
||||
"ext_top_standoff_support_size": "10",
|
||||
"ext_top_standoff_type": "blind",
|
||||
"ext_top_standoffs": "false",
|
||||
"fan_size": "0",
|
||||
"flat_blank_section": "false",
|
||||
"floorthick": "3",
|
||||
"front_cover_pattern": "solid",
|
||||
"gap": "1",
|
||||
"gpio_opening": "default",
|
||||
"hd_bays": "2",
|
||||
"hd_center": "false",
|
||||
"hd_reverse": "false",
|
||||
"hd_space": "10",
|
||||
"hd_y_position": "25",
|
||||
"hd_z_position": "40",
|
||||
"indents": "false",
|
||||
"individual_part": "bottom",
|
||||
"lower_bottom": "0",
|
||||
"material_thickness": "0.5",
|
||||
"move_front": "0",
|
||||
"move_leftside": "0",
|
||||
"move_rear": "0",
|
||||
"move_rightside": "0",
|
||||
"multipcb_bottom_front_left_adjust": "0",
|
||||
"multipcb_bottom_front_left_enable": "true",
|
||||
"multipcb_bottom_front_left_support": "front",
|
||||
"multipcb_bottom_front_right_adjust": "0",
|
||||
"multipcb_bottom_front_right_enable": "true",
|
||||
"multipcb_bottom_front_right_support": "front",
|
||||
"multipcb_bottom_rear_left_adjust": "0",
|
||||
"multipcb_bottom_rear_left_enable": "true",
|
||||
"multipcb_bottom_rear_left_support": "rear",
|
||||
"multipcb_bottom_rear_right_adjust": "0",
|
||||
"multipcb_bottom_rear_right_enable": "true",
|
||||
"multipcb_bottom_rear_right_support": "rear",
|
||||
"multipcb_bottom_sidewall_support": "false",
|
||||
"multipcb_bottom_standoff_diameter": "5.75",
|
||||
"multipcb_bottom_standoff_hole_size": "3.4",
|
||||
"multipcb_bottom_standoff_insert": "false",
|
||||
"multipcb_bottom_standoff_insert_dia": "4.2",
|
||||
"multipcb_bottom_standoff_insert_height": "5.1",
|
||||
"multipcb_bottom_standoff_pillar": "hex",
|
||||
"multipcb_bottom_standoff_reverse": "false",
|
||||
"multipcb_bottom_standoff_size": "m2.5",
|
||||
"multipcb_bottom_standoff_support_height": "4",
|
||||
"multipcb_bottom_standoff_support_size": "7",
|
||||
"multipcb_bottom_standoff_type": "countersunk",
|
||||
"multipcb_bottom_standoffs": "false",
|
||||
"multipcb_top_front_left_adjust": "0",
|
||||
"multipcb_top_front_left_enable": "true",
|
||||
"multipcb_top_front_left_support": "front",
|
||||
"multipcb_top_front_right_adjust": "0",
|
||||
"multipcb_top_front_right_enable": "true",
|
||||
"multipcb_top_front_right_support": "front",
|
||||
"multipcb_top_rear_left_adjust": "0",
|
||||
"multipcb_top_rear_left_enable": "true",
|
||||
"multipcb_top_rear_left_support": "rear",
|
||||
"multipcb_top_rear_right_adjust": "0",
|
||||
"multipcb_top_rear_right_enable": "true",
|
||||
"multipcb_top_rear_right_support": "rear",
|
||||
"multipcb_top_sidewall_support": "false",
|
||||
"multipcb_top_standoff_diameter": "5.75",
|
||||
"multipcb_top_standoff_hole_size": "2.75",
|
||||
"multipcb_top_standoff_insert": "false",
|
||||
"multipcb_top_standoff_insert_dia": "4.2",
|
||||
"multipcb_top_standoff_insert_height": "5.1",
|
||||
"multipcb_top_standoff_pillar": "hex",
|
||||
"multipcb_top_standoff_reverse": "true",
|
||||
"multipcb_top_standoff_size": "m2.5",
|
||||
"multipcb_top_standoff_support_height": "4",
|
||||
"multipcb_top_standoff_support_size": "7",
|
||||
"multipcb_top_standoff_type": "blind",
|
||||
"multipcb_top_standoffs": "false",
|
||||
"nas_sbc_location": "top",
|
||||
"pcb_loc_x": "0",
|
||||
"pcb_loc_y": "0",
|
||||
"pcb_loc_z": "0",
|
||||
"rack_bay1_face": "io_shield",
|
||||
"rack_bay1_rotation": "0",
|
||||
"rack_bay1_wall": "false",
|
||||
"rack_bay1_xyz_loc": "[0, 0, 0]",
|
||||
"rack_bay2_face": "io_shield",
|
||||
"rack_bay2_rotation": "0",
|
||||
"rack_bay2_wall": "false",
|
||||
"rack_bay2_xyz_loc": "[0, 0, 0]",
|
||||
"rack_bay3_face": "io_shield",
|
||||
"rack_bay3_rotation": "0",
|
||||
"rack_bay3_wall": "false",
|
||||
"rack_bay3_xyz_loc": "[0, 0, 0]",
|
||||
"rack_bay4_face": "io_shield",
|
||||
"rack_bay4_rotation": "0",
|
||||
"rack_bay4_wall": "false",
|
||||
"rack_bay4_xyz_loc": "[0, 0, 0]",
|
||||
"rack_bays": "1",
|
||||
"rack_size": "19",
|
||||
"rack_u_size": "1u",
|
||||
"raise_top": "0",
|
||||
"rear_cooling": "fan_hex",
|
||||
"rear_dualfan_spacing": "6",
|
||||
"rear_fan": "1",
|
||||
"rear_fan_center": "false",
|
||||
"rear_fan_position": "0",
|
||||
"rear_fan_size": "80",
|
||||
"rear_io_shield": "false",
|
||||
"sbc_bottom_standoffs": "true",
|
||||
"sbc_highlight": "false",
|
||||
"sbc_information": "false",
|
||||
"sbc_model": "c4",
|
||||
"sbc_off": "false",
|
||||
"sbc_top_standoffs": "true",
|
||||
"section_part": "false",
|
||||
"sidethick": "5",
|
||||
"standard_motherboard_thickness": "0",
|
||||
"text_color": "Green",
|
||||
"text_font": "Nimbus Mono PS",
|
||||
"tol": "0.25",
|
||||
"top_cover_pattern": "solid",
|
||||
"top_front_left_adjust": "0",
|
||||
"top_front_left_enable": "true",
|
||||
"top_front_left_support": "front",
|
||||
"top_front_right_adjust": "0",
|
||||
"top_front_right_enable": "true",
|
||||
"top_front_right_support": "front",
|
||||
"top_rear_left_adjust": "0",
|
||||
"top_rear_left_enable": "true",
|
||||
"top_rear_left_support": "rear",
|
||||
"top_rear_right_adjust": "0",
|
||||
"top_rear_right_enable": "true",
|
||||
"top_rear_right_support": "rear",
|
||||
"top_sidewall_support": "false",
|
||||
"top_standoff_diameter": "5.75",
|
||||
"top_standoff_hole_size": "2.75",
|
||||
"top_standoff_insert": "false",
|
||||
"top_standoff_insert_dia": "4.2",
|
||||
"top_standoff_insert_height": "5.1",
|
||||
"top_standoff_pillar": "hex",
|
||||
"top_standoff_reverse": "true",
|
||||
"top_standoff_size": "m3",
|
||||
"top_standoff_support_height": "4",
|
||||
"top_standoff_support_size": "10",
|
||||
"top_standoff_type": "blind",
|
||||
"uart_opening": "default",
|
||||
"view": "model",
|
||||
"wallthick": "3"
|
||||
}
|
||||
},
|
||||
"fileFormatVersion": "1"
|
||||
|
||||
@@ -42,7 +42,7 @@ sbc_highlight = false;
|
||||
// enable highlight for accessory subtractive geometry
|
||||
accessory_highlight = false;
|
||||
// base case design
|
||||
case_design = "shell"; // [shell,panel,panel_nas,stacked,tray,tray_sides,tray_vu5,tray_vu7,round,hex,snap,fitted,paper_split-top,paper_full-top,adapter_ssi-eeb,adapter_ssi-ceb,adapter_atx,adapter_micro-atx,adapter_dtx,adapter_flex-atx,adapter_mini-dtx,adapter_mini-itx,adapter_mini-itx_thin,adapter_mini-stx,adapter_mini-stx_thin]
|
||||
case_design = "shell"; // [shell,panel,panel_nas,stacked,tray,tray_sides,tray_vu5,tray_vu7,round,hex,snap,fitted,rack,paper_split-top,paper_full-top,adapter_ssi-eeb,adapter_ssi-ceb,adapter_atx,adapter_micro-atx,adapter_dtx,adapter_flex-atx,adapter_mini-dtx,adapter_mini-itx,adapter_mini-itx_thin,adapter_mini-stx,adapter_mini-stx_thin]
|
||||
|
||||
// raises top mm in model view or < 0 = off
|
||||
raise_top = 0; // [-1:100]
|
||||
@@ -77,24 +77,28 @@ rear_io_shield = false;
|
||||
// size of rack 10" or 19" //
|
||||
rack_size = 19; //[10,19]
|
||||
// size of rack mount cases 1U-4U //
|
||||
rack_u_size = 1; //[1:4]
|
||||
rack_u_size = "1u"; //["1u", "2u", "3u", "4u"]
|
||||
// number of rack bays //
|
||||
rack_bays = 1; //[1:4]
|
||||
// enable rack io plate opening for sbc
|
||||
Rack_Bay1 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"]
|
||||
rack_bay1_face = "io_shield"; //["none","blank","io_shield","vent_hex"]
|
||||
rack_bay1_xyz_loc = [0,0,0]; // [0:.5:300]
|
||||
rack_bay1_rotation = 0; // [0:90:270]
|
||||
rack_bay1_face = "io_shield"; //["none","blank","io_shield","vent_hex"]
|
||||
rack_bay1_wall = false; // [true,false]
|
||||
Rack_Bay2 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"]
|
||||
rack_bay2_face = "io_shield"; //["none","blank","io_shield","vent_hex"]
|
||||
rack_bay2_xyz_loc = [0,0,0]; // [0:.5:300]
|
||||
rack_bay2_rotation = 0; // [0:90:270]
|
||||
rack_bay2_face = "io_shield"; //["none","blank","io_shield","vent_hex"]
|
||||
rack_bay2_wall = false; // [true,false]
|
||||
Rack_Bay3 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"]
|
||||
rack_bay3_xyz_loc = [0,0,0]; // [0:.5:300]
|
||||
rack_bay3_rotation = 0; // [0:90:270]
|
||||
rack_bay3_face = "io_shield"; //["none","blank","io_shield","vent_hex"]
|
||||
rack_bay3_wall = false; // [true,false]
|
||||
Rack_Bay4 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"]
|
||||
rack_bay4_xyz_loc = [0,0,0]; // [0:.5:300]
|
||||
rack_bay4_rotation = 0; // [0:90:270]
|
||||
rack_bay4_face = "io_shield"; //["none","blank","io_shield","vent_hex"]
|
||||
rack_bay4_wall = false; // [true,false]
|
||||
|
||||
@@ -411,15 +415,13 @@ pcb_color = sbc_data[s[0]][11][1];
|
||||
pcb_radius = sbc_data[s[0]][11][0];
|
||||
|
||||
pcb_z = sbc_model == "ssi-eeb" || sbc_model == "ssi-ceb" || sbc_model == "atx" || sbc_model == "micro-atx" || sbc_model == "dtx" || sbc_model == "flex-atx" || sbc_model == "mini-dtx" || sbc_model == "mini-itx" || sbc_model == "mini-itx_thin" || sbc_model == "mini-stx" || sbc_model == "mini-stx_thin" || sbc_model == "nano-itx" || sbc_model == "nuc" || sbc_model == "pico-itx" ? pcb_z_orig + standard_motherboard_thickness : pcb_z_orig;
|
||||
width = case_design == "panel_nas" && pcb_width <= 100 ? pcb_width+2*(sidethick+gap)+case_offset_x+(101.6-pcb_width) : case_design == "panel_nas" && pcb_width > 100 ? pcb_width+2*(sidethick+gap)+case_offset_x : pcb_width+(2*(wallthick+gap))+case_offset_x;
|
||||
width = case_design == "panel_nas" && pcb_width <= 100 ? pcb_width+2*(sidethick+gap)+case_offset_x+(101.6-pcb_width) : case_design == "panel_nas" && pcb_width > 100 ? pcb_width+2*(sidethick+gap)+case_offset_x : case_design == "rack" ? 450 : pcb_width+(2*(wallthick+gap))+case_offset_x;
|
||||
depth = case_design == "panel_nas" ? pcb_depth+2*(wallthick+gap)+case_offset_y + 147-pcb_depth+hd_y_position : pcb_depth+2*(wallthick+gap)+case_offset_y;
|
||||
top_height = pcb_tmaxz+floorthick+case_offset_tz+pcb_loc_z;
|
||||
bottom_height = (case_design == "tray" || case_design == "tray_vu5" || case_design == "tray_vu7" || case_design == "tray_sides") ? pcb_z+pcb_bmaxz+floorthick+case_offset_bz+4 : pcb_z+pcb_bmaxz+floorthick+case_offset_bz;
|
||||
case_z = case_design == "panel_nas" ? bottom_height+top_height+hd_z_position+(hd_bays * (hd_space + 26.1)) : bottom_height+top_height;
|
||||
case_z = case_design == "panel_nas" ? bottom_height+top_height+hd_z_position+(hd_bays * (hd_space + 26.1)) : case_design == "rack" ? 44.45+floorthick : bottom_height+top_height;
|
||||
case_diameter = sqrt(pow(width-wallthick-gap,2)+pow(depth-wallthick-gap,2));
|
||||
hex_diameter = sqrt(pow(width+2*(wallthick+gap),2)+pow(depth+2*(wallthick+gap),2));
|
||||
//hd_spacer = case_design == "panel_nas" && pcb_width > 100 ? (pcb_width+case_offset_x+2*gap)-101.6 :
|
||||
// case_design == "panel_nas" && pcb_width <= 100 ? (width-2*(sidethick+gap)-101.6) : 0;
|
||||
hd_spacer = case_design == "panel_nas" && pcb_width > 100 ? (pcb_width+case_offset_x+2*gap)-101.6 :
|
||||
case_design == "panel_nas" && pcb_width <= 100 ? (width-2*(sidethick+gap)-101.6) : 0;
|
||||
|
||||
@@ -1038,6 +1040,54 @@ if (view == "model") {
|
||||
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, false);
|
||||
}
|
||||
}
|
||||
if(case_design == "rack") {
|
||||
if(lower_bottom >= 0) {
|
||||
difference() {
|
||||
color("dimgrey",1) translate([0,0,-lower_bottom]) case_rack(case_design,"bottom");
|
||||
if(move_rear < 0) {
|
||||
translate([-gap-wallthick-1,-gap-wallthick-1,-lower_bottom-1])
|
||||
cube([width+2,gap+wallthick+1.01,case_z+2]);
|
||||
}
|
||||
if(move_front < 0) {
|
||||
translate([-gap-wallthick-1,depth-2*(gap+wallthick),-lower_bottom-1])
|
||||
cube([width+2,gap+wallthick+1.01,case_z+2]);
|
||||
}
|
||||
if(move_leftside < 0) {
|
||||
translate([-gap-wallthick-1,-gap-wallthick-1,-lower_bottom-1])
|
||||
cube([gap+wallthick+1.01,depth+2,case_z+2]);
|
||||
}
|
||||
if(move_rightside < 0) {
|
||||
translate([width-2*(gap+wallthick),-gap-wallthick-1,-lower_bottom-1])
|
||||
cube([gap+wallthick+1,depth+2,case_z+2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(raise_top >= 0) {
|
||||
difference() {
|
||||
color("grey",1) translate([0,0,raise_top]) case_rack(case_design,"bottom");
|
||||
if(move_rear < 0) {
|
||||
translate([-gap-wallthick-1,-gap-wallthick-1,-lower_bottom-1])
|
||||
cube([width+2,gap+wallthick+1.01,case_z+2]);
|
||||
}
|
||||
if(move_front < 0) {
|
||||
translate([-gap-wallthick-1,depth-2*(gap+wallthick),-lower_bottom-1])
|
||||
cube([width+2,gap+wallthick+1.01,case_z+2]);
|
||||
}
|
||||
if(move_leftside < 0) {
|
||||
translate([-gap-wallthick-1,-gap-wallthick-1,-lower_bottom-1])
|
||||
cube([gap+wallthick+1.01,depth+2,case_z+2]);
|
||||
}
|
||||
if(move_rightside < 0) {
|
||||
translate([width-2*(gap+wallthick),-gap-wallthick-1,-lower_bottom-1])
|
||||
cube([gap+wallthick+1,depth+2,case_z+2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(sbc_off == false) {
|
||||
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) rotate([0,0,rack_bay1_rotation])
|
||||
sbc(Rack_Bay1, cooling, fan_size, gpio_opening, uart_opening, false);
|
||||
}
|
||||
}
|
||||
if(case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
|
||||
color("dimgrey",1) case_adapter(case_design);
|
||||
if(sbc_off == false) {
|
||||
|
||||
@@ -25,6 +25,7 @@ use <./SBC_Model_Framework/sbc_models_library.scad>
|
||||
include <./mod/add.scad>;
|
||||
include <./mod/case_adapter.scad>;
|
||||
include <./mod/case_bottom.scad>;
|
||||
include <./mod/case_rack.scad>;
|
||||
include <./mod/case_side.scad>;
|
||||
include <./mod/case_top.scad>;
|
||||
include <./mod/case_folded.scad>;
|
||||
@@ -50,5 +51,6 @@ include <./lib/keyhole.scad>;
|
||||
include <./lib/oem_adafruit.scad>;
|
||||
include <./lib/oem_hk.scad>;
|
||||
include <./lib/oem_rpi.scad>;
|
||||
include <./lib/rack.scad>;
|
||||
include <./lib/standoff.scad>;
|
||||
include <./lib/vent.scad>;
|
||||
|
||||
Reference in New Issue
Block a user