OpenCascadeShapeSurfaceMeshToBoundaryMesh[i]
OpenCascadeShapeExpression i を境界付きのElementMeshに変換する.
OpenCascadeShapeSurfaceMeshToBoundaryMesh
OpenCascadeShapeSurfaceMeshToBoundaryMesh[i]
OpenCascadeShapeExpression i を境界付きのElementMeshに変換する.
詳細とオプション
- OpenCascadeShapeSurfaceMeshToBoundaryMesh[r]は,OpenCascade 領域インスタンス i を近似する ElementMeshオブジェクトを生成する.
- 領域インスタンス i の指定については,OpenCascadeLinkを使うに説明がある.
- OpenCascadeShapeSurfaceMeshToBoundaryMeshには以下のオプションがある.
-
"ElementMeshOptions" Automatic ElementMeshのオプションを指定する "MarkerMethod" Automatic マーカーを追加するメソッドを指定する "ShapeSurfaceMeshOptions" Automatic OpenCascadeShapeSurfaceMeshのオプションを指定する - ElementMeshのオプションはすべて"ElementMeshOptions"を通して指定できる.
- "MarkerMethod"には以下のMethodsが指定できる.
-
"OpenCascade" OpenCascade がマーカーを提供する "ElementMesh" ElementMeshがマーカーを提供する None マーカーを加えない - デフォルトの"MarkerMethod"は,"OpenCascade"である.
- OpenCascadeShapeSurfaceMeshToBoundaryMeshには以下のオプションがある.
-
"AngularDeflection" Automatic 最大の偏向確度
を指定する"ComputeInParallel" Automatic 曲面の離散化を並列させる "LinearDeflection" Automatic 最大の偏向
を指定する"Rediscretization" Automatic 離散化を再利用する "RelativeDeflection" Automatic 相対的な偏向と絶対的な偏向のどちらであるかを指定する - デフォルトの"AngularDeflection"は,0.5度に設定される.
- "ComputeInParallel"は,曲面の離散化が複数のCPUコアで行われるべきであるかどうかを指定する.AutomaticのデフォルトはFalseに設定される.
- デフォルトの"LinearDeflection"は,形状の相対的な大きさの0.01単位に設定される.
- "Rediscretization"は,離散化が再利用された場合に,入力形状の1つにすでに離散化が塚されているかどうかを指定する. AutomaticのデフォルトはFalseに設定される.
- "RelativeDeflection"は,偏向が形状の大きさに相対的であるか,それとも絶対的であるかを指定する.AutomaticのデフォルトはTrueに設定される.
例題
すべて開く すべて閉じる例 (1)
<<OpenCascadeLink`Ballの境界要素メッシュを生成する:
OpenCascadeShapeSurfaceMeshToBoundaryMesh[OpenCascadeShape[Ball[{1, 0, 0}]]]%["Wireframe"]オプション (4)
"AngularDeflection" (1)
shape = OpenCascadeShape[Cone[{{0, 0, 0}, {0, 0, 1}}, 1]];bmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape]
bmesh["Wireframe"]境界付きのElementMeshを,細かい曲面メッシュを持つ OpenCascade 形状から抽出する:
bmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape, "ShapeSurfaceMeshOptions" -> {"AngularDeflection" -> 0.1}]OpenCascade 形状から抽出した境界付きのElementMeshを可視化する:
bmesh["Wireframe"]"LinearDeflection" (1)
shape = OpenCascadeShape[Cone[{{0, 0, 0}, {0, 0, 1}}, 1]];bmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape]
bmesh["Wireframe"]境界付きのElementMeshを,細かい曲面メッシュを持つ OpenCascade 形状から抽出する:
bmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape, "ShapeSurfaceMeshOptions" -> {"LinearDeflection" -> 0.001}]OpenCascade 形状から抽出した境界付きのElementMeshを可視化する:
bmesh["Wireframe"]"MarkerMethod" (1)
"MarkerMethod"オプションを使うと,マーカーが加えられるべきかどうかと,どのように計算するかを指定することができる.デフォルトは "OpenCascade"の使用である.その他のオプションは,"ElementMesh"とNoneを使ってマーカーを完全に非表示にすることである."ElementMesh"を"MarkerMethod"オプションとして使用することは,生成された曲面が複数の単一曲面要素からなる場合には便利である.その場合,"OpenCascade"メソッドは各要素の一意的なマーカーを割り当てるがそれは望ましくないこともある.しかし,メソッド"ElementMesh"を使うと,マーカーは面の法線に基づいて,特定量だけそれている場合に追加される.このことについては,ToBoundaryMeshの参照ページにより詳しく記載されている.
shape = OpenCascadeShapeImport[FindFile["ExampleData/vase.stl"]]bmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape]境界ElementMeshを可視化する:
bmesh["Wireframe"]OpenCascadeShapeImportを使ってSTLファイルをインポートすると,それぞれの曲面要素に一意的なマーカーが割り当てられた境界メッシュになることに注意する.境界要素マーカーを調べる:
bmesh["BoundaryElementMarkerUnion"]//Shortこの結果は望ましくないかもしれない.これを避けるためには,"MarkerMethod""ElementMesh"あるいは"MarkerMethod"Noneのオプションを指定するとよい.境界メッシュを抽出し,マーカーをWolfram言語で計算する:
bmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape, "MarkerMethod" -> "ElementMesh"](groups = bmesh["BoundaryElementMarkerUnion"])//Shortマーカーをハイライトして,境界ElementMeshを可視化する:
temp = Most[Range[0, 1, 1 / (Length[groups])]];
colors = ColorData["BrightBands"][#]& /@ temp
bmesh["Wireframe"["MeshElementStyle" -> FaceForm /@ colors]]bmesh = OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape, "MarkerMethod" -> None]bmesh["BoundaryElementMarkerUnion"]"Rediscretization" (1)
この機能は,複数材料オブジェクトのさまざまな部分に異なるレベルの離散化を行う場合に便利である.縫合による内部境界のセクションに例がある.
shape = OpenCascadeShape[Ball[]];
OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape, "ShapeSurfaceMeshOptions" -> {"LinearDeflection" -> 0.001}]["Wireframe"]"Rediscretization"がFalseに設定されている場合には,要求された粗さにかかわりなく,既存の離散化が利用されることがある:
OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape, "ShapeSurfaceMeshOptions" -> {"Rediscretization" -> False, "LinearDeflection" -> 1}]["Wireframe"]OpenCascadeShapeSurfaceMeshToBoundaryMesh[shape, "ShapeSurfaceMeshOptions" -> {"Rediscretization" -> True, "LinearDeflection" -> 1}]["Wireframe"]テクニカルノート
テキスト
Wolfram Research (2020), OpenCascadeShapeSurfaceMeshToBoundaryMesh, Wolfram言語関数, https://reference.wolfram.com/language/OpenCascadeLink/ref/OpenCascadeShapeSurfaceMeshToBoundaryMesh.html.
CMS
Wolfram Language. 2020. "OpenCascadeShapeSurfaceMeshToBoundaryMesh." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/OpenCascadeLink/ref/OpenCascadeShapeSurfaceMeshToBoundaryMesh.html.
APA
Wolfram Language. (2020). OpenCascadeShapeSurfaceMeshToBoundaryMesh. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/OpenCascadeLink/ref/OpenCascadeShapeSurfaceMeshToBoundaryMesh.html
BibTeX
@misc{reference.wolfram_2026_opencascadeshapesurfacemeshtoboundarymesh, author="Wolfram Research", title="{OpenCascadeShapeSurfaceMeshToBoundaryMesh}", year="2020", howpublished="\url{https://reference.wolfram.com/language/OpenCascadeLink/ref/OpenCascadeShapeSurfaceMeshToBoundaryMesh.html}", note=[Accessed: 09-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_opencascadeshapesurfacemeshtoboundarymesh, organization={Wolfram Research}, title={OpenCascadeShapeSurfaceMeshToBoundaryMesh}, year={2020}, url={https://reference.wolfram.com/language/OpenCascadeLink/ref/OpenCascadeShapeSurfaceMeshToBoundaryMesh.html}, note=[Accessed: 09-August-2026]}