# 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 # 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 .placeSketch(tripod_hinge_shape) .extrude(-tripod_hinge_width) ) exporters.export(lower_arm, "lower_arm.stl")