A computer-implemented method, the method comprising: receiving a data model representation of a part, the data model representation including at least one layer (200, 600) of the part and inner and outer contours (905, 910) for the at least one layer (200, 600); determining a hatch pattern for each layer (200, 600) of the at least one layer (200, 600) of the part, the hatch pattern for each layer (200, 600) being dependent on the inner and outer contours (905, 910) for each respective layer (200, 600); generating, via a contour based hatching engine, a record of the determined hatch pattern for each layer (200, 600), the record including locations for the hatch pattern for each layer (200, 600); and saving, via a data storage device, the record of the determined hatch pattern for each layer (200, 600) of the part; wherein the determining of the hatch pattern for each layer (200, 600) of the at least one layer (200, 600) of the part, comprises: determining a skeleton (825, 915, 1115) for each layer (200, 600) of the part, the skeleton (825, 915, 1115) being centrally located between the inner and outer contours (905, 910) of the part; fitting, for each layer (200, 600) of the part, a continuous spline (820, 920, 1120) over the skeleton (825, 915, 1115) of each layer (200, 600) of the part; and generating a plurality of hatches for each layer (200, 600) of the part, characterized in that each of the plurality of hatches having a fixed hatch angle relative to the spline (820, 920, 1120) for each respective layer (200, 600) of the part and the plurality of hatches for each layer (200, 600) of the part comprising the determined hatch pattern for each layer (200, 600) of the part. receiving a data model representation of a part, the data model representation including at least one layer (200, 600) of the part and inner and outer contours (905, 910) for the at least one layer (200, 600); determining a hatch pattern for each layer (200, 600) of the at least one layer (200, 600) of the part, the hatch pattern for each layer (200, 600) being dependent on the inner and outer contours (905, 910) for each respective layer (200, 600); generating, via a contour based hatching engine, a record of the determined hatch pattern for each layer (200, 600), the record including locations for the hatch pattern for each layer (200, 600); and saving, via a data storage device, the record of the determined hatch pattern for each layer (200, 600) of the part; wherein the determining of the hatch pattern for each layer (200, 600) of the at least one layer (200, 600) of the part, comprises: determining a skeleton (825, 915, 1115) for each layer (200, 600) of the part, the skeleton (825, 915, 1115) being centrally located between the inner and outer contours (905, 910) of the part; fitting, for each layer (200, 600) of the part, a continuous spline (820, 920, 1120) over the skeleton (825, 915, 1115) of each layer (200, 600) of the part; and generating a plurality of hatches for each layer (200, 600) of the part, characterized in that each of the plurality of hatches having a fixed hatch angle relative to the spline (820, 920, 1120) for each respective layer (200, 600) of the part and the plurality of hatches for each layer (200, 600) of the part comprising the determined hatch pattern for each layer (200, 600) of the part. determining a skeleton (825, 915, 1115) for each layer (200, 600) of the part, the skeleton (825, 915, 1115) being centrally located between the inner and outer contours (905, 910) of the part; fitting, for each layer (200, 600) of the part, a continuous spline (820, 920, 1120) over the skeleton (825, 915, 1115) of each layer (200, 600) of the part; and generating a plurality of hatches for each layer (200, 600) of the part, characterized in that each of the plurality of hatches having a fixed hatch angle relative to the spline (820, 920, 1120) for each respective layer (200, 600) of the part and the plurality of hatches for each layer (200, 600) of the part comprising the determined hatch pattern for each layer (200, 600) of the part.