A method for removing excess material from regions of a window or door frame or sash comprising: defining a sequence of movements for an abrading tool which bring said abrading tool into contact with one or more regions of a window or door frame or sash and converting said sequence of movements into an initial control program for a robot controller coupled to a robot having an articulating arm for moving said abrading tool along an initial tool path; wherein a sequence of movements are implemented by a robot to which said abrading tool is attached and further comprising: selecting a specific abrading tool mounted to at least one robotic head; evaluating the initial control program associated with the specific abrading tool by parsing the initial control program and storing move commands into an array of move commands and creating a data target array from said initial control program including coordinates that define travel limits of the move commands stored in the array of move commands; and writing a translated control program file, the writing comprising: creating an array of move type commands having line numbers to the move type commands to identify the position of each move type commands within the array and writing a translated data file that includes move type coordinates for the selected at least one tool, wherein a given move command accesses its associated data in the translated data file by the line number of said given move command; and mounting a first window or door frame or sash at a treatment position; moving the abrading tool in steps along the initial tool path from a starting position to one or more intermediate positions along the initial tool path; depicting spatial coordinates of the abrading tool with the abrading tool positioned at the one or more intermediate positions along the initial tool path relative to a fixed reference location; providing a user input for modifying the spatial coordinates of one or more of the intermediate locations in a data store (420, 426) to define a modified tool path for use in abrading a window or a door frame or sash; modifying the initial control program based on the modified tool path to provide a modified control program based on the modified tool path; and executing the modified control program with the robot controller to abrade one or more regions of another window or door frame or sash having a similar profile to the first window or door frame or sash. defining a sequence of movements for an abrading tool which bring said abrading tool into contact with one or more regions of a window or door frame or sash and converting said sequence of movements into an initial control program for a robot controller coupled to a robot having an articulating arm for moving said abrading tool along an initial tool path; wherein a sequence of movements are implemented by a robot to which said abrading tool is attached and further comprising: selecting a specific abrading tool mounted to at least one robotic head; evaluating the initial control program associated with the specific abrading tool by parsing the initial control program and storing move commands into an array of move commands and creating a data target array from said initial control program including coordinates that define travel limits of the move commands stored in the array of move commands; and writing a translated control program file, the writing comprising: creating an array of move type commands having line numbers to the move type commands to identify the position of each move type commands within the array and writing a translated data file that includes move type coordinates for the selected at least one tool, wherein a given move command accesses its associated data in the translated data file by the line number of said given move command; and selecting a specific abrading tool mounted to at least one robotic head; evaluating the initial control program associated with the specific abrading tool by parsing the initial control program and storing move commands into an array of move commands and creating a data target array from said initial control program including coordinates that define travel limits of the move commands stored in the array of move commands; and writing a translated control program file, the writing comprising: creating an array of move type commands having line numbers to the move type commands to identify the position of each move type commands within the array and writing a translated data file that includes move type coordinates for the selected at least one tool, wherein a given move command accesses its associated data in the translated data file by the line number of said given move command; and mounting a first window or door frame or sash at a treatment position; moving the abrading tool in steps along the initial tool path from a starting position to one or more intermediate positions along the initial tool path; depicting spatial coordinates of the abrading tool with the abrading tool positioned at the one or more intermediate positions along the initial tool path relative to a fixed reference location; providing a user input for modifying the spatial coordinates of one or more of the intermediate locations in a data store (420, 426) to define a modified tool path for use in abrading a window or a door frame or sash; modifying the initial control program based on the modified tool path to provide a modified control program based on the modified tool path; and executing the modified control program with the robot controller to abrade one or more regions of another window or door frame or sash having a similar profile to the first window or door frame or sash.