Autodesk Forge - 从 .ipt 转换为 .stl 出现错误 (UnicodeEncodeError)
Posted
技术标签:
【中文标题】Autodesk Forge - 从 .ipt 转换为 .stl 出现错误 (UnicodeEncodeError)【英文标题】:Autodesk Forge - Conversion from .ipt to .stl gives error (UnicodeEncodeError) 【发布时间】:2019-10-07 06:08:44 【问题描述】:我正在开发一个项目,使用 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】:尝试将响应的有效负载视为字节:
f.write(r.content)
见文档here
【讨论】:
正是我一直在寻找的东西,而且效果很好。感谢您的帮助!以上是关于Autodesk Forge - 从 .ipt 转换为 .stl 出现错误 (UnicodeEncodeError)的主要内容,如果未能解决你的问题,请参考以下文章
无法从 autodesk-forge 查看器面板中删除默认按钮 (Autodesk.Viewing.Private.GuiViewer3D)