Сам способ прост: генерируем шипы и пазы симметрично центра, без зеркалирования(шипы и пазы относительно центра не отзеркаливаются а повторяются).
QCAD например такое может из коробки, чем был приятно удивлен.
вот мой собственный пример в QCAD:
А это источник:
Click to view
https://youtu.be/BLD4dFoXC7o