使用FreeCAD構建了開口銷的幾何模型之後使用FEM進行簡單有限元仿真,出現了下面錯誤:
Unexpected error when writing CalculiX input file: <type 'exceptions.UnicodeEncodeError'>
Traceback (most recent call last):
File "D:\Applications\FreeCAD 0.17\Mod\Fem\femtools\ccxtools.py", line 680, in run
self.write_inp_file()
File "D:\Applications\FreeCAD 0.17\Mod\Fem\femtools\ccxtools.py", line 550, in write_inp_file
self.inp_file_name = inp_writer.write_calculix_input_file()
File "D:\Applications\FreeCAD 0.17\Mod\Fem\femsolver\calculix\writer.py", line 76, in write_calculix_input_file
self.write_calculix_one_input_file()
File "D:\Applications\FreeCAD 0.17\Mod\Fem\femsolver\calculix\writer.py", line 165, in write_calculix_one_input_file
self.write_footer(inpfile)
File "D:\Applications\FreeCAD 0.17\Mod\Fem\femsolver\calculix\writer.py", line 1094, in write_footer
f.write('** file name --> ' + os.path.basename(FreeCAD.ActiveDocument.FileName) + '\n')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 23-25: ordinal not in range(128)
原因是構建的實體命名使用了中文命名。FreeCAD使用PySide開發,PySide的API又兼容PyQt4,而Qt對中文的支持一直都不好,根據這個猜想,將實體名字修改爲英文的就可以了,最終結果如下圖
使用FreeCAD的小技巧:
打開窗口【Report view】和【Python console】,很多信息都能顯示在裏面,出現錯誤容易排查