add weight
This commit is contained in:
parent
463df615e5
commit
c67faa5b31
6 changed files with 53 additions and 51651 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -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
|
||||
|
|
|
|||
6
Makefile
6
Makefile
|
|
@ -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
|
||||
|
||||
|
|
|
|||
21
README.md
21
README.md
|
|
@ -2,21 +2,30 @@
|
|||

|
||||

|
||||
|
||||
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).
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
// mounting standoffs
|
||||
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
|
||||
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");
|
||||
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");
|
||||
}
|
||||
|
||||
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
12
weight.scad
Normal file
12
weight.scad
Normal 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);
|
||||
}
|
||||
Loading…
Reference in a new issue