我想得到一个用.dxf,.stl编写的3d对象的xyz点,以制作我的3d打印机软件。
我尝试过python dxf解析器,但它无法获得3d对象的xyz坐标。
有人想知道我是怎么做到的吗?
发布于 2018-03-14 02:06:55
3D对象使用DXF文件中的二进制数据进行编码(类似于在AutoCAD命令行评估AutoLISP expression (entget (car (entsel)))后选择3D对象时获得的输出);因此,您无法通过将DXF文件读取为纯文本来获取所需的信息。
由于在AutoCAD中很少有3D对象的属性暴露给LISP API,所以我建议您使用.NET来询问对象的属性-有许多在线资源描述了如何实现这一点。
发布于 2019-04-04 18:17:20
我会使用MeshLab,这是一个开源的应用程序,可以读取STL文件和导出XYZ点云文本文件,有或没有正常的信息。每个顶点将显示为由空格EG分隔的三个浮点值(没有正常数据);
-90.936005 122.486008 4.072000
-95.642006 139.926010 4.072000
-96.862007 139.952011 4.072000和正态数据;
-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记录,例如;
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文件之间进行转换。
https://stackoverflow.com/questions/49260827
复制相似问题