As far as I know nobody has done this yet, but the change that allowed one to use a custom homing component was put in to support this type of scale.
How's your C coding?
www.linuxcnc.org/docs/devel/html/man/man9/homecomp.9.html
github.com/LinuxCNC/linuxcnc/blob/07cee8...nts/homecomp.comp#L4
However, I don't know if that is strictly necessary. I think that it _might_ be possible to craft a custom HAL component that outputs an encoder position and handles index_enable. This would take the encoder counts as input, and also manipulate the index_enable pin of the encoder counter. (I think it would be necessary to use the position-latching facility of the software or Mesa encoder. I _think_ you can set index-enable, which will zero the counts when the first index is seen, then re-enable index-enable and look at the counts-latched pin when index-enable resets on the second index. But I have not tried this.)
The component would then reset the index-enable that the homing system sees, and pass the correct position into the system. (Note that the "correct" position might be the inverse of the actual position, in some way. The position-after-index-enable is used by the system to calculate how far the current position is from the home position.
component inputs:
index-enable - to / from motion system
encoder position - from encoder counter
position-latched - from encoder counter
outputs:
index-enable - to manipulate the encoder counter
encoder-position - an offset version of the encoder position input
I do have a Heidenhain scale, but i have never done anything with it, and don't know if its a type with encoded index marks.