Как отобразить 2d (.dwg) файлы в автономном режиме в программе просмотра с использованием чистого Javascript Autodesk - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь отобразить 2D-файл в программе просмотра в автономном режиме, используя чистый Javascript.Я уже загрузил и распаковал DWG, используя https://extract.autodesk.io/.Извлеченный файл содержит много файлов json.gz и одну папку.В этой папке у него есть манифест, метаданные (файл json.gz) и один файл .f2d

Я указал местоположение этого файла для параметров моего просмотра

var docs = [{ "path": "./{foldername}/primaryGraphics.f2d", "name": "2D view" }];
var options = { 'docid': docs[0].path, env: 'Local' };

И инициализация моего просмотра:

viewer = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('MyViewerDiv'), {}); 
Autodesk.Viewing.Initializer(options, function () {
        viewer.initialize();
        viewer.loadModel(options.docid);
});

В программе просмотра отображается сообщение об ошибке: «Мы не можем отобразить искомый элемент. Возможно, он еще не обработан…». И дает код ошибки как 5 (Указан неверный тип).

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 15 июня 2018

Пожалуйста, убедитесь, что вы полностью загрузили все извлеченные видимые пузырьки вашего DWG, и путь к модели, которую вы хотите загрузить, правильный, так как код ошибки 5 означает NETWORK_FILE_NOT_FOUND.

Я только что проверилэто blocks_and_tables _-_ metric.dwg из файлов примеров AutoCAD с приведенным ниже фрагментом кода, и он отлично работает.

var options = {
    env: 'Local',
};

var doc = { 'rootFolder': 'Model', 'path': '29c9e407-f76f-a1c0-0972-dcb5b496fff9_f2d/primaryGraphics.f2d', 'name': '2D view' };

var viewerDiv = document.getElementById( 'MyViewerDiv' );
var viewer = new Autodesk.Viewing.Private.GuiViewer3D( viewerDiv );


Autodesk.Viewing.Initializer(options, function() {
    if( viewer.initialize() != 0 ) return console.error( 'Failed to initialize viewer' );

    var basePath = getCurrentBaseURL();
    var modelFolderPath = basePath + doc.rootFolder + '/';
    var modelFilePath = modelFolderPath + doc.path;
    var modelOptions = {
        sharedPropertyDbPath: modelFolderPath
    };

    viewer.loadModel( modelFilePath, modelOptions, onLoadModelSuccess, onLoadModelError );
});

function getCurrentBaseURL() {
    var basePath = '';
    var lastSlash = document.location.href.lastIndexOf( '/' );

    if( lastSlash != -1 )
        basePath = document.location.href.substr( 0, lastSlash + 1 );

    return basePath;
}

/**
 * viewer.loadModel() success callback.
 * Invoked after the model's SVF has been initially loaded.
 * It may trigger before any geometry has been downloaded and displayed on-screen.
 */
function onLoadModelSuccess( model ) {
    console.log( 'onLoadModelSuccess()!' );
    console.log( 'Validate model loaded: ' + ( viewer.model === model ) );
    console.log( model );
}

/**
 * viewer.loadModel() failure callback.
 * Invoked when there's an error fetching the SVF file.
 */
function onLoadModelError( viewerErrorCode ) {
    console.error( 'onLoadModelError() - errorCode:' + viewerErrorCode );
}

Структура файла извлеченной модели blocks_and_tables _-_ metric.dwg показан ниже: enter image description here

Структура файла используемой 2D-модели: enter image description here

...