This commit is contained in:
Roberto Alsina 2023-04-03 09:53:02 -03:00
commit 2982f34049
25 changed files with 97 additions and 4383 deletions

View File

@ -2,17 +2,41 @@
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.
# 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 = [
# 2-jack plug
{
"x": 0,
"x": -item_h / 2,
"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,19 @@ def add(
back_face,
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
if back_face:
@ -37,11 +74,11 @@ def add(
model=model,
face=back_face,
# 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
w=height,
h=thickness,
x_offset=offset_x - 17 / 2,
x_offset=height - offset_y,
y_offset=shell_t,
hole=hole,
depth=shell_t,

View File

@ -106,7 +106,6 @@ def add(
back_face,
shell_t
):
if bottom_face:
# Vents
for vent in vents:

View File

@ -29,7 +29,6 @@ def add(
back_face,
shell_t
):
# Holes
if back_face:
for hole in holes:

View File

@ -55,7 +55,6 @@ def add(
back_face,
shell_t
):
# This one is special, it creates angled things and cuts off the
# case, so ... it's going to do weird stuff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -67,7 +67,6 @@ def model():
if __name__ == "__main__":
model = model()
exporters.export(model, "lid.stl")

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 754 KiB

View File

@ -1,5 +1,6 @@
import cadquery as cq
from cadquery import exporters
from cq_warehouse.drafting import Draft
import audio_plug
import battery_holder
@ -96,9 +97,9 @@ def model():
width=width,
height=height,
thickness=thickness,
offset_x=111, # Offset from the front-left corner
offset_y=0, # Offset from the bottom
bottom_face=None,
offset_x=width - audio_plug.item_w,
offset_y=40,
bottom_face="<Z",
back_face=">X",
shell_t=shell_t,
)
@ -169,7 +170,6 @@ def model():
if __name__ == "__main__":
model = model()
left_cutout = cq.Sketch().polygon(
@ -209,5 +209,38 @@ if __name__ == "__main__":
)
exporters.export(left_side, "left_side.stl")
draft = Draft(decimal_precision=1)
dimensions = []
dimensions.append(
draft.extension_line(
object_edge=[
cq.Vertex.makeVertex(-width / 2, -height / 2, 0),
cq.Vertex.makeVertex(width / 2, -height / 2, 0),
],
offset=10.0,
)
)
dimensions.append(
draft.extension_line(
object_edge=[
cq.Vertex.makeVertex(width / 2, -height / 2, 0),
cq.Vertex.makeVertex(width / 2, height / 2, 0),
],
offset=10.0,
)
)
exporters.export(model, "model.stl")
exporters.export(model, "model.svg", opt={"projectionDir": (0, 0, 1)})
for d in dimensions[1:]:
dimensions[0].add(d.toCompound())
dimensions[0].add(model)
exporters.export(
dimensions[0].toCompound(),
"model.svg",
opt={
"projectionDir": (0, 0, 1),
"strokeWidth": 0.3,
},
)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -132,7 +132,6 @@ def model():
if __name__ == "__main__":
print("Exporting")
exporters.export(model(), "screen_mount.stl")

Binary file not shown.

View File

@ -47,7 +47,6 @@ def add(
shell_t
):
if bottom_face:
# Mounting pillars
for element in elements:
model = extrude_shape(

View File

@ -26,7 +26,21 @@ elements = [
cq.Sketch().trapezoid(22, 10, 90, mode="a").trapezoid(17, 10, 90, mode="s")
),
"height": 8,
}
},
# Outline
{
"x": 0,
"y": 35,
"shape": (
cq.Sketch()
# FIXME: use actual size
.trapezoid(17, 70, 90, mode="a")
.trapezoid(15, 68, 90, mode="s")
.vertices()
.fillet(3)
),
"height": 0.2,
},
]
@ -42,7 +56,6 @@ def add(
back_face,
shell_t
):
# USB Hub extrusions
if bottom_face:
for element in elements:
@ -51,8 +64,8 @@ def add(
face=bottom_face,
w=width,
h=height,
x_offset=263, # offset_x,
y_offset=0, # shell_t + offset_y,
x_offset=offset_x,
y_offset=shell_t + offset_y,
element=element,
height=-(element["height"] + shell_t),
)

View File

@ -66,7 +66,6 @@ def add(
back_face,
shell_t
):
if bottom_face:
# Vents
for vent in vents: