Можешь формулу сваять
tox, toy - размеры листа по x и y
mox, moy - размеры модельки по x и y
nx, ny - количество моделек лежащих прямо и количество повёрнутых
free_space = (tox-((nx*mox)+(ny*moy))*(toy-((nx*moy)+(ny*mox))
Здесь тебе надо максимизировать nx, ny при том что всё остальное - константы