{"id":"gcode-g70","model_id":"G70","name":"G70 Lathe finishing cycle","summary":"G70 is a lathe finishing cycle that follows a profile defined in the subroutine number given by Q. It is intended to run after the profile has been cut with G71 or G72. The cycle moves to the start of the profile, follows it with G1 and G2/G3 moves, and can repeat the profile for multiple finishing passes.","study_notes":["X and Z set a rapid starting position that is also used between finishing passes; both default to the initial position.","D is the starting distance of the profile and E is the ending distance; both default to 0.","P is the number of passes and defaults to 1.","The distance between the pass and the final profile is (pass-1)*(D-E)/P+E, measured from the cycle starting position with positive distance toward that point.","The profile path in Q is followed using G1 and G2/G3 commands.","After the final pass the tool is left at the end of the profile including E.","Fillets and chamfers can be added to the profile; the document refers to G71/G72 details."],"safety_notes":["It is an error if no subroutine is defined with the number given in Q.","It is an error if the path given in the profile is not monotonic in Z or X.","It is an error if the ZX plane has not been selected with G17-G19.1."],"sources":[{"url":"https://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g70","title":"G-Codes","accessed":"2026-10-26"}],"verification":{"status":"source_checked","checked_at":"2026-10-26","values":15,"method":"llm_source_check"},"updated_at":"2026-10-26","type":"instruction","spec":{"language":"gcode","code":"G70","syntax":"G70 Q- <X-> <Z-> <D-> <E-> <P->","parameters":[{"name":"Q","description":"The subroutine number."},{"name":"X","description":"The starting X position; defaults to the initial position."},{"name":"Z","description":"The starting Z position; defaults to the initial position."},{"name":"D","description":"The starting distance of the profile; defaults to 0."},{"name":"E","description":"The ending distance of the profile; defaults to 0."},{"name":"P","description":"The number of passes to use; defaults to 1."}],"dialect":"LinuxCNC","related":["gcode-g01","gcode-g02"],"standards":[]},"url":"https://machineschema.com/instruction/gcode-g70","license":"https://creativecommons.org/licenses/by/4.0/"}