FreeCAD shape.read() 错误:不支持的格式

Posted

技术标签:

【中文标题】FreeCAD shape.read() 错误:不支持的格式【英文标题】:FreeCAD shape.read() Error: Unsupported format 【发布时间】:2019-09-14 02:49:14 【问题描述】:

我正在做一个项目,我必须将 .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') 时出现错误。根据this,代码应该能够处理 .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。

有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

您需要 pip install 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')

【讨论】:

非常感谢。我还从您对另一篇文章的评论中发现,我可以使用 FreeCAD 中 Python 控制台中的代码来完成此操作。这是他们拥有的一个非常酷的功能。

以上是关于FreeCAD shape.read() 错误:不支持的格式的主要内容,如果未能解决你的问题,请参考以下文章

FREECAD特性列表

在FreeCAD中进行渲染

FreeCAD二次开发-PySide例子QtGui.QInputDialog弹出输入框

FreeCAD二次开发-Part.makeCylinder创建圆柱

FreeCAD二次开发-Part.makeCone创建圆锥体

FreeCAD 导出STL格式文件格式