我正在使用asp.NET MVC 5,我找到了一个c#代码来在我的浏览器上显示一个stl文件,现在我想把它与另一个stl文件结合起来。 我发现VTK允许你这样做:http://www.vtk.org/Wiki/VTK/Examples/Cxx/Filtering/CombinePolyData。但代码是.cxx,我想我不能在Web应用程序上使用它?
答案 0 :(得分:0)
STL格式只是一个三角形的汤,即没有任何连接信息的三角形的集合。类似于现实生活中将两种汤混合在一锅中,没有什么可以阻止您在显示它们之前将两个文件中的所有三角形都放入一个。
更准确地说,假设file1.stl
看起来像
solid model1
facet normal 0.0 0.0 -1.0
outer loop
vertex 20.0 0.0 0.0
vertex 0.0 -20.0 0.0
vertex 0.0 0.0 0.0
endloop
endfacet
.
.
.
facet normal 0.0 0.0 -1.0
outer loop
vertex 0.0 -20.0 0.0
vertex 20.0 0.0 0.0
vertex 20.0 -20.0 0.0
endloop
endfacet
endsolid
(点代表其他三角形,不会出现在实际文件中),file2.stl
为
solid model2
facet normal -0.0 1.0 0.0
outer loop
vertex 0.0 0.0 20.0
vertex 20.0 0.0 0.0
vertex 0.0 0.0 0.0
endloop
endfacet
.
.
.
facet normal -0.0 1.0 0.0
outer loop
vertex 20.0 0.0 0.0
vertex 0.0 0.0 20.0
vertex 20.0 0.0 20.0
endloop
endfacet
endsolid
我不是C#专家,但是在字符串操作上将这两个模型放入一个文件result.stl
中应该是一个相当容易的练习:
solid bothModelsInOne
facet normal 0.0 0.0 -1.0
outer loop
vertex 20.0 0.0 0.0
vertex 0.0 -20.0 0.0
vertex 0.0 0.0 0.0
endloop
endfacet
.
.
.
facet normal 0.0 0.0 -1.0
outer loop
vertex 0.0 -20.0 0.0
vertex 20.0 0.0 0.0
vertex 20.0 -20.0 0.0
endloop
endfacet
facet normal -0.0 1.0 0.0
outer loop
vertex 0.0 0.0 20.0
vertex 20.0 0.0 0.0
vertex 0.0 0.0 0.0
endloop
endfacet
.
.
.
facet normal -0.0 1.0 0.0
outer loop
vertex 20.0 0.0 0.0
vertex 0.0 0.0 20.0
vertex 20.0 0.0 20.0
endloop
endfacet
endsolid
请注意,所有构面(三角形)都在一个文件中,但是只有一对solid
/ endsolid
对包含模型。
现在您可以像以前一样将此文件传递到渲染器。
当两个物体不相交时,这当然可以完成工作。在相交的情况下,它是否满足您的要求,将要求您提供“组合”的更精确定义。