A MATLAB program is written in which users can input a 2D shape with nodes and then specify places of holes if needed; then, the program generates a CNC code which is ready to run on a CNC machine.
Data can be inserted in 3way: keyboard, Input file, and mouse (clicking on Screen creates nodes and hole places).
Program automatically send errors and asks for corrections if there is a self intersecting between lines.
Other errors like tool diameter intersect edges, hole depth is bigger than work piece height, hole is outside the work-piece and etc. are recognized and user is asked if he wants to ignore them or make corrections.