Autodesk Forge - Преобразование из .ipt в .stl дает ошибку (UnicodeEncodeError) - PullRequest
0 голосов
/ 21 мая 2019

Я работаю над проектом по конвертации файлов различных форматов в .stl с использованием скрипта Python. Недавно я опубликовал этот вопрос, и у меня возникли проблемы с преобразованием из .sldprt в .stl, но я смог в итоге успешно это сделать. Сейчас я конвертирую файлы .fbx и .ipt в sldprt. Я следую этому учебнику и в последней части, где мне нужно скачать конвертированный файл (.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'))

Несмотря на то, что это устраняет ошибку, и преобразованные файлы содержат некоторые данные, они кажутся недействительными, и никакое программное обеспечение САПР не открывает их. Может кто-нибудь сказать мне, как решить эту проблему?

Мне удалось преобразовать команды из командной строки, но скрипт python выдает ошибку.

1 Ответ

1 голос
/ 21 мая 2019

Попробуйте обработать полезную нагрузку ответа как байты:

f.write(r.content)

См. Документ здесь

...