| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- include <params.scad>
- module old_rim() {
- color("#2C3863") {
- hull() {
- translate([WALL + FLANGE_W - SLIDE_CLEAR - 0.01, 0, 0])
- cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
- translate([WALL + SLIDE_CLEAR, 0, -0.005])
- cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0.01]);
- }
- hull() {
- translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, 0, 0])
- cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
- translate([OUT_L - WALL - SLIDE_CLEAR - 0.01, 0, -0.005])
- cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0.01]);
- }
- translate([WALL + FLANGE_W - SLIDE_CLEAR, 0, 0])
- cube([2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H]);
- translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR - 2.0, 0, 0])
- cube([2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H]);
- hull() {
- translate([FLANGE_W - SLIDE_CLEAR + 2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR - 0.01, 0])
- cube([OUT_L - 2*(FLANGE_W - SLIDE_CLEAR + 2.0), 0.01, FLANGE_H - SLIDE_CLEAR]);
- translate([FLANGE_W - SLIDE_CLEAR + 2.0, LID_Y_LEN - SLIDE_CLEAR - 0.01, -0.005])
- cube([OUT_L - 2*(FLANGE_W - SLIDE_CLEAR + 2.0), 0.01, 0.01]);
- }
- translate([FLANGE_W - SLIDE_CLEAR + 2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR - 2.0, 0])
- cube([OUT_L - 2*(FLANGE_W - SLIDE_CLEAR + 2.0), 2.0, FLANGE_H]);
- intersection() {
- hull() {
- translate([WALL + FLANGE_W - SLIDE_CLEAR - 0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
- cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
- translate([WALL + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, -0.005])
- cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, 0.01]);
- }
- hull() {
- translate([WALL + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
- cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, FLANGE_H - SLIDE_CLEAR]);
- translate([WALL + SLIDE_CLEAR, LID_Y_LEN - SLIDE_CLEAR - 0.01, -0.005])
- cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, 0.01]);
- }
- }
- intersection() {
- hull() {
- translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
- cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
- translate([OUT_L - WALL - SLIDE_CLEAR - 0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, -0.005])
- cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, 0.01]);
- }
- hull() {
- translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
- cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, FLANGE_H - SLIDE_CLEAR]);
- translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, LID_Y_LEN - SLIDE_CLEAR - 0.01, -0.005])
- cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, 0.01]);
- }
- }
- }
- }
- RIB = 2.0;
- module ring(x0, x1, y1, h, run) {
- translate([x0, 0, 0])
- diff()
- cuboid([x1 - x0, y1, h], anchor=BOTTOM+FRONT+LEFT) {
- if (run > 0)
- edge_profile_asym([TOP+LEFT, TOP+RIGHT, TOP+BACK], corner_type="chamfer")
- mask2d_chamfer(x=run, y=h);
- tag("remove")
- position(BOTTOM+FRONT+LEFT)
- translate([run, -0.1, -0.1])
- cuboid([(x1 - x0) - 2*run, y1 - run + 0.1, h + 0.2], anchor=BOTTOM+FRONT+LEFT);
- }
- }
- module new_rim() {
- color("#2C3863") {
- ring(WALL + SLIDE_CLEAR, OUT_L - WALL - SLIDE_CLEAR, LID_Y_LEN,
- FLANGE_H - SLIDE_CLEAR, FLANGE_W);
- ring(WALL + SLIDE_CLEAR + FLANGE_W, OUT_L - WALL - SLIDE_CLEAR - FLANGE_W, LID_Y_LEN,
- FLANGE_H, RIB);
- }
- }
- // ============================================================
- // RENDER — old (hand-rolled) vs new (BOSL2 cuboid+chamfer)
- // ============================================================
- old_rim();
- translate([0, LID_Y_LEN + 15, 0]) new_rim();
|