如何使用纯 Javascript Autodesk 在查看器中离线显示 2d (.dwg) 文件
How to display 2d (.dwg) files offline in viewer using pure Javascript Autodesk
我正在尝试使用纯 Javascript 在离线模式下的查看器中显示二维文件。我已经使用 https://extract.autodesk.io/ 上传并提取了 dwg。
提取的文件包含许多 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);
});
它在查看器中给我错误消息说 "We cant display the item you are looking for. It may not have been processed yet...." 并给我错误代码 5(指定的类型无效)。
请帮忙。
请确保您已完全下载 DWG 的所有提取的可见气泡并且您要加载的模型路径正确,因为错误代码 5 代表 NETWORK_FILE_NOT_FOUND
。
我刚刚用下面的代码片段测试了这个blocks_and_tables_-_metric.dwg from the AutoCAD Sample Files,它工作正常。
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提取模型的文件结构如下图:
我使用的2D模型的文件结构是:
我正在尝试使用纯 Javascript 在离线模式下的查看器中显示二维文件。我已经使用 https://extract.autodesk.io/ 上传并提取了 dwg。 提取的文件包含许多 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);
});
它在查看器中给我错误消息说 "We cant display the item you are looking for. It may not have been processed yet...." 并给我错误代码 5(指定的类型无效)。
请帮忙。
请确保您已完全下载 DWG 的所有提取的可见气泡并且您要加载的模型路径正确,因为错误代码 5 代表 NETWORK_FILE_NOT_FOUND
。
我刚刚用下面的代码片段测试了这个blocks_and_tables_-_metric.dwg from the AutoCAD Sample Files,它工作正常。
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提取模型的文件结构如下图:
我使用的2D模型的文件结构是: