LoginSignup
0
0

コンピュータグラフィックスGeometryとTopology

Last updated at Posted at 2024-06-20

CADカーネルCSG/BREP

大体的に三つに分けることができます

  • ワイヤーフレームモデル
  • サーフェスモデル
  • ソリッドモデル

ソリッドモデリングとは、三次元形状(実体)を数学的およびコンピュータモデリングするための一連の概念を指します。ソリッドモデリングは、一般的な幾何モデリングやコンピュータグラフィックスの関連分野(例:3Dモデリング)との主な違いは、物理的な忠実度を強調する点にあります。

ソリッドモデルは基本的に、構造表現CSG(Constructive Solid Geometry)と境界表現BREP(Boundary Representation)の二つの大きなカテゴリーに分けることができます。

image.png
Constructive Solid Geometry
image.png
BREP(Boundary Representation)

現在主流のモデリングカーネルには主に以下のものがあります。

  • シーメンス社が開発したParasolid
  • ダッソー社のACIS
  • オープンソースのOpenCascade

ACIS (Advanced CSG and Implicit Surfaces)

  • 開発会社: 最初はSpatial Technologyによって開発され、その後Dassault Systèmesに買収されました。

  • 機能:

    • シンプルから複雑な実体のモデリングを提供
    • 実体のブール演算
    • 曲面のトリミングとトランジション編集機能
    • 実体データの保存
    • SATファイル形式のインポートとエクスポートをサポート
  • 特徴:

    • オブジェクト指向のデータ構造
    • C++プログラミング言語を使用
    • 柔軟なワイヤーフレーム、サーフェス、ソリッドモデリングの組み合わせ
  • ワイヤーフレームモデリング: エッジと頂点のみで物体を定義

  • サーフェスモデリング: ワイヤーフレームモデリングに基づいて物体の可視面を定義

  • ソリッドモデリング: 物体のサイズ、形状、密度、および属性(重量、容積、重心など)を表現

  • ソフトウェアコンポーネント技術:

    • ACISのソフトウェアコンポーネントを自由に組み合わせて使用可能
    • 自身で開発したコンポーネントをACISのコンポーネントと置き換えることが可能
    • ACIS 3D Toolkitやさまざまな専門ソフトウェアパッケージを提供
  • カスタマイズ性:インターフェースソースプログラムを提供し、ACISカーネルに基づくシステム開発をサポートSTEP標準に準拠したシステム開発を奨励

Open CASCADE (OCC)

公式:https://dev.opencascade.org/doc/overview/html/
GitHub:https://github.com/Open-Cascade-SAS/OCCT

  • タイプ: オープンソースの幾何造形エンジン

  • 応用: FreeCAD、HeeksCAD、AnyCADなどの多くのCAD/CAE/CAMソフトウェアの開発基盤

  • 特徴:

    • BREP構造に基づく
    • 2D/3Dソリッドモデリングおよびサーフェスモデリングを提供
  • 構成:

    • モデリングコアコンポーネント
    • 可視化コンポーネント(OpenGLに基づく、機能はシンプルで表示効果は一般的)
    • データ管理(OCAF)(ツリー構造を使用、複雑で効率が低く、カスタム拡張が難しい)

Parasolid

Parasolidは、世界をリードする、生産実績のある三次元幾何モデリングコンポーネントソフトウェアです。
Parasolidは、Siemens PLM Softwareによって開発された幾何モデリングカーネルであり、広くエンジニアリング設計ソフトウェアに使用されています。Parasolidのカーネルは、表現力豊かなAPI(アプリケーションプログラミングインターフェース)を提供し、ソフトウェア開発者がそのアプリケーションに複雑な幾何モデリング機能を実装できるようにします。

このソフトウェアが提供するコア機能を利用することで、Parasolid製品を基にしたユーザーは、業界で最も複雑な製品を迅速かつ安定してモデリングすることができます。高精度の境界表現技術(B-rep)に基づいているため、

Parasolidは統合フレームワーク内でのソリッドモデリング、ジェネリックユニットモデリング、および自由曲面モデリングをサポートします。

API

image.png

Parasolidにおける特定インターフェースの簡単な説明:

  1. Kl インターフェース (レガシー):Klインターフェースは、Parasolidの旧版APIインターフェースであり、通常は後方互換性のために保持されています。「レガシー」とは、このインターフェースが推奨されるものではなくなっている可能性があることを意味しますが、古いソフトウェアや廃止された機能をサポートするために依然としてメンテナンスされています。
  2. PK インターフェース:PKインターフェースは、Parasolidの主要なC言語APIインターフェースであり、Parasolidの機能に全面的にアクセスできます。PKは「Parasolid Kernel」の略であり、このインターフェースを使用することで、開発者は複雑な幾何形状の作成や編集、ブール演算の実行など、内核の全機能を活用できます。
  3. Frustrum インターフェース:Frustrumは通常、グラフィックスにおける視錐体を指し、視覚観察空間の一部を表します。Parasolidにおいて、Frustrumインターフェースは、特定の視点から表示される幾何データの処理と最適化に関連するインターフェースを指す可能性があります。

Parasolid クラス構造

Parasolidの定義によれば、カーネルとユーザーのアプリケーション間でやり取りされるデータ項目は全て「オブジェクト(Object)」と総称されます。それぞれのオブジェクトは、定義された汎用オブジェクト型のクラスに属しています。Parasolidのクラスは階層構造を持ち、以下のようになっています:最上位のクラスはCLASSであり、他のすべてのタイプの親クラスです。
image.png

Parasolidモデルでは、タグ(tags)はエンティティを一意に識別するための内部参照です。これにより、アプリケーションやカーネルは特定の幾何学的およびトポロジカル要素を効率的に参照および操作できます。例えば、特定の幾何学的エンティティ(点、線、面など)をアルゴリズムで操作したり、ユーザーインターフェースで情報を表示したりする際に使用できます。タグはParasolid内核のエンティティ管理の重要な部分であり、データの一貫性と完全性を確保する上で欠かせない役割を果たしています。

  1. PARTITION
  2. PMARK
  3. APPITEM
  4. MARK
  5. ENTITY
  6. ATTDEF
  7. GROUP
  8. TRANSF
  9. ATTRIB
  10. GEO:Geometry
  11. TOPOL:Topology

GeometryとTopology

Parasolidでは、通常、使用目的に応じてデータを「几何(ジオメトリ)」と「拓扑(トポロジー)」の二つに分類します。具体的には、
几何(ジオメトリ)は、位置と形状を具体的に記述します。
拓扑(トポロジー)は、隣接関係を記述します。

image.png

フェース

  1. PLANE
  2. TORUS
  3. SPUN
  4. SPHERE
  5. CONE
  6. OFFSET
  7. CYL
  8. BSURF
  9. SWEPT
  10. FSURF
  11. BLENDSF

曲線

  1. LINE
  2. CIRCLE
  3. ELLIPSE
  4. BCURVE
  5. ICURVE
  6. SPCURVE
  7. TRCURVE
  8. FCURVE

Topology

image.png
Topologyのタイプ

  1. INSTANCE
  2. LOOP
  3. FACE
  4. FIN
  5. SHELL
  6. EDGE
  7. REGION
  8. PART
  9. VERTEX
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0