import cadquery as cq stand_positions = [(0, 0), (58, 0), (58, 49), (0, 49)] stands = ( cq.Sketch().push(stand_positions).circle(3, mode="a").circle(2.65 / 2, mode="s") ) pillar_height = 7 # This is a holder for DuPont cables so they connect to this # things' pogo pins which are used to power the CPU pin_positions = [(3.5, 0), (4 * 2.54 + 3.5, 0)] pin_holder_width = 25 pin_holder_height = 15 pin_holder = ( cq.Sketch() .polygon( [ (0.5, 0), (pin_holder_width, 0), (pin_holder_width, pin_holder_height), (0, pin_holder_height), (0.5, 0), ], mode="a", ) .push(pin_positions) .polygon( [(0, 0), (2.6, 0), (2.6, pin_holder_height), (0, pin_holder_height), (0, 0)], mode="s", ) ) elements = [ # Battery holder stands { "x": 0, "y": 0, "shape": stands, "height": pillar_height, }, # Pogo pin connector channels { "x": 0, "y": 40, "shape": pin_holder, "height": 3, }, ] # Hole distances are relative to the rightmost pillar # seen from the back of the case, that's why they are negative # Heights are relative to base of pillars # All distances are measured to the CENTER of the hole holes = [ # Power inlet { "x": -15, "y": -1 + pillar_height, "height": 6.5, "width": 12, "fillet": 1, }, # Power button { "x": -67, "y": 5.5 + pillar_height, "height": 7, "width": 7, "fillet": 1, }, ]