CadQuery

TD01 CadQuery

この記事は約8分で読めます。

3Dモデリングツール、CadQueryの覚書です。

概要

pythonコードでのモデリングなので、chatGPTなどの生成AIとの相性がいいように感じます。

CadQueryは、Pythonを使って3D CADモデルを構築するための、非常に強力なライブラリです。従来のGUIベースのCADソフトとは異なり、プログラムによって3Dモデルを生成するため、パラメトリックデザインバッチ処理など、高度な設計に適しています。

CadQueryの特徴をいくつか挙げると、

  • Pythonによる記述: プログラミング言語Pythonで記述するため、既存のPythonコードとの連携や、複雑なロジックの実装が容易です。
  • 直感的なAPI: 3D形状を記述するAPIが直感的で、比較的少ないコードで複雑な形状を生成できます。
  • 豊富な機能: 基本的な形状の作成から、ブール演算、スナップ、フィレットなど、幅広い機能が用意されています。
  • 拡張性: プラグインシステムにより、機能を拡張することができます。
  • 出力形式: STL、STEP、AMFなど、様々な3Dモデル形式に出力できます。

CadQueryが役立つ場面としては、

  • 製品設計: 繰り返し設計が必要な部品や製品の設計
  • シミュレーション: 有限要素法などのシミュレーション用のモデル作成
  • 3Dプリンティング: 3Dプリンター用のモデル作成
  • プロトタイピング: 新しいアイデアを迅速に試作するためのモデル作成

などが挙げられます。

Geminiより

生成AIとの相性

CadQueryと生成AIの相性の良さ

  • テキストベースの表現: CadQueryはPythonコードで記述するため、テキストベースで3Dモデルを表現します。生成AIは、テキストデータを処理することに長けており、この点が両者の親和性を高めています。
  • パラメトリックな設計: CadQueryはパラメトリックな設計を可能にするため、設計変数を変更するだけで様々なバリエーションのモデルを生成できます。生成AIは、与えられた条件に基づいて新しいアイデアやデザインを生成することが得意であり、このパラメトリックな特性と相まって、より創造的な設計が可能になります。
  • 自動化: CadQueryのコードは自動化に適しており、繰り返し作業を効率化できます。生成AIは、与えられたタスクを自動化するためのモデルを学習することができ、この組み合わせにより、設計プロセス全体を自動化することが可能になります。
  • 大規模データの処理: 生成AIは、大量のデータを学習し、そこからパターンや関係性を抽出することができます。CadQueryで生成された3Dモデルのデータも、生成AIの学習に活用することで、より高度な設計支援が可能になります。

具体的な活用例

  • 自然言語からのモデル生成: 「高さ10cmの円柱に穴を開け、上面に球体を乗せる」といった自然言語の指示から、CadQueryのコードを生成し、3Dモデルを作成します。
  • 既存モデルの変形: 既存の3Dモデルを基に、形状や寸法を変化させた新しいモデルを生成します。
  • 最適化設計: 与えられた条件下で、性能が最大となる形状を生成します。
  • デザインバリエーション生成: 複数のデザイン案を自動生成し、設計者が選択しやすくなるよう支援します。

今後の展望

生成AIとCadQueryの連携は、まだ発展途上ですが、今後の可能性は非常に高いです。例えば、

  • 設計意図の理解: 生成AIが設計者の意図をより深く理解し、より適切なモデルを提案できるようになる。
  • 新しい設計概念の創出: 生成AIが、従来の設計手法では考えつかなかったような新しい形状や構造を提案する。
  • 設計プロセスの民主化: プログラミングの知識がなくても、誰でも高度な3Dモデルを作成できるようになる。

まとめ

CadQueryと生成AIの組み合わせは、3D設計の分野に革新をもたらす可能性を秘めています。両者の強みを活かすことで、より効率的で創造的な設計が可能になると考えられます。

Geminiより

環境

ソース

コードはネット検索で探せると思います。インストーラーも公開されています。

sourceforgeのページ

CadQuery
Download CadQuery for free. A python parametric CAD scripting framework based on OCCT. CadQuery is an intuitive, easy-to...

インストーラーのページ

Release Nightly ?? CadQuery/CQ-editor
Dummy release used to store latest installers.

ソースコードの中にexamplesフォルダがあるので、インストーラー以外もダウンロードするとよいです。

ローカル環境

インストールするとユーザー(個々の環境)にcq-editorフォルダが作成されます。

C:\Users\<ユーザー>\cq-editor

フォルダにrun.batがあるのでダブルクリックで起動します。

操作

ほとんどの操作がpythonなので、GUIもシンプルです。
3Dモデリングツールよりも、スクリプトエディターに近いです。
生成AIに聞くのがいいかもしれません、、、

