Geometry 关于BSpline的问题

Geometry 关于BSpline的问题,geometry,wolfram-mathematica,mesh,cad,Geometry,Wolfram Mathematica,Mesh,Cad,下面是一个包含3D点簇的示例。现在我们可以用它形成一个BSpline曲面 dat=Import["C:\\Users\\Andy\\Desktop\\Foil.mat"]; surface=BSplineFunction[dat]; ParametricPlot3D[surface[x,y], {x, 0, 1}, {y, 0, 1}, MaxRecursion->4,Axes->None,Mesh->All,Boxed->False]

下面是一个包含3D点簇的示例。现在我们可以用它形成一个
BSpline
曲面

dat=Import["C:\\Users\\Andy\\Desktop\\Foil.mat"];
surface=BSplineFunction[dat];
ParametricPlot3D[surface[x,y], {x, 0, 1}, {y, 0, 1},
                MaxRecursion->4,Axes->None,Mesh->All,Boxed->False]
现在我们可以看到结构。但问题是我想制作一个三维实体,这个结构实际上有两个可见的孔

在下一张图片中,我们可以看到两个角落都是开放的,结构不是实心的,而是空心的

因此,我提出了一个解决方案,我相信它可以在视觉上工作,但不会返回一个坚实的结构

pic=Show[Graphics3D[
       {Polygon[Table[surface[0,y],{y,0,1,0.005}]],
        Polygon[Table[surface[1,y],{y,0,1,.005}]]}],
        ParametricPlot3D[surface[x,y],{x,0,1},{y,0,1},
           MaxRecursion-> 4,PlotPoints-> 20,
           Mesh-> All],Boxed->False,Axes-> None];
图形网格[ {ParametericPlot3D[曲面[x,y],{x,0,1},{y,0,1}, 打印点->20,网格->全部,装箱->假,轴->无], Graphics3D[{多边形[表[surface[0,y],{y,0,1,0.005}]], 多边形[表[surface[1,y],{y,0,1,005}]}, pic}]

这是输出。

现在,我们将第三张图片导出为*.obj文件,其中的孔在视觉上是闭合的。我们可以在任何基于CAD的网格编辑器中导入该文件,如。在那里可以看到要检测的孔

现在有一个简单的方法,我们可以用Foil.mat文件中的给定数据点在Mathematica中形成一个实体结构。我希望可以在
BSpline
函数中使用一些选项来实现这一点。正如人们所期望的,我想要一个没有孔的封闭表面

希望我能足够清楚地解释我的问题。我将等待你的答复

BR

您可能想探索Mathematica中的一个“隐藏特征”

TetGen is a quality tetrahedral mesh generator and a three-dimensional 
Delaunay triangulator.   
TetGenLink is a Mathematica application that uses Wolfram Library Link  
to link to TetGen functions. It is used automatically by Mathematica for  
various operations such as interpolation in three-dimensional convex domains.  
However, it can also be used directly where it gives a flexible and innovative  
way to use the functionality of TetGen.
帮助中的图像:


这不是应该保密的吗?听起来好像是时候在另一个社区维基上发布未记录的东西了:)@Verbeia奇怪的是,它是有记录的(在“帮助搜索”对话框中输入
TetGenLink/tutorial/Overview
)。问题是该文档未被任何其他帮助页面集成/链接。