Van egy Python alkalmazásom, amely 3D modelleket készít. Már képes exportálni ezeket a modelleket FBX, DAE, OBJ stb. Formájában. Az esetek túlnyomó többségében a folyamat következő lépése a turmixgép belsejében lévő modell megérintése, ami azt jelenti, hogy a keverőben a említett export formátumokat.
Bizonyos turmixgép-specifikus funkciókat azonban nem lehet kifejezni ezekben a fájlformátumokban. Ennek megoldására nyilvánvaló ötlet az, hogy közvetlenül egy blend fájlba exportálunk, nem pedig egy harmadik részhez nem kapcsolódó fájlformátumba.
Ennek módjait kutatva találtam http://wiki.blender.org/index.php/User%3aIdeasman42/BlenderAsPyModule , ami egy megközelítésnek tűnik . Ehhez azonban úgy tűnik, hogy egyedi beépítésű turmixgépre van szükség.
Megtaláltam a fájlformátum bináris specifikációit is, nevezetesen http://wiki.blender.org/index.php/Dev:Source/Data_Structures/DNAStructs és (néhány más link, amelyeket nem engedtem felvenni a memóriába).
… szóval nyilvánvalóan ez lehetséges (bár nehézkes) exportfüggvény írása egy kis próbahibával.
Mielőtt azonban ezt megtenném: megtörtént már ez? Van-e létező könyvtár / API blender fájlok blenderen kívüli előállításához?
Megjegyzések
- Kérdés, mennyire fixek a specifikációk?
- Ha ' a DNASstruktúrákról stb. beszélünk, akkor ' az a benyomásom, hogy ez nem hivatalos fájlformátum-specifikáció , csak annak jelzése, hogyan néz ki általában. A Blend fájlok inkább hasonlítanak a memóriaterületekhez, mint a strukturált adatok rendezéséhez. De én ' m korántsem vagyok szakértő.
Válasz
Nem tudom, hogyan lehet közvetlenül Blenderbe exportálni (túl bonyolultnak tűnik), de importálhatna PLY / STL / etc fájlokat, és majd írja be az összes kívánt funkciót.
Esetemben szabadon választhattam az eredeti CAD programot, ezért úgy döntöttem, hogy közvetlenül a Blenderbe építem a PyModule-on keresztül. A Blenderrel teljesen külön dolgozom GUI, és csak egy külső python3-ra és a bpy modulra támaszkodhat. A bpy modult könnyű elkészíteni .. és nagyrészt elkülönítheti a meglévő blender telepítéstől (a forrás mappából futtatom).
Csak futtassa ezt a parancsot: ( győződjön meg róla, hogy nincs $ HOME / src ):
git clone http://git.blender.org/blender.git && cd blender && git submodule update --init --recursive && git submodule foreach git checkout master && git submodule foreach git pull --rebase origin master && build_files/build_environment/install_deps.sh --with-all --skip-osl && sudo make bpy && cd .. && rm -rf blender && sudo rm -rf build_linux_bpy && rm -rf $HOME/src # this gets bpy python module
Ezt is megtaláltam: https://code.google.com/p/pyblenderfile/ de őszintén szólva nem látok sok hasznot. Ez nem fejlett enou A gh lehetővé teszi az összes importálását, így jobb módot találtam ugyanarra a dologra a bpy modul használatával.
Ezt csinálom:
– cuccokat épít a turmixgépbe (pythonon keresztül csinálom, anélkül, hogy valaha elindítanám a hivatalos alkalmazást)
import bpy #build stuff bpy.ops.wm.save_as_mainfile(filepath="./objects8.blend")
– a modell importálása
import bpy bpy.ops.wm.open_mainfile(filepath="./objects8.blend")
Számomra nagyon jól működik. Van néhány kérdésem a GUI-ban megtehető dolgok újrateremtésével, de főleg azért, mert a Blendernek szörnyű dokumentációja van a kódhoz (imo). Ennek ellenére édes dolgokat tehet, mivel az összes ekvivalens parancsot közvetlenül a pythonban hívja meg, és a bpy modul segítségével hajtja végre.
Megjegyzések
- A turmixgép használata Az api egy olyan megközelítés volt, amelyet korábban használtunk, de a keverőben való gyakori API-változtatások miatt nagyrészt felhagytunk, és a felhasználóktól érkező támogatási kérelmek száma nem tudta ' kitalálni, hogyan kell egy plugint telepíteni a keverőbe . De a pyblender fájl olvasható kezdetnek tűnik a blend fájl alapvető struktúráinak kitalálásához. Köszönöm!
Válasz
A turmixgépen kívüli fájlok írására nincs hivatalos API. néhány ember mégis írt módszert blender fájlok olvasására. az egyetlen, amit a nyitott pythonban láttam, a Blender Aid https://code.google.com/p/blender-aid/
it elolvassa a blender fájlt, és információkat vezet be az adatbázisba az egyik fájlról a másikra mutató linkekről.
Jó kiindulópont lehet, ha saját szkriptet írsz blend fájlok létrehozásához, ha ezt választod .
Válasz
A BAM (Bam Asset Manager) képes kezelni a .blend fájlokat (képes kibontani / bepakolni mindent, ami szükséges egy adott .blend (könyvtárak, képek …) egyetlen fájlba), érdemes megnéznie kódját .