化實體的AI建模全解析)
前陣子有工程師在群里問我text-to-cad到底能不能正經(jīng)用。他的原話是公司想用AI直接生成三維模型試了幾個工具出來的東西要么像雕塑、要么像玩具落不了地。這個問題我太熟了。過去一年我陸陸續(xù)續(xù)把市面上能碰到的text-to-cad工具都折騰過一遍從最早只能生成網(wǎng)格小擺件到現(xiàn)在能直接輸出帶參數(shù)特征的STEP文件變化確實大但真正能塞進設計流程里的用法跟大多數(shù)人想象的不太一樣。先說結論text-to-cad不是用來替代CAD建模的它是用來壓縮從想法到第一個可討論模型這段時間的。傳統(tǒng)流程里你拿到需求、畫草圖、定尺寸、建特征樹快則半小時慢則半天。有了text-to-cad一分鐘內(nèi)可以出一個具備基本拓撲關系的實體模型雖然細節(jié)和精度不能直接投產(chǎn)但足夠用來評審方案、跟客戶對齊、給仿真做初版幾何。這篇文章就圍繞這個定位展開它背后怎么實現(xiàn)的、哪些工具值得試、提示詞怎么寫、生成結果怎么驗證和修復以及最后怎么把它嵌進真實的日常工作流。1. 當說話就能建模從演示demo變成日常備選工具1.1 我為什么開始認真對待這個方向兩年前我第一次看到text-to-cad的demo時心里是打問號的。當時這類工具生成的模型本質(zhì)上跟游戲里那種text-to-3D差不多輸出一堆三角面片圓不圓方不方別說加工連放進裝配體做干涉檢查都會把人逼瘋。轉折點出現(xiàn)在Zoo原KittyCAD開放Text-to-CAD API之后。它輸出的不是網(wǎng)格而是真正的B-rep實體模型可以直接轉成STEP、IGES能被SolidWorks、Fusion、FreeCAD這些主流工具打開。這個差別是本質(zhì)性的網(wǎng)格是長得像B-rep是從數(shù)學上定義了邊界后續(xù)能倒圓角、能抽殼、能參與布爾運算這才是CAD的底層語言。另一個促使我認真對待的原因是生成速度。傳統(tǒng)建模中大量時間其實花在畫一個大概能討論的形狀上而不是花在真正困難的設計決策上。text-to-cad把這段前置時間壓縮到幾乎為零讓我能更快地把腦子的想法變成可視化的東西然后開始真正有價值的工作——判斷這個方案行不行、哪里需要改。1.2 目前這個賽道里真正值得關注的方向現(xiàn)在市面上的方案大致分三類。第一類是獨立API和在線工具代表是Zoo的Text-to-CAD。它的特點是語言理解能力強輸入一句自然語言描述能返回一個可編輯的參數(shù)化模型。OpenAI收購Zoo后這塊的基礎模型能力還在持續(xù)迭代后續(xù)大概率會和ChatGPT生態(tài)深度綁定。第二類是傳統(tǒng)CAD巨頭在自家軟件里做的嵌入式AI生成。Autodesk在Fusion里陸續(xù)放了AI輔助相關的功能包括生成式設計和更偏用自然語言驅(qū)動建模的探索。這類工具的優(yōu)勢是和原生環(huán)境無縫銜接缺點是能力通常比較保守作用范圍限于自家產(chǎn)品。第三類是開源和半開源項目比如有研究團隊在做基于OpenCascade的文本生成CAD鏈路也有一些基于CadQuery、build123d這類程序化建模庫的嘗試。這類方案靈活可以自己改pipeline但對使用者的工程能力要求高適合做研究或內(nèi)部定制。段落里順便說一句如果你在網(wǎng)上搜索text-to-cad會看到很多打著這個旗號但只輸出OBJ/GLB網(wǎng)格的AI建模工具。它們適合做渲染圖、游戲資產(chǎn)、3D打印擺件但不適合做機械設計。選型之前先問清楚一個問題——輸出格式是不是STEP如果不是那就不是傳統(tǒng)意義上的CAD。2. 一條從自然語言到參數(shù)化實體的完整鏈路2.1 網(wǎng)格模型和CAD模型之間的本質(zhì)區(qū)別在展開技術鏈路之前必須把這兩個概念掰開揉碎講清楚。網(wǎng)格模型Mesh是用成千上萬個三角形或四邊形面片去逼近一個曲面文件里存的是一堆頂點坐標和面的連接關系。它的優(yōu)點是表達能力強什么形狀都能拼出來缺點是缺乏拓撲和精確語義一根圓柱在網(wǎng)格里就是一圈三角形沒有這是圓柱、直徑5毫米、軸線在這這樣的信息。CAD模型B-rep邊界表示則完全不同。它存儲的是精確的幾何元素——平面、圓柱面、NURBS曲面——以及它們之間的拓撲關系哪條邊連著哪個面哪個面構成哪個環(huán)。更重要的是CAD模型背后通常還有特征樹記錄先拉伸了一塊板然后打了個孔再倒了個圓角。這個特征樹才是傳統(tǒng)CAD軟件可編輯性的來源。游戲里一個高精度角色模型是網(wǎng)格沒問題但一個需要數(shù)控加工的支架必須是B-rep因為機床需要的是精確的幾何定義不是一堆三角片。2.2 從文本到約束求解生成鏈路里的關鍵環(huán)節(jié)我在查閱相關技術資料和逆向分析幾個工具的行為后把主流text-to-cad的pipeline盡量還原成了下面這樣雖然各家實現(xiàn)細節(jié)不同但大致骨架是通用的。第一步自然語言理解。大語言模型把輸入指令解析成結構化的設計意圖。這一步遠不是分詞提取關鍵詞那么機械它需要理解尺寸單位是毫米還是英寸、理解四個均布的孔隱含的陣列邏輯、理解帶翻邊的鈑金件背后的工藝含義。第二步幾何生成。模型基于設計意圖生成三維幾何。不同工具的差異在這里拉開一些走的是先產(chǎn)生體素占用場或隱式距離場再提取等值面另一些直接回歸幾何圖元參數(shù)。生成結果通常還要過一遍平滑和拓撲修正把非流形邊、自由邊、懸空面這類臟數(shù)據(jù)清理掉。第三步B-rep轉換與特征擬合。這是最關鍵的一步。把生成出的原始幾何轉成B-rep后很多工具會嘗試反解特征——找到哪塊是拉伸體、哪塊是孔、哪塊是倒角重構出一棵特征樹。Zoo的文本生成之所以體驗好很大程度是因為這步做得到位。第四步約束求解和參數(shù)化。如果工具支持還會把特征參數(shù)化讓你在生成的模型上調(diào)直徑、改間距而不是只能接受一個死模型。2.3 為什么直接生成B-rep這么難很多人不理解AI都能生成自然圖像了生成個CAD模型為什么這么費勁核心原因在于CAD模型的精確性要求是圖像領域完全不具備的。圖像里差幾個像素沒人看得出來CAD模型里球面的圓心偏了0.1毫米軸孔配合就廢了。另外B-rep天然是高度結構化的離散對象。你可以把一張圖看成連續(xù)像素場但一個長方體加一個圓柱孔的模型在幾何層面表現(xiàn)為面與面的精確交線、邊與邊的共享關系。讓神經(jīng)網(wǎng)絡直接去輸出這種結構化拓撲遠比輸出連續(xù)像素困難。這也是為什么許多方案要先走網(wǎng)格/體素中介再費力爬回B-rep。理解這條鏈路的意義在于你能預測text-to-cad的失敗模式。凡是它生成得不好的地方往往就斷在語言理解到幾何映射或幾何到特征反解這兩個環(huán)節(jié)。有了這個預期后期檢查和修復就有方向。3. 主流text-to-cad工具的實測邊界3.1 測試方法和基準描述為了不憑印象說話我給自己定了一套簡單的測試方法。每個工具用同一組8條指令去測覆蓋不同難度從一個帶四個螺栓過孔的矩形安裝板孔徑6mm孔間距40mm板厚3mm這種明確尺寸的到一個符合人手握持曲線的人體工學把手造型這種偏自由曲面的再到一個用于管道連接的帶法蘭三通接頭法蘭上有8個均布螺栓孔這種多特征組合件。每條指令分別測三次記錄三樣東西輸出格式、幾何正確性、特征可編輯性。幾何正確性我按尺寸是否大致符合拓撲是否合理有無明顯破面三個維度打分。特征可編輯性則看輸出的STEP導入SolidWorks后特征樹是否可用、能否參數(shù)化改尺寸。3.2 不同工具的表現(xiàn)差異實測最穩(wěn)的是基于Zoo底層模型的在線工具。對于帶明確尺寸和常見機械特征的指令它基本能一次給出正確拓撲。上面那條安裝板指令輸出的模型開口方向、孔徑、孔距都能對上導入SolidWorks后雖然特征樹被簡化了但主體是一個可編輯的拉伸特征改板厚很方便。Autodesk Fus內(nèi)的生成式設計模塊和AI輔助流程更偏在已有設計空間里優(yōu)化結構不太適合從零用文字生成零件但如果你給它一個設計空間和載荷條件它能給出非常工程化的拓撲優(yōu)化結果。這跟text-to-cad其實是互補關系。開源的CadQuery變體方案我試過一個效果跟提示詞解析質(zhì)量強相關。描述規(guī)范時它表現(xiàn)不錯因為它本質(zhì)上是用LLM幫你寫CadQuery代碼只要代碼語法正確模型就必然正確。但它的問題也在于此——LLM寫代碼偶爾會寫出不存在的API調(diào)用而且模型一旦復雜代碼維護成本開始迅速抬升。3.3 實測中反復出現(xiàn)的失敗模式幾條規(guī)律可以分享。第一個高頻失敗是語義正確但尺寸錯誤。模型看懂了這個零件是什么但把孔距、厚度這類定量信息處理錯了。比如孔間距40mm實際生成的是45mm。這說明語言模型對精確數(shù)值的編碼仍然不可靠生成結果必須經(jīng)過尺寸核查。第二個高頻失敗是特征沖突。比如同時要求板厚3mm和沉頭孔深度3mm工具生成時可能讓沉頭孔完全穿透了板。這類問題本質(zhì)是幾何求解器沒有正確處理特征間的依賴約束。第三個失敗是自由曲面造型普遍偏弱。像人體工學把手這種沒有明確幾何參數(shù)的造型生成結果顯示了對好看的把握時好時壞有的能用有的形似而神不似。這跟文本描述的信息量太低有關也給后面的提示詞技巧埋下了伏筆。4. 提示詞才是真正的設計輸入寫text-to-cad提示詞的實戰(zhàn)要領4.1 從描述形狀到描述意圖我踩過的第一個坑是把text-to-cad當成跟AI畫圖一樣用上來就寫一把好看的結構支架。這種指令對圖像生成沒問題對CAD生成就是災難因為好看不是工程語義。后來我總結出一個原則CAD提示詞要描述這個東西是什么、由哪些特征構成、滿足什么功能約束而不是描述它看起來怎么樣。同樣是想生成一個支架糟糕寫法一個工業(yè)風格的L型支架看起來很有科技感可用寫法一個L型支架水平面長80mm、寬60mm垂直面高100mm、寬60mm板厚5mm水平面邊緣有2個直徑8mm的過孔過孔距邊緣10mm垂直面和水平面之間有加強筋加強筋厚度5mm差別在哪里后者給了工具足夠的特征語義去構造B-rep拉伸板、打孔、布爾合并。前者只給了模糊的風格形容詞模型只能瞎猜。4.2 把復雜件拆成特征組合我用的另一個核心技巧是特征分解。CAD模型本質(zhì)上是特征的組合體你可以把腦海里的設計意圖拆成一組有先后邏輯的操作序列。比如一個帶法蘭的三通接頭在我提示詞里會寫成主體直徑50mm、壁厚5mm的主管長度120mm支管直徑40mm、壁厚5mm垂直于主管中段法蘭分別在主管兩端和支管端部外徑80mm、厚度8mm螺栓孔每個法蘭上有6個直徑7mm的過孔均布在直徑65mm的螺栓圓上這種寫法背后的邏輯是把復雜問題拆成工具擅長的小問題再通過布爾和陣列把它們組合起來。實測中這種結構化提示詞的成功率遠高于一整句含糊描述。4.3 迭代式細化的提示詞工作流寫提示詞這件事一次到位基本不可能。我目前的習慣是三輪迭代。第一輪給粗粒度描述只要形狀和主要特征對就行。第二輪檢查生成結果把尺寸錯誤、缺失特征寫進后續(xù)提示詞里例如上一步生成的支架缺少加強筋請增加一塊厚度4mm的三角形加強筋連接垂直面和水平面。第三輪進入細節(jié)修正處理圓角、倒角、公差相關的表達比如所有外邊緣加1mm倒角。這輪迭代的核心是接受LLM輔助生成是一個漸進逼近過程而不是一次成型的魔法。把它當工具用配合快速檢查效率會非常高。如果生成的模型有一兩個特征錯誤直接改提示詞重新生成往往比重建模型快得多。5. 生成的模型要能落地幾何驗證與修復的幾條硬規(guī)矩5.1 常見的幾何缺陷清單我檢查過大量生成模型總結了四個必須重點盯防的缺陷類型。第一非流形幾何。簡單說就是共享邊/共用點的地方出現(xiàn)了奇怪的連接比如兩個本來獨立的面在一條邊上被錯誤縫合。這類模型導入CAM軟件時經(jīng)常直接報錯。第二破面與縫隙。B-rep模型里某個面缺失或邊界不閉合肉眼只有放大才看得出來但后續(xù)抽殼、偏移、布爾運算都會在破面處崩潰。第三尺寸與約束漂移。生成模型數(shù)值上完全正確的情況少見孔位偏0.5毫米、厚度偏0.2毫米都屬于常規(guī)現(xiàn)象。如果是純討論概念這些可以忽略如果要做裝配驗證必須先整體校正。第四特征樹過度平坦化。很多工具輸出的STEP只有一個導入特征沒有把拉伸、打孔、陣列拆成獨立特征。這是最隱蔽的問題——它看起來能用但后續(xù)想改孔距只能回到原工具重新生成或者套一個類似編輯特征變通處理。5.2 驗證流程怎么搭我目前的驗證流程分三步全程不超過十分鐘。第一步用專業(yè)查看器比如開源的FreeCAD或商業(yè)軟件的模型檢查模塊做自動檢查布爾運算測試、殼面檢測、幾何尺寸標注。這一步能把破面和非流形幾何篩掉大半。第二步做可編輯性探針。把STEP導入SolidWorks或Fusion嘗試修改一個關鍵尺寸。能改說明模型內(nèi)部結構是健康的改不了或直接崩潰說明骨架只是裝樣子。這一步很關鍵我見過太多導入后能看不能動的模型。第三步面向具體用途做針對性驗證。如果是配合裝配體就測干涉如果是做仿真就檢查網(wǎng)格劃分是否順利如果是給3D打印就補一份切片預覽。不同用途的驗收標準不同這一步必須有針對性。5.3 修復策略與工具鏈遇到生成模型有缺陷修復方案按優(yōu)先級排。最簡單的是重生成——改提示詞、重新生成很多時候比重建模還快。比如孔位偏了在提示詞里把孔間距40mm改成孔間距40mm中心距邊緣20mm生成結果大概率能矯正。其次是對模型做參數(shù)化重映射。把生成的STEP導入到支持識別特征的工具SolidWorks的FeatureWorks、Fusion的網(wǎng)格轉實體流程等讓軟件自動或半自動地重新識別特征樹。雖然成功率受模型復雜度影響但對付典型的板-孔-倒角結構很夠用。最費力的方案是直接重建。實在不行就以生成模型為參照物在CAD里快速重建一遍主體特征。注意這不是前功盡棄——生成模型提供了尺寸基準和拓撲參照重建速度遠快于從零開始畫。6. 把text-to-cad嵌進真實設計流程一個混合工作流的實操建議6.1 概念階段的效率杠桿在我現(xiàn)在的日常工作中text-to-cad最值得用的場景是早期概念發(fā)散。接到一個結構設計需求我會先花五分鐘生成三到五個不同的結構方案然后快速評審。這個階段追求的不是精確而是多樣性和可討論性。舉個例子之前給一臺設備設計傳感器安裝支架需求是可調(diào)節(jié)高度的L型支架底部有腰型槽頂部有傳感器安裝孔。我讓工具生成了四五個變體有的帶加強筋有的用雙板結構有的用弧形過渡。我拿這些模型跟結構工程師討論二十分鐘就鎖定了兩個方向。要是按老辦法光畫這三個方案就得一下午。這里有一個重要的心理轉變以前設計師會因為畫圖成本高而只敢做一兩個方案現(xiàn)在可以大方地探索更多可能性。成本結構的改變會直接影響設計決策的質(zhì)量。6.2 團隊協(xié)作中的模型管理問題生成模型進入團隊協(xié)作以后出現(xiàn)了一些新的管理問題這里一并提一下。一是生成來源信息。我在內(nèi)部規(guī)范里要求凡是AI生成的零件必須在命名前綴加AI標記并在自定義屬性里記錄生成提示詞和日期。否則一個月后沒人記得這模型是哪來的也就無法判斷哪些參數(shù)可以信任。二是模型樹規(guī)范化。生成模型的參數(shù)化質(zhì)量參差不齊如果要進入正式圖紙流程建議先人工重建特征樹并規(guī)范命名把AI特征改造成標準特征。這不是潔癖而是為了讓后續(xù)維護的人不至于對著一個導入特征1抓狂。三是版本管理。AI生成迭代很快同一個零件可能生成幾十個版本。建議只在關鍵節(jié)點評審通過、驗證完成把版本固化進PLM或共享目錄避免中間垃圾版本污染團隊視野。6.3 我個人的建議工作流最后給一套我實操下來最順手的流程可以直接抄作業(yè)。第一步用text-to-cad生成初版花5分鐘寫一份結構清晰的提示詞迭代兩三次得到2~3個概念模型。第二步導入CAD軟件快速驗證幾何拓撲篩掉有明顯缺陷的方案。第三步選定一個最優(yōu)方案在CAD里重建特征樹或做特征識別恢復完整參數(shù)化能力。第四步進行裝配驗證、出圖、仿真等正式流程。第五步把生成提示詞、驗證記錄、模型版本一起歸檔。這套流程的核心是把AI用在它最強的位置——快速提供可選起點把精確控制和工程驗證留給人。這不是什么高深方法論但它確實解決了AI生成的東西沒法用這個最常見的抱怨不是工具不行而是使用位置放錯了。我現(xiàn)在辦公室的同事偶爾會用我搭的這套流程處理一些結構件需求反饋普遍是至少省了畫草圖的時間。等下一步開源社區(qū)在生成模型的約束求解上再往前推進一些這個工作流里需要人工處理的環(huán)節(jié)還會繼續(xù)變少。到那時候text-to-cad可能真的就是CAD軟件自帶的默認能力而不是需要單獨討論的新鮮事物了。