1. 製品
  2.   CAD
  3.   C++
  4.   OCCT

OCCT

 
 

オープンソース C++ 3D モデリング&シミュレーションプラットフォーム

オープンソース C++ ライブラリを使用して、パラメトリック 3D モデルを構築し、物理シミュレーションを行い、CAD データを可視化します。

OCCTとは何ですか?

Open CASCADE Technology (OCCT) は、3D CAD、CAM、CAE アプリケーション向けの強力なオープンソース C++ ソフトウェア開発プラットフォームです。幾何モデリング、メッシュ生成、データ交換(STEP、IGES、STL)、可視化、シミュレーションのための包括的なライブラリを提供します。高精度なエンジニアリングおよび製造ワークフロー向けに設計されており、OCCT を使用すると、堅牢なパラメトリックモデリングツール、CAD ビューア、シミュレーションアプリケーションを業界標準の機能で構築できます。

このライブラリは、ブーリアン演算、フィレット、面取り、スイープなどの高度なソリッドモデリング操作に加え、サーフェスモデリング、NURBS ジオメトリ、パラメトリック機能モデリングをサポートします。OCCT のモジュラーアーキテクチャは、トポロジー、ジオメトリ、可視化、データ交換、アプリケーションフレームワーク用の専用ツールキットを含み、複雑なエンジニアリングソフトウェア開発に最適です。活発なコミュニティサポートと定期的なリリースにより、OCCT は世界中の多数の商用および研究向け 3D アプリケーションの基盤となっています。

Previous Next

OCCTのはじめ方

OCCTはオープンソースのC++ライブラリとして配布されており、ソースビルドまたは事前コンパイル済みバイナリでインストールできます。開始する最も簡単な方法は、[OCCT GitHub](https://github.com/Open-Cascade-SAS/OCCT) リポジトリから最新リリースをダウンロードすることです。Linuxユーザー向けには、多くのディストリビューションがパッケージマネージャー(例:Ubuntu の `apt install libocct-dev`)を通じてOCCTパッケージを提供しています。Windows開発者は、事前ビルドされたバイナリを使用するか、CMake と Visual Studio を使ってソースからコンパイルできます。公式ドキュメントには、すべての対応プラットフォーム向けのステップバイステップのビルドガイドが含まれています。

パッケージマネージャーでOCCTをインストール(Ubuntu/Debian)

sudo apt update
sudo apt install libocct-dev libocct-data-exchange-dev libocct-visualization-dev

ブール演算とソリッドモデリング

OCCTは、3Dソリッドに対して堅牢なブール演算(和集合、交差、減算)を提供し、基本的なプリミティブから複雑な形状の作成を可能にします。そのトポロジーカーネルは、フィレット、面取り、穴、リブなどの高度な機能を高精度でサポートします。開発者はC++ APIを使用してパラメトリック機能を作成し、CADワークフローに統合できます。このライブラリはトポロジーデータ構造を効率的に処理し、B-Repと構成的ソリッドジオメトリ(CSG)モデリングアプローチの両方をサポートします。これにより、正確な幾何計算とフィーチャーベースのモデリングを必要とするエンジニアリングアプリケーションの開発にOCCTは最適です。

C++で2つのソリッドに対してブール合成を実行

TopoDS_Shape box1 = BRepPrimAPI_MakeBox(10, 10, 10);
TopoDS_Shape box2 = BRepPrimAPI_MakeBox(20, 5, 5);
BRepAlgoAPI_Fuse fuseOp(box1, box2);
if (fuseOp.IsDone()) {
    TopoDS_Shape result = fuseOp.Shape();
    // Save or visualize result
}

データ交換(STEP と IGES)

OCCTには、STEP(AP203/AP214)やIGESなどのISO標準フォーマットをサポートする包括的なデータ交換モジュールが含まれています。これらのモジュールは、ジオメトリ、トポロジー、メタデータ、製品構造を保持しながら、CADモデルのインポートとエクスポートを可能にします。STEPリーダー/ライターは、自動車および機械設計データに対する完全なAP214準拠をサポートしています。開発者は、インポートされたモデルをプログラムで処理し、面やエッジを抽出し、ジオメトリを変更し、異なるフォーマットで再エクスポートできます。この相互運用性は、異なるソフトウェアエコシステム間でのCADコラボレーションにとって重要であり、既存の設計ワークフローへのシームレスな統合を保証します。

C++ を使用して STEP ファイルをインポートし、STL にエクスポート

Handle(STEPCAFControl_Reader) reader = new STEPCAFControl_Reader();
IFSelect_ReturnStatus status = reader->ReadFile("model.step");
if (status == IFSelect_RetDone) {
    Handle(TDocStd_Document) doc;
    reader->Transfer(doc);
    // Export to STL
    STEPCAFControl_Writer writer;
    writer.Write("output.stl");
}

3D 可視化とレンダリング

OCCTの可視化ツールキットは、ハードウェアアクセラレーションされたOpenGL、レイトレーシング、先進的なライティングをサポートする強力な3Dレンダリング機能を提供します。開発者は、選択、ハイライト、ナビゲーションツールを備えたインタラクティブなCADビューアを構築できます。このツールキットには、3Dビュー管理、シーングラフ処理、カスタムレンダリングパイプライン用のクラスが含まれています。アンチエイリアス、透過、ワイヤーフレーム/隠線表示モードなどの機能により、プロフェッショナル品質の可視化が実現します。これにより、OCCTはエンジニアリング可視化ツール、バーチャルリアリティアプリケーション、リアルタイム性能を備えたシミュレーション結果ブラウザの開発に適しています。

OCCT を使用したインタラクティブ 3D ビューアの作成

Handle(V3d_Viewer) aViewer = new V3d_Viewer();
Handle(AIS_InteractiveContext) aContext = new AIS_InteractiveContext(aViewer);
Handle(AIS_Shape) anActor = new AIS_Shape(aShape);
aContext->Display(anActor, Standard_True);
// Enable rotation, zoom, pan
aViewer->InitActiveView();
aViewer->ActiveView()->SetDegenerateModeOn();

メッシュ生成と解析

OCCT には、B-Rep モデルをシミュレーションや可視化用の三角形メッシュに変換するメッシュ生成ツールが含まれています。Mesh モジュールは、エッジおよび面のテッセレーション精度を制御できる適応メッシュ生成をサポートします。開発者は CAE 解析用の有限要素メッシュを生成し、メッシュ品質指標を計算し、リファインやスムージングなどのメッシュ操作を実行できます。ライブラリはまた、メッシュデータ交換(STL、OBJ)用ツールと外部 FEM ソルバーとの統合も提供します。この機能により、CAD 設計とシミュレーションのワークフローが橋渡しされ、エンジニアリング解析アプリケーションのエンドツーエンド開発が可能になります。

C++ を使用して B-Rep 形状からメッシュを生成

BRepMesh_IncrementalMesh aMesh(aShape, 0.01);
// Access mesh data
TopExp_Explorer anExp(aShape, TopAbs_FACE);
for (; anExp.More(); anExp.Next()) {
    TopoDS_Face aFace = TopoDS::Face(anExp.Current());
    Handle(Poly_Triangulation) aTriangulation =
        BRep_Tool::Triangulation(aFace, aLoc);
    if (!aTriangulation.IsNull()) {
        // Process triangulation nodes and triangles
    }
}
 日本