1. 製品
  2.   3D
  3.   Python
  4.   PythonOCC-Core
 
  

3Dモデリングとデータ交換のためのオープンソースPythonライブラリ

3Dモデリングとデータ交換処理のための無料Pythonライブラリです。Python APIを通じてオンラインで3D CAD、BIM、PLM、CAMファイル形式を扱えます。

PythonOCC-Core ライブラリとは何ですか?

PythonOCC-Core は無料の 3D モデリングおよび CAD 自動化ライブラリです。広く使用されているプログラミング言語である Python を、OpenCASCADE Technology (OCCT) カーネルの上に構築しています。この組み合わせは、複雑な 3D 形状の作成、変更、解析のための強固な基盤を提供します。Python の使いやすさと OCCT の強力なモデリングツールを融合させることで、汎用性が高く効果的なツールが手に入ります。直感的な Python インターフェースと豊富な機能セットにより、初心者から熟練開発者までシームレスな体験を提供します。これにより、建築家やエンジニアはパラメトリックモデルの作成、建築レイアウトの生成、構造解析の実施が可能になります。このツールは設計ワークフローを改善し、正確な可視化と効果的なチーム作業を可能にします。自動車、航空宇宙、製品設計などさまざまな分野で、複雑な 3D モデルの開発・洗練に広く利用されています。このライブラリを使用すれば、プロトタイピング、シミュレーション、設計解析を迅速に行うことができ、製品開発プロセスを簡素化します。

PythonOCC-Core の可視化機能は、ゲームやバーチャルリアリティ体験の作成に最適です。このツールを使用すれば、魅力的な環境、リアルなシミュレーション、インタラクティブな冒険を構築できます。その上、ライブラリは医療画像の取り扱い、3Dジオメトリの操作、CAD データのインポート・エクスポート、3D モデル上での高度なシミュレーションの実行、ウェブブラウザでの 3D コンテンツの可視化、そして人気のある Python GUI を通じた 3D ビジュアルの表示など、重要な機能を提供します。 . ライブラリは計算物理学、材料科学、生体医工学などの科学研究分野でも重要な役割を果たしています。さまざまな業界の多くのソフトウェア専門家や開発者は、Python の使いやすさと OCCT の強力さを組み合わせた点で PythonOCC-Core に魅力を感じています。PythonOCC-Core を使用すれば、創造性を高め、複雑な CAD プロセスを効率化できます。これにより、3D モデリングと設計におけるイノベーションと生産性の新たな可能性が開かれます。

Previous Next

PythonOCC-Core の入門

PythonOCC-Core の安定版リリースをインストールする最も簡単な方法は pip を使用することです。スムーズなインストールのために、以下のコマンドを使用してください。

pip で PythonOCC-Core をインストール

pip install pythonocc-core

Conda で PythonOCC-Core をインストール

conda install -c conda-forge pythonocc-core

以下のコマンドを使用して、Conda 経由で PythonOCC-Core をインストールすることもできます。

conda install -c 1adrianb face_alignment

コンパイル済みの共有ライブラリは Github リポジトリからダウンロードできます。

Python で 3D ジオメトリを作成・管理する

オープンソースの PythonOCC-Core ライブラリは、Python アプリケーション内で 3D モデルを作成・管理するための完全なサポートを備えています。さらに、ポイント、曲線、サーフェス、ソリッドなどの 3D 幾何形状を作成・操作するための豊富なツールセットを提供します。ブール演算、フィレット、面取りなどの複雑なオブジェクトの構築・修正のための幅広いアルゴリズムも提供しています。以下の例は、ソフトウェア開発者が python コマンドを使用してコアジオメトリのバウンディングボックスを作成する方法を示しています。

Python アプリ内でバウンディングボックスを計算し表示する方法は?

def get_boundingbox(shape, tol=1e-6, use_mesh=True):

bbox = Bnd_Box()
    bbox.SetGap(tol)
    if use_mesh:
        mesh = BRepMesh_IncrementalMesh()
        mesh.SetParallelDefault(True)
        mesh.SetShape(shape)
        mesh.Perform()
        if not mesh.IsDone():
            raise AssertionError("Mesh not done.")
    brepbndlib_Add(shape, bbox, use_mesh)

    xmin, ymin, zmin, xmax, ymax, zmax = bbox.Get()
    return xmin, ymin, zmin, xmax, ymax, zmax, xmax - xmin, ymax - ymin, zmax - zmin


print("Box bounding box computation")
box_shape = BRepPrimAPI_MakeBox(10.0, 20.0, 30.0).Shape()
bb1 = get_boundingbox(box_shape)
print(bb1)

print("Cylinder bounding box computation")
cyl_shape = BRepPrimAPI_MakeCylinder(10.0, 20.0).Shape()
bb2 = get_boundingbox(cyl_shape)
print(bb2)

print("Torus bounding box computation")
torus_shape = BRepPrimAPI_MakeCylinder(15.0, 5.0).Shape()
bb3 = get_boundingbox(torus_shape)
print(bb3)

 

Python API を使用した CAD 自動化

オープンソースの PythonOCC-Core ライブラリは、CAD 図面に関連するさまざまなタスクを処理するための非常に有用な機能を提供しています。ライブラリは、STEP、IGES、STL、BREP など、CAD で一般的に使用されるさまざまなファイル形式をサポートしています。ライブラリは、パラメトリック設計の生成、幾何変換の実行、幾何解析の実施など、繰り返しの CAD タスクを自動化できるように開発者を支援します。高レベルの API を提供し、CAD ワークフローの実装を簡素化するため、CAD 自動化ツールの構築に最適な選択肢となります。

Python API を使用してシェイプを作成し、CAD STEP ファイル形式にエクスポートする方法は?

from __future__ import print_function

from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox

from OCC.Core.STEPControl import STEPControl_Writer, STEPControl_AsIs
from OCC.Core.Interface import Interface_Static_SetCVal
from OCC.Core.IFSelect import IFSelect_RetDone

# creates a basic shape
box_s = BRepPrimAPI_MakeBox(10, 20, 30).Shape()

# initialize the STEP exporter
step_writer = STEPControl_Writer()
dd = step_writer.WS().TransferWriter().FinderProcess()
print(dd)

Interface_Static_SetCVal("write.step.schema", "AP203")

# transfer shapes and write file
step_writer.Transfer(box_s, STEPControl_AsIs)
status = step_writer.Write("box.stp")

if status != IFSelect_RetDone:
    raise AssertionError("load failed")
 
 日本