1. A method of optimizing punching instructions comprising: obtaining a tool bed layout, the tool bed layout comprising a description of a plurality of tool punch parts, each tool punch part further comprising tool definition information; obtaining a component layout, the component layout comprising a description of a component having at least one feature requiring a punching operation; validating the component layout; advancing the component to a position of optimum depth; determining a hit score at the position of optimum depth; and repeating the component advancing and the hit score determination until all of the at least one feature of the component is assigned to a tool punch part.