If your Haas machine has a full 4th axis you can use the standard control system function called G107 Cylindrical Mappingto translate linear axis move into a rotary axis move and essentially 'wrap' the programmed path onto the surface of the cylinder or rotary part and this includes the Haas engraving functionG47.
G107 (CYLINDRICAL MAPPING) translates all programmed motion occurring in a specified linear axis into the equivalent motion along the surface of a cylinder (attached to a rotary axis). Its default operation is subject to Setting 56(M30 RESTORE DEFAULT G). The G107 command is used to either activate or deactivate cylindrical mapping. Remember to turn it off at the end of the program, unless you want to keep using it.
Any linear-axis program can be cylindrically mapped to any rotary axis (one at a time).
An existing linear-axis G-code program can be cylindrically mapped without modification by inserting a G107 command at the beginning of the program.
The radius (or diameter) of the cylindrical surface can be redefined, allowing cylindrical mapping to occur along surfaces of different diameters without having to change the program.
The radius (or diameter) of the cylindrical surface can either be synchronized with or be independent of the rotary axis diameter(s) specified in the Settings page.