pythonコードを書いて

Renderで描画

再表示

pythonファイルの更新に応じて描画も更新します。

使用例

作業

サンプル

サンプル、関数の確認です。

Workplane

Workplaneは、「作業面」を表し、ユーザーが図形や形状を定義するための平面です。この関数を用いて基本的な形状を作成し、それらを組み合わせたり、変形させたりすることができます。

import cadquery as cq

# "front"作業面を作成
wp = cq.Workplane("front")

アセンブリ

LLMで作成している例です。

Tips

エクスポート

tOOLS > Exportから出力できます。FreeCADへはstepでいいと思います。
モデルが複数ある場合には、Objectsで二つShiftを押しながら選択すると、まとめて出力されます。

Objects:右上のペイン
FreeCADでstepファイルを読み込んだ場合

vsCode + OPC CAD Viewer

OCP CAD Viewer(正式名称:O3DE Cad Processor CAD Viewer)は、主にPythonベースのCADライブラリであるCadQuerybuild123dで作成した3Dモデルを、リアルタイムでプレビュー・確認するための拡張機能やツールのことを指します。

特にVisual Studio Code(VS Code)の拡張機能として利用されることが多く、コードを書きながら即座に形状を確認できるため、エンジニアやデザイナーに重宝されています。

vsCodeでOCP CAD Viewerをインストールして使うと、エージェントも使えて快適だと思います。

インストールは環境を作って拡張機能から検索してインストールするか、pipなどでインストールします。copilotなどのエージェントに環境も指定して頼めば、インストールしてくれると思います。

拡張機能から検索

事前準備

お使いのPCに以下がインストールされていることを確認してください。

  • Python (バージョン3.9〜3.11あたりが推奨です)
  • Visual Studio Code (VS Code)

Step 1: プロジェクトフォルダと仮想環境の作成
システム全体のPython環境を汚さないために、仮想環境(venv)を作成することを強くお勧めします。

VS Codeを開き、メニューから [ファイル] > [フォルダーを開く] を選択し、作業用の空フォルダ(例: CadQuery_OCP)を作成して開きます。

VS Codeのターミナルを開きます(Ctrl + ` またはメニューの [ターミナル] > [新しいターミナル])。

以下のコマンドを実行して仮想環境を作成します。
python -m venv venv

仮想環境を有効化します。
.\venv\Scripts\activate

Step 2: 必要なPythonパッケージのインストール

有効化した仮想環境内で、Build123dとVS Code連携用のパッケージ(ocp-vscode)をインストールします。

ターミナルで以下のコマンドを実行してください。

pip install build123d ocp-vscode

Step 3: VS Code拡張機能「OCP CAD Viewer」のインストール

次に、VS Code上で3Dモデルを描画するための拡張機能を入れます。

  1. VS Codeの左側のサイドバーから 拡張機能 (Extensions) アイコンをクリックします(または Ctrl+Shift+X / Cmd+Shift+X)。
  2. 検索バーに OCP CAD Viewer と入力します。
  3. Bernhard Walter 氏が作成した「OCP CAD Viewer」を見つけ、[インストール] をクリックします。

Step 4: OCP CAD Viewerの起動

コードを書く前に、ビューアーを待機状態にします。

  1. VS Code上でコマンドパレットを開きます(Ctrl+Shift+P / Cmd+Shift+P)。
  2. OCP: Start viewer と入力して実行します。
  3. VS Codeの画面が分割され、右側に空の3Dビューアー(グリッド画面)が表示されます。

Step 5: テストコードの作成と実行

実際にBuild123dでモデルを作り、ビューアーに表示させます。

  1. エクスプローラー画面から、新しいファイル main.py を作成します。
  2. 以下のテストコードを貼り付けます。
from build123d import *
from ocp_vscode import show

# 10x10x10の箱の真ん中に、半径2の穴を貫通させたモデル
with BuildPart() as my_part:
    Box(10, 10, 10)
    Cylinder(radius=2, height=10, mode=Mode.SUBTRACT)

# OCPビューアーに転送して表示
show(my_part)

このスクリプトを実行します。

  • 右上の [▷ (Python ファイルをターミナルで実行)] ボタンを押すか、ターミナルで python main.py と入力して実行します。

成功すると、右側のOCP CAD Viewerに穴の開いたブロックの3Dモデルが表示されます。マウスの左ドラッグで回転、右ドラッグでパン、ホイールで拡大縮小が可能です。

だいたいのaiモデルはvisionを持っているので、画像で指示できます。

コメント

This website stores cookies on your computer. These cookies are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to to opt-out of any future tracking, a cookie will be setup in your browser to remember this choice for one year.

Accept or Deny

Translate »
タイトルとURLをコピーしました