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 Forge 从文本文件中读取

无法从 autodesk-forge 查看器面板中删除默认按钮 (Autodesk.Viewing.Private.GuiViewer3D)

从 Autodesk Forge 3D 查看器下载文件

Autodesk Forge Viewer 获取片段位置

使用 Autodesk Forge 从 BIM 360 查找项目的 URL 时遇到问题