From 98b8baa08d1a6e5dfe80abcfb1acb11ed358dd19 Mon Sep 17 00:00:00 2001 From: Edward Kisiel Date: Tue, 25 Oct 2022 14:26:57 -0400 Subject: [PATCH] fixed panel case left hook size, added access panel and standoff trim to all rockpi5b cases, readme.md changes --- README.md | 11 ++++++----- sbc_case_builder.json | 18 +++++++++--------- sbc_case_builder.scad | 8 ++++++-- sbc_case_builder_accessories.cfg | 10 +++++++--- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 9e1f287..6791449 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ ## Introduction -This project is about autonomous SBC case creation. It utilizes the SBC Model Framework project to automatically generate cases based on the data for any given SBC contained within the framework. This allows legacy, current and future SBC to have multiple cases available on day one of their inclusion in the framework. There are multiple base case designs(shell, panel, stacked, tray, round, hex, snap, fitted) available and each allows for different styles within the design. +This project is about autonomous SBC case creation. It utilizes the SBC Model Framework project to automatically generate cases based on the data for any given SBC contained within the framework. This allows legacy, current and future SBC to have multiple cases available on day one of their inclusion in the framework. There are multiple base case designs(shell, panel, stacked, tray, tray-sides, round, hex, snap, fitted) available and each allows for different styles within the design. -All case openings are created automatically based on SBC data and, the dimensions of any case design can be expanded in any axis allowing for the creation of larger cases. If you reposition the SBC in a case, you will see i/o openings created or removed appropriately based on it’s proximity to the case geometry. These cases might be useful for prototypes or other in house uses to quickly and easily create standard, specialized and custom SBC cases thru different case designs, styles and accessories. +All case openings are created automatically based on SBC data and the dimensions of any case design can be expanded in any axis allowing for the creation of larger cases. If you reposition the SBC in a case, you will see i/o openings created or removed appropriately based on it’s proximity to the case geometry. These cases might be useful for prototypes or other in house uses to quickly and easily create standard, specialized and custom SBC cases thru different case designs, styles and accessories. License: GPLv3. @@ -21,9 +21,9 @@ License: GPLv3. ``` ### SBC Case Builder Features: -- Autonomous Multi-SBC, Parametric Multi-Case Generation +- Autonomous Multi-SBC, Multi-Case Parametric Generation - Autonomous Case Standoffs with Variable Height -- Extended Standoff sbc collision detection +- Extended Standoff SBC collision detection - Accessory Customization Framework - Accessory Multi-Associative Parametric Positioning - Absolute Location @@ -47,6 +47,7 @@ License: GPLv3. - Sliding - Cylinder - Rack +- Folded - CNC Cases All case data is stored in the json file sbc_case_builder.json with the accessory data stored in a separate file structure in sbc_case_builder_accessories.cfg. An accessory group name for a given case is stored as part of the case data in the json file. This allows for the reuse or sharing of an accessory set by different cases and can be used to manage groups of accessories. @@ -88,7 +89,7 @@ The SBC that I do not own have been created using manufacturer supplied mechanic There are a few more ideas for base cases to be worked on as well as a host of supporting accessory models that need to be created. It would also be nice to have all of the OEM accessories for each SBC in the library as well. I’m still looking for a better way to create accessory entries and groups, and continue to expand and verify as many SBC as possible. With that and the obvious benefit of autonomously making SBC cases, this project has also been helping fulfill another personal goal. -Computer aided design(CAD) has been around along time but I have been interested in exploring approaches to the next step, computer autonomous design. Regardless of the current or future object creation method, whether it be manufactured or materialized, I believe a universal approach to autonomous design will be needed to advance the human condition. This application has helped me explore and think about practical approaches that might be possible right now in autonomous design and I hope to continue this work by developing new tools and techniques for the new CAD, computer autonomous design. +Computer aided design(CAD) has been around along time but I have been interested in exploring approaches to the next step, computer autonomous design. Regardless of the current or future object creation method, whether it be manufactured or materialized, I believe a universal approach to autonomous design will be needed to advance the human condition. This application has helped me explore and think about practical approaches that might be possible right now in autonomous design and I hope to continue this work by developing new tools and techniques for the new CAD, Computer Autonomous Design. ### Notes diff --git a/sbc_case_builder.json b/sbc_case_builder.json index 730d427..9ae3f37 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -15165,7 +15165,7 @@ "rockpi5b_shell": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15222,7 +15222,7 @@ "rockpi5b_panel": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15279,7 +15279,7 @@ "rockpi5b_stacked": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15336,7 +15336,7 @@ "rockpi5b_tray": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15393,7 +15393,7 @@ "rockpi5b_tray_sides": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15450,7 +15450,7 @@ "rockpi5b_round": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15507,7 +15507,7 @@ "rockpi5b_hex": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15564,7 +15564,7 @@ "rockpi5b_snap": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", @@ -15621,7 +15621,7 @@ "rockpi5b_fitted": { "$fn": "90", "accessory_highlight": "false", - "accessory_name": "none", + "accessory_name": "rockpi5b", "adjust": "0.01", "bottom_ext_standoff": "[6.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]", "bottom_front_left": "0", diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index 405fa3e..3630d9a 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -1751,6 +1751,7 @@ module case_side(case_design,case_style,side) { union() { translate([-gap,-wallthick-gap,-floorthick]) cube([width-2*wallthick,wallthick,case_z+2*floorthick]); + // right hook difference() { translate([width-(2*wallthick)-gap-adjust,-wallthick-gap, ((case_z)/2)-4]) @@ -1759,8 +1760,9 @@ module case_side(case_design,case_style,side) { ((case_z)/2)-4-adjust]) cube([wallthick+.25,wallthick+(2*adjust),4.25]); } + // left hook difference() { - translate([-(2*wallthick)-gap-adjust,-wallthick-gap, + translate([-(2*wallthick)-gap-adjust-.25,-wallthick-gap, ((case_z)/2)-4]) cube([(2*wallthick)+.5,wallthick,8]); translate([-wallthick-gap-adjust-.25,-wallthick-gap-adjust, @@ -1787,6 +1789,7 @@ module case_side(case_design,case_style,side) { union() { translate([-gap,depth-2*(wallthick)-gap,-floorthick]) cube([width-2*wallthick,wallthick,case_z+2*floorthick]); + // right hook difference() { translate([width-(2*wallthick)-gap-adjust,depth-2*(wallthick)-gap-adjust, ((case_z)/2)-4]) @@ -1795,8 +1798,9 @@ module case_side(case_design,case_style,side) { depth-2*(wallthick)-adjust-gap-adjust,((case_z)/2)-4-adjust]) cube([wallthick+.25,wallthick+(2*adjust),4.25]); } + // left hook difference() { - translate([-(2*wallthick)-gap-adjust,depth-2*(wallthick)-gap-adjust,( + translate([-(2*wallthick)-gap-adjust-.25,depth-2*(wallthick)-gap-adjust,( (case_z)/2)-4]) cube([(2*wallthick)+.5,wallthick,8]); translate([-wallthick-gap-adjust-.25,depth-2*(wallthick)-adjust-gap-adjust, diff --git a/sbc_case_builder_accessories.cfg b/sbc_case_builder_accessories.cfg index 48e5293..bffa4c8 100644 --- a/sbc_case_builder_accessories.cfg +++ b/sbc_case_builder_accessories.cfg @@ -1086,9 +1086,13 @@ accessory_data = [ ["rockpi4c+_fitted", "sub","fan",10,10,0,"bottom",[0,0,0],["sbc",true,true,false],40,0,6,2,0,"",0], // sub fan opening - ["rockpi5b_adjustments", - "sub","rectangle",-1,66.5,13,"top",[0,0,0],["sbc",true,true,false],10,2,8,0,0,"",[.25,.25,.25,.25], // sub fan opening - "sub","rectangle",77,67,-1,"bottom",[0,0,0],["sbc",true,true,false],15,18,12.5,0,0,"",[.25,.25,.25,.25]], // sub fan opening + ["rockpi5b", + "sub","rectangle",-1,66.5,13,"top",[0,0,0],["sbc",true,true,false],10,2,8,0,0,"",[.25,.25,.25,.25], // UL standoff adjustment + "sub","rectangle",92,17.5,13,"top",[0,0,0],["sbc",true,true,false],10,2,15,0,0,"",[.25,.25,.25,.25], // LR standoff adjustment + "sub","rectangle",77,67,-1,"bottom",[0,0,0],["sbc",true,true,false],15,18,12.5,0,0,"",[.25,.25,.25,.25], // sdcard opening + "add1","access_port",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // access port + "model","access_cover",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0, // model access port cover + "platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],80,75,2,0,0,"portrait",0], // platter access port cover // Khadas