diff --git a/notebook_nueva/left_side_lid.stl b/notebook_nueva/left_side_lid.stl new file mode 100644 index 0000000..c393cf7 Binary files /dev/null and b/notebook_nueva/left_side_lid.stl differ diff --git a/notebook_nueva/lid.py b/notebook_nueva/lid.py new file mode 100644 index 0000000..6f1bae3 --- /dev/null +++ b/notebook_nueva/lid.py @@ -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", + ) diff --git a/notebook_nueva/lid.stl b/notebook_nueva/lid.stl new file mode 100644 index 0000000..e20f312 Binary files /dev/null and b/notebook_nueva/lid.stl differ diff --git a/notebook_nueva/right_side_lid.stl b/notebook_nueva/right_side_lid.stl new file mode 100644 index 0000000..067f961 Binary files /dev/null and b/notebook_nueva/right_side_lid.stl differ