What I see is that you’re advancing 30 pixels per object:
obj.place.y+=30
If that’s the area one object must take, and you’ll divide the whole distance by 30 and that ought to provide the variety of objects. One thing like this:
var complete = ceil(begin.place.distance_to(finish.place) / 30)
Then use that to iterate (for n in complete: #…
).