1. 製品
  2.   CAD
  3.   Python
  4.   openscad

openscad

 
 

プログラマー向けオープンソース3D CADモデラー

オープンソースの無料Python APIを通じて、CSG、押し出し、設定可能なパラメータを使用してソリッド3Dモデルを作成します。

OpenSCADとは何ですか?

OpenSCAD は、プログラマーやエンジニア向けに特別に設計された、無料でオープンソースの 3D CAD モデリングツールです。インタラクティブな 3D モデラーとは異なり、OpenSCAD はスクリプトベースのアプローチを使用して、構成的ソリッドジオメトリ(CSG)と押し出し技術を用いて実体 3D オブジェクトを定義します。これにより、機械部品、プロトタイプ、技術設計に最適な、正確で再現性があり、パラメトリックなモデリングが可能になります。このツールは Linux、Windows、macOS をサポートし、Python ベースのワークフローとの統合も優れています。

OpenSCAD はオブジェクトを記述したスクリプトファイルを読み取り、それに応じて 3D モデルをレンダリングし、デザイナーにモデリングプロセスの完全なコントロールを提供します。ユニオン、インターセクション、ディファレンスといった演算や、平行移動、回転、スケールといった変換をサポートします。データは DXF ファイルからインポートでき、STL、OFF などの形式へエクスポートできます。そのオープンなアーキテクチャと活発なコミュニティにより、GUI 操作に依存せずにプログラム的な 3D モデリング機能を求める開発者にとって強力な選択肢となります。

Previous Next

OpenSCADのはじめ方

OpenSCAD は公式ウェブサイトから Linux、macOS、Windows 用の事前ビルドバイナリとして入手可能です。開発者向けに、ソースコードは GitHub にホストされており、CMake と提供されているビルドスクリプトを使用してソースからビルドできます。公式の [openscad GitHub](https://github.com/openscad/openscad) リポジトリには、すべての主要プラットフォーム向けの詳細なビルド手順が含まれています。すぐに始めるには、最新リリースをダウンロードしてインストールし、エディタを開いて最初の SCAD スクリプトを書きましょう。

パッケージマネージャーでOpenSCADをインストールする

# Ubuntu/Debian
sudo apt install openscad

# macOS (Homebrew)
brew install --cask openscad

# Windows (Chocolatey)
choco install openscad

構造的ソリッドジオメトリ(CSG)

OpenSCADの核心的な強みは、構造的なソリッドジオメトリ(CSG)をサポートしている点にあります。これにより、基本的な3Dプリミティブを合成、交差、差分といったブール演算で組み合わせることができます。このアプローチは、エンジニアリングや製造に適した、正確で非多様体安全なモデリングを保証します。例えば、大きなシリンダーから小さなシリンダーを減算して、穴の開いたシリンダーを作成できます。CSG操作はスクリプト内で宣言的に定義され、パラメータ化やリビジョンが容易です。これにより、精度と再現性が重要な機械部品、エンクロージャ、機能的プロトタイプの設計にOpenSCADは理想的です。

OpenSCADでCSGを使って穴のあるシリンダーを作成する方法は?

difference() {
    cylinder(h = 20, r = 10);
    cylinder(h = 25, r = 4, center = true);
}

2Dアウトライン押し出し

OpenSCAD は、DXF ファイルからインポートした 2D アウトラインや SCAD コードで直接定義した 2D アウトラインの押し出しをサポートします。この手法は、歯車、ブラケット、カスタムエンクロージャなど、2D プロファイルから複雑な 3D 形状を作成するために不可欠です。パスを直線的に押し出すことも、軸の周りに回転させて回転押し出しすることもできます(回転による)。押し出しプロセスは頂点の順序を尊重し、2D ポリゴンと穴のあるパスの両方をサポートします。変換やモジュールと組み合わせることで、パイプ、フレーム、建築要素などの部品をパラメトリックに生成でき、OpenSCAD は技術設計および製造ワークフローにおいて強力なツールとなります。

2D ポリゴンを 3D オブジェクトに押し出す方法は?

linear_extrude(height = 10, center = true, convexity = 10)
  polygon(points = [[0,0], [10,0], [5,10]]);

パラメトリックモデリングと構成

OpenSCADはパラメトリックモデリングに優れており、寸法や形状が変数や関数を用いて定義されます。これにより、いくつかのパラメータを変更するだけでデザインを簡単にカスタマイズでき、反復的なプロトタイピングやカスタマイズに最適です。例えば、幅・高さ・厚さのパラメータを受け取るモジュールを定義し、複数のデザインで再利用することができます。パラメータはCSVやDXFファイルの値など外部データによって駆動させることもでき、Pythonベースのデータパイプラインとの統合を可能にします。この機能は、要件や制約の変化に自動的に適応するモデルを実現するジェネレーティブデザインをサポートします。

再利用可能なパラメトリックモジュールを定義する方法は?

module box(width, height, thickness) {
    difference() {
        cube([width, height, thickness]);
        translate([thickness, thickness, -1])
            cube([width - 2*thickness, height - 2*thickness, thickness + 2]);
    }
}

box(50, 30, 3);

データのインポートとエクスポート統合

OpenSCAD は 2D DXF ファイルのインポートと 3D モデルの STL、OFF、その他の形式へのエクスポートを強力にサポートします。これにより、CAD/CAM ツール、3D プリンタ、シミュレーションソフトウェアとの統合が容易になります。DXF のインポートでは押し出し用のパスを含めることができ、エクスポートは 3D プリント用のバイナリおよび ASCII STL をサポートします。さらに、OpenSCAD は DXF ファイルから設計パラメータを読み取ることができ、ジオメトリを外部ツールで定義し、プログラムで洗練させるハイブリッドワークフローを実現します。この相互運用性は、スクリプトベースの性質と相まって、Python やシェルスクリプトを使用したモデル生成やバッチ処理の自動化を可能にし、製造ワークフローを効率化します。

DXF をインポートして 3D に押し出す方法は?

linear_extrude(height = 5) {
    import(file = "profile.dxf", layer = "outer");
}
 日本