PARAMETRIC 3D CAD · FABRICATION COMPILER · BROWSER-BASED

Design it. Then make it cuttable.

設計から、切れるデータまで。 スケッチを描き、拘束と寸法で形を決め、押し出して立体にする。材料を選ぶと、板と箱はレーザーで切れる部品に、紙は展開図になります。すべてブラウザの中で動きます。

インストール不要・無料。設計データは外部に送信しません。

FabCADの画面。星形のスケッチを、板の厚みの5.5 mmだけ押し出している

ONE PIPELINE

CAD and manufacturing, not two separate tools.

形を作るところと、作れる形に直すところを分けません。ただし中身は分かれています。CADは材料を知らず、加工側は立体の面と稜線だけを見ます。

  1. Sketch
  2. Constraints
  3. Feature
  4. B-Rep Solid
  5. Fabrication
  6. Parts
  7. Sheet
  8. SVG / DXF

DESIGN

A real parametric CAD, in a browser tab.

幾何カーネルはOpenCASCADE(WebAssembly)。フィレットもブーリアンも、本物のB-Repで計算します。

拘束と、パラメータ式の寸法が付いたスケッチ

スケッチと拘束

線・矩形・円・円弧・楕円・多角形・スロット・スプライン。12種類の拘束と6種類の寸法を、独立した拘束ソルバーが解きます。ドラッグしても拘束は保たれ、残りの自由度と過剰拘束がその場で分かります。

  • ほかの点の真上・真横にそろう位置へスナップし、ガイドを表示
  • 何もない場所は1 mm単位にスナップ
  • 閉じた領域を自動で検出し、クリックで選択
  • 立体の稜線や面をスケッチへ投影(Project)
穴とフィレットのある立体と、操作が並んだタイムライン

履歴のある立体

Extrude、Revolve、Sweep、Loft、Hole、Pattern、Mirror、Fillet、Chamfer、Shell、Combine。操作はタイムラインに並び、上流を変えると下流だけが再計算されます。寸法には width / 2 や material + 0.1 mm のような式が書けます。

  • 平面や面から距離を指定して、構成平面(Offset Plane)を作成
  • すべての操作をUndo / Redo
  • STEPの読み込みと書き出し、STLの書き出し
  • スケッチはSVG / DXFで書き出し

Fusionに近い操作

L R C D T O E F Q P。面を選んで R を押せば、その面で矩形を描き始めます。右クリックで、選択に合ったメニューが開きます。Shift + クリックかMulti-Selectで、稜線や面をまとめて選べます。

アイコンからヘルプ

ツールのアイコンを右クリック(タッチでは長押し)すると、そのツールの説明が出ます。用途、必要な選択、パラメータ、制限を、英語と日本語で確認できます。実行中のコマンドはそのままです。

矢印で押し出す

Extrudeでは矢印をドラッグして距離を決められます。結果は半透明でプレビューされ、Cutは赤で表示されます。

プロジェクトはファイルで

.fabcad.json として保存します。パラメータ、スケッチ、拘束、履歴、材料の設定が1つのファイルに入ります。編集中の内容はブラウザに自動保存されます。

FABRICATION

Pick a material. Get parts you can cut.

立体の面・稜線・二面角から、何を作れるかを先に判定します。板は「平らな部品」と「直方体の箱」、紙は任意の多面体の展開図。作れない形は、理由を示して止めます。

箱を6枚のパネルに分解し、星形の板と一緒にMDFのシートに並べた画面

MDF・アクリル:板と箱

板厚と同じ厚みの形は、輪郭のまま1つの部品になります。六角形でも星形でも、穴があっても同じです。直方体は6枚のパネルに分け、板厚のぶんだけ辺を詰めて、タブとスロットを付けます。

  • Flat Part / Rectangular Box を自動で判定して表示
  • Tab & Slot / Finger / Flat を選択
  • 切り幅(kerf)と、はめ合いの余裕を補正
箱を紙の展開図にした画面。折り線とのりしろ

紙:展開図と、のりしろ・差し込み

立体を1枚につながった展開図に開きます。折り線は青、切り線は赤。切り離された辺には、のりしろを自動で付けます。面が重なる開き方は選びません。

  • 糊を使わない Tab & Slit:タブを切り込みに差し込み、継ぎ手は内側に隠れます
  • のりしろの幅・角度・インセットを調整
  • 円柱や円錐は細い帯として展開。球のように伸ばさないと作れない面は、理由を示して止めるか、地球儀のような舟形に分けて近似します

作れない形は、作らない

角柱、角錐、屋根、斜めの接合。板で組めると保証できない立体は、それらしいカットデータを出さずに、理由を示して止めます。

Unsupported body — Reason: This body contains non-90° panel joints.

部品と接続の一覧

部品ごとの寸法・板厚・材料に加えて、どの辺がどの辺と、どの継ぎ方で合うのかを一覧できます。

3Dプリントにも

同じ立体を、オーバーハングが最も少ない向きでベッドに置きます。サポートが必要な面を赤で示し、重さとフィラメントの長さを見積もって、3MF / STLで書き出します。スライスはお使いのスライサーで。

見たままを書き出す

プレビューと書き出しは同じ形状データを使います。SVGはmm単位で、cut / fold / engrave をグループに分けます。

HOW IT WORKS

