112 lines
2.2 KiB
Python
112 lines
2.2 KiB
Python
import audio_plug
|
|
import usb_hub
|
|
|
|
## Standard things (TODO move to separate file)
|
|
|
|
# M3 threaded insert sizes
|
|
ti_radius = 2.35
|
|
ti_depth = 6.25
|
|
|
|
# M3 hex nut dimensions
|
|
m3_hn_diam = 5.5
|
|
m3_hn_hole = 3
|
|
m3_hn_thickness = 2.5
|
|
|
|
# Dimensions for countersunk M4 screws
|
|
m4_top = 9
|
|
m4_bottom = 4
|
|
|
|
|
|
## Keyboard dimensions
|
|
kbd_height = 95.5
|
|
kbd_width = 305
|
|
|
|
|
|
## Screen dimensions
|
|
# Whole screen size
|
|
scr_w = 231
|
|
scr_h = 65
|
|
scr_thickness = 5.5
|
|
# Visible screen size
|
|
vis_w = 219
|
|
vis_h = 55
|
|
|
|
|
|
## Dimensions for the base of the computer
|
|
|
|
# Thickness of the outer material
|
|
shell_t = 3
|
|
|
|
# Size of the base
|
|
width = kbd_width + 2 * shell_t
|
|
height = 159
|
|
base_thickness = 30 + shell_t # 30 inside
|
|
|
|
|
|
# These are placed where convenient, and are used to join the top and bottom
|
|
# parts of the case.
|
|
# Measured from back-left corner OUTSIDE
|
|
mounting_pillar_positions = [
|
|
(6, 6),
|
|
(6, 43),
|
|
(120, 6),
|
|
(170, 6),
|
|
(width - 6, 6),
|
|
(width - 6, 43),
|
|
(120, 48),
|
|
(170, 48),
|
|
]
|
|
|
|
# Offset for the USB port from back-left corner
|
|
# of the case to left side of the hub
|
|
usb_offset_x = width - audio_plug.item_w - usb_hub.item_w
|
|
|
|
# CPU holder position from back-left corner of the case
|
|
cpu_offset_x = 177
|
|
cpu_offset_y = 2
|
|
|
|
# Battery holder position from back-left corner of the case
|
|
battery_offset_x = 15
|
|
battery_offset_y = 3
|
|
|
|
# HDMI out hole from back-left corner of the case
|
|
hdmi_out_offset_x = 138
|
|
|
|
## Dimensions for the Tandy lid
|
|
|
|
# Size of the whole object
|
|
tl_height = 66
|
|
tl_height_bottom = 59
|
|
tl_full_thickness = 48 # Will be shorter after construction
|
|
# Screen angle
|
|
tl_scr_angle = 20
|
|
|
|
|
|
## Dimensions for the hinged lid
|
|
|
|
# This is a constant used to control how far back the hinges go
|
|
# when open. It's arbitrary and can be adjusted experimentally
|
|
# printing small samples
|
|
hl_hinge_slant = shell_t + 2
|
|
|
|
hl_bezel_width = m3_hn_diam + 2
|
|
hl_bezel_height = 1
|
|
hl_bezel_thickness = 2
|
|
|
|
hl_hinge_radius = 5.5
|
|
hl_screw_radius = 1.5 # M3
|
|
hl_ring_radius = 5 # M3
|
|
hl_hinge_offset = max(p[1] for p in mounting_pillar_positions) + 6
|
|
hl_hinge_width = 25
|
|
# Base + this lid
|
|
hl_full_thickness = 43
|
|
|
|
|
|
## Dimensions for the simple lid
|
|
sl_lip_thickness = 1.5
|
|
sl_height = (
|
|
max([y for _, y in mounting_pillar_positions]) + 6 + shell_t + sl_lip_thickness
|
|
)
|
|
sl_thickness = shell_t
|
|
sl_front_lip = 8
|