![](/img/trans.png)
[英]Autodesk Forge Viewer - Invalid OGT header with SVF2 format
[英]Cannot load SVF2 model in Autodesk Forge Viewer
我刚刚尝试了 SVF2 公开测试版,但无法在查看器中加载模型。 我相信模型已成功翻译,因为返回的清单具有:
"name": "XXXX_ARC.nwd",
"progress": "complete",
"outputType": "svf2",
"status": "success"
但是,当我尝试在 Viewer 中加载模型时,它会在这一行失败:
theViewer.loadModel(svfURL, onItemLoadSuccess, onItemLoadFail);
svfURL 是这样的:
还有我从 Chrome 浏览器得到的错误: 403 GET errors 。 好像我没有权限访问模型?
我需要做一些额外的设置吗?
附加信息:
我已按如下方式设置查看器环境:
var options = {
env: 'MD20ProdUS',
api: 'D3S',
getAccessToken: getForgeToken
};
var documentId = 'urn:' + urn;
Autodesk.Viewing.Initializer(options, function onInitialized() {
var htmlDiv = document.getElementById('forgeViewer');
var config3d = {
extensions: ['ToolbarExtension', 'HandleSelectionExtension', .....a few extensions ],
loaderExtensions: { svf: "Autodesk.MemoryLimited" }
};
theViewer = new Autodesk.Viewing.GuiViewer3D(htmlDiv, config3d);
var startedCode = theViewer.start();
if (startedCode > 0) {
console.error('Failed to create a Viewer: WebGL not supported.');
return;
}
Autodesk.Viewing.Document.load(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);
});
我还尝试在创建查看器时删除config3d
,但它仍然返回相同的消息。 代码进入onDocumentLoadSuccess
但在theViewer.loadModel(svfURL, onItemLoadSuccess, onItemLoadFail);
,跳入onItemLoadFail
。
因为您主要提到查看器未加载 SVF2,所以我怀疑您可能没有指定正确的查看器环境。
下面是一些示例代码,请注意必须设置 env 和 API 的选项:
var viewer; var options = { // These are the SVF2 viewing settings during public beta env: 'MD20ProdUS', // or MD20ProdEU (for EMEA) api: 'D3S', getAccessToken: getForgeToken }; var documentId = 'urn:' + getUrlParameter('urn'); // Run this when the page is loaded Autodesk.Viewing.Initializer(options, function onInitialized() { // Find the element where the 3d viewer will live. var htmlElement = document.getElementById('MyViewerDiv'); if (htmlElement) { // Create and start the viewer in that element viewer = new Autodesk.Viewing.GuiViewer3D(htmlElement); viewer.start(); // Load the document into the viewer. Autodesk.Viewing.Document.load(documentId, onDocumentLoadSuccess, onDocumentLoadFailure); } });
我面临同样的问题。
虽然模型已经转成SVF2格式,但是我的云积分正在用完。 清单摘录:
"name": "7085-33cc-9464.rvt", "progress": "complete", "outputType": "svf2", "status": "success"
无论使用哪种设置,在查看器中都只加载 SVF 格式。 我没有从查看器收到错误消息,一切都像以前一样,除了 SVF 仍然加载而不是 SVF2。 查看器初始化选项:
const viewerEnv = await this.initialize({ //env: dbModel.env, env: "MD20ProdEU", api: "D3S", //accessToken: "", });
不知道这是否已经解决了在一个单独的线程,但问题是可能是acmSessionId
没有在设置options
的loadModel()
-见https://forge.autodesk.com/blog/403-error-when-trying -查看-svf2
function onDocumentLoadSuccess(doc) {
let items = doc.getRoot().search({
'type': 'geometry',
'role': '3d'
}, true)
let url = doc.getViewablePath(items[0])
viewer.loadModel(url, { acmSessionId: doc.getAcmSessionId(url) })
}
最好的办法是只使用loadDocumentNode()
而不是loadModel()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.