Как нетрудно заметить, барашки перекрывают друг друга. Чтобы этого избежать потратил праздничный выходной на разборку с OpenSCAD. Это очередной опенсорсный продукт с гигантскими возможностями проектирования моделей кодом. Например:
cube([10, 20, 30]); // создание куба translate([10, 0, 0]) sphere(r=5); // сфера со смещением
И можно задавать входные переменные, чем активно пользуются в makerworld. Теперь вы можете повторить мою модель под любую свою шпильку.