diff --git a/monitor/rear_mount.py b/monitor/rear_mount.py index 4e3e732..8017de2 100644 --- a/monitor/rear_mount.py +++ b/monitor/rear_mount.py @@ -62,11 +62,11 @@ rear_mount = ( .faces(">X") .workplane(centerOption="CenterOfBoundBox", offset=-(rear_mount_width-20)/2) .transformed(rotate=cq.Vector(0, 0, 90)) - .center(-hinge_w / 2, rear_mount_thickness / 2).tag("hingeplane") + .center(-hinge_s / 2, rear_mount_thickness / 2).tag("hingeplane") .placeSketch(hinge_profile_1) .extrude(-hinge_t) .workplaneFromTagged("hingeplane") - .workplane(offset=-hinge_t - hinge_w) + .workplane(offset=-hinge_t - hinge_) .placeSketch(hinge_profile_2) .extrude(-hinge_t)) diff --git a/monitor/upper_arm.py b/monitor/upper_arm.py new file mode 100644 index 0000000..e3208f3 --- /dev/null +++ b/monitor/upper_arm.py @@ -0,0 +1,60 @@ +# This is the arm from the tripod to the "elbow" + +import cadquery2 as cq +from cadquery2 import exporters + +from hinge import hinge_gap, hinge_w, hinge_profile_1, hinge_profile_2, hinge_t + +# monitor hinge dimensions +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") +) + +arm_width = min(tripod_hinge_width, hinge_gap) +arm_length = 150 + +lower_arm = ( + cq.Workplane("XY") + .rect(arm_width, arm_width) + .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 + ) + .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") + .placeSketch(hinge_profile_1) + .extrude(-hinge_t) + .workplaneFromTagged("hingeplane") + .workplane(offset=-hinge_t - hinge_w) + .placeSketch(hinge_profile_2) + .extrude(-hinge_t) +) + +exporters.export(lower_arm, "upper_arm.stl")