Moved specific keyboard sizes and positions to dimensions.py
This commit is contained in:
parent
158d7bfd87
commit
7217c7bc3b
@ -1,11 +1,13 @@
|
|||||||
STL_FILES = base.stl hinged_lid.stl simple_lid.stl tandy_lid.stl
|
STL_FILES = base.stl hinged_lid.stl simple_lid.stl tandy_lid.stl
|
||||||
|
|
||||||
all: $(STL_FILES) .lint
|
all: $(STL_FILES) lint
|
||||||
|
|
||||||
%.stl: %.py dimensions.py utils.py
|
%.stl: %.py dimensions.py utils.py components/*py
|
||||||
python $<
|
python $<
|
||||||
|
|
||||||
.lint: *.py
|
lint: .lint
|
||||||
|
|
||||||
|
.lint: **.py
|
||||||
flake8
|
flake8
|
||||||
touch .lint
|
touch .lint
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ def model():
|
|||||||
bottom_face="<Z",
|
bottom_face="<Z",
|
||||||
back_face=None,
|
back_face=None,
|
||||||
offset_x=dim.shell_t,
|
offset_x=dim.shell_t,
|
||||||
offset_y=dim.kbd_height + dim.shell_t,
|
offset_y=keyboard.kbd_height + dim.shell_t,
|
||||||
shell_t=dim.shell_t,
|
shell_t=dim.shell_t,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,27 +1,20 @@
|
|||||||
import cadquery as cq
|
import cadquery as cq
|
||||||
import math
|
|
||||||
|
|
||||||
# TODO: move dimensions to dimensions.py
|
# These should be set from dimensions.py
|
||||||
# Size of the kbd board
|
elements = None
|
||||||
kbd_height = 95.5
|
kbd_pillar_positions = []
|
||||||
kbd_width = 305
|
kbd_height = 0
|
||||||
back_thickness = 19
|
kbd_width = 0
|
||||||
front_thickness = 12
|
kbd_back_thickness = 0
|
||||||
|
kbd_front_thickness = 0
|
||||||
|
kbd_actual_height = 0
|
||||||
|
kbd_angle = 0
|
||||||
|
|
||||||
# Pythagoras
|
|
||||||
actual_height = (kbd_height**2 - (back_thickness - front_thickness) ** 2) ** 0.5
|
|
||||||
kbd_angle = math.acos(actual_height / kbd_height) * 180 / math.pi
|
|
||||||
|
|
||||||
kbd_pillar_positions = [
|
def init():
|
||||||
(19, 16),
|
global elements
|
||||||
(142.5, 25.5),
|
|
||||||
(kbd_width - 20, 16),
|
|
||||||
(23.5, 79.5),
|
|
||||||
(145.5, 82.5),
|
|
||||||
(kbd_width - 19, 79.5),
|
|
||||||
]
|
|
||||||
|
|
||||||
elements = [
|
elements = [
|
||||||
# Shorter pillars
|
# Shorter pillars
|
||||||
{
|
{
|
||||||
"x": 0,
|
"x": 0,
|
||||||
@ -41,7 +34,7 @@ elements = [
|
|||||||
.circle(1.1, mode="s")
|
.circle(1.1, mode="s")
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def add(
|
def add(
|
||||||
@ -62,7 +55,7 @@ def add(
|
|||||||
if bottom_face:
|
if bottom_face:
|
||||||
model = (
|
model = (
|
||||||
model.faces(bottom_face)
|
model.faces(bottom_face)
|
||||||
.workplane(centerOption="CenterOfBoundBox", offset=-front_thickness)
|
.workplane(centerOption="CenterOfBoundBox", offset=-kbd_front_thickness)
|
||||||
.center(
|
.center(
|
||||||
-width / 2,
|
-width / 2,
|
||||||
height / 2,
|
height / 2,
|
||||||
@ -89,16 +82,15 @@ def add(
|
|||||||
.placeSketch(
|
.placeSketch(
|
||||||
cq.Sketch().polygon(
|
cq.Sketch().polygon(
|
||||||
[
|
[
|
||||||
[0, front_thickness],
|
[0, kbd_front_thickness],
|
||||||
[shell_t, front_thickness],
|
[shell_t, kbd_front_thickness],
|
||||||
[actual_height + shell_t, back_thickness],
|
[kbd_actual_height + shell_t, kbd_back_thickness],
|
||||||
[actual_height + shell_t, 1000],
|
[kbd_actual_height + shell_t, 1000],
|
||||||
[0, 1000],
|
[0, 1000],
|
||||||
[0, front_thickness],
|
[0, kbd_front_thickness],
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.cutBlind(-1000)
|
.cutBlind(-1000)
|
||||||
)
|
)
|
||||||
|
|
||||||
return model
|
return model
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
|
import math
|
||||||
|
|
||||||
import components.audio_plug as audio_plug
|
import components.audio_plug as audio_plug
|
||||||
import components.usb_hub as usb_hub
|
import components.usb_hub as usb_hub
|
||||||
|
import components.keyboard as keyboard
|
||||||
|
|
||||||
## Standard things (TODO move to separate file)
|
## Standard things (TODO move to separate file)
|
||||||
|
|
||||||
@ -18,9 +21,27 @@ m4_bottom = 4
|
|||||||
|
|
||||||
|
|
||||||
## Keyboard dimensions
|
## Keyboard dimensions
|
||||||
kbd_height = 95.5
|
keyboard.kbd_height = 95.5
|
||||||
kbd_width = 305
|
keyboard.kbd_width = 305
|
||||||
|
keyboard.kbd_back_thickness = 19
|
||||||
|
keyboard.kbd_front_thickness = 12
|
||||||
|
# Pythagoras
|
||||||
|
keyboard.kbd_actual_height = (
|
||||||
|
keyboard.kbd_height**2
|
||||||
|
- (keyboard.kbd_back_thickness - keyboard.kbd_front_thickness) ** 2
|
||||||
|
) ** 0.5
|
||||||
|
keyboard.kbd_angle = (
|
||||||
|
math.acos(keyboard.kbd_actual_height / keyboard.kbd_height) * 180 / math.pi
|
||||||
|
)
|
||||||
|
keyboard.kbd_pillar_positions = [
|
||||||
|
(19, 16),
|
||||||
|
(142.5, 25.5),
|
||||||
|
(keyboard.kbd_width - 20, 16),
|
||||||
|
(23.5, 79.5),
|
||||||
|
(145.5, 82.5),
|
||||||
|
(keyboard.kbd_width - 19, 79.5),
|
||||||
|
]
|
||||||
|
keyboard.init()
|
||||||
|
|
||||||
## Screen dimensions
|
## Screen dimensions
|
||||||
# Whole screen size
|
# Whole screen size
|
||||||
@ -38,7 +59,7 @@ vis_h = 55
|
|||||||
shell_t = 3
|
shell_t = 3
|
||||||
|
|
||||||
# Size of the base
|
# Size of the base
|
||||||
width = kbd_width + 2 * shell_t
|
width = keyboard.kbd_width + 2 * shell_t
|
||||||
height = 159
|
height = 159
|
||||||
base_thickness = 30 + shell_t # 30 inside
|
base_thickness = 30 + shell_t # 30 inside
|
||||||
|
|
||||||
|
@ -294,10 +294,10 @@ def model():
|
|||||||
cq.Sketch().polygon(
|
cq.Sketch().polygon(
|
||||||
[
|
[
|
||||||
(0, 0),
|
(0, 0),
|
||||||
(0, keyboard.front_thickness),
|
(0, keyboard.kbd_front_thickness),
|
||||||
(dim.shell_t, keyboard.front_thickness),
|
(dim.shell_t, keyboard.kbd_front_thickness),
|
||||||
(keyboard.actual_height + dim.shell_t, keyboard.back_thickness),
|
(keyboard.kbd_actual_height + dim.shell_t, keyboard.kbd_back_thickness),
|
||||||
(keyboard.actual_height + dim.shell_t, dim.base_thickness),
|
(keyboard.kbd_actual_height + dim.shell_t, dim.base_thickness),
|
||||||
(dim.height, dim.base_thickness),
|
(dim.height, dim.base_thickness),
|
||||||
(dim.height, 0),
|
(dim.height, 0),
|
||||||
(0, 0),
|
(0, 0),
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user