JupyterCADはJupyterLab上で動作するブラウザベースの3DCADツールです。通常のCADソフトと大きく異なるのは、Pythonコードで図形を生成・配置できる点です。寸法や座標をコードで管理するため、パラメータを変えるだけで形状を瞬時に修正できます。
使える図形は直方体・円柱・球・円錐・トーラスの5種類。それぞれ数行のコードで生成でき、色や配置座標も自由に指定できます。この記事では各図形のパラメータの意味と実際に動くコードをまとめました。
建設・製造業の設計補助や、Pythonで自動作図を試したい方はぜひ参考にしてください。
JupyterCADの特徴
そのまま確認できる
Excelとの同期も可能
使用開始できる
pip install jupytercad の1行だけで3DCADをPythonから操作できる。互換性が低い
限りがある
ほぼない
CADデータの拡張子は「.jcad」になります。
互換性はFreeCADのみ確認しており、一般的なCADデータとは直接的な互換性はありません。
他CADで使用するにはFreeCAD経由で拡張子を変える必要があります。
つかだ他CADとの互換性のなさから、正直実務性はありません😅
しかし大変手軽に作図できるプログラミング3D CADですので、Pythonで3Dモデリングの概念を学ぶ入門ツールとして最適です。
「コードで3Dを作る」感覚をつかむには十分すぎるほどの機能があります!
準備:JupyterCADのインストール
JupyterDesktopを起動したら、内蔵ターミナルで以下を実行します。!pip install jupytercad
再起動するとランチャーに「CAD File」が追加されています。

つかだJupyterCADには純正の日本語化パッチはありません。
以下の記事で日本語化の方法を解説してますので、ぜひご活用ください!
JupyterCAD日本語化の解説はこちら!

導入:JupyterCADの基本形
新規作成/CADを開くCadDocument()
- ① 新規作成
-
まっさらな状態からCADファイルを作るときは
CadDocument()を引数なしで呼び出します。from jupytercad import CadDocument doc = CadDocument() # 新規作成 - ② 既存ファイルを開く
-
すでに作成済みのファイルに図形を追加したい場合は、ファイル名を引数に渡します。
from jupytercad import CadDocument doc = CadDocument("design.jcad") # 既存ファイルを開く - ③ あれば開く・なければ新規作成(条件分岐)
-
実用の場面の作業では、ファイルがあるかどうかわからない場面があります。
pathlibを使えば1つのコードで両方に対応できます。# ライブラリのインポート from jupytercad import CadDocument from pathlib import Path # ファイル名を指定 cad_data = "design.jcad" # あれば開く、なければ新規作成 if Path(cad_data).exists(): doc = CadDocument(cad_data) print(f"既存ファイルを開きました: {cad_data}") else: doc = CadDocument() print(f"新規作成します: {cad_data}")
図形を追加するadd_xxx()
docへ格納したCADフォルダへ作図を書き込んでいきます。
doc.add_box(name="Box1", length=50, width=100, height=30)
つかだ各図形の作図法詳細は本記事の次項で説明します!
共通引数(全図形)
| 引数 | 型 | 説明 |
|---|---|---|
name | str | オブジェクト名(重複不可) |
position | list | 配置座標 [x, y, z](省略時は原点) |
color | str | 色(HEXコード or 色名) |
CADを保存するsave()
saveの引数にCADのパスを渡すと、CADが保存できます。
新規作成もCADを開いても同様のコードで保存できます。
doc.save("design.jcad")
ノートブック上でCADをインライン表示するdisplay()
JupyterCADの面白い機能のひとつが、ノートブックのセル出力に3DビューワーをそのままTable示できる点です。コードを実行するとセルのすぐ下にCAD画面が現れ、マウスで回転・拡大しながら確認できます。
display()で3DCADをセル出力します
from jupytercad import CadDocumentfrom IPython.display
import display
display(doc) # ← セルの下にCADビューワーが表示されます。
または下記のようにCadDocumentが格納された変数を書くだけでも可能です!
from jupytercad import CadDocumentfrom IPython.display
import display
doc # ← セルの下にCADビューワーが表示されます。
作図の基本テンプレート
このテンプレートが
# ライブラリのインポート
from jupytercad import CadDocument
from IPython.display import display
from pathlib import Path
# ファイル名を指定
cad_data = "design.jcad"
# あれば開く、なければ新規作成
if Path(cad_data).exists():
doc = CadDocument(cad_data)
print(f"既存ファイルを開きました: {cad_data}")
else:
doc = CadDocument()
print(f"新規作成します: {cad_data}")
# 作図コードを記載
doc.add_box(name="Box1", length=50, width=100, height=30, color="red")
# 保存
doc.save(cad_data)
# セルの下にCADビューワー表示
display(doc)
つかだコード下のセルで図面を確認できます!
マウスで回転や拡縮も可能で、セル内でぐるぐる触ることもできます!

表示されたビューワーはマウスドラッグで視点を自由に変えられるので、
コードを書きながらリアルタイムで形状を確認するのに便利です。
① 直方体(Box)

パラメータ一覧
| パラメータ | 意味 | 単位 |
|---|---|---|
| name | オブジェクト名(任意) | ― |
| length | X方向の長さ(奥行き) | mm |
| width | Y方向の幅 | mm |
| height | Z方向の高さ | mm |
| position | 配置座標 [x, y, z] | mm |
| color | 色(色名、またはHEXコード) | ― |
コード例
# 幅100mm × 奥行き50mm × 高さ30mm の直方体
doc.add_box(
name="Box1",
length=50, # 奥行き
width=100, # 幅
height=30, # 高さ
position=[0, 0, 0],
color="red"
)
② 円柱(Cylinder)

