A computer-implemented method for machining a part (104, 208) for an assembly (100, 202, 400), the method comprising: Acquiring first sensor data for a surface (230, 506) of a first part (101, 204) from a first sensor system; Acquiring second sensor data for a set of existing holes in a second part (102, 206) from a second sensor system; Generating a surface model of the surface (230, 506) of the first part (101, 204) using the first sensor data; Computing first offset data based on a nominal model of a third part (104, 208) that is nominally positioned relative to the surface model within a three-dimensional virtual environment, wherein computing the first offset data comprises: identifying an actual location of a most protruding point on each portion of the surface model of the first part (101, 204) that interfaces with the nominal model of the third part (104, 208); and computing a distance between the actual location and a nominal location of the most protruding point on the each portion of the surface model of the first part (101, 204) that interfaces with the nominal model of the third part (104, 208); Computing second offset data for the set of existing holes using the second sensor data, wherein computing the second offset data comprises: measuring a difference between a nominal location and an actual location for each existing hole (108, 110, 114) of the set of existing holes; Generating overall offset data using the first offset data and the second offset data; wherein the overall offset data is used to drill a set of holes in the third part (104, 208) for use in fastening the third part (104, 208) to the second part (102, 206), the method further comprising: Generating a hole location file for a machining process using the overall offset data; Generating an input for a computer numerical control device using the hole location file; and Controlling the computer numerical control device to drill the set of holes in the third part (104, 208) using the input. Acquiring first sensor data for a surface (230, 506) of a first part (101, 204) from a first sensor system; Acquiring second sensor data for a set of existing holes in a second part (102, 206) from a second sensor system; Generating a surface model of the surface (230, 506) of the first part (101, 204) using the first sensor data; Computing first offset data based on a nominal model of a third part (104, 208) that is nominally positioned relative to the surface model within a three-dimensional virtual environment, wherein computing the first offset data comprises: identifying an actual location of a most protruding point on each portion of the surface model of the first part (101, 204) that interfaces with the nominal model of the third part (104, 208); and computing a distance between the actual location and a nominal location of the most protruding point on the each portion of the surface model of the first part (101, 204) that interfaces with the nominal model of the third part (104, 208); identifying an actual location of a most protruding point on each portion of the surface model of the first part (101, 204) that interfaces with the nominal model of the third part (104, 208); and computing a distance between the actual location and a nominal location of the most protruding point on the each portion of the surface model of the first part (101, 204) that interfaces with the nominal model of the third part (104, 208); Computing second offset data for the set of existing holes using the second sensor data, wherein computing the second offset data comprises: measuring a difference between a nominal location and an actual location for each existing hole (108, 110, 114) of the set of existing holes; measuring a difference between a nominal location and an actual location for each existing hole (108, 110, 114) of the set of existing holes; Generating overall offset data using the first offset data and the second offset data; wherein the overall offset data is used to drill a set of holes in the third part (104, 208) for use in fastening the third part (104, 208) to the second part (102, 206), the method further comprising: Generating a hole location file for a machining process using the overall offset data; Generating an input for a computer numerical control device using the hole location file; and Controlling the computer numerical control device to drill the set of holes in the third part (104, 208) using the input.