没有看到你的代码,很难知道发生了什么。下面我复制了我的 bash 脚本代码,它引用/翻译了一个带有材质和纹理的 obj。
Au.obj
+- Au.mtl
+- Au.jpg
上传后,我得到了这些
- idObj="urn:adsk.objects:os.object:cyrillejcrja/Au.obj"
- idMtl="urn:adsk.objects:os.object:cyrillejcrja/Au.mtl"
- idJpg="urn:adsk.objects:os.object:cyrillejcrja/Au.jpg"
现在是设置引用的代码
urn=$(xbase64encode $idObj)
job='{
"urn": "'${idObj}'",
"filename": "Au.obj",
"references": [{
"urn": "'${idMtl}'",
"relativePath": "./Au.mtl",
"filename": "Au.mtl",
"references": [{
"urn": "'${idJpg}'",
"relativePath": "./Au.jpg"
}]
}]
}'
response=$(curl -H "Content-Type: application/json" \
-H "Authorization: ${bearer}" \
-X POST ${ForgeHost}/modelderivative/v2/designdata/${urn}/references \
-k -s -d "${job}")
这里得到如下回复,仅表示引用已注册。
{
"result": "success"
}
现在,我这样做是为了翻译 obj 并使用引用
urn=$(xbase64encode $idObj)
job='{
"input": {
"urn": "'${urn}'",
"checkReferences": true
},
"output": {
"formats": [
{
"type": "svf",
"views": [
"2d",
"3d"
]
}
]
}
}'
response=$(curl -H "Content-Type: application/json" \
-H "Authorization: ${bearer}" \
-H "x-ads-force: true" \
-X POST ${ForgeHost}/modelderivative/v2/designdata/job \
-k -s -d "${job}")
注意“checkReferences”:true,如文档中的here。
现在,我可以等待翻译完成并在查看器中查看结果。
供参考上面使用的xbase64safeencode函数
function xbase64safeencode () { local id64=$(echo -ne $1 | base64 $wrap_arg | tr -d '=' | tr '+/' '-_'); echo $id64; }