首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeCAD shape.read()错误:格式不受支持

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

Stack Overflow用户
提问于 2019-04-25 02:15:55
回答 1查看 190关注 0票数 0

我正在处理一个项目,在这个项目中,我必须将.dae文件转换为.stl文件。我正在使用下面给出的代码

代码语言:javascript
复制
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输入文件。我得到的错误是关于无效的输入文件格式:

代码语言:javascript
复制
shape.read('INPUTFILE.dae')
FreeCADError: {'swhat': 'Unknown extension', 'sfunction': '', 'btranslatable': False, 'sfile': '', 'sclassname': 'class Base::Exception', 'breported': True, 'sErrMsg': 'Unknown extension', 'iline': 0}

我还在系统上安装了pycollada。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-26 03:13:26

您需要通过pip安装pycollada。然后在代码中导入importDAE,然后插入形状文件。

当您插入它时,您将获得一个新的document对象,该对象的网格属性包含该形状。然后,您可以将网格导出为stl。

类似于下面的内容。

顺便说一句,我是通过在GUI中操作并查看python控制台来解决这个问题的。所有的命令都在那里,我只需要把它们改编成一个脚本。

代码语言:javascript
复制
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')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55836264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档