# Distributed objects python script

I'm trying to distribute objects along a curve as an add-on in a modal operator like in this link. I did it for a line an it works ok. The problem comes when I want to evaluate a curve with different segments in an uniform way. This is the piece of code that I did:

def calculate_all_points(self, spline):

if len(spline.bezier_points) >= 2:
#r = spline.resolution_u + 1
r = 50
segments = len(spline.bezier_points)
if not spline.use_cyclic_u:
segments -= 1
points = []
for i in range(segments):

inext = (i + 1) % len(spline.bezier_points)
knot1 = spline.bezier_points[i].co
handle1 = spline.bezier_points[i].handle_right
handle2 = spline.bezier_points[inext].handle_left
knot2 = spline.bezier_points[inext].co
_points = mathutils.geometry.interpolate_bezier(knot1, handle1, handle2, knot2, r)
points.extend(_points)
return points
curve = bpy.context.object
objects = bpy.data.objects
curve_points = self.calculate_all_points(active_spline)
N = len(objects)-1
percent = 1/N

for i, obj in enumerate(objects):
step = i * percent
index = round(step * (len(curve_points)-1))
new_loc = curve_points[index]
obj.location = new_loc


Can someone help me? Thanks!