パラメータ一覧
| パラメータ | 意味 | 単位 |
|---|---|---|
| name | オブジェクト名 | ― |
| radius | 断面の半径 | mm |
| height | 高さ | mm |
| position | 配置座標 [x, y, z] | mm |
| color | 色(色名、またはHEXコード) | ― |
コード例
# 半径20mm × 高さ80mm の円柱
doc.add_cylinder(
name="Cyl1",
radius=20,
height=80,
position=[150, 0, 0],
color="blue"
)
③ 球(Sphere)

パラメータ一覧
| パラメータ | 意味 | 単位 |
|---|---|---|
| name | オブジェクト名 | ― |
| radius | 半径 | mm |
| position | 配置座標 [x, y, z] | mm |
| color | 色(色名、またはHEXコード) | ― |
コード例
# 半径25mm の球
doc.add_sphere(
name="Sph1",
radius=25,
position=[300, 0, 0],
color="green"
)
④ 円錐(Cone)
パラメータ一覧
| パラメータ | 意味 | 単位 |
|---|---|---|
| name | オブジェクト名 | ― |
| radius1 | 底面の半径 | mm |
| radius2 | 上面の半径(0より大きい値) | mm |
| height | 高さ | mm |
| position | 配置座標 [x, y, z] | mm |
| color | 色(色名、またはHEXコード) | ― |
コード例

# 底面半径30mm → 上面半径1mm(先端に近い形)× 高さ60mm
doc.add_cone(
name="Con1",
radius1=30,
radius2=1, # 0はNG!0より大きい値を指定
height=60,
position=[450, 0, 0],
color="yellow"
)
⚠️ 注意: radius2=0 を指定すると ValidationError: ICone Radius2 Input should be greater than 0 が発生します。先端を尖らせたい場合は radius2=0.1 などの極小値を使ってください。
色の指定について

パラメータ一覧
| パラメータ | 意味 | 単位 |
|---|---|---|
| name | オブジェクト名 | ― |
| radius1 | トーラス中心から断面中心までの距離 | mm |
| radius2 | 断面の半径 | mm |
| position | 配置座標 [x, y, z] | mm |
| color | 色(色名、またはHEXコード) | ― |
コード例
# 外径半径30mm・断面半径8mm のトーラス
doc.add_torus(
name="Tor1",
radius1=30,
radius2=8,
position=[600, 0, 0],
color="purple"
)
色の指定方法は2種類
JupyterCADの色指定は2種類使えます。
# ① 色名で指定(シンプル)
color="red"
# ② HEXコードで指定(自由度が高い)
color="#E74C3C"
色名はそのまま英語で書くだけなので直感的です。
より細かい色を使いたい場合はHEXコード(# + 6桁の英数字)で指定します。

HEXコードはカラーパレットサイト Color Hunt が便利です。おしゃれな配色がセットで公開されているので、複数の図形に統一感のある色をつけたいときに重宝します。気に入ったカラーをクリックするとHEXコードをそのままコピーできます。
つかだ公式ドキュメントでは色の指定方法としてHEXコードのみを紹介しています。“red”などの色名指定は今回検証で発見したものですが、アップデートにより使えなくなる可能性があります。
※本記事では簡易化のため色名指定を採用しています
set_color(name, value)
Set the color of an object.Parameters:
全図形をまとめて描画するサンプルコード
# ライブラリのインポート
from jupytercad import CadDocument
from IPython.display import display
from pathlib import Path
# ファイル名を指定
cad_data = "design.jcad"
# あれば開く、なければ新規作成
if Path(cad_data).exists():
doc = CadDocument(cad_data)
else:
doc = CadDocument()
# 直方体(赤)
doc.add_box(
name="Box1",
length=50, width=100, height=30,
position=[0, 0, 0],
color="red"
)
# 円柱(青)
doc.add_cylinder(
name="Cyl1",
radius=20, height=80,
position=[150, 0, 0],
color="blue"
)
# 球(緑)
doc.add_sphere(
name="Sph1",
radius=25,
position=[300, 0, 0],
color="green"
)
# 円錐(黄)
doc.add_cone(
name="Con1",
radius1=30, radius2=1, height=60,
position=[450, 0, 0],
color="yellow"
)
# トーラス(紫)
doc.add_torus(
name="Tor1",
radius1=30, radius2=8,
position=[600, 0, 0],
color="purple"
)
# 保存 & 表示
doc.save(cad_data)
display(doc)
for文で複数の図形を並べる
同じ図形を繰り返し配置するときはfor文が便利です。
from jupytercad import CadDocument
doc = CadDocument("design.jcad")
colors = ["#E74C3C", "#F39C12", "#2ECC71", "#3498DB", "#9B59B6"]
for i in range(5):
doc.add_box(
name=f"Box_{i+1}",
length=30, width=30, height=30,
position=[i * 50, 0, 0], # 50mm間隔で並べる
color=colors[i]
)
doc.save("design.jcad")
display(doc)
print("5つの直方体を配置しました")
パラメータまとめ表
| 図形 | 主なパラメータ | 注意点 |
|---|---|---|
| 直方体 | length / width / height | ― |
| 円柱 | radius / height | ― |
| 球 | radius | ― |
| 円錐 | radius1 / radius2 / height | radius2は0より大きい値 |
| トーラス | radius1 / radius2 | radius1>radius2にすること |
まとめ
JupyterCADの図形はすべて position=[x, y, z] で配置座標を指定します。単位はmmです。コードでパラメータを管理できるので、寸法変更が必要なときもコードを書き直すだけで済みます。
つかだ次回の記事では図形の組み合わせと座標指定で、
本格的なモデリングに挑戦してみます!
あわせて読みたい




コメントお待ちしてます!