Пожелания:

  1. исходные файлы деталей: функция на языке программирования вида box(10,20,40), т.е. "параметрические детали" либо .stl файл (он же .3ds и т.п. - это неважно, хоть .123th) - уже кем-то подготовленный файл.
  2. сборка включает в себя другие сборки, внешние меши и параметрические детали
  3. файл групп для придания движения и т.п. операций
  4. возможность легко изменить что-то у станка, к примеру его размеры (т.е. должны поменяться базовые деталей, например - длины швеллеров)
  5. результирующий файл должен получиться в кросс-программном формате (я вижу .ply/.stl как самый удачный)

Пример реализации на файловой системе

Форматом 3D файлов выбран "OFF". Причина - самый простой для набивания вручную, экспорт и импорт работают в Blender.

Blender tips (how to make brick.off): Start Blender, select box, enter "edit mode", select vertex, choose Mesh→Snap→Cursor→Selection, enter Object mode, Object→Transform→Center Cursor, Alt+N, LocX=0,LocY=0,LocZ=0,DimX=250,DimY=120,DimZ=65,Ctrl+A→"Apply Object: Scale and Rotation to ObData", file→export→"DEC Object File Format (.off)"→brick.off

file: "simple_brick.sas"
off(brick)

file: "hearth.sas"
off(brick) 
off(brick) 
off(brick) 

file: "brick.off"
OFF          # "OFF" file declaration
8 6 0        # 8 points, 6 faces, 0 edges
250 120 0    # XYZ points "brick 250x120x65"
250 0   0
0   0   0
0   120 0
250 120 65
250 0   65
0   0   65
0   120 65
4 3 2 1 0    # Right brick side vertices: 3,2,1,0 
4 5 6 7 4    
4 1 5 4 0
4 2 6 5 1
4 3 7 6 2
4 7 3 0 4

OFF

Object File Format.

Simple OFF files: abstr.off; br2.off; cam.off; cone.off; cube.off, a cube; dodec.off, a dodecahedron; dodec2.off, another dodecahedron; facecube.off, a cube with face colors; hdodec.off; hypercube.4d.off, a hypercube in four dimenensions; icosa.off, an icosahedron; mctet.off, a tetrahedral mesh generated by MC; mctri.off, a triangular mesh generated by MC; mushroom.off; octa.off, an octahedron; tetra.off, a tetrahedron; trapezoid.4d.off, a trapezoid in 4D; tref.off; unitcube.off, the unit cube; vertcube.off, a cube with vertex colors;

Complex OFF files: socket.off (triangulated).

Actions

После этого в game engine назначаем вращение на rot1,rot2,rot3 - получается что два шапура и пара для толстого мяса.