From e61be357ee15f2fdf791676cddafc6251a25c92e Mon Sep 17 00:00:00 2001 From: Roberto Alsina Date: Sat, 23 Jul 2022 14:05:21 -0300 Subject: [PATCH] Good upper arm --- monitor/upper_arm.py | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/monitor/upper_arm.py b/monitor/upper_arm.py index e3208f3..89b8152 100644 --- a/monitor/upper_arm.py +++ b/monitor/upper_arm.py @@ -1,4 +1,4 @@ -# This is the arm from the tripod to the "elbow" +# This is the arm from the monitor to the "elbow" import cadquery2 as cq from cadquery2 import exporters @@ -9,52 +9,46 @@ from hinge import hinge_gap, hinge_w, hinge_profile_1, hinge_profile_2, hinge_t inner_monitor_hinge = 3.2 / 2 outer_monitor_hinge = hinge_w / 2 -# tripod hinge dimensions -inner_tripod_hinge = 7.5 / 2 -outer_tripod_hinge = 17.5 / 2 -tripod_hinge_width = 5.5 - - monitor_hinge_shape = ( cq.Sketch().circle(outer_monitor_hinge).circle(inner_monitor_hinge, mode="s") ) -tripod_hinge_shape = ( - cq.Sketch().circle(outer_tripod_hinge).circle(inner_tripod_hinge, mode="s") +# Both hinges are the same shape, just one is outer and the other inner +elbow_hinge_shape = ( + cq.Sketch().circle(outer_monitor_hinge).circle(inner_monitor_hinge, mode="s") ) -arm_width = min(tripod_hinge_width, hinge_gap) arm_length = 150 +arm_width = hinge_gap lower_arm = ( cq.Workplane("XY") - .rect(arm_width, arm_width) + .rect(hinge_w, hinge_gap) .extrude(arm_length) .edges("|Z or Z") .fillet(0.25) .faces(">Y") # Add hinge that connects to the monitor - .workplane( - centerOption="CenterOfBoundBox", offset=(hinge_gap - arm_width) / 2 - ) + .workplane(centerOption="CenterOfBoundBox") .center(0, arm_length / 2 + (outer_monitor_hinge - inner_monitor_hinge)) .placeSketch(monitor_hinge_shape) .extrude(-hinge_gap) - .center(0, -(arm_length + outer_tripod_hinge)) - # Undo previous offset + new offset - .workplane( - offset=-(hinge_gap - arm_width - tripod_hinge_width + arm_width) / 2 - ) - # Add hinge that connects to the tripod - # Hinge integration - .transformed(rotate=cq.Vector(0, 0, 90)) - .center(-hinge_w / 2, 0).tag("hingeplane") + .center(0, -(arm_length + outer_monitor_hinge)) + # Add hinge that connects to the elbow + .transformed(rotate=cq.Vector(0, 0, 180)) + .workplane(offset=(20 - arm_width) / 2) + .center(-hinge_w / 2, 0) + .tag("hingeplane") .placeSketch(hinge_profile_1) .extrude(-hinge_t) .workplaneFromTagged("hingeplane") - .workplane(offset=-hinge_t - hinge_w) + .workplane(offset=-hinge_t - hinge_gap) .placeSketch(hinge_profile_2) .extrude(-hinge_t) + .workplaneFromTagged("hingeplane") + .center(+hinge_w / 2, 0) + .rect(hinge_w, hinge_w + 6) + .extrude(-(2 * hinge_t + hinge_gap)) ) exporters.export(lower_arm, "upper_arm.stl")