戰(zhàn):從自然語言到可編輯參數(shù)化模型)
做 CAD 這個(gè)行當(dāng)?shù)娜诉@兩年應(yīng)該都感受到了一股奇怪的壓力AI 都能寫代碼、畫圖、生成視頻了怎么打開 SolidWorks 還是得自己一個(gè)特征一個(gè)特征地拉直到 text-to-cad 這個(gè)概念密集出現(xiàn)才讓人意識(shí)到不是這方向沒人做是過去大家把路走岔了——大部分文本生成 3D 模型的工具生成的其實(shí)是 mesh網(wǎng)格而 CAD 要的是參數(shù)化特征樹。這兩者之間的鴻溝恰好就是 text-to-cad 真正要解決的問題。我花了兩周時(shí)間把市面上能試的 text-to-cad 項(xiàng)目、API、開源模型都過了一遍包括直接用大模型寫 CadQuery 腳本這種野路子。這篇文章不打算寫成一個(gè)綜述而是想從一個(gè)實(shí)際使用者的角度把這東西的原理、各家方案的差異、能復(fù)現(xiàn)的操作路徑以及最容易被忽視的質(zhì)量評(píng)估方法講清楚。如果你也是做機(jī)械設(shè)計(jì)、3D 打印、工業(yè)建?;蛘邌渭兒闷嬉痪湓捝梢粋€(gè)能編輯的零件到底怎么實(shí)現(xiàn)這篇文章應(yīng)該能幫你省下不少自己摸索的時(shí)間。1. 先說清楚Text-to-CAD 和文字生 3D 模型根本不是一回事很多人第一次聽到 text-to-cad第一反應(yīng)是這不就是文生 3D 模型嗎Meta 那個(gè)、OpenAI 那個(gè)不都能做 這是一個(gè)非常自然的誤解但也是理解整個(gè)領(lǐng)域最關(guān)鍵的一道坎。1.1 為什么 CAD 領(lǐng)域一直沒跟上文生圖的節(jié)奏過去幾年文字生成 3D 內(nèi)容的技術(shù)確實(shí)進(jìn)步飛快從早期的 CLIP 驅(qū)動(dòng)形狀優(yōu)化到后來的擴(kuò)散模型直接生成神經(jīng)輻射場(chǎng)再到用多視圖擴(kuò)散重建網(wǎng)格已經(jīng)能生成相當(dāng)精細(xì)的雕像、游戲道具、場(chǎng)景資產(chǎn)。但這些東西有一個(gè)共同特點(diǎn)輸出是三角形網(wǎng)格或者隱式曲面本質(zhì)上是一堆點(diǎn)、面、法線、紋理坐標(biāo)的集合。網(wǎng)格模型對(duì)游戲、影視、3D 打印預(yù)覽來說夠用但對(duì)工程師來說遠(yuǎn)遠(yuǎn)不夠。你在 SolidWorks 里打開一個(gè)網(wǎng)格零件會(huì)發(fā)現(xiàn)沒有特征樹、沒有草圖、沒有拉伸切除的記錄想改一個(gè)孔的直徑對(duì)不起改不了只能整個(gè)重做。CAD 的核心資產(chǎn)是可編輯性是參數(shù)化邏輯是那個(gè)記錄怎么一步步把這個(gè)零件做出來的特征歷史。text-to-cad 的目標(biāo)恰恰是后者生成的不只是一個(gè)形狀而是一套完整的建模過程、一顆參數(shù)化特征樹甚至是一段可以被 CAD 內(nèi)核重放的建模指令序列。這也是為什么它比文生 3D 模型難那么多。1.2 從特征樹到 CSGCAD 模型內(nèi)部到底長什么樣要理解 text-to-cad 的難點(diǎn)得先搞清楚 CAD 文件在底層是怎么描述一個(gè)零件的。這里有三層概念需要區(qū)分。第一層是特征樹Feature Tree也就是你在 SolidWorks、Fusion 360 里左側(cè)那個(gè)樹狀列表。它記錄的是先拉伸出底板再在頂面畫草圖切除一個(gè)孔再倒角這樣的操作順序。特征樹的每一層都依賴前面的結(jié)果中間任何一個(gè)草圖尺寸改掉后面的特征都會(huì)自動(dòng)更新這就是參數(shù)化建模的核心體驗(yàn)。第二層是B-Rep邊界表示它是 CAD 內(nèi)核Parasolid、ACIS、OpenCASCADE真正用來存儲(chǔ)幾何的數(shù)據(jù)結(jié)構(gòu)。B-Rep 把模型拆成一堆面Face、邊Edge、頂點(diǎn)Vertex并記錄它們之間的拓?fù)溥B接關(guān)系還包含精確的曲面方程而非網(wǎng)格近似。B-Rep 保證了模型在數(shù)學(xué)上是精確的但這個(gè)數(shù)據(jù)結(jié)構(gòu)極其復(fù)雜直接讓語言模型去生成 B-Rep 幾乎是不可能的。第三層是CSG構(gòu)造實(shí)體幾何就是用基本體立方體、圓柱、球做布爾運(yùn)算并、交、差來拼出復(fù)雜形狀。CSG 很簡(jiǎn)單適合做 AI 生成的中間表示比如很多早期研究就是讓模型直接預(yù)測(cè) CSG 樹。但 CSG 的問題也很明顯它表達(dá)不了一個(gè)帶有復(fù)雜草圖和拉伸特征的工業(yè)零件而且最終還要再把 CSG 轉(zhuǎn)回 B-Rep 才有實(shí)際意義。這些概念不是考試重點(diǎn)但它們決定了 text-to-cad 各家技術(shù)路線的走向。簡(jiǎn)單說如果你想生成看起來像零件的東西mesh 就夠如果你想生成真正能用的零件就必須觸及特征樹、草圖、拉伸、旋轉(zhuǎn)、布爾運(yùn)算這一整套東西。text-to-cad 這個(gè)名字本身就已經(jīng)表明它選了一條更難的路。2. 核心原理拆解把建模過程變成語言模型的下一句AI 生成 CAD 模型的難點(diǎn)本質(zhì)上是一個(gè)表示問題到底讓模型預(yù)測(cè)什么它才能輸出可編輯、可制造的參數(shù)化模型目前主流的技術(shù)路線基本可以歸納成三類序列生成、圖生成、外加一套輔助的腳本/Agent 路線。2.1 讓模型學(xué)會(huì)畫草圖加拉伸CAD 序列化的幾種做法最直觀的思路是模仿代碼生成。既然代碼可以表示成 token 序列讓 Transformer 去預(yù)測(cè)那么 CAD 建模過程為什么不能DeepCAD 是最早公開的開源工作之一做法是把 SolidWorks 里的建模操作序列也就是特征樹的操作記錄轉(zhuǎn)成一種緊湊的 DSL領(lǐng)域特定語言。比如新建草圖、畫一個(gè)圓心在某個(gè)點(diǎn)的圓、拉伸 10 毫米、再切一個(gè)孔這些操作都被編碼成固定格式的 token 序列。訓(xùn)練時(shí)模型讀取這些序列學(xué)習(xí)的是從建模語言到建模操作的映射。推理時(shí)模型直接生成一段建模序列再用 CAD 內(nèi)核重放成實(shí)體。我在本地跑過 DeepCAD 的預(yù)訓(xùn)練模型它生成的最簡(jiǎn)單的零件也就是一個(gè)底板加一根柱子這個(gè)級(jí)別的東西復(fù)雜一點(diǎn)的會(huì)明顯失真比如出現(xiàn)懸空的面、拉伸方向亂掉、或者干脆生成了零厚度的退化幾何。但它證明了一件很重要的事語言模型完全有能力學(xué)會(huì)拉伸切除倒角這些操作的語法序列化這條路是通的。另一個(gè)代表性工作是 UCSD 的 Text2CAD 系列他們?cè)谛蛄猩芍膺€加入了文本編碼器分支讓同一個(gè)模型既能做文本到 CAD 的生成也能做 CAD 到文本的描述也就是模型同時(shí)學(xué)會(huì)了看懂零件和生成零件兩件事。2.2 合成數(shù)據(jù)與反向字幕訓(xùn)練數(shù)據(jù)的來歷這類模型最大的瓶頸其實(shí)是數(shù)據(jù)。真實(shí)世界的 CAD 模型雖然存量巨大但絕大多數(shù)都沒有配套的文字描述。你想想誰會(huì)在畫完一個(gè)法蘭盤之后再寫一句這是一個(gè)帶四個(gè)均布螺栓孔的法蘭盤存在文件里幾乎沒有。所以各家都想到了一個(gè)套路反向字幕reverse captioning。先拿一批現(xiàn)成的 CAD 模型解析成序列化的建模流程再用一個(gè)已經(jīng)訓(xùn)練好的CAD 理解模型或者規(guī)則引擎自動(dòng)生成描述文字。這樣就能得到海量的文字-建模序列配對(duì)數(shù)據(jù)。Zoo就是 KittyCAD 那家公司在發(fā)布他們的 text-to-cad 時(shí)官方技術(shù)博客里明確提到他們用合成數(shù)據(jù)和人工標(biāo)注的結(jié)合方式來構(gòu)建訓(xùn)練集其中合成數(shù)據(jù)占了絕大部分。這個(gè)做法聽起來很順理成章但有個(gè)隱患模型學(xué)到的描述和真實(shí)工程師的語言習(xí)慣有偏差。合成數(shù)據(jù)里描述的往往非常教科書比如一個(gè)凸臺(tái)直徑 20 毫米高 5 毫米帶一個(gè)直徑 5 毫米的通孔而真實(shí)用戶更可能說一個(gè)用來固定傳感器的支架底座。語料分布的錯(cuò)位意味著模型對(duì)口語化需求的泛化能力實(shí)際上很有限。2.3 端到端生成與工具調(diào)用的 Agent 路線序列生成是一步到位文本進(jìn)去建模序列出來。還有一種路線是把 LLM 當(dāng)調(diào)度器讓它調(diào)用外部工具。典型做法是用 GPT-4 或開源大模型寫一段 CadQuery 或 OpenSCAD 腳本然后執(zhí)行腳本從錯(cuò)誤信息里迭代修正直到生成合格模型。我之所以專門提這條路線是因?yàn)樗壳胺炊亲钊菀妆黄胀ㄓ脩魪?fù)現(xiàn)的。不需要訓(xùn)練數(shù)據(jù)不需要 GPU只需要一個(gè)能寫代碼的 LLM 和一套 CAD 的 Python API。后面我會(huì)用一整章講怎么把它落地。端到端模型和 Agent 路線的本質(zhì)區(qū)別在于前者把建模知識(shí)焊死在模型參數(shù)里后者把建模知識(shí)外包給外部執(zhí)行環(huán)境LLM 只負(fù)責(zé)理解需求、寫代碼、根據(jù)報(bào)錯(cuò)改代碼。前者上限高、但可控性差后者每一步都可觀察、可干預(yù)工程上非常實(shí)用。我個(gè)人的判斷是短期內(nèi) Agent 路線的產(chǎn)品體驗(yàn)反而會(huì)更好因?yàn)橛脩裟苎郾牨牽粗P透母宄隽藛栴}也知道去哪找原因。3. 各家的實(shí)際表現(xiàn)Zoo、AutoDesk 和開源社區(qū)的真實(shí)差異把原理過了一遍之后我從實(shí)際體驗(yàn)角度說說目前幾個(gè)代表項(xiàng)目的差距。你可以把這一章當(dāng)成一份選型筆記以后想在這塊投入精力時(shí)知道該往哪個(gè)方向看。3.1 Zoo Text-to-CAD從炫技 Demo 到可用的 APIZoo 的 text-to-cad 是 2024 年 9 月發(fā)布的當(dāng)時(shí)官方放了一個(gè)讓我印象深刻的演示輸入一句一個(gè)帶有四個(gè)安裝孔和一個(gè)中心孔的鋁制安裝板模型生成了一顆完整的參數(shù)化模型特征樹清晰各個(gè)孔的直徑、位置都能編輯。它背后用的是自家的 KittyCAD API 和底層的幾何內(nèi)核所以從模型生成到幾何運(yùn)算都是閉環(huán)的。我實(shí)際在 Zoo 的在線 playground 上試過幾次。它的生成速度大概在十幾秒到一分鐘這個(gè)量級(jí)生成結(jié)果分兩種一種是標(biāo)準(zhǔn)件風(fēng)格的、特征非常規(guī)整的零件另一種是稍微復(fù)雜一點(diǎn)的、需要多個(gè)特征疊加的零件。整體感覺是它對(duì)機(jī)械工程師常用的板-孔-凸臺(tái)-倒角這類特征的掌握已經(jīng)很穩(wěn)但對(duì)自由曲面、復(fù)雜裝配體、鈑金件這些還是明顯欠火候。另外Zoo 的商業(yè)化策略也值得關(guān)注。他們不僅提供在線生成還把 text-to-cad 的生成能力封裝成了 API可以直接集成進(jìn)別的軟件。這就意味著將來你在某個(gè)在線 3D 打印服務(wù)商、某個(gè)夾具設(shè)計(jì)工具里看到的用一句話生成模型按鈕很可能背后就是這種服務(wù)。3.2 AutoDesk 和其他實(shí)驗(yàn)室的探索方向AutoDesk 那邊也有一個(gè)叫 Project Bernini 的內(nèi)部項(xiàng)目名字叫貝尼尼很明顯致敬那位雕塑家它走的是多模態(tài)生成路線不只是文字到 CAD還能從圖片、交互式輸入甚至多個(gè)視角合成全新模型。AutoDesk 的優(yōu)勢(shì)在于他們有完整的 Fusion 360 / Inventor 數(shù)據(jù)生態(tài)和大量用戶操作日志這些東西如果用來做訓(xùn)練數(shù)據(jù)上限非常高。目前公開的信息還不算多但我比較確定的是AutoDesk 對(duì)可制造性的要求會(huì)比初創(chuàng)公司高很多因?yàn)樗麄冎勒嬲挠脩羰悄脕黹_模具、上機(jī)床的不是拿來做個(gè)好看的渲染圖。學(xué)術(shù)界那邊也有不少有意思的工作。除了前面提到的 DeepCAD、Text2CAD還有把強(qiáng)化學(xué)習(xí)引入 CAD 序列生成的、用圖神經(jīng)網(wǎng)絡(luò)做草圖-拉伸特征預(yù)測(cè)的、以及專門研究語言描述不夠精確導(dǎo)致幾何歧義這個(gè)問題的。這部分工作雖然離產(chǎn)品很遠(yuǎn)但它們?cè)诮o整個(gè)領(lǐng)域探路。3.3 開源社區(qū)的務(wù)實(shí)派LLM 直接寫腳本最后是開源社區(qū)這里目前最大的價(jià)值不是某個(gè)成品模型而是LLM CadQuery/OpenSCAD這條極其實(shí)用的路線。CadQuery 是一個(gè)用 Python 寫參數(shù)化 CAD 的庫它天然適合做 LLM 的輸出目標(biāo)因?yàn)槟_本本身就是程序代碼可讀、可調(diào)試、可版本管理。我用這條路線跑了不少測(cè)試結(jié)論是GPT-4 級(jí)別的模型在寫 CadQuery 時(shí)對(duì)簡(jiǎn)單零件的成功率相當(dāng)高但對(duì)稍微復(fù)雜的裝配、或者需要精確控制某些幾何約束的情況還是會(huì)出現(xiàn)看起來合理、一執(zhí)行就報(bào)錯(cuò)的情況。不過好在報(bào)錯(cuò)信息是公開的把報(bào)錯(cuò)喂回給模型讓它自己改兩三輪之內(nèi)通常能修好。這種生成-執(zhí)行-報(bào)錯(cuò)-再生成的循環(huán)本質(zhì)上已經(jīng)把大模型的推理能力和 CAD 內(nèi)核的精確性結(jié)合起來了。4. 現(xiàn)在就能上手的實(shí)踐讓 LLM 幫你生成可編輯的參數(shù)化零件前面講了不少概念和現(xiàn)狀但讀者的時(shí)間很寶貴我直接進(jìn)入可以復(fù)現(xiàn)的部分。4.1 環(huán)境準(zhǔn)備為什么我選 CadQuery 而不是 OpenSCAD第一步是選工具。OpenSCAD 也是腳本化建模語法更簡(jiǎn)單但它的建模方式偏向 CSG不太適合表達(dá)先畫草圖、再拉伸、再打孔這種工業(yè)建模流程。CadQuery 更貼近主流 CAD 軟件的操作習(xí)慣生成的結(jié)果也能通過 FreeCAD 或自己轉(zhuǎn)成 STEP 文件生態(tài)更友好。安裝很簡(jiǎn)單pip install cadquery如果你需要更復(fù)雜的交互界面可以考慮安裝 CQ-editor它是一個(gè)帶 3D 預(yù)覽的編輯器。另外建議同時(shí)安裝 FreeCAD因?yàn)?CadQuery 的底層依賴 OpenCASCADE而 FreeCAD 也是基于這個(gè)內(nèi)核兩邊的文件可以互通。4.2 從自然語言到零件兩個(gè)完整的實(shí)戰(zhàn)樣例我挑了兩種典型場(chǎng)景演示一下讓 LLM 把一句話變成 CadQuery 腳本的全過程。樣例一語音指令式的描述——幫我做一個(gè)底板長 80寬 50高 10四角各有一個(gè)直徑 6 的沉頭孔。把這句話直接喂給 LLM它通常會(huì)生成類似下面的腳本import cadquery as cq result ( cq.Workplane(XY) .box(80, 50, 10) .faces(Z) .workplane() .rect(80, 50, forConstructionTrue) .vertices() .hole(6.0) ) cq.exporters.export(result, plate.step)這個(gè)腳本你八成看不懂但沒關(guān)系執(zhí)行它就會(huì)得到一個(gè) 80×50×10 的底板四角打了通孔。我實(shí)際執(zhí)行后確認(rèn)模型正確。樣例二工程描述式的指令——生成一個(gè)法蘭外徑 100內(nèi)徑 40厚度 15六個(gè)直徑為 8 的螺栓孔均勻分布在直徑為 75 的螺栓圓上。這句話的關(guān)鍵在均勻分布在螺栓圓上LLM 需要理解極坐標(biāo)和陣列的概念。我讓模型生成之后它給出的腳本核心部分大概這樣result ( cq.Workplane(XY) .circle(100 / 2) .extrude(15) .faces(Z) .workplane() .circle(40 / 2) .cutBlind(-15) ) # 螺栓孔陣列 result ( result.faces(Z) .workplane() .polarArray(75 / 2, 0, 360, 6) .circle(8 / 2, forConstructionFalse) .cutBlind(-15) )我把這個(gè)腳本放進(jìn) CQ-editor 執(zhí)行得到的是一個(gè)干凈的法蘭六個(gè)螺栓孔按 60 度均勻分布內(nèi)孔貫通。這里的關(guān)鍵是polarArray這個(gè) APILLM 能準(zhǔn)確調(diào)用它說明它對(duì) CadQuery 的常用方法已經(jīng)很熟。不過我也遇到過翻車的情況比如同樣一句話換個(gè)模型或者換個(gè)改寫方式它可能會(huì)生成 OpenSCAD 語法或者把沉頭孔理解成埋頭孔、通孔理解成盲孔這些語義偏差全靠人工盯著。4.3 把需求寫清楚提示詞的結(jié)構(gòu)化寫法跑了幾十個(gè)案例之后我總結(jié)出一套相對(duì)穩(wěn)定的提示詞模板特別適合讓 LLM 生成 CadQuery 腳本指定建?;鶞?zhǔn)告訴它用 Workplane(XY) 作為默認(rèn)平面避免模型隨機(jī)選面。明確幾何參數(shù)能用數(shù)字就不用稍微大約這種詞CAD 容不得模糊。列出特征順序先主體后細(xì)節(jié)信息組織方式就像你在跟一個(gè)實(shí)習(xí)生交代任務(wù)。指定輸出格式要求用 CadQuery 腳本、帶 export 語句方便直接執(zhí)行。一個(gè)我自己用的提示詞模板大概是這樣的請(qǐng)寫一段 CadQuery Python 代碼生成一個(gè)滿足以下要求的零件。所有尺寸單位是毫米。建模時(shí)使用 cq.Workplane(XY) 作為起始平面。先創(chuàng)建主體再依次添加孔、槽、倒角等特征。最后使用 cq.exporters.export 導(dǎo)出 STEP 文件。零件要求如下...這個(gè)模板本身不神奇但它把模型最容易出錯(cuò)的幾個(gè)地方基準(zhǔn)面、單位、特征順序都提前鎖死了實(shí)際成功率能提升不少。5. 生成的東西能不能用這是我建議的五步驗(yàn)收流程text-to-cad 最大的坑不是生成不出來而是生成結(jié)果看起來能用一加工就廢。這一章講講我怎么驗(yàn)收這些 AI 生成的模型。5.1 幾何層面最常見的坑零厚度、懸空面、不閉合實(shí)體網(wǎng)格生成出來的東西是一張皮雖然有空洞、散面這些問題但至少不會(huì)有零厚度這種概念。CAD 不一樣CAD 里一切都要有實(shí)體語義。我拿 AI 生成的 STEP 文件導(dǎo)入 FreeCAD 檢查時(shí)最常見到的問題就是特征順序不合理導(dǎo)致布爾運(yùn)算產(chǎn)生退化幾何或者某個(gè)拉伸方向反了導(dǎo)致面與面重疊、實(shí)體內(nèi)部出現(xiàn)自由邊。檢驗(yàn)方法其實(shí)很簡(jiǎn)單在 FreeCAD 里用 Part 模塊的檢查幾何工具跑一遍或者嘗試給模型做一個(gè)剖切視圖。剖切面一看內(nèi)部是不是實(shí)體、有沒有暗藏的零厚度縫隙一目了然。5.2 可編輯性CAD 的命門前面我一直強(qiáng)調(diào)可編輯性這里具體展開。一個(gè)合格的 text-to-cad 結(jié)果至少要滿足三點(diǎn)特征樹完整模型不能是一整塊實(shí)心疙瘩要能從特征樹里看到底板-拉伸-打孔-倒角的順序。尺寸參數(shù)可改改一個(gè)孔的直徑整個(gè)模型要自動(dòng)更新而不是需要手動(dòng)重建。后續(xù)可繼續(xù)建模生成的模型還要能繼續(xù)加新特征比如在某個(gè)面上再畫個(gè)槽。這三點(diǎn)序列生成類模型比如 Zoo 的結(jié)果做得比較好因?yàn)樗举|(zhì)上就是重放建模序列特征信息天然保留。而LLM 寫腳本路線生成的結(jié)果是否可編輯取決于腳本是不是用了參數(shù)變量。我見過不少 LLM 寫出魔法數(shù)字寫死的腳本你要改一個(gè)數(shù)得滿文件找體驗(yàn)很差。所以我在提示詞模板里會(huì)額外加一條所有關(guān)鍵尺寸用變量定義統(tǒng)一收在腳本開頭。5.3 我的五步驗(yàn)收流程不管用什么工具生成拿到模型后我都會(huì)走一遍這個(gè)流程花不了幾分鐘但能免掉后面的大坑打開 STEP 文件旋轉(zhuǎn)視角肉眼檢查外形和預(yù)期是否一致。打開特征樹確認(rèn)特征順序合理、特征數(shù)量足夠不是退化合并成一坨。雙擊關(guān)鍵尺寸改一個(gè)數(shù)比如孔直徑從 6 改成 8看模型是否干凈更新。用剖切視圖檢查內(nèi)部實(shí)體是否存在隱藏缺陷。如果有 3D 打印或加工需求再用切片軟件或 CAM 里的自動(dòng)檢查過一遍確認(rèn)沒有薄壁、倒扣這些制造禁忌。這套流程甚至不限于 text-to-cad 生成的東西從網(wǎng)上下載的 STEP 模型、同事發(fā)來的中間格式文件我都建議先過一遍。6. 當(dāng)下面臨的邊界以及我個(gè)人的下一步預(yù)期最后聊聊這個(gè)技術(shù)的天花板在哪以及它接下來大概會(huì)怎么走。這部分的判斷帶有我個(gè)人的主觀色彩只能代表我自己的觀察。6.1 語言描述的離散性 vs 連續(xù)幾何的鴻溝自然語言本質(zhì)上是離散的、符號(hào)化的而 CAD 幾何是連續(xù)的、精確的。你用外徑 100內(nèi)徑 40這句話能描述一個(gè)法蘭但描述不了葉片泵里那個(gè)復(fù)雜的三維扭曲曲面。語言能表達(dá)的信息量是有限的一句話說不完的細(xì)節(jié)模型就只能在后臺(tái)猜猜出來的結(jié)果當(dāng)然不一定符合你的意圖。這也是為什么我現(xiàn)在仍然認(rèn)為在很長一段時(shí)間內(nèi)text-to-cad 最合適的應(yīng)用場(chǎng)景是快速生成標(biāo)準(zhǔn)件、簡(jiǎn)單零件、概念草模而不是替代工程師設(shè)計(jì)復(fù)雜產(chǎn)品。6.2 裝配體、制造約束與標(biāo)準(zhǔn)件的問題大多數(shù) text-to-cad 工作集中在單個(gè)零件但現(xiàn)實(shí)工業(yè)里幾乎沒有孤立零件——哪怕一個(gè)最簡(jiǎn)單的傳感器支架也要和閥體、蓋板、螺栓發(fā)生裝配關(guān)系。生成一個(gè)零件容易生成一套配合裝配體難得多因?yàn)樯婕把b配約束、間隙、公差、命名規(guī)則一系列問題。另外現(xiàn)在的模型基本沒有制造約束的概念。它可以生成一個(gè)從渲染圖上完全合理、但用數(shù)控機(jī)床根本沒法加工的零件比如無法裝夾、刀具伸不進(jìn)去的內(nèi)腔。所以我也在持續(xù)關(guān)注那些把可制造性分析接到 text-to-cad 后面的項(xiàng)目這才是一條完整的產(chǎn)品鏈路。6.3 關(guān)于工具和思路的建議如果你問我現(xiàn)階段普通人怎么用 text-to-cad 最劃算我的建議是別追求一步到位生成一個(gè)復(fù)雜零件而是把它當(dāng)做一個(gè)**參數(shù)化方向加速器**。先用 text-to-cad 生成一個(gè)意思對(duì)了的初版再導(dǎo)入專業(yè) CAD 里把細(xì)節(jié)修正、把制造工藝加上。這樣比從零開始畫快很多至少省了一張草圖和一堆反復(fù)調(diào)整的時(shí)間。我自己現(xiàn)在試得最多的還是LLM 寫 CadQuery這條開源路線因?yàn)槊恳徊蕉伎梢詫?、可以改、可以?git 管版本出錯(cuò)也不會(huì)黑盒。Zoo 這類端到端服務(wù)則適合快速驗(yàn)證想法、生成演示用的 STEP 文件。兩者不沖突反而互補(bǔ)。說句實(shí)在話text-to-cad 還處在玩具到工具之間的位置但它把 CAD 建模從親手畫變成描述需求、審核結(jié)果這個(gè)思路已經(jīng)不可逆了。未來很快標(biāo)準(zhǔn)件的生成會(huì)變成各種在線 CAD 工具的一個(gè)默認(rèn)按鈕再往后等模型學(xué)會(huì)讀懂裝配約束和加工工藝它就會(huì)真正進(jìn)入工程師的日常流程。到那個(gè)時(shí)候回頭再看今天這些生澀的提示詞調(diào)優(yōu)和特征樹檢查大概會(huì)像現(xiàn)在看當(dāng)年的人肉布線一樣既覺得麻煩又覺得懷念。