使用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】,很多信息都能显示在里面,出现错误容易排查