model = (
cq.Workplane("XY")
.polyline(pts1)
.radiusArc((0,49.8), radius=85)
.close()
.extrude(284)
.pushPoints([(25,24)])
.circle(5)
.cutBlind(16)
.transformed(offset=(0,0,35))
.polyline(pts2)
.close()
.cutBlind(19)
.transformed(offset=(0,0,39))
.polyline(pts2)
.close()
.cutBlind(19)
.transformed(offset=(0,0,39))
.polyline(pts2)
.close()
.cutBlind(19)
.transformed(offset=(0,0,39))
.polyline(pts2)
.close()
.cutBlind(19)
.transformed(offset=(0,0,39))
.polyline(pts2)
.close()
.cutBlind(19)
.transformed(offset=(0,0,39))
.polyline(pts2)
.close()
.cutBlind(19)
.transformed(offset=(0,0,54))
.pushPoints([(25,24)])
.circle(5)
.cutBlind(-16)
.transformed(offset=(0,0,0), rotate=(-90,0,0))
.center(25,142)
.rect(44,278)
.cutBlind(5)
.transformed(offset=(0,0,0))
.center(0,0)
.rect(20,244)
.cutBlind(10)
.pushPoints([(15,259),(35,259),(35,15),(15,15)])
.moveTo(-10,122)
.radiusArc((10,122), radius=10)
.close()
.cutBlind(10)
.moveTo(-10,-122)
.radiusArc((10,-122), radius=-10)
.close()
.cutBlind(10)
.faces(">X")
.workplane()
.transformed(offset=(30,0,0))
.transformed(rotate=(0,angle_1,0))
.transformed(rotate=(angle_2,0,0))
.circle(2)
.cutThruAll()
)