我一直在遵循Autodesk模型派生API教程从源文件中提取数据,当试图将上传的源文件转换为SVF时,一直得到翻译失败。
我尝试过。step, .sldprt, .stl和.igs文件(这里支持的文件扩展名),但似乎都抛出相同的错误信息。请求
def self.convert_to_svf(urn, key)
url = URI("https://developer.api.autodesk.com/modelderivative/v2/designdata/job")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
body = {"input": { "urn": "#{urn}", "compressedUrn": true, "rootFilename": "#{key}" }, "output": { "formats": [{ "type": "svf", "views": ["2d", "3d"] }] }}
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Bearer ' + token
request.body = body.to_json
JSON.parse(http.request(request).read_body)
end
响应{"type"=>"manifest", "hasThumbnail"=>"false", "status"=>"failed", "progress"=>"complete", "region"=>"US", "urn"=>"dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6aXNvcXVlLzE4Ynk4cG9pbnQ1X2dvb2R5ZWFyLmlncw", "derivatives"=>[{"name"=>"LMV Bubble", "hasThumbnail"=>"false", "status"=>"failed", "progress"=>"complete", "messages"=>[{"type"=>"error", "message"=>"Translation failure", "code"=>"TranslationWorker-InternalFailure"}], "outputType"=>"svf"}]}
我在你的代码片段中没有看到一个明显的问题,但是我可以知道你是否上传了zip格式的源文件或只有原始格式的单个文件(说.step, .sldprt, .stl和.igs) ?
我对相关api进行了实践。我用Inventor组装(包含子组件和部件)和AutoCAD绘图(使用Xrefs)进行了测试。端点可以很好地使用compressedUrn = true,指定根文件,在我上传压缩包后。
如果compressedUrn = true,这意味着源文件被压缩(zip),但这适用于复合文件,即主文件有一些依赖文件。如果它是一个没有依赖文件的单一文件,则直接上传源文件,然后调用/modelderivative/v2/designdata/job,而不指定compressedUrn和rootFilename .
如果我误解了你的问题,你能提供更多的信息或演示数据集吗?注意,不要发布任何属于公司机密的数据。