首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取dxf、stl的xyz坐标

如何获取dxf、stl的xyz坐标
EN

Stack Overflow用户
提问于 2018-03-14 00:09:26
回答 2查看 966关注 0票数 0

我想得到一个用.dxf,.stl编写的3d对象的xyz点,以制作我的3d打印机软件。

我尝试过python dxf解析器,但它无法获得3d对象的xyz坐标。

有人想知道我是怎么做到的吗?

EN

回答 2

Stack Overflow用户

发布于 2018-03-14 02:06:55

3D对象使用DXF文件中的二进制数据进行编码(类似于在AutoCAD命令行评估AutoLISP expression (entget (car (entsel)))后选择3D对象时获得的输出);因此,您无法通过将DXF文件读取为纯文本来获取所需的信息。

由于在AutoCAD中很少有3D对象的属性暴露给LISP API,所以我建议您使用.NET来询问对象的属性-有许多在线资源描述了如何实现这一点。

票数 1
EN

Stack Overflow用户

发布于 2019-04-04 18:17:20

我会使用MeshLab,这是一个开源的应用程序,可以读取STL文件和导出XYZ点云文本文件,有或没有正常的信息。每个顶点将显示为由空格EG分隔的三个浮点值(没有正常数据);

代码语言:javascript
复制
-90.936005 122.486008 4.072000 
-95.642006 139.926010 4.072000 
-96.862007 139.952011 4.072000

和正态数据;

代码语言:javascript
复制
-90.936005 122.486008 4.072000 0.000000 0.000000 0.078929 
-95.642006 139.926010 4.072000 0.000000 0.000000 0.099790 
-96.862007 139.952011 4.072000 0.000000 0.000000 1.148707 

然后,您可以使用标准Python I/O来访问文本文件中的数据。

但是,如果您乐于使用facet,那么您只需要访问ASCII形式的STL文件,其中的文本文件具有一系列facet记录,例如;

代码语言:javascript
复制
facet normal -0.000000e+000 0.000000e+000 1.000000e+000
  outer loop
    vertex  -3.315800e+001 1.389420e+002 4.072000e+000
    vertex  -3.104200e+001 1.389120e+002 4.072000e+000
    vertex  -3.111600e+001 1.389960e+002 4.072000e+000
  endloop
endfacet

...

endsolid vcg

您可以使用MeshLab在二进制和ACSII STL文件之间进行转换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49260827

复制
相关文章

相似问题

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