Autodesk forge 如何在Forge中正确翻译和显示.sldasm文件?
使用下面的代码,我们可以翻译和显示.dwg、.sldprt、.3ds、.pdf。上载和翻译.sldasm文件似乎成功了,但当尝试在查看器中加载它时,我们会收到以下消息:“模型为空,没有要显示的几何体”。这似乎发生在所有.sldasm文件中。是否有人有任何指示,或能发现任何错误 翻译:Autodesk forge 如何在Forge中正确翻译和显示.sldasm文件?,autodesk-forge,autodesk-viewer,autodesk-model-derivative,Autodesk Forge,Autodesk Viewer,Autodesk Model Derivative,使用下面的代码,我们可以翻译和显示.dwg、.sldprt、.3ds、.pdf。上载和翻译.sldasm文件似乎成功了,但当尝试在查看器中加载它时,我们会收到以下消息:“模型为空,没有要显示的几何体”。这似乎发生在所有.sldasm文件中。是否有人有任何指示,或能发现任何错误 翻译: private async Task<TranslateResponse> StartTranslateFileJob(string bucketUrn) { var json
private async Task<TranslateResponse> StartTranslateFileJob(string bucketUrn)
{
var json = JsonConvert.SerializeObject(new
{
input = new
{
urn = ToUrlSafeBase64(bucketUrn)
},
output = new
{
formats = new List<Dictionary<string, dynamic>>()
{
new Dictionary<string, dynamic>() { { "type", "svf" }, {"views", new List<string>() { "2d", "3d"} } }
}
}
});
Header header = new Header()
{
ContentType = "application/json",
Body = json.ToString(),
Authorization = new AuthenticationHeaderValue("Bearer", await GetAccessToken())
};
string response = await request.Request(HttpMethod.Post, "/modelderivative/v2/designdata/job", header);
return JsonConvert.DeserializeObject<TranslateResponse>(response);
}
专用异步任务StartTranslateFileJob(字符串bucketUrn)
{
var json=JsonConvert.SerializeObject(新
{
输入=新
{
urn=ToUrlSafeBase64(bucketUrn)
},
输出=新
{
格式=新列表()
{
新字典(){{“类型”,“svf”},{“视图”,新列表(){“2d”,“3d”}
}
}
});
页眉=新页眉()
{
ContentType=“application/json”,
Body=json.ToString(),
授权=新的AuthenticationHeaderValue(“承载者”,等待GetAccessToken())
};
字符串响应=等待请求。请求(HttpMethod.Post,“/modeldividential/v2/designdata/job”,标题);
返回JsonConvert.DeserializeObject(响应);
}
显示:
private async load(urn: string) {
let options = {
env: 'AutodeskProduction',
accessToken: this.access_token
};
let viewerDocument = await new Promise<Autodesk.Viewing.Document>((resolve, reject) =>
Autodesk.Viewing.Initializer(options, () => {
Autodesk.Viewing.Document.load(urn, (viewerDocument) => resolve(viewerDocument), (e) => reject(new Error("Blueprint load error: " + e)));
})
);
let documentNode = viewerDocument.getRoot().search({ 'type': 'geometry' })[0];
this.viewer.loadDocumentNode(viewerDocument, documentNode);
}
专用异步加载(urn:string){
让选项={
环境:“AutodeskProduction”,
accessToken:this.access\u令牌
};
让viewerDocument=等待新承诺((解决、拒绝)=>
Autodesk.Viewing.Initializer(选项,()=>{
Autodesk.Viewing.Document.load(urn,(viewerDocument)=>解析(viewerDocument),(e)=>拒绝(新错误(“蓝图加载错误:+e));
})
);
让documentNode=viewerDocument.getRoot().search({'type':'geometry'})[0];
this.viewer.loadDocumentNode(viewerDocument,documentNode);
}
类似于*.sldasm(SolidWorks部件)或*.iam(Inventor部件)的文件通常引用其他文件(*.sldprt或*.ipt),Forge无法自动识别这些引用。您可以执行以下操作之一:
compressedUrn
和rootFilename
属性如果有人有相同的问题,以下是答案: 我已经和开发团队讨论过你的问题。看来 SLDASM文件格式支持“临时/烘焙可视化” 主文件中包含的“基本体”,即使 缺少引用的SLDPRT文件。不幸的是,锻造厂 翻译需要最新的引用文件,并且当前 不支持直接存储的临时可视化数据 在SLDASM文件中。要在中翻译和查看此文件 在Forge中,您可以采取以下方法之一:
这似乎不是由外部引用引起的,因为它在eDrawings中本地显示良好,即使我只有.sldasm文件。eDrawings是联机查看器还是桌面查看器?如果是桌面应用程序,它可以通过访问磁盘上的其他文件自动解析引用。它是桌面查看器,但我尝试从另一台计算机复制一个新的sldasm(仅此一个),然后关闭vpn,允许我在本地打开该计算机之前访问该计算机,因此任何引用都应中断,但它仍然有效。翻译响应也不会抱怨引用,当字体等丢失时,有时会抱怨DWG。在这种情况下,您介意在forge(dot)help(at)autodesk(dot)com上与我们共享sldasm文件,以便我们将其传递给负责SolidWorks翻译的开发团队吗?我们不会与公司以外的任何人共享该文件。