Не могу конвертировать gltf с помощью forge-convert-utils - PullRequest
0 голосов
/ 10 октября 2019

Я создал файл "convert.js" с примером кода из библиотеки с помощью команды run ('urn вашей модели', 'path / to / output / folder');чтобы получить модель в GLTF. Когда я запускаю 'node convert.js' в консоли, я получаю сообщение об ошибке.

Мои шаги: 1.созданный проект 2.npm install forge-convert-utils 3.npm install dotenv. 4.npm install forge-server-utils 5.создать файл convert.js, папку 'folder' и файл конфигурации .env 6. узел convert.js

convert.js

const { ModelDerivativeClient, ManifestHelper } = require('forge-server-utils');
const { SvfReader, GltfWriter } = require('forge-convert-utils');
require('dotenv/config');
const { FORGE_CLIENT_ID, FORGE_CLIENT_SECRET } = process.env;

async function run (urn, outputDir) {
    const auth = { client_id: FORGE_CLIENT_ID, client_secret: FORGE_CLIENT_SECRET };
    try{
        const modelDerivativeClient = new ModelDerivativeClient(auth);
        // crashed
        const helper = new ManifestHelper(await modelDerivativeClient.getManifest(urn));
        const derivatives = helper.search({ type: 'resource', role: 'graphics' });
        const writer = new GltfWriter(outputDir);
        for (const derivative of derivatives.filter(d => d.mime === 'application/autodesk-svf')) {
            const reader = await SvfReader.FromDerivativeService(urn, derivative.guid, auth);
            const svf = await reader.read();
            writer.write(svf);
        }
        writer.close();
    }
    catch (e) {
        console.log(e);
    }
}


run('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6b3QwanRnamF3aGFoaWV0bDljYjkyZmNtZWZlcGkyZ2YtY3VzdG9tZXItZGVtb3MvQVMlMjBNQURFJTIwTUFJTSUyMFNIQUJBWkktMTkwMjE5LmR3Zw==', 'folder');

C: \ Users \ Bioro \ WebstormProjects \ svf-to-gltf \ forge-convert-custom> узел convert.js (узел: 12108) UnhandledPromiseRejectionWarning: Ошибка: запрос не выполнен с кодом состояния 404

at createError (C:\Users\Bioro\WebstormProjects\svf-to-gltf\forge-convert-custom\node_modules\axios\lib\core\createError.js:16:15)
at settle (C:\Users\Bioro\WebstormProjects\svf-to-gltf\forge-convert-custom\node_modules\axios\lib\core\settle.js:17:12)
at IncomingMessage.handleStreamEnd (C:\Users\Bioro\WebstormProjects\svf-to-gltf\forge-convert-custom\node_modules\axios\lib\adapters\http.js:237:11)
at IncomingMessage.emit (events.js:194:15)
at endReadableNT (_stream_readable.js:1125:12)
at process._tickCallback (internal/process/next_tick.js:63:19)

(узел: 12108) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри асинхронной функции не был создан блок catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 2)

(узел: 12108) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания не рекомендуется. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом выхода.

1 Ответ

0 голосов
/ 10 октября 2019

Трассировка стека мало что говорит, просто что-то в Forge отсутствует. Попробуйте обернуть внутреннюю часть вашей функции run в блок try-catch, чтобы получить больше информации из создаваемого исключения.

Обратите внимание, что библиотека forge-convert-utils предполагает, что URN уже был переведен с модельюПроизводная служба (с использованием задания POST ).

...