Check out the bus creation in turbo toolbox. It creates the bus segments by offseting the new shapes from the centerline of the original shape then uses the new shape to create the new shape.
The offset is
.5 * (width_originalPath + width_newPath) + spacing
If a segment gets too short the paths will wrap around.