我有几个.stl
文件,我想通过从命令行调用.ply
将其转换为meshlabserver
。当我以直截了当的方式]
> meshlabserver -i cube-binary.stl -o cube.ply
((其中cube.stl是下面给出的带有12个面的示例文件),生成的网格具有12个面和36个顶点。这意味着没有发生重复顶点的统一,尽管这就是为什么我想使用.ply
而不是.stl
的原因。
[现在,由于相同的原因,我认为不可能,因为不可能在Meshlab GUI中将顶点统一设为默认值(前段时间我asked,尽管后来发现了这样的问题had already existed )。但是也许有人知道一些把戏?在-om
之后浏览可能的过滤器,我没有找到解决方案。
[此行为已在Open SUSE上用Meshlab 2016和在Ubuntu上用Meshlab v1.3.2_64bit进行了测试。
(也由Meshlab创建)
solid vcg
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
outer loop
vertex 5.000000e-01 5.000000e-01 5.000000e-01
vertex -5.000000e-01 5.000000e-01 5.000000e-01
vertex 5.000000e-01 -5.000000e-01 5.000000e-01
endloop
endfacet
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
outer loop
vertex -5.000000e-01 -5.000000e-01 5.000000e-01
vertex 5.000000e-01 -5.000000e-01 5.000000e-01
vertex -5.000000e-01 5.000000e-01 5.000000e-01
endloop
endfacet
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 5.000000e-01 5.000000e-01 5.000000e-01
vertex 5.000000e-01 -5.000000e-01 5.000000e-01
vertex 5.000000e-01 5.000000e-01 -5.000000e-01
endloop
endfacet
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex 5.000000e-01 -5.000000e-01 -5.000000e-01
vertex 5.000000e-01 5.000000e-01 -5.000000e-01
vertex 5.000000e-01 -5.000000e-01 5.000000e-01
endloop
endfacet
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
outer loop
vertex 5.000000e-01 5.000000e-01 5.000000e-01
vertex 5.000000e-01 5.000000e-01 -5.000000e-01
vertex -5.000000e-01 5.000000e-01 5.000000e-01
endloop
endfacet
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
outer loop
vertex -5.000000e-01 5.000000e-01 -5.000000e-01
vertex -5.000000e-01 5.000000e-01 5.000000e-01
vertex 5.000000e-01 5.000000e-01 -5.000000e-01
endloop
endfacet
facet normal 0.000000e+00 0.000000e+00 -1.000000e+00
outer loop
vertex -5.000000e-01 -5.000000e-01 -5.000000e-01
vertex -5.000000e-01 5.000000e-01 -5.000000e-01
vertex 5.000000e-01 -5.000000e-01 -5.000000e-01
endloop
endfacet
facet normal -0.000000e+00 -0.000000e+00 -1.000000e+00
outer loop
vertex 5.000000e-01 5.000000e-01 -5.000000e-01
vertex 5.000000e-01 -5.000000e-01 -5.000000e-01
vertex -5.000000e-01 5.000000e-01 -5.000000e-01
endloop
endfacet
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
outer loop
vertex -5.000000e-01 -5.000000e-01 -5.000000e-01
vertex 5.000000e-01 -5.000000e-01 -5.000000e-01
vertex -5.000000e-01 -5.000000e-01 5.000000e-01
endloop
endfacet
facet normal -0.000000e+00 -1.000000e+00 -0.000000e+00
outer loop
vertex 5.000000e-01 -5.000000e-01 5.000000e-01
vertex -5.000000e-01 -5.000000e-01 5.000000e-01
vertex 5.000000e-01 -5.000000e-01 -5.000000e-01
endloop
endfacet
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
outer loop
vertex -5.000000e-01 -5.000000e-01 -5.000000e-01
vertex -5.000000e-01 -5.000000e-01 5.000000e-01
vertex -5.000000e-01 5.000000e-01 -5.000000e-01
endloop
endfacet
facet normal -1.000000e+00 -0.000000e+00 -0.000000e+00
outer loop
vertex -5.000000e-01 5.000000e-01 5.000000e-01
vertex -5.000000e-01 5.000000e-01 -5.000000e-01
vertex -5.000000e-01 -5.000000e-01 5.000000e-01
endloop
endfacet
endsolid vcg
最简单的方法是使用应用Remove Duplicate Vertices
过滤器的脚本。
尝试将此保存到名为cleanVertex.mlx
的文件
<!DOCTYPE FilterScript>
<FilterScript>
<filter name="Remove Duplicate Vertices"/>
<filter name="Remove Unreferenced Vertices"/>
</FilterScript>
然后使用命令:
> meshlabserver -i cube-binary.stl -o cube.ply -s cleanVertex.mlx