diff --git a/notebook_nueva/front_bezel.stl b/notebook_nueva/front_bezel.stl new file mode 100644 index 0000000..81fead3 Binary files /dev/null and b/notebook_nueva/front_bezel.stl differ diff --git a/notebook_nueva/hinged_lid.py b/notebook_nueva/hinged_lid.py index c26501e..b5738d3 100644 --- a/notebook_nueva/hinged_lid.py +++ b/notebook_nueva/hinged_lid.py @@ -39,6 +39,15 @@ mounting_pillars = ( # printing small samples hinge_slant = shell_t + 2 +# M3 hex nut dimensions +m3_hn_diam = 5.5 +m3_hn_hole = 3 +m3_hn_thickness = 2.5 + +bezel_width = m3_hn_diam + 2 +bezel_height = 1 +bezel_thickness = 2 + def model(): # Create a 2-part hinged lid @@ -228,14 +237,6 @@ def model(): .cutBlind(-hinge_width / 2 - 1) ) - # M3 hex nut dimensions - m3_hn_diam = 5.5 / 2 - m3_hn_hole = 1.5 - m3_hn_thickness = 2.5 - - bezel_width = 5 - bezel_height = shell_t - # Screen mount model = ( # 1st layer @@ -254,16 +255,6 @@ def model(): .fillet(2) ) .extrude(-2 - screen_mount.scr_thickness) - # Holes for captured nuts - .workplaneFromTagged("screen_plane") - .workplane(offset=1) - .rect( - screen_mount.scr_w + 2 * bezel_width - m3_hn_diam - 1, - screen_mount.scr_h + 2 * bezel_height - m3_hn_diam - 1, - forConstruction=True, - ) - .vertices() - .hole(m3_hn_diam, depth=m3_hn_thickness + 0.5) # Hole for screws .workplaneFromTagged("screen_plane") .workplane(offset=1) @@ -274,15 +265,25 @@ def model(): ) .vertices() .hole(m3_hn_hole, depth=10) - # Hole to place screen + # Holes for captured nuts + .workplaneFromTagged("screen_plane") + .workplane(offset=1) + .rect( + screen_mount.scr_w + 2 * bezel_width - m3_hn_diam - 1, + screen_mount.scr_h + 2 * bezel_height - m3_hn_diam - 1, + forConstruction=True, + ) + .vertices() + .hole(m3_hn_diam, depth=m3_hn_thickness + 0.5) + # Remove middle of the screen holder .workplaneFromTagged("screen_plane") .placeSketch( cq.Sketch().trapezoid( - screen_mount.scr_w - 40, screen_mount.scr_h + 2 * shell_t, 90 + screen_mount.scr_w - 40, screen_mount.scr_h + 2 * bezel_height, 90 ) ) .cutBlind(-100) - # Remove middle of the screen holder + # Hole to place screen .workplaneFromTagged("screen_plane") .workplane(offset=-screen_mount.scr_thickness - 2) .placeSketch(cq.Sketch().trapezoid(screen_mount.scr_w, screen_mount.scr_h, 90)) @@ -314,11 +315,83 @@ def model(): return model +def front_bezel(): + model = ( + cq.Workplane("XY") + # Hollow box + .tag("base") + .placeSketch( + cq.Sketch() + .trapezoid( + screen_mount.scr_w + 2 * bezel_width + 2 * bezel_thickness, + screen_mount.scr_h + 2 * bezel_height + 2 * bezel_thickness, + 90, + ) + .vertices() + .fillet(2) + ) + .extrude(-2 - screen_mount.scr_thickness - bezel_thickness) + .workplaneFromTagged("base") + .workplane(offset=-bezel_thickness) + .placeSketch( + cq.Sketch() + .trapezoid( + screen_mount.scr_w + 2 * bezel_width, + screen_mount.scr_h + 2 * bezel_height, + 90, + ) + .vertices() + .fillet(2) + ) + .cutBlind(-100) + # Holes for screws + .workplaneFromTagged("base") + .rect( + screen_mount.scr_w + 2 * bezel_width - m3_hn_diam - 1, + screen_mount.scr_h + 2 * bezel_height - m3_hn_diam - 1, + forConstruction=True, + ) + .vertices() + .hole(m3_hn_hole, depth=10) + # Viewport hole + .workplaneFromTagged("base") + .placeSketch( + cq.Sketch() + .trapezoid( + screen_mount.vis_w, + screen_mount.vis_h, + 90, + ) + .vertices() + .fillet(2) + ) + .cutBlind("last") + # Cable gap + .workplaneFromTagged("base") + .workplane(offset=-screen_mount.scr_thickness - bezel_thickness) + .center(0, 10) + .placeSketch( + cq.Sketch() + .trapezoid( + screen_mount.vis_w, + screen_mount.vis_h, + 90, + ) + .vertices() + .fillet(2) + ) + .cutBlind(-10) + ) + return model + + if __name__ == "__main__": model = model() exporters.export(model, "hinged_lid.stl") + exporters.export(front_bezel(), "front_bezel.stl") + exporters.export( model, "hinged_lid.svg", diff --git a/notebook_nueva/hinged_lid.stl b/notebook_nueva/hinged_lid.stl index 7810639..41a2f16 100644 Binary files a/notebook_nueva/hinged_lid.stl and b/notebook_nueva/hinged_lid.stl differ diff --git a/notebook_nueva/hinged_lid.svg b/notebook_nueva/hinged_lid.svg index 9ed22e3..d8966a9 100644 --- a/notebook_nueva/hinged_lid.svg +++ b/notebook_nueva/hinged_lid.svg @@ -39,18 +39,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -198,10 +198,10 @@ - - - - + + + + @@ -216,14 +216,14 @@ - - - - - - - - + + + + + + + + @@ -288,22 +288,22 @@ - - - - - - + + + + + + - - - + + + - - - - - + + + + + @@ -358,13 +358,13 @@ - - + + - - + + diff --git a/notebook_nueva/left_hinged_lid.stl b/notebook_nueva/left_hinged_lid.stl index a6ef6cc..a11c329 100644 Binary files a/notebook_nueva/left_hinged_lid.stl and b/notebook_nueva/left_hinged_lid.stl differ diff --git a/notebook_nueva/right_hinged_lid.stl b/notebook_nueva/right_hinged_lid.stl index 2ca9746..1fe827e 100644 Binary files a/notebook_nueva/right_hinged_lid.stl and b/notebook_nueva/right_hinged_lid.stl differ