1.はじめに
CCTが提供している調達DX(調達DX ~見積もり自動化技術~ | CCT)ではAIや3D CADのデータを使用して製造業の見積もりの自動化技術を提供しています。技術開発の際、3Dモデルを作成することが多いのですが、1つ1つ手動で作成するのは手間がかかってしまいます。そこで私たちはCadQueryというライブラリを使用することで、3Dモデルを自動で作成する場合があります。プログラミングを用いて3Dモデルを自動で作成できると非常に便利です。今回はその使い方を紹介します。
2.CadQueryとは?
3Dモデルを作成するためのPythonライブラリです。Pythonでコードを書くことにより、寸法値を数値指定することや拘束条件を容易に設定できるため、簡単に3Dモデルを作成することができます。これはパラメトリック・デザインと呼ばれています。寸法値のカスタマイズも手軽に行うことができるため、例えばフィレットのサイズに悩んでいた場合、3Dモデルを出力しつつ数値を入力しながら調整をすることができます。さらに、STL形式やSTEP形式で3Dモデルを出力できるだけでなく、Jupyter Notebookなどの他Pythonライブラリとの親和性も高いため、非常に汎用的です。
3.CadQueryを導入しよう
まずはCadQueryを導入しましょう。CadQueryのドキュメントに書いてある手順に従います。
3.1 condaのインストール
CadQueryには、condaというパッケージ管理コマンドが必要です。今回は公式docにある通り、Miniforgeを利用します。導入する環境に合わせたバージョンをインストールして下さい。
3.2 CadQueryのインストール
Miniforgeのインストールが成功すると、Miniforge Promptを使えるようになります。これは、condaコマンドにPATHが通ったコマンドプロンプトです。使っているPCのスタートメニューから「Miniforge Prompt」を起動して下さい。以降は、このプロンプト上で作業を行っていきます。
ここでは、最新のCadQueryをインストールします。
1 |
conda install -c cadquery -c conda-forge cadquery=master |
これでCadQueryの導入が完了しました。以下のテストをしてみましょう。
1 2 3 |
$ python $ >>import cadquery $ >>cadquery.Workplane('XY').box(1,2,3).toSvg() |
コマンドラインにSVGが出力されれば成功です!
これでCadQueryを使用できるようになりました。
4.CQ-editorを導入しよう
上記の手順でインストールしたCadQueryをもっと使いやすくしましょう。CQ-editorとは、CadQueryに対応したGUIエディタです。CQ-editor上で3Dモデルの形状を把握することができるため、より直感的な操作をすることができます。
先ほどと同様に、Miniforge Prompt上で以下のコマンドを打って下さい。
1 |
conda install -c cadquery -c conda-forge cq-editor=master |
この時、依存ライブラリの整合を取る必要があります。整合が取れていない場合、上記コマンド実行時に該当ライブラリが表示されるので、適宜condaコマンドを用いてインストールして下さい。
上記コマンドが成功すると、condaをインストールしたフォルダ内にScript\CQ-editor.exeが存在します。Miniforge Prompt上で移動してCQ-editor.exeを実行してください。
1 2 |
cd Scripts Scripts>CQ-editor.exe |
CQ-editorが表示されたら成功です!
以降では実際に、これを用いてモデルを作ってみましょう。
5.モデルを作ってみよう
ここでは、先ほど導入したCQ-editor上でモデルを作ってみましょう。CadQueryのドキュメントにいくつか作成例がありますが、ここではもう少し嚙み砕いて解説します。
5.1 例1:直方体を作ってみよう
CQ-editor左上にあるEditorにPythonコードを記述し、メニューバーにある再生ボタンを押下することで3Dモデルが生成されます。まずはもっとも単純な3Dモデルを作ってみましょう。実際に以下のコードを打ち込んで3Dモデルを生成すると画面のような形状が出力されます。各コードの意味については、コメントを参照してください。
1 2 3 4 5 6 7 8 9 |
import cadquery as cq # サイズの指定 (length, height, thickness) = (30.0, 40.0, 10.0) # 描画する平面を指定 field = cq.Workplane("XY") # Cubeの作成 cube = field.box(length, height, thickness) # 結果を描画 result = cube |
[メニューバー → Tools → Export as STL]を押下することで、作成した3DモデルをSTLで出力することができます。これで直方体が作成できました!
5.2 例2:直方体にフィレットと穴を追加しよう
例1で作成した3Dモデルに、フィレット・穴を追加しましょう。CadQueryの良いところは、どの面に対して処理をするか数式を用いて記述できるので、比較的明快であるところです。フィレットの作成は.fillet()で可能です。穴をあける際は.hole()を使用しても良いですがcircle(5.0).cutThruAll()でも大丈夫です。
1 2 3 4 5 6 7 |
import cadquery as cq # サイズの指定 (length, height, thickness) = (30.0, 40.0, 10.0) # 描画する平面を指定 field = cq.Workplane("XY") # 結果を描画 result = field.box(length, height, thickness).edges("|Z").fillet(1.0).faces(">Z").center(0.0, 8.0).circle(5.0).cutThruAll() |
フィレット・穴を追加した3Dモデルを作成することができました!
6.おわりに
今回は、CadQueryを使用していくつかの3Dモデルを実際に作ってみました。プログラミングを用いることで、パラメータの変更で多くのバリエーションの3Dモデルを生成することができるため、手動作成の場合に比べて容易に3Dモデルを作成することができます。ここまで読んでくださった皆さんも、ぜひ試してみてくださいね。