Расширение файла не поддерживается: ноль ErrorCode: 13.при загрузке нескольких моделей - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь загрузить две модели в Autodesk Forge Viewer.

Я пытаюсь использовать следующий код:

 const urn1 = <urn>
 const urn2 = <urn>

 Autodesk.Viewing.Initializer(
        options,
        () => {
            const viewerDiv = document.getElementById('MyViewerDiv');
            viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv);
            this.loadDoc(this.props.urns[1], true);

            window.setTimeout(e => {
                    this.loadDoc(this.props.urns[2], false);
                }, 4000);
        },
    );



loadDoc(urn: string, initializeAndLoad: boolean) {
    Autodesk.Viewing.Document.load(urn,
        (doc) => {
            const viewables = Autodesk.Viewing.Document
                .getSubItemsWithProperties(doc.getRootItem(), {'type': 'geometry'}, true);
            if (viewables.length === 0) {
                return;
            }

            const initialViewable = viewables[0];
            const svfUrl = doc.getViewablePath(initialViewable);
            const modelOptions = {
                globalOffset: {x: 0, y: 0, z: 0}, // to align the models
                sharedPropertyDbPath: doc.getPropertyDbPath(),
            };


            if (initializeAndLoad) {
                viewer.start(svfUrl, modelOptions,
                    () => {},
                    () => {console.log('load model error');},
                );
            } else {
                viewer.loadModel(urn, modelOptions,
                    () => {}, 
                    (e) => {
                        console.warn(e);
                    });
            }
        },
        () => {}
   );
}

Логическое обоснование тайм-аута - загрузка второймодель, использующая loadModel после загрузки первой модели.Я также попытался загрузить вторую модель из обратного вызова viewer.start onSuccess.

Независимо от того, что я получаю сообщение об ошибке File extension not supported:null ErrorCode:13. (как в консоли, так и во всплывающем окне)

Я почти уверен, что сообщение вводит в заблуждение, так как в обеих урнах есть допустимые производные SVF (я могу переключаться между ними, какая из них загружается первой, отображается нормально)

NB Я использую следующееверсия: 'https://developer.api.autodesk.com/modelderivative/v2/viewers/6.2/viewer3D.min.js'

В качестве примечания я попытался использовать Autodesk.Viewing.ViewingApplication и selectItem.Благодаря этому я могу загрузить несколько моделей, но, похоже, не могу установить modelOptions (в частности, globalOffset) при таком подходе.

1 Ответ

0 голосов
/ 04 октября 2018

Метод loadModel ожидает URL с некоторым известным расширением файла (например, .svf), но вы вызываете его с помощью URN (идентификатора переведенного документа в кодировке base64).Вот почему не удается найти расширение файла.

Кстати.Если вы хотите отложить загрузку второй модели после полной загрузки первой, рассмотрите возможность использования geometry -loaded-event вместо тайм-аута.

...