J'ai utilisé une application iOS pour créer un fichier usdz en utilisant arkit, mais maintenant je veux convertir le scan en un modèle 3D solide tel qu'un stl ou un obj. existe-t-il une application ios ou mac qui permet cette conversion. Je ne trouve aucune application qui puisse les ouvrir autre que xcode et prévisualiser, mais ne me permet pas non plus d'exporter vers un modèle 3D.
3 Réponses :
ModelIO
peut , au moins sous iOS.
import ModelIO // Get the path to the Downloads directory in your home folder let directory = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first! let usdc = URL(fileURLWithPath: "stratocaster_usdz/Stratocaster.usdc", relativeTo: directory) // Load the usdc file that was packed in the usdz file let asset = MDLAsset(url: usdc) do { let target = URL(fileURLWithPath: "stratocaster.stl", relativeTo: directory) // Export to .stl try asset.export(to: target) } catch { error }
.usdz
est juste un fichier .usdc
zippé avec des textures (du documentation ).
Si vous souhaitez exporter le fichier sur un Mac, changez l'extension de fichier en .zip
, décompressez le fichier et utilisez ModelIO
pour exporter un .stl code > fichier.
Ouvrez Xcode, créez un nouveau Playground, choisissez macOS comme plate-forme. J'ai téléchargé un fichier de test à partir de la Apple's Quick Look Gallery et j'ai décompressé un exemple dans stratocoaster_usdz /
dans mon répertoire Downlaods. Utilisez ensuite le code suivant:
import ModelIO let usdz = URL(fileURLWithPath: "model.usdz") let asset = MDLAsset(url: usdz) let stl = URL(fileURLWithPath: "model.stl") try asset.export(to: stl)
Merci! Exactement ce que je cherchais. J'ai créé un script Mac OS pour automatiser cela dans Terminal. J'ai également fait quelque chose de similaire dans une action rapide Automator pour exécuter à partir du Finder avec un clic droit sur le fichier, mais je n'ai pas trouvé de moyen de l'attacher ici.
#!/usr/bin/env osascript -l JavaScript // Save to a file, e.g. usdz2stl.js // chmod +x usdz2stl.js // usdz2stl.js /path/to/model.usdz ObjC.import('ModelIO') function run(argv) { var inFile = argv[0]; var outFile = inFile + ".stl"; console.log("Converting " + inFile + " ..."); var usdz = $.NSURL.alloc.initFileURLWithPath(inFile); var asset = $.MDLAsset.alloc.initWithURL(usdz); var stl = $.NSURL.alloc.initFileURLWithPath(outFile); asset.exportAssetToURL(stl); console.log("Conversion Complete: " + outFile); }
Ouvrez simplement directement le fichier .USDZ ou USDC dans XCODE
Si vous avez décompressé le .zip, vous conserverez un fichier .USDC et un dossier appelé "0" qui contient toutes les textures, matériaux, alpha en .PNG.
Une fois ouvert .USDZ ou .USDC dans XCODE >> Fichier >> Exporter
Vous pouvez choisir directement les principaux formats .OBJ .STL et bien d'autres
Malheureusement, l'exporter vers DAE ou OBJ bloque le Xcode