add weight

This commit is contained in:
Ricardo (XenGi) Band 2023-08-05 21:31:26 +02:00
commit c67faa5b31
No known key found for this signature in database
6 changed files with 53 additions and 51651 deletions

2
.gitignore vendored
View file

@ -1,5 +1,7 @@
*.stl
*.3mf
*.dxf
*.gcode
# Created by https://www.toptal.com/developers/gitignore/api/linux,windows,macos,vim
# Edit at https://www.toptal.com/developers/gitignore?templates=linux,windows,macos,vim

View file

@ -1,4 +1,4 @@
.PHONY: stl 3mf
.PHONY: stl 3mf dxf
stl:
openscad --export-format binstl -o upper_case.stl upper_case.scad
@ -10,3 +10,7 @@ stl:
openscad --export-format 3mf -o lower_case.3mf lower_case.scad
openscad --export-format 3mf -o plate.3mf plate.scad
dxf:
sed -i 's/\/\/ projection/projection/' plate.scad; openscad --export-format dxf -o plate.dxf plate.scad; sed -i 's/projection/\/\/ projection/' plate.scad
openscad --export-format dxf -o weight.dxf weight.scad

View file

@ -2,21 +2,30 @@
![plate](https://gitlab.com/noisy_cricket/cad/-/raw/main/plate.png?inline=false)
![lower case](https://gitlab.com/noisy_cricket/cad/-/raw/main/lower_case.png?inline=false)
CAD files for noisy cricket
===========================
# CAD files for noisy cricket
Create files for 3D printing or CNC by running this (needs openscad):
```shell
make stl
make 3mf
make dxf
```
You can also find the CAD files on [printables.com](https://www.printables.com/model/531838-noisy-cricket-mini-gaming-keyboard).
_You only need the DXF files if you want to CNC the plate or weight._
- Threaded inserts for the plate are M2, height 2mm, outer diameter 3.2
- Screws for the plate mounting are M2, length 3-3.5mm
- Screws for the PCB mounting are M2, length 3.5-4.6mm
## Hardware:
- Threaded inserts for the plate, USB C daughter board and standoffs are M2, height 2mm, outer diameter 3.2 (10x)
- Screws for the plate and USB-C daughter board are M2, length 3-3.5mm (6x)
- Screws for the PCB mounting are M2, length 3.5-4.6mm (4x)
- Standoffs are M2, length 3mm (4x)
Threaded inserts from [AliExpress](https://www.aliexpress.com/item/1005004873154281.html).
Screws from [AliExpress](https://www.aliexpress.com/item/32810852732.html).
Standoffs from [AliExpress](https://www.aliexpress.com/item/1005003328519584.html).
You can also find the CAD files on [printables.com](https://www.printables.com/model/531838-noisy-cricket-mini-gaming-keyboard).
---

View file

@ -40,14 +40,15 @@ color("SaddleBrown") difference() {
}
cube([pololu_width, pololu_depth, pcb_thickness+0.1], center=true);
// screw holes
translate([-pololu_width/2+pololu_hole_spacing, pololu_depth/2-pololu_hole_spacing, -pcb_thickness/2-2]) cylinder(h=2, r=pololu_holes_radius);
translate([pololu_width/2-pololu_hole_spacing, pololu_depth/2-pololu_hole_spacing, -pcb_thickness/2-2]) cylinder(h=2, r=pololu_holes_radius);
translate([-pololu_width/2+pololu_hole_spacing, pololu_depth/2-pololu_hole_spacing, -pcb_thickness/2-threaded_insert_height]) cylinder(h=threaded_insert_height, d=3);
translate([pololu_width/2-pololu_hole_spacing, pololu_depth/2-pololu_hole_spacing, -pcb_thickness/2-threaded_insert_height]) cylinder(h=threaded_insert_height, d=3);
}
// TODO: make dependent on case size
translate([65, 26.75, case_bottom_thickness/2]) {
cube([10, 40, case_bottom_thickness/2+1]);
cube([72, 10, case_bottom_thickness/2+1]);
translate([65, 26, case_bottom_thickness/2]) {
translate([-7.5,30,0]) linear_extrude(case_bottom_thickness/2+1) polygon([[7.5,0], [7.5,10.75], [0,10.75]]);
cube([10, 40.75, case_bottom_thickness/2+1]);
cube([72, 11, case_bottom_thickness/2+1]);
}
// screw holes for upper case
@ -61,25 +62,21 @@ color("SaddleBrown") difference() {
translate([-case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, d=2);
translate([pcb_width-2*pcb_radius+case_thickness, pcb_depth-2*pcb_radius+case_thickness, 0]) cylinder(h=case_thickness+standoff_height+pcb_thickness+5, d=2);
// hole for weight
difference() {
hull() {
translate([5,5,0]) cylinder(h=2, d=10);
translate([pcb_width-2*pcb_radius-5,5,0]) cylinder(h=2, d=10);
translate([5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=2, d=10);
translate([pcb_width-2*pcb_radius-5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=2, d=10);
}
translate([pcb_width/2,pcb_depth/2+1,1.8]) mirror([1,0,0]) linear_extrude(0.2) text(text="noisy cricket", size=10, font="Liberation Sans:style=Bold", halign="center");
translate([pcb_width/2,pcb_depth/2-11,1.8]) mirror([1,0,0]) linear_extrude(0.2) text(text="© XenGi 2023", size=6, font="Liberation Sans:style=Bold", halign="center");
}
}
// mounting standoffs
color("SaddleBrown") for(i = [0 : len(mounting_holes)-1]) {
translate([mounting_holes[i][0] - pcb_radius, mounting_holes[i][1] - pcb_radius, case_bottom_thickness]) difference() {
cylinder(h=standoff_height, d=4);
cylinder(h=standoff_height, d=2);
for(i = [0 : len(mounting_holes)-1]) {
translate([mounting_holes[i][0] - pcb_radius, mounting_holes[i][1] - pcb_radius, case_bottom_thickness - 3]) union() {
translate([0,0,1]) cylinder(h=2, d=3);
cylinder(h=3, d=2);
}
}
// hole for weight
hull() {
translate([5,5,0]) cylinder(h=1.5, d=10);
translate([pcb_width-2*pcb_radius-5,5,0]) cylinder(h=1.5, d=10);
translate([5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
translate([pcb_width-2*pcb_radius-5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
}
translate([pcb_width/2,pcb_depth/2+1,1.5]) mirror([1,0,0]) linear_extrude(0.2) text(text="noisy cricket", size=10, font="Liberation Sans:style=Bold", halign="center");
translate([pcb_width/2,pcb_depth/2-11,1.5]) mirror([1,0,0]) linear_extrude(0.2) text(text="© XenGi 2023", size=6, font="Liberation Sans:style=Bold", halign="center");
}

51622
plate.dxf

File diff suppressed because it is too large Load diff

12
weight.scad Normal file
View file

@ -0,0 +1,12 @@
// This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
include <util.scad>
$fn = 64;
projection(cut=true) hull() {
translate([5,5,0]) cylinder(h=1.5, d=10);
translate([pcb_width-2*pcb_radius-5,5,0]) cylinder(h=1.5, d=10);
translate([5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
translate([pcb_width-2*pcb_radius-5,pcb_depth-2*pcb_radius-5,0]) cylinder(h=1.5, d=10);
}