Missing file

This commit is contained in:
Roberto Alsina 2023-03-21 10:56:17 -03:00
parent d1e7b589c8
commit 61a723c713

View File

@ -0,0 +1,73 @@
from utils import extrude_shape, punch_hole2
import cadquery as cq
elements = None
bottom_holes = None # Not really vents FIXME
def init(positions, thickness):
"""Because these need to match in multiple models, we create the
elemments dynamically"""
global elements, bottom_holes
elements = [
{
"x": 0,
"y": 0,
"shape": cq.Sketch()
.push(positions)
.trapezoid(12, 12, 90, mode="a")
.circle(1.8, mode="s"),
"height": thickness,
}
]
bottom_holes = [
{
"x": 0,
"y": 0,
"shape": cq.Sketch().push(positions).circle(3, mode="a"),
"depth": thickness - 13, # (screw thread length - threaded insert depth)
}
]
def add(
*,
model,
width,
height,
thickness,
offset_x,
offset_y,
bottom_face,
back_face,
shell_t
):
if bottom_face:
# Mounting pillars
for element in elements:
model = extrude_shape(
model=model,
face=bottom_face,
w=width,
h=height,
x_offset=offset_x + element["x"],
y_offset=shell_t + offset_y + element["y"],
shape=element["shape"],
height=-(element["height"] + shell_t),
)
# Screw holes
for hole in bottom_holes:
model = punch_hole2(
model=model,
face=bottom_face,
w=width,
h=height,
x_offset=offset_x + hole["x"],
y_offset=shell_t + offset_y + hole["y"],
hole=hole,
depth=hole["depth"],
)
return model