用文字畫 3D:Adam 實戰指南

用文字畫 3D:Adam 實戰指南

📌 本文重點

  • Adam 把自然語言變成可編輯的 OpenSCAD 程式碼與 3D 模型
  • 用「文字 + 滑桿」就能調整尺寸與設計邏輯
  • 雲端試用簡單,也能用 CADAM 自架整合到現有流程

一句話先講結論:Adam 讓你用一句自然語言描述零件,就能拿到可編輯的 OpenSCAD 程式碼和 3D 模型,用滑桿或文字微調尺寸,直接接到現有 CAD/3D 列印流程。

官網 / Demo:https://adam.new
開源專案(CADAM):https://github.com/Adam-CAD/CADAM


核心功能:從文字到 CAD 程式碼

Adam 圍繞一條實際工作流程設計:「文字描述零件 → 生成 CAD 程式碼 → 視覺化 3D 模型 → 滑桿 / 文字微調 → 導出到現有流程」。

💡 關鍵: 這條流程的重點是輸出「可維護的程式碼 + 模型」,而不是單次不可重用的模型檔。


1. 兩種模式:參數化建模 vs 網格生成

進入 Adam 介面後,先選模式:

  • 參數化建模(Text → OpenSCAD)
  • 輸入:
    • 例:「一個 20×40 mm 的 L 形支架,厚度 3 mm,兩邊各有 2 個直徑 4 mm 的螺絲孔,孔中心離邊 8 mm。」
  • 輸出:
    • 可編輯的 OpenSCAD 程式碼
    • 內建參數滑桿(長度、厚度、孔徑等)
  • 適合:

    • 要做多尺寸版本、後續要改尺寸的零件
  • 網格生成(Text → Mesh)

  • 輸入:較偏形狀描述,如「帶有圓角的桌角保護套,可套在 20 mm 厚桌板上」。
  • 輸出:
    • 一個可下載的網格(通常是 STL 或類似格式)
  • 適合:
    • 只要快速 3D 列印,不打算日後精細改版的形狀件

實際操作行動

  1. 先想清楚這個零件未來會不會「常改尺寸」。
  2. 會改 → 選「參數化建模」;一次性打樣 → 可試「網格生成」。

2. 滑桿調參 + 文本修改:像寫程式一樣調零件

Adam 的核心體驗是「文字 + 滑桿」雙軌控制:

  1. 第一次生成
  2. 在文字框輸入需求,按下生成。
  3. Adam 會:

    • 呼叫 AI 生成 OpenSCAD 程式碼
    • 解析出關鍵尺寸,放成可拖曳的滑桿
  4. 用滑桿調整尺寸

  5. 介面右側是 3D 模型預覽,左側或下方是參數列表:
    • lengthwidththicknesshole_diameter 等。
  6. 你可以直接拖拉滑桿,看模型即時更新。
  7. 適用情境:

    • 客戶說「再厚一點」
    • 3D 列印測試後只想調整孔徑、間距
  8. 用文字改需求

  9. 覺得形狀邏輯要變,例如:
    • 原本「兩個孔」,改成「三個等距孔」。
  10. 直接在文字框補一句:「改成三個等距螺絲孔,孔徑 5 mm。」
  11. Adam 會重新生成程式碼,並保留參數化結構。

💡 關鍵: 數值用滑桿、邏輯用文字,能把「一次性建模」變成「可持續迭代的設計流程」。

實際操作行動

  • 每次修改先問自己:「這是數值調整,還是設計邏輯變更?」
  • 數值:用滑桿或直接改參數欄位數字。
  • 邏輯:用文字提示重新生成,然後再微調滑桿。

3. Text → Code:產出可讀的 OpenSCAD

Adam 的底層策略是「Text → Code → CAD」:

  • 你得到的不是黑盒模型,而是完整 OpenSCAD 程式碼
  • 具名變數:bracket_lengthwall_thicknesshole_offset
  • 結構清楚的 module() 函式。
  • 你可以:
  • 直接把程式碼複製到本機 OpenSCAD 編輯。
  • 放進 Git 版本控制。
  • 用腳本批次修改某些參數再輸出多版本。

實際操作行動

  1. 生成完成後,打開程式碼面板,把 OpenSCAD 內容存成 part.scad
  2. 用 Git 建版(例如 v1.0v1.1),把 AI 產生的 CAD 正式納入工程專案。

適合誰用?三個具體場景


1. 機構工程師:快速打樣支架 / 夾具

常見痛點:

  • 為測試治具、感測器支架畫模型,來回改尺寸耗時間。

用 Adam 的 workflow:

  1. 文字描述:
  2. 「一個可以夾在 20 mm 厚鋁板上的 U 形夾具,內側貼合,外側有一個 5 mm 穿孔用來鎖 M5 螺絲。」
  3. 選「參數化建模」,生成模型和程式碼。
  4. 滑桿調整:板厚、公差、螺絲孔位置。
  5. 導出 STL,送去 3D 列印測試。

建議做法:把專案常用尺寸(例如板厚、公差)命名成變數,後續專案只改變數就能重用設計。


2. 3D 列印工作室:一次生成多尺寸版本

需求:

  • 同一個產品,需要 10、20、30、40 mm 四種尺寸給不同客戶。

做法:

  1. 在 Adam 生成一個參數化模型,例如「桌角保護套」,把關鍵尺寸寫成變數 edge_size
  2. 將 OpenSCAD 程式碼複製回本機,寫簡單迴圈:

scad
for (s = [10, 20, 30, 40]) {
edge_size = s;
// 呼叫 Adam 生成的 module
corner_protector(edge_size=edge_size);
}

  1. 在 OpenSCAD 中分別導出不同尺寸 STL。

替代做法:懶得寫程式時,可在 Adam 的滑桿上手動切四個尺寸,分別匯出四個 STL,適合量少時使用。

💡 關鍵: 把尺寸參數化後,同一份程式碼就能覆蓋多個規格,大幅減少重畫模型的時間成本。


3. 軟體工程師:用文字產出可讀 CAD

痛點:

  • 不熟 3D CAD,但懂程式,希望能為 Side Project 做外殼或支架。

用 Adam 的方式:

  1. 用你熟悉的軟體語言思維來描述零件:
  2. 「為一塊 100×80 mm 的 PCB 做一個盒子,上方預留 10 mm 高空間,下方有 4 個 M3 鎖孔,孔位與 PCB 四角對齊。」
  3. Adam 會產生具名變數與模組化程式碼:
  4. 很像在讀一個乾淨的程式檔案。
  5. 你可以把 part.scad 放進專案 repo:
  6. hardware/case_v1.scad
  7. 在 CI 裡加註解:「生成 STL 時請用 OpenSCAD 2024.x 以上版本。」

實際操作行動:團隊中沒有機構工程師時,讓軟體工程師先用 Adam 做「可用但不完美」的機構草稿,再請專業設計師基於 OpenSCAD 程式碼優化。


怎麼開始:雲端體驗到本機部署


1. 直接在線上玩 Demo(最快)

  1. 開啟:https://adam.new
  2. 用 Google / GitHub 帳號註冊或以訪客登入(以實際介面為準)。
  3. 選擇模式:
  4. 多尺寸零件 → 「參數化建模」
  5. 只要快速 3D 打樣形狀 → 「網格生成」
  6. 在文字框輸入第一個零件描述,按生成。
  7. 試著:
  8. 拖拉滑桿,觀察模型變化。
  9. 切到程式碼頁籤,複製 OpenSCAD 程式碼。

目標:第一次使用,用 10 分鐘做出一個「有螺絲孔的簡單支架」並匯出 STL。


2. 在本機部署開源 CADAM

如果你想要自架服務(內網使用、接私有模型),可以部署開源專案 CADAM

GitHub:https://github.com/Adam-CAD/CADAM

CADAM 是一個 React + Supabase 的 web app,大致步驟:

  1. 準備環境(本機或伺服器):
  2. Node.js(建議 18+)
  3. pnpmnpm
  4. Docker(選用,如果你要用容器)

  5. Clone 專案

bash
git clone https://github.com/Adam-CAD/CADAM.git
cd CADAM

  1. 安裝依賴

bash
pnpm install
# 或 npm install

  1. 設定環境變數
  2. 依照 README 建立 .env 檔:

    • Supabase 金鑰 / URL
    • OpenAI 或相容 LLM 的 API Key(若要自接模型,依說明調整)
  3. 啟動開發伺服器

bash
pnpm dev

在瀏覽器打開 http://localhost:3000 即可使用。

行動建議:先在線上版熟悉介面,再決定是否要自架;部署前從 GitHub 的 issue / README 確認當前支援的模型與功能狀態。


3. 接到 OpenSCAD / CAM / 生產流程

Adam 的輸出是程式碼 + 模型,你可以這樣接入現有流程:

3.1 接 OpenSCAD

  1. 從 Adam 介面複製生成的 OpenSCAD 程式碼。
  2. 在本機用 OpenSCAD 打開,進行:
  3. 更進階的布林運算(差集、交集)
  4. 加入你自己的 library / module
  5. 用 OpenSCAD 導出 STL / STEP,交給下游軟體。

3.2 接 CAM / CNC / 3D 列印

  • 3D 列印
  • 從 Adam 或 OpenSCAD 匯出 STL。
  • Cura / PrusaSlicer / Bambu Studio 裡切片,設定填充率、支撐等。

  • CNC / CAM

  • 如果需要 STEP/IGES,可先用其他工具把 STL 轉 B-rep(或改用能輸出 STEP 的 CAD 路線)。
  • Fusion 360 / SolidWorks / FreeCAD 裡做 CAM 規劃,生成刀具路徑。

實際操作行動:選一個目前專案中的小零件,用 Adam 生成 → 用 OpenSCAD 調整 → 匯出 STL → 3D 列印,完整跑一次小型「文字到實物」流程,確認團隊能接得住輸出格式。


小結:下一步可以做什麼?

如果你是:

  • 機構工程師:先把常用的支架 / 夾具模板交給 Adam 生成 OpenSCAD 草稿,日後改尺寸只改變數。
  • 3D 列印工作室:用 Adam 做參數化模型,批次產生多尺寸版本,減少重畫時間。
  • 軟體工程師 / Maker:把 CAD 當程式寫,用 Git 管理 .scad,讓硬體外殼也成為可維護的程式碼資產。

下一步,開啟 https://adam.new,用一句話描述你今天最想偷懶不想畫的零件,看看 Adam 能幫你省掉多少建模時間。

🚀 你現在可以做的事

  • https://adam.new,用一句話生出一個含螺絲孔的小支架並匯出 STL
  • 把生成的 OpenSCAD 存成 part.scad,放進 Git repo 當作第一個「程式化 CAD」檔案
  • https://github.com/Adam-CAD/CADAM 看 README,評估是否在團隊內部自架一套 Adam/CADAM 服務

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *