From 4af0f0fc9bd21e67765e6b320c5a042538621490 Mon Sep 17 00:00:00 2001 From: Erik Strand <erik.strand@cba.mit.edu> Date: Sun, 13 Feb 2022 21:37:42 -0500 Subject: [PATCH] Add rod hanger example --- .gitignore | 1 + cadquery/rod_hanger.py | 45 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 cadquery/rod_hanger.py diff --git a/.gitignore b/.gitignore index 31c1c9f..a8e1c5a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.swp *.swo +*.stl .DS_Store diff --git a/cadquery/rod_hanger.py b/cadquery/rod_hanger.py new file mode 100644 index 0000000..bc41dc7 --- /dev/null +++ b/cadquery/rod_hanger.py @@ -0,0 +1,45 @@ +import cadquery as cq +import math + +# input measurements in mm +stud_diameter = 6.25 +stud_length = 10.0 +rod_diameter = 19.05 +ledge_angle = 180 * 2.0 * math.pi / 360.0 +ledge_length = 15.0 +plate_thickness = 5.0 +wall_thickness = 3.5 + +# derived values +stud_radius = 0.5 * stud_diameter +rod_radius = 0.5 * rod_diameter +base_radius = rod_radius + wall_thickness + +# these four points define the rod ledge +angle_left = 0.75 * 2.0 * math.pi - 0.5 * ledge_angle +angle_right = 0.75 * 2.0 * math.pi + 0.5 * ledge_angle +p1 = ((rod_radius + wall_thickness) * math.cos(angle_left), + (rod_radius + wall_thickness) * math.sin(angle_left)) +p2 = (rod_radius * math.cos(angle_left), rod_radius * math.sin(angle_left)) +p3 = (rod_radius * math.cos(angle_right), rod_radius * math.sin(angle_right)) +p4 = ((rod_radius + wall_thickness) * math.cos(angle_right), + (rod_radius + wall_thickness) * math.sin(angle_right)) + +result = ( + cq.Workplane("YZ") + .cylinder(stud_length, stud_radius) + .faces(">X") + .workplane(origin=(0.0, 0.0, stud_radius - base_radius)) + .cylinder(plate_thickness, base_radius) + .faces(">X") + .workplane() + .moveTo(*p1) + .lineTo(*p2) + .threePointArc((0.0, -rod_radius), p3) + .lineTo(*p4) + .threePointArc((0.0, -(rod_radius + wall_thickness)), p1) + .close() + .extrude(ledge_length) +) + +cq.exporters.export(result, "rod_hanger.stl") -- GitLab