ModelIO
может , по крайней мере, в iOS.
import ModelIO
let usdz = URL(fileURLWithPath: "model.usdz")
let asset = MDLAsset(url: usdz)
let stl = URL(fileURLWithPath: "model.stl")
try asset.export(to: stl)
.usdz
- это просто архивированный .usdc
файл с текстурами (из официальной документации ).Если вы хотите экспортировать файл на Mac, измените расширение файла на .zip
, разархивируйте файл и используйте ModelIO
для экспорта файла .stl
.
Откройте Xcode, создайте новую игровую площадку,выберите macOS в качестве платформы.Я скачал тестовый файл из Apple Quick Look Gallery и разархивировал пример в stratocoaster_usdz/
в моем каталоге Downlaods.Затем используйте следующий код:
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
}