同步操作将从 poplee/openFoamUserManual 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
OpenFOAM自带一些可以对STL文件做前处理的工具,从而用snappyHexMesh或者cfMesh来划分网格。
surfaceAdd可以合并两个STL文件,具体是通过命令 -mergeRegions 将相同名称的区域合并为一个区域。否则,无论名称是否相同,两个区域是各自独立的。
surfaceAdd -mergeRegions input1.stl input2.stl out.stl
列表155:sufaceAdd合并两个STL文件的用法。
surfaceSbuset工具可以提取STL的子集。使用surfaceSubsetDict来指定条件,从而定义子集。而用户提供要操作的STL文件(input.stl)以及要存储的子集(outSubset.stl)的文件名。之后,子集的面从原始STL中被移除。
surfaceSubset surfaceSubsetDict input . stl outSubset . stl
列表156:sufaceSubuset从STL文件中提取某个子集的用法。
surfaceFeatureExtract是一个生成必要数据的工具,可以从STL中提取特征,例如使用snappyHexMesh时候需要特别注意被明确提供的几何特征。该工具由surfaceFeatureExtractDict控制。面特征的提取是由用户提供的特征角度控制,用于确定两个面元素之间的边缘是否构成特征边缘。
这一工具将特征边缘写入位于constant/triSurface文件夹中的*.eMesh文件。在词典文件surfaceFeatureExtractDict中,打开writeObj开关可以将数据写入constant/extendedFeatureEdgeMesh文件夹中的*.obj文件。这些文件可以在ParaView中查看,以评估所有面特征是否已完全正确地被提取。
surfaceFeatureConvert工具可以将*.eMesh文件转为*.vtk文件,以便于在ParaView中查看。这在尝试查找正确的设置时非常重要,例如文件surfaceFeatureExtractDict的特征角度。
surfaceTransformPoints工具类似于transformPoints工具(见27.1),它可以用来缩放、平移和旋转面网格。除了转换的选项之外,该工具运作还需要输入文件名和输出文件名。
surfaceFeatureEdges工具是由cfMesh(见18节)提供的,特征边缘可以从面网格文件(例如STL文件)中被提取出来。
surfaceFeatureEdges - angle 30 input . stl out . fts
列表157:surfaceFeatureEdges从STL文件中提取特征边缘的用法。
ToVTK工具也是由cfMesh提供的(见18节),可以将由surfaceFeatureEdge创建的*.fms文件转化为VTK格式。这里,用户可以回顾特征边缘是如何被surfaceFeatureEdges定义的。当用户试图找到特征角的设置时,这一工具非常重要,它是用角度参数传递的。
当用户需要使用ASCII STL进行一些预处理时,linux命令行提供了一些便捷的内容。 列表158中列出了ASCII格式的STL文件的基本语法。 STL可以存储在硬盘上,也可以存储在ASCII中,换句话说就是储存为纯文本或二进制格式。 当STL由是由边界面有定义的实体组成。
solid SOLIDNAME
facet normal X Y Z
outer loop
vertex X Y Z
vertex X Y Z
vertex X Y Z
endloop
endfacet
...
endsolid
列表158:ASCII格式STL的基本语法,有关内容请参阅https://en.wikipedia.org/wiki/STL_(file_format)。
某些CAD工具不提供命名部件的功能,例如OpenSCAD将导出的STL实体命名为OpenSCAD_Model。如果OpenSCAD导出的STL的前处理让每一个patch都产生一个STL文件,就像使用surfaceSubset工具的结果,那么我们最终将得到许多STL文件,包含每一个实体,他们都被命名为OpenSCAD_Model。
如果基于OpenSCAD生成的STL每个补丁产生一个STL文件,这可能是使用表面子集时的结果,我们最终得到了一些STL,其中包含每个名为OpenSCAD_Model的实体。 现在,我们需要为实体指定适当的名称,即。 文件入口的STL实体应命名为入口。现在,我们需要为实体指定适当的名称,输入文件的STL实体命名为inlet。
当STL是ASCII格式时,我们可以使用sed69执行简单的文本替换。 由于STL不太可能包含字符串OpenSCAD_Model,我们只需要告诉sed用inlet替换OpenSCAD_Model。
sed -i s/ OpenSCAD_Model / inlet /g inlet . stl
列表159:使用sed重命名STL文件的实体
如果预处理留下了大量的STL文件,例如使用surfaceSubset工具时,每个patch都留有一个STL文件,我们可能需要连接这些STL文件,比如因为网格划分工具希望所有信息仅包含于一个STL文件中。 文本文件的连接是一个很容易通过命令和工具cat 70完成的任务,不过可以使用surfaceAdd工具也完成。 除了surfaceAdd工具之外,用这种方法连接STL仅限于包含不同实体的STL。
列表160展示了如何连接三个STL文件,每个STL都包含一个实体,即一个patch的信息。 第一行只是复制操作。 另外,我们也可以使用cp或mv来代替第一行。 注意,生成的STL文件被写入到不同的文件夹中,其中之一是constant/triSurface,其中一些网格划分工具是使用STL文件的。 第二行和第三行显示如何将cat的输出附加到指定的文件中。
第一行和之后区别在于重定向操作符( > 和 >>),参见https://en.wikipedia.org/wiki/Redirection_(computing算)。”>“操作符只是将输出的内容重定向到指定的文件,如果在第二行命令使用了,那么在myDomainMesh.stl中,由第一行命令产生的内容将被覆盖。 使用 ”>>“ 操作符可以重定向,并将输出附加到指定的文件里。 在第一行中使用 ”>“ 运算符可以确保覆盖最终存在的文件。。
cat walls . stl > constant / triSurface / myDomainMesh . stl
cat inlet . stl >> constant / triSurface / myDomainMesh . stl
cat outlet . stl >> constant / triSurface / myDomainMesh . stl
列表160:使用cat连接STL文件
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。