5
votes

Puis-je convertir un USDZ en maillage solide tel que stl

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.


0 commentaires

3 Réponses :


6
votes

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)


0 commentaires

5
votes

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);
}


0 commentaires

3
votes

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

entrez la description de l'image ici


1 commentaires

Malheureusement, l'exporter vers DAE ou OBJ bloque le Xcode