diff --git a/build.py b/build.py index 6c2cbb0..8d25f18 100644 --- a/build.py +++ b/build.py @@ -1,10 +1,40 @@ # pyright: reportUnusedCallResult=false, reportWildcardImportFromLibrary=false from build123d import * -length, width, thickness = 80.0, 60.0, 10.0 +center_thickness = 10 -with BuildPart() as builder: - Box(length, width, thickness) +mop_diameter = 40 +mop_arc_size = 180 -assert builder.part is not None -export_step(builder.part, "output.step") +scraper_diameter = 40 +scraper_arc_size = 180 + +arms_thickness = 5 + +clamp_length = 50 + +with BuildPart() as mop_scraper_holder: + with BuildSketch() as profile: + with BuildLine() as outline: + mop_arc = CenterArc((0, (mop_diameter + center_thickness) / -2), mop_diameter / 2, 90 - (mop_arc_size / 2), mop_arc_size) + scraper_arc = CenterArc((0, (scraper_diameter + center_thickness) / 2), scraper_diameter / 2, (scraper_arc_size / 2) - 90, -scraper_arc_size) + + Line(mop_arc @ 0, scraper_arc @ 0) + Line(mop_arc @ 1, scraper_arc @ 1) + + make_face() + + mop_arm = CenterArc((0, (mop_diameter + center_thickness) / -2), mop_diameter / 2, 90 - (mop_arc_size / 2), mop_arc_size) + offset(mop_arm, amount=arms_thickness, side=Side.RIGHT) + make_face() + + scraper_arm = CenterArc((0, (scraper_diameter + center_thickness) / 2), scraper_diameter / 2, (scraper_arc_size / 2) - 90, -scraper_arc_size) + offset(scraper_arm, amount=arms_thickness, side=Side.LEFT) + make_face() + + extrude(amount=clamp_length) + + fillet(mop_scraper_holder.edges().filter_by(Axis.Z), 2) + +assert mop_scraper_holder.part is not None +export_step(mop_scraper_holder.part, "mop_scraper_holder.step") diff --git a/flake.nix b/flake.nix index 3787970..f3bc53d 100644 --- a/flake.nix +++ b/flake.nix @@ -29,8 +29,6 @@ krantz.cad = { enable = true; builder = ./build.py; - - outputName = "box"; }; }; };