我正在一个项目中,我必须将.dae文件转换为.stl文件。我正在使用下面给出的代码
import sys
sys.path.insert(0, "C:\\Program Files (x86)\\FreeCAD 0.17\\bin\\")
import FreeCAD
import Part
import Mesh
shape = Part.Shape()
shape.read('INPUTFILE.dae')
doc = App.newDocument('Doc')
pf = doc.addObject("Part::Feature","MyShape")
pf.Shape = shape
Mesh.export([pf], 'OUTPUTFILE.stl')
当解释器尝试执行命令shape.read('INPUTFILE.dae')时,出现错误。根据{{3}},该代码应能够处理.dae输入文件。我收到的错误与无效的输入文件格式有关:
shape.read('INPUTFILE.dae')
FreeCADError: {'swhat': 'Unknown extension', 'sfunction': '', 'btranslatable': False, 'sfile': '', 'sclassname': 'class Base::Exception', 'breported': True, 'sErrMsg': 'Unknown extension', 'iline': 0}
我还在系统上安装了pycollada。
有人知道如何解决这个问题吗?
答案 0 :(得分:1)
您需要pip安装pycollada。 然后在您的代码中,导入importDAE,然后插入形状文件。
插入时,您将获得一个新的文档对象,该对象的Mesh属性包含该形状。然后,您可以将网格导出为stl。
如下所示。
顺便说一句,我通过在GUI中进行操作并查看python控制台来解决了这一问题。所有命令都在那里,我只需要使它们适应脚本即可。
import sys
sys.path.insert(0, '/home/brad/FCD/FC/lib')
import FreeCAD
import Part
import Mesh
import importDAE
doc = App.newDocument('Doc')
newobj = importDAE.insert(u"/home/brad/Desktop/efdae.dae","Unnamed1")
Mesh.export([newobj.Mesh], 'my_shape.stl')