A method for generating a tool path to manufacture a part using a computer numerical control system, the method comprising the steps of; (a) generating an initial design part geometry from a geometry modelling program as an input, (b) creating a pre-finished in-process workpiece geometry before a finishing process, using a numerical control program by subtracting and/or adding tool processed volume such that a post-form having an amount of stock thickness with respect to surface normal vectors of the corresponding surfaces of the design part for overcoming vibration or chatter events during the finishing process is left behind; (c) controlling the stock thickness distribution of in-process workpiece geometry by following a tool path wherein the stock thickness distribution is based on at least one predetermined direction of the initial design part, such that a variable stock thickness distribution around the pre-finished in-process workpiece is obtained; (d) locating at least one tool on the tool path to be generated with respect to the design part geometry wherein said location is calculated by using the design part surface data of the corresponding design part and the corresponding stock thickness value; and, (e) by repeating the step (a), (b), (c) and (d) and using the individual stock thickness values to calculate the tool path defined as a series of subtracting or adding tool location to be stored in the numerical control program, the tool removes predefined portion of the in-process workpiece material in a controlled manner, leaving a variably controlled stock thickness around the design geometry, characterized in that the numerical control program in step (b) further comprises continuously variable sets of surface stock offset with respect to at least one surface normal vector of the part of the surface to be machined, in a semi-finishing tool path. (a) generating an initial design part geometry from a geometry modelling program as an input, (b) creating a pre-finished in-process workpiece geometry before a finishing process, using a numerical control program by subtracting and/or adding tool processed volume such that a post-form having an amount of stock thickness with respect to surface normal vectors of the corresponding surfaces of the design part for overcoming vibration or chatter events during the finishing process is left behind; (c) controlling the stock thickness distribution of in-process workpiece geometry by following a tool path wherein the stock thickness distribution is based on at least one predetermined direction of the initial design part, such that a variable stock thickness distribution around the pre-finished in-process workpiece is obtained; (d) locating at least one tool on the tool path to be generated with respect to the design part geometry wherein said location is calculated by using the design part surface data of the corresponding design part and the corresponding stock thickness value; and, (e) by repeating the step (a), (b), (c) and (d) and using the individual stock thickness values to calculate the tool path defined as a series of subtracting or adding tool location to be stored in the numerical control program, the tool removes predefined portion of the in-process workpiece material in a controlled manner, leaving a variably controlled stock thickness around the design geometry,