Autodesk Forge-从.ipt到.stl的转换会产生错误(UnicodeEncodeError)

时间:2019-05-20 21:13:28

标签: python curl autodesk-forge

我正在一个项目中,使用python脚本将各种文件格式转换为.stl。最近,我发布了一个this问题,从.sldprt转换为.stl时遇到了问题,但最终我成功地做到了。现在,我正在将.fbx和.ipt文件转换为sldprt。我正在遵循this教程,在最后一部分中,我必须下载转换后的文件(.stl),但出现以下错误:

File "3DFileConversion.py", line 224, in <module>
f.write(r.text)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-29: ordinal not in range(128)

代码如下:

url =  BASE_URL + 'modelderivative/v2/designdata/' + urn + '/manifest/' + OURL
headers = {
    'Authorization' : 'Bearer ' + ACCESS_TOKEN
}
try:
    with open(OUTPUT_FILE, 'w+') as f:
        r = requests.get(url, headers=headers)
        f.write(r.text)
except:
    print()
    print('Error Executing STEP 7 - Downloading error, status code:' + str(r.status_code) + ', exiting')
    raise(SystemExit(6))

print("Download Finished! Exiting")

我在线搜索并更改了行

f.write(r.text)

f.write(r.text.encode('utf8'))

尽管这样做确实可以消除错误,并且转换后的文件中确实包含一些数据,但它似乎无效,并且没有CAD软件可以打开它。谁能告诉我如何解决这个问题?

我能够从命令行转换给定命令,但是python脚本给出了一个错误。

1 个答案:

答案 0 :(得分:1)

尝试将响应的有效载荷视为字节:

function moveStuff () {
  idx('#IDX-description').after(idx('#IDX-field-extras').outerHTML()); 
  idx('#IDX-field-extras').remove();
  setTimeout(moveStuff, 1000);
}

请参阅文档here