import copy from build123d import * from ocp_vscode import show ro = 70 wt=5 h = 100 with BuildPart() as part_builder: with BuildSketch() as sk: Circle(ro) extrude(amount=h) with Locations((0,ro, 20)): Box(ro*2-20, 70, 40) with Locations((0,25,0)): Box(wt*2, 20, 50, mode=Mode.SUBTRACT) with Locations((0,15,0)): Box(ro*2-20-wt*4, wt*2, 60, mode=Mode.SUBTRACT) with Locations((0,15+wt*3,-10)): Box(ro*2-20-wt*4, wt*4, 20, mode=Mode.SUBTRACT) with BuildSketch(part_builder.faces().sort_by(Axis.Z)[-1 ]) as sk: Circle(ro-wt) extrude(amount=-(h-wt), mode=Mode.SUBTRACT) fillet(part_builder.edges().group_by(Axis.Z)[-1], radius=wt/2-0.001) show(part_builder)