Make audio interface a real component

This commit is contained in:
Roberto Alsina 2023-04-01 14:26:48 -03:00
parent 26c50d4da7
commit de04e5627c
5 changed files with 108 additions and 54 deletions

View File

@ -2,17 +2,41 @@
import cadquery as cq import cadquery as cq
from utils import punch_hole from utils import extrude_shape, punch_hole
# The hole is for a random USB sound card. # The hole is for a random USB sound card.
# Consumers should set proper offsets for the hole # Consumers should set proper offsets for the hole
# FIXME: use actual sizes
item_w = 40
item_h = 20
hole_w = 17
hole_h = 5
holes = [ holes = [
# 2-jack plug # 2-jack plug
{ {
"x": 0, "x": -item_h / 2,
"y": 4, "y": 4,
"shape": cq.Sketch().trapezoid(17, 5, 90, mode="a").vertices().fillet(2), "shape": cq.Sketch()
.trapezoid(hole_w, hole_h, 90, mode="a")
.vertices()
.fillet(2),
},
]
elements = [
# Outline
{
"x": item_w / 2,
"y": item_h / 2,
"shape": (
cq.Sketch()
.trapezoid(item_w, item_h, 90, mode="a")
.trapezoid(item_w - 2, item_h - 2, 90, mode="s")
),
"height": 0.2,
}, },
] ]
@ -29,6 +53,20 @@ def add(
back_face, back_face,
shell_t shell_t
): ):
# Extrusions
if bottom_face:
for element in elements:
model = extrude_shape(
model=model,
face=bottom_face,
w=width,
h=height,
x_offset=offset_x,
y_offset=offset_y,
element=element,
height=-(element["height"] + shell_t),
)
# Holes # Holes
if back_face: if back_face:
for hole in holes: for hole in holes:
@ -36,11 +74,11 @@ def add(
model=model, model=model,
face=back_face, face=back_face,
# FIXME: This is weird because it's the RIGHT side, # FIXME: This is weird because it's the RIGHT side,
# So it's height instead of w # So it's height instead of w, offset_y instead of x
# need to work on making these coherent # need to work on making these coherent
w=height, w=height,
h=thickness, h=thickness,
x_offset=offset_x - 17 / 2, x_offset=height - offset_y,
y_offset=shell_t, y_offset=shell_t,
hole=hole, hole=hole,
depth=shell_t, depth=shell_t,

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 773 KiB

After

Width:  |  Height:  |  Size: 774 KiB

View File

@ -96,9 +96,9 @@ def model():
width=width, width=width,
height=height, height=height,
thickness=thickness, thickness=thickness,
offset_x=111, # Offset from the front-left corner offset_x=width - audio_plug.item_w,
offset_y=0, # Offset from the bottom offset_y=40,
bottom_face=None, bottom_face="<Z",
back_face=">X", back_face=">X",
shell_t=shell_t, shell_t=shell_t,
) )

Binary file not shown.