New lid part
This commit is contained in:
parent
0335944118
commit
1b17c1e585
BIN
notebook_nueva/left_side_lid.stl
Normal file
BIN
notebook_nueva/left_side_lid.stl
Normal file
Binary file not shown.
80
notebook_nueva/lid.py
Normal file
80
notebook_nueva/lid.py
Normal file
@ -0,0 +1,80 @@
|
||||
import cadquery as cq
|
||||
from cadquery import exporters
|
||||
|
||||
from modelo import mounting_pillar_positions, shell_t, width
|
||||
from utils import hex_vents, punch_hole
|
||||
|
||||
# Dimensions for countersunk M4 screws
|
||||
m4_top = 7.5
|
||||
m4_bottom = 4
|
||||
m4_height = 2.5
|
||||
|
||||
|
||||
height = 64.5 + shell_t # Measured
|
||||
thickness = shell_t
|
||||
front_lip = 8
|
||||
|
||||
|
||||
def model():
|
||||
# Create the basic shape of the case bottom.
|
||||
model = (
|
||||
cq.Workplane("XY")
|
||||
# Hollow box
|
||||
.box(width, height, thickness)
|
||||
.edges("|Z and >Y")
|
||||
.fillet(2)
|
||||
)
|
||||
|
||||
# Make many holes
|
||||
vent = hex_vents(size=6, width=width * 0.9, height=height * 0.9)[0]
|
||||
model = punch_hole(
|
||||
model=model,
|
||||
face=">Z",
|
||||
w=width,
|
||||
h=height,
|
||||
x_offset=0.05 * width,
|
||||
y_offset=0.05 * height,
|
||||
hole=vent,
|
||||
depth=thickness,
|
||||
)
|
||||
|
||||
# Add screw holes
|
||||
for position in mounting_pillar_positions:
|
||||
model = (
|
||||
model.faces(">Z")
|
||||
.workplane(centerOption="CenterOfBoundBox")
|
||||
.center(-width / 2 + position[0], height / 2 - position[1])
|
||||
.placeSketch(cq.Sketch().circle(6))
|
||||
.extrude(-thickness)
|
||||
.faces(">Z")
|
||||
.workplane(centerOption="CenterOfBoundBox")
|
||||
.center(-width / 2 + position[0], height / 2 - position[1])
|
||||
.cskHole(m4_bottom, m4_top, 82, depth=None)
|
||||
)
|
||||
|
||||
# Add front edge
|
||||
|
||||
model = (
|
||||
model.faces(">Z")
|
||||
.workplane(centerOption="CenterOfBoundBox")
|
||||
.center(0, -height / 2 - shell_t / 2)
|
||||
.placeSketch(cq.Sketch().trapezoid(width, shell_t, 90))
|
||||
.extrude(-front_lip - thickness)
|
||||
)
|
||||
|
||||
return model
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
model = model()
|
||||
exporters.export(model, "lid.stl")
|
||||
|
||||
exporters.export(
|
||||
model.faces(">X").workplane(offset=-width / 2).split(keepTop=True),
|
||||
"right_side_lid.stl",
|
||||
)
|
||||
exporters.export(
|
||||
model.faces(">X").workplane(offset=-width / 2).split(keepBottom=True),
|
||||
"left_side_lid.stl",
|
||||
)
|
BIN
notebook_nueva/lid.stl
Normal file
BIN
notebook_nueva/lid.stl
Normal file
Binary file not shown.
BIN
notebook_nueva/right_side_lid.stl
Normal file
BIN
notebook_nueva/right_side_lid.stl
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user