Código:
import bpy
import math
# Lista de objetos seleccionados
selected_objects = bpy.context.selected_objects
if len(selected_objects) < 2:
print("Selecciona al menos dos objetos para mantener la distancia.")
else:
# Ordena los objetos por su posición en el eje especificado
selected_objects.sort(key=lambda obj: obj.location[0]) # Cambia [0] al eje que desees alinear (0:X, 1:Y, 2:Z)
# Distancia deseada entre los objetos
desired_distance = 5.0 # Cambia esto al valor de distancia que desees
# Posiciona los objetos para mantener la distancia deseada
for i in range(1, len(selected_objects)):
obj = selected_objects[i]
prev_obj = selected_objects[i - 1]
# Calcula la distancia actual entre los objetos
current_distance = (obj.location - prev_obj.location).length
# Calcula el desplazamiento necesario para mantener la distancia deseada
displacement = (desired_distance - current_distance)
# Aplica el desplazamiento al objeto actual
obj.location.x += displacement