# 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 / 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 = 130

lower_arm = (
    cq.Workplane("XY")
    .rect(arm_width, arm_width)
    .extrude(arm_length)
    .edges("|Z or <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.svg")