Five steps from a sketch to a cut file.

  1. 01

    SKETCH

    平面を選び、形を描く

  2. 02

    CONSTRAIN

    拘束と寸法で形を決める

  3. 03

    EXTRUDE

    押し出して立体にする

  4. 04

    MATERIAL

    FABRICATIONで材料を選ぶ

  5. 05

    EXPORT

    SVG / DXFを書き出す

スマートフォンでスケッチを編集している画面

TOUCH

Works on a phone, too.

スワイプで移動、ピンチでズーム。指を置いてずらし、離した位置に点を置きます。ダブルタップでメニューが開き、Multiで複数選択、アイコンの長押しでヘルプ。押し出しの矢印も指で引けます。

スマートフォンでの動作は、ブラウザのエミュレーションで確認しています。

FOR AI AGENTS

Let an AI agent do the clicking.

画面を見てマウスとキーボードで操作するAIエージェント(computer use)に、FabCADでの作図を頼めます。エージェント向けのガイド、座標の入力、コマンドパレット、作業の記録を用意しています。ここでは、エージェントに指示を出す人のための使い方をまとめます。

頼み方

  1. ブラウザを操作できるAIエージェントに、FabCADの編集画面 /FabCAD/app/ を開かせます(このページでは右上の「FabCADを開く」ボタン)。
  2. 作業の前に、エージェント向けガイド llms.txt を読ませます(HTML版)。
  3. 作りたい物を、寸法と基準の位置まで数値で伝えます。
  4. 終わったら、作業の記録で結果を確かめさせ、報告させます。

うまく頼むコツ

  • 「だいたい」ではなく数値で。原点をどこに置くか、どの平面に描くか(XY平面など)も書きます。
  • 点は座標の入力(30, 20、@60, 40)で、コマンドはコマンドパレット(Ctrl / Cmd + K)で、と指示すると、クリックの位置ずれで失敗しにくくなります。
  • どのブラウザで作業するかも指定します。エージェントによっては、自分の環境の中のブラウザと、指示した人のパソコンのブラウザの両方を使えます。指示文の例では、エージェント自身の環境の中のブラウザを使うように書いています。
  • 部品は1つずつ。複雑な形は手順に分けて頼みます。
  • レーザー加工なら、材料と厚さも伝えます。板の厚さと材料の厚さが合わないと部品になりません。

確かめ方

  • タイムラインの左端のボタンで「作業の記録」が開きます。各ステップの成否とBodyの体積が並び、画面で読めるので、エージェントも確かめられます。Copyでプロジェクトの中身も含めてコピーできます。
  • エージェントに、記録のステップがすべて ok か、体積が計算どおりかを確認させます。
  • 記録の最後の「Fabrication (laser)」には、材料と、各Bodyが何として認識されたか(Flat Part、Unfolded Net など)、部品ごとの寸法が出ます。書き出したファイルを開かなくても、正しい部品になっているか確かめられます。
  • うまくいかなかったときは、この記録を貼れば状況を正確に伝えられます。

指示文の例

FabCAD(https://fooping-tech.github.io/FabCAD/app/)で、次の部品を作ってください。
作業は、あなた自身の環境(エージェント用のコンテナ)の中のブラウザで行ってください。私のパソコンのブラウザは使わないでください。
作業を始める前に https://fooping-tech.github.io/FabCAD/llms.txt を読み、そこに書かれた操作方法に従ってください。ガイドは別のタブで読み、編集画面のタブは閉じずに使い続けてください(ブラウザの「戻る」は使わない)。

作るもの
- XY平面に、原点を左下の角とする 60 × 40 mm の長方形を描き、5 mm 押し出した板
- 板の中心(30, 20)に、直径 8 mm の貫通穴
- 材料:MDF、厚さ 5 mm。レーザー加工用の SVG を書き出す

進め方
- 点は座標の入力(x, y や @dx, dy)で置き、コマンドはコマンドパレット(Ctrl / Cmd + K)で実行する
- 各ステップの後、ステータスバーと画面の表示で結果を確かめてから次に進む

完了の確認
- タイムラインの左端のボタン(またはコマンドパレットの History Log)で作業の記録を開き、すべてのステップが ok であること、Body の体積が 60 × 40 × 5 − π × 4² × 5 ≒ 11749 mm³ であることを確かめる
- SVG を書き出す前と後に、作業の記録の「Fabrication (laser)」が「Body001: Flat Part · 1 part」と「60 × 40 mm · 1 hole」になっていることを確かめる。違う場合(Unfolded Net、Rectangular Box、Unsupported、部品が複数)は設定を直してから書き出し、完了と報告しない

AIエージェントは間違えることがあります。書き出したファイルは、加工の前に寸法を確かめてください。プロジェクトはこのブラウザの中に保存され、どこにも送信されません。

IN THE OPEN

Runs on your machine. Built in the open.

サーバーなし

静的なWebアプリです。幾何カーネルもブラウザの中のWeb Workerで動き、設計データはどこにも送信しません。

ベータ版です

アセンブリの操作、蓋や仕切りのあるケースの生成、箱以外の立体の板への分解などは未実装です。切り幅やはめ合いの値は、お使いの材料と加工機に合わせて調整してください。実機での加工と造形は未検証です。

ソースコード

TypeScriptのモノレポです。スケッチ、拘束ソルバー、履歴、加工の各部分を独立したパッケージに分けています。

github.com/fooping-tech/FabCAD →

Sketch something. Then cut it.