戰(zhàn):從自然語(yǔ)言到參數(shù)化三維模型的完整指南)
1. 從一句描述到三維模型text-to-cad到底在解決什么問(wèn)題這兩年生成式AI在文本、圖像、視頻領(lǐng)域輪番炸場(chǎng)但CAD計(jì)算機(jī)輔助設(shè)計(jì)這塊硬骨頭一直沒(méi)那么好啃。原因很簡(jiǎn)單圖紙和模型的容錯(cuò)率太低了。你讓AI寫(xiě)一段代碼出點(diǎn)小bug改一改就行但你要是讓AI生成一個(gè)需要開(kāi)模、加工、裝配的機(jī)械零件尺寸差個(gè)0.1毫米整個(gè)件就廢了。所以當(dāng)text-to-cad這個(gè)概念開(kāi)始頻繁出現(xiàn)在我時(shí)間線上的時(shí)候我第一反應(yīng)是這玩意兒到底能落地到什么程度先給不熟悉的朋友說(shuō)清楚text-to-cad是什么。字面意思就是通過(guò)自然語(yǔ)言描述直接生成CAD模型你輸入一個(gè)帶螺紋的M8螺栓桿長(zhǎng)40毫米系統(tǒng)直接吐出一個(gè)參數(shù)化的三維模型文件而不是一張圖片或者一段文字描述。我最早接觸這類工具是在前年年底當(dāng)時(shí)還只能生成一些簡(jiǎn)單的幾何體組合比如圓環(huán)、方塊、圓柱之類的primitive拼裝稍微復(fù)雜一點(diǎn)的結(jié)構(gòu)就崩了。但今年再回頭看這個(gè)領(lǐng)域的變化速度確實(shí)超出預(yù)期。主流方案大致分成三條技術(shù)路線程序化生成、神經(jīng)隱式場(chǎng)和基于大模型的代碼生成。其中我最看好也測(cè)試最多的是借助LLM把自然語(yǔ)言翻譯成CAD腳本比如OpenSCAD或CadQuery代碼再通過(guò)腳本驅(qū)動(dòng)建模內(nèi)核出模型。這條路的優(yōu)勢(shì)在于模型是可參數(shù)化的后續(xù)能編輯、能復(fù)用而不是一錘子買賣生成一個(gè)死模型。后續(xù)再配合拓?fù)鋬?yōu)化、有限元分析這些環(huán)節(jié)整個(gè)從想法到工程驗(yàn)證的鏈路就能串起來(lái)了。提示目前市面上的text-to-cad產(chǎn)品大多還定位在概念設(shè)計(jì)輔助階段離直接輸出可生產(chǎn)的工程圖還有距離但作為早期想法驗(yàn)證或者方案比選工具已經(jīng)具備實(shí)用價(jià)值。我寫(xiě)這篇文章的目的很直接把我過(guò)去幾個(gè)月折騰各種text-to-cad工具和方案的真實(shí)體驗(yàn)、踩過(guò)的坑、梳理出的技術(shù)選型邏輯完整分享出來(lái)。如果你正好在做三維設(shè)計(jì)、機(jī)械結(jié)構(gòu)預(yù)研、或者只是想讓非設(shè)計(jì)背景的同事也能快速給出三維概念模型這篇文章應(yīng)該能幫你少走不少?gòu)澛贰?. 主流方案橫向?qū)Ρ葹槭裁次易罱K押注代碼生成路線text-to-cad的落地形態(tài)遠(yuǎn)不止一種。為了讓讀者有個(gè)全局視角我先把目前能接觸到的幾類方案放在一張表格里對(duì)比然后逐個(gè)說(shuō)我的實(shí)測(cè)感受和判斷依據(jù)。方案類型代表性工具輸出形式可編輯性精度表現(xiàn)上手門(mén)檻程序化幾何組合部分早期AI建模插件網(wǎng)格文件STL/OBJ差基本是死模型滿足視覺(jué)展示無(wú)法直接加工低神經(jīng)隱式場(chǎng)學(xué)術(shù)項(xiàng)目為主體素/隱式曲面極差語(yǔ)義正確但拓?fù)浠靵y中大模型生成CAD腳本Zoo原Kangaroo、MLCAD、GPTOpenSCAD等腳本參數(shù)化模型強(qiáng)改參數(shù)即可取決于腳本質(zhì)量可達(dá)到工程級(jí)別中高檢索式模型組裝基于模型庫(kù)的語(yǔ)義檢索已有模型組合中高但局限于庫(kù)內(nèi)零件低從表里能看出來(lái)可編輯性和精度是兩條關(guān)鍵分界線。我在實(shí)際項(xiàng)目里經(jīng)歷過(guò)一次很典型的對(duì)比我用一個(gè)隱式場(chǎng)方案生成了一根帶加強(qiáng)筋的支架形狀確實(shí)有點(diǎn)像樣但導(dǎo)出的網(wǎng)格文件根本無(wú)法做布爾運(yùn)算更別說(shuō)抽殼、倒角這些后續(xù)操作了。而另一個(gè)基于CadQuery腳本生成的同類支架雖然生成過(guò)程多花了幾分鐘思考時(shí)間但導(dǎo)出的是帶完整建模歷史的文件我能直接改筋板厚度、改圓角半徑甚至在原腳本基礎(chǔ)上延伸出第二個(gè)變體。所以我后來(lái)幾乎所有測(cè)試都集中在LLM 參數(shù)化建模腳本這條路上。具體到實(shí)現(xiàn)層面目前主流的兩大腳本載體是OpenSCAD聲明式建模語(yǔ)言用幾何體組合和CSG運(yùn)算描述模型語(yǔ)法簡(jiǎn)單適合零件級(jí)別建模。它的生態(tài)相對(duì)簡(jiǎn)潔LLM訓(xùn)練數(shù)據(jù)里代碼樣本也豐富模型容易生成像樣的代碼。CadQuery基于Python的庫(kù)更貼近程序員的思維習(xí)慣用鏈?zhǔn)秸{(diào)用構(gòu)建幾何體支持從2D草圖拉伸、旋轉(zhuǎn)、掃掠等方式建模。它的表達(dá)能力比OpenSCAD強(qiáng)不少?gòu)?fù)雜實(shí)體建模更順手。這里插一個(gè)重要觀點(diǎn)LLM寫(xiě)CAD腳本和寫(xiě)普通代碼沒(méi)有本質(zhì)區(qū)別難點(diǎn)全在物理合理性約束上。寫(xiě)一個(gè)Python函數(shù)輸出結(jié)果無(wú)論是啥語(yǔ)法對(duì)了基本能跑但寫(xiě)一個(gè)CAD腳本幾何體必須閉合、尺寸必須有意義、特征之間不能互相干涉。所以這個(gè)方向的成敗很大程度上取決于你給LLM的約束信息夠不夠精確。3. 環(huán)境準(zhǔn)備與工具鏈選型我踩過(guò)的那些能省則省的坑在講完整的實(shí)戰(zhàn)流程之前先聊環(huán)境搭建。很多朋友一上來(lái)就裝一堆重型三維軟件然后發(fā)現(xiàn)自己的GPU根本跑不動(dòng)或者軟件本身只是做渲染的根本參與不了模型的程序化生成過(guò)程。我這里直接給出我目前最推薦的一套輕量工具鏈全部跑在普通開(kāi)發(fā)機(jī)上也沒(méi)問(wèn)題。第一層建模內(nèi)核與腳本環(huán)境安裝Python 3.10推薦直接用Anaconda管理環(huán)境避免各種依賴沖突。安裝CadQuerypip install cadquery。這里有個(gè)容易踩的坑CadQuery對(duì)Python版本和依賴庫(kù)有兼容性要求建議新建一個(gè)干凈的conda環(huán)境別往base環(huán)境里塞。如果偏好OpenSCAD路線直接安裝OpenSCAD客戶端命令行調(diào)用即可openscad -o out.stl -D paramvalue model.scad這種形式。第二層可視化驗(yàn)證說(shuō)實(shí)話純命令行環(huán)境觀察模型效果是很痛苦的。CadQuery提供了一個(gè)基于Jupyter Notebook的渲染組件可以直接在瀏覽器里看三維交互模型。具體用法是在Jupyter環(huán)境里執(zhí)行cq_editor相關(guān)命令或者用jupyter-cadquery插件。我個(gè)人更習(xí)慣的方式是把生成結(jié)果導(dǎo)出為STEP或STL格式再扔進(jìn)FreeCAD或輕量查看器里旋轉(zhuǎn)檢查因?yàn)閷?shí)際工程協(xié)作里大家最后還是要進(jìn)這種軟件去二次編輯。這一步我吃過(guò)一個(gè)具體的虧早期用CadQuery生成的模型直接導(dǎo)出STL再導(dǎo)入3D打印切片軟件時(shí)發(fā)現(xiàn)網(wǎng)格質(zhì)量極差表面出現(xiàn)大量非流形邊。后來(lái)排查發(fā)現(xiàn)是模型精度參數(shù)設(shè)置太低CadQuery默認(rèn)的Tolerance參數(shù)過(guò)于寬松?,F(xiàn)在我做精細(xì)件時(shí)都會(huì)手動(dòng)設(shè)置import cadquery as cq result cq.Workplane(XY).box(10, 20, 5) # 導(dǎo)出前設(shè)置精度 cq.exporters.export(result, part.step, tolerance0.001, angularTolerance0.1)注意angularTolerance這個(gè)參數(shù)很多教程里不提但它直接影響曲面的網(wǎng)格細(xì)分程度。新手最容易忽略導(dǎo)出的模型在曲面處出現(xiàn)明顯的棱邊就是它的鍋。第三層LLM調(diào)用層目前90%的text-to-cad實(shí)測(cè)工作流里L(fēng)LM扮演的是自然語(yǔ)言轉(zhuǎn)腳本的翻譯角色。調(diào)用方式有幾種直接用OpenAI API、用開(kāi)源模型本地部署比如CodeLlama、DeepSeek-Coder這類在代碼任務(wù)上表現(xiàn)好的模型、或者用一些已經(jīng)封裝好的垂直工具比如Zoo的Discord機(jī)器人直接生成OpenSCAD代碼。預(yù)算有限或數(shù)據(jù)敏感的項(xiàng)目本地部署更穩(wěn)妥。我用過(guò)一段時(shí)間的本地部署7B參數(shù)量級(jí)的模型在簡(jiǎn)單零件生成上完全夠用但涉及復(fù)雜裝配體或多特征零件時(shí)還是GPT-4級(jí)別的模型更靠譜。這里引出一個(gè)很關(guān)鍵的經(jīng)驗(yàn)?zāi)P瓦x型不能一刀切。如果你只需要生成帶通孔的法蘭盤(pán)這類標(biāo)準(zhǔn)件本地小模型足夠了但如果你要生成帶有漸變壁厚的異形殼體同時(shí)滿足三個(gè)安裝接口的朝向要求那就必須上強(qiáng)模型。所以我的建議是把工作流做成兩級(jí)——簡(jiǎn)單請(qǐng)求走快模型復(fù)雜請(qǐng)求自動(dòng)路由到強(qiáng)模型既能控制成本又能保證質(zhì)量。4. 從自然語(yǔ)言到CAD腳本的完整實(shí)測(cè)一次全流程復(fù)盤(pán)這節(jié)我把自己從零開(kāi)始跑通的一個(gè)具體案例完整展開(kāi)用一臺(tái)減速器端蓋當(dāng)例子。之所以選這個(gè)零件是因?yàn)樗扔谢剞D(zhuǎn)體特征、又有螺栓孔陣列、還涉及止口配合這類稍微復(fù)雜的結(jié)構(gòu)足夠說(shuō)明問(wèn)題。4.1 提示詞設(shè)計(jì)的三個(gè)層次我見(jiàn)過(guò)太多人一上來(lái)就寫(xiě)生成一個(gè)減速器端蓋然后抱怨AI輸出的東西完全不能看。問(wèn)題出在提示詞太模糊。從業(yè)者視角來(lái)看提示詞應(yīng)該分三個(gè)層次逐級(jí)遞進(jìn)第一層明確功能語(yǔ)義。比如這是一個(gè)減速器輸出軸端的密封端蓋需要覆蓋軸承安裝孔外側(cè)與箱體止口配合。語(yǔ)義越具體模型越容易理解拓?fù)潢P(guān)系。第二層給出關(guān)鍵參數(shù)。軸承位孔徑D162mm止口外徑D280mm止口深度t5mm總厚度T12mm四個(gè)安裝孔沿PCD90mm圓周均布孔徑6.6mm。參數(shù)越精確生成的模型越接近可用狀態(tài)。第三層要求結(jié)構(gòu)合理性。安裝孔需要沉孔以便使用M6內(nèi)六角螺釘端蓋外側(cè)需設(shè)置2mm的密封圈槽槽寬3mm槽深1.5mm。這層是把工程語(yǔ)義注入模型的關(guān)鍵很多AI生成的模型看起來(lái)像樣、實(shí)際沒(méi)法加工就是因?yàn)槿鄙龠@類細(xì)節(jié)。基于這個(gè)思路我實(shí)測(cè)用的提示詞大致是這樣的已脫敏簡(jiǎn)化生成一個(gè)減速器軸承端蓋的CadQuery模型 1. 主體是直徑80mm、厚度12mm的圓柱體。 2. 端蓋一面需要加工出一個(gè)直徑62mm、深度5mm的止口凸臺(tái)。 3. 止口對(duì)面設(shè)置一個(gè)直徑66mm、深度1.5mm的密封圈溝槽。 4. 沿直徑90mm圓周均布4個(gè)直徑6.6mm的通孔每個(gè)孔做沉孔沉孔直徑11mm深度6.5mm。 5. 整體添加1mm的倒角去除銳邊。 請(qǐng)輸出完整的CadQuery Python代碼并確保幾何體是閉合的實(shí)體。4.2 生成結(jié)果的驗(yàn)證流程拿到LLM輸出的代碼之后不建議直接扔給切片軟件。我固定執(zhí)行三步驗(yàn)證第一步代碼靜態(tài)檢查。CadQuery有語(yǔ)法規(guī)范和API約束LLM偶爾會(huì)幻覺(jué)出不存在的API。我寫(xiě)了一個(gè)簡(jiǎn)單的包裝函數(shù)統(tǒng)一處理代碼執(zhí)行和錯(cuò)誤捕獲import cadquery as cq import traceback code ... 這里放LLM輸出的代碼 ... exec_globals {cq: cq} try: exec(code, exec_globals) result exec_globals.get(result) if result is None: raise ValueError(腳本沒(méi)有返回result對(duì)象) except Exception as e: print(f生成失敗: {e}) traceback.print_exc()第二步幾何合法性檢查。這一步極其重要。CadQuery里可以用result.isValid()檢查實(shí)體有效性還可以用result.Volume()檢查體積是否在該有的量級(jí)。如果模型出現(xiàn)非流形邊、開(kāi)放面體積計(jì)算通常會(huì)異常。我用一個(gè)簡(jiǎn)單的體積范圍校驗(yàn)就能攔下一大批半成品if not result.isValid(): print(模型無(wú)效需要重新生成) elif abs(result.Volume() - 78000) 20000: # 根據(jù)材料密度和預(yù)估體積粗略設(shè)定 print(體積異常需檢查尺寸參數(shù))這里78000這個(gè)數(shù)字是我根據(jù)直徑80mm、厚12mm的實(shí)心圓柱體積約60立方厘米加上止口和沉孔后有個(gè)微調(diào)量估算的。實(shí)際判斷時(shí)別把閾值卡太死因?yàn)椴煌7桨笇?duì)倒角、圓角的處理會(huì)導(dǎo)致幾百立方毫米的偏差。第三步人工目視檢查。把STEP文件導(dǎo)入FreeCAD從三個(gè)正交視角旋轉(zhuǎn)觀察。重點(diǎn)看止口方向是否正確、沉孔是否在正確的一側(cè)、有沒(méi)有亮紅色報(bào)錯(cuò)提示。這一步聽(tīng)起來(lái)不自動(dòng)化但在當(dāng)前text-to-cad的發(fā)展階段它是最后一道防火墻。4.3 實(shí)測(cè)中我遇到的三類典型失敗失敗案例一止口方向反了。LLM生成的圓柱凸臺(tái)朝向了外側(cè)而不是內(nèi)側(cè)。原因是我提示詞里止口凸臺(tái)的語(yǔ)義不夠明確模型無(wú)法判斷它應(yīng)該向內(nèi)還是向外。復(fù)盤(pán)時(shí)我把描述改成端蓋內(nèi)側(cè)與軸承接觸一側(cè)加工出直徑62mm、深度5mm的止口同時(shí)補(bǔ)充了一句止口用來(lái)嵌入箱體軸承孔內(nèi)方向問(wèn)題立刻解決。這說(shuō)明空間方位的語(yǔ)義在提示詞中必須顯式表達(dá)。失敗案例二陣列特征錯(cuò)位。4個(gè)安裝孔的理論位置是沿90mm直徑圓周均布但LLM生成的孔心距離卻是50mm。仔細(xì)看代碼發(fā)現(xiàn)它把分度圓的半徑直接用了直徑的數(shù)值也就是半徑45mm它直接用成了直徑。這類數(shù)值單元不敏感的問(wèn)題在LLM生成CAD代碼中非常普遍。我建議在提示詞里明確寫(xiě)出PCD90mm即半徑45mm不給AI留下理解空間。失敗案例三布爾操作后出現(xiàn)退化面。有一次生成的模型體積和形狀都正常但導(dǎo)入CAM軟件后刀路計(jì)算失敗。排查下來(lái)問(wèn)題出在沉孔與密封圈槽的間距太近導(dǎo)致布爾減運(yùn)算以后殘留了一條極薄的面厚度只有0.05mm肉眼幾乎看不見(jiàn)。這是典型的工程合理性約束缺失。后續(xù)我在提示詞里加入了密封圈槽外壁與最近的沉孔壁間距不小于3mm這樣的規(guī)則性約束問(wèn)題就再?zèng)]出現(xiàn)過(guò)。5. 那些工具文檔里不會(huì)告訴你的關(guān)于精度、局限與幻覺(jué)我用了幾個(gè)月text-to-cad工具踩過(guò)的坑反復(fù)出現(xiàn)這里把最有共性的幾條單獨(dú)拎出來(lái)講算是避雷指南。5.1 LLM的單位感是虛假的大多數(shù)情況下LLM生成的代碼確實(shí)遵循了毫米單位但它對(duì)數(shù)字大小是否有物理意義毫無(wú)概念。比如你要求生成一個(gè)壁厚0.1mm的注塑殼它在代碼里會(huì)照寫(xiě)0.1但它不知道這對(duì)注塑工藝來(lái)說(shuō)根本不現(xiàn)實(shí)壁厚太薄塑料根本填充不滿。更離譜的一次我要求生成直徑5mm的軸它竟然在軸中間生成了一個(gè)直徑4.9mm的通孔這在工程上完全沒(méi)有意義。所以凡是涉及關(guān)鍵尺寸和常見(jiàn)工藝經(jīng)驗(yàn)的地方必須由人在提示詞里主動(dòng)約束指望模型自動(dòng)具備工藝常識(shí)是不現(xiàn)實(shí)的。5.2 裝配體和多零件生成是當(dāng)前最大的短板測(cè)試過(guò)不少號(hào)稱支持多零件生成的方案實(shí)際效果都只能說(shuō)差強(qiáng)人意。要么是零件之間位置關(guān)系錯(cuò)亂要么是雖然名義上是多個(gè)零件但生成的代碼只有一個(gè)輸出實(shí)體沒(méi)有維護(hù)零件間的裝配語(yǔ)義。對(duì)我這種經(jīng)常要做部件級(jí)方案設(shè)計(jì)的人來(lái)說(shuō)現(xiàn)階段最穩(wěn)妥的辦法是逐個(gè)零件生成然后用CadQuery的裝配API或直接在FreeCAD里組裝。5.3 腳本代碼的重生成能力反而成了優(yōu)勢(shì)上一點(diǎn)說(shuō)了很多局限但我必須給這個(gè)方向一個(gè)公道評(píng)價(jià)區(qū)別于傳統(tǒng)一句話生成一張圖的方案基于代碼生成的text-to-cad具備一個(gè)天然優(yōu)勢(shì)——生成結(jié)果可以反向工程或者說(shuō)可以理解性的迭代。傳統(tǒng)方案你拿到一個(gè)STL網(wǎng)格想改尺寸只能整個(gè)重來(lái)而CadQuery腳本你可以對(duì)著代碼一行行改甚至可以復(fù)制出去問(wèn)LLM幫我改一下這里于是整個(gè)工作流形成了一個(gè)閉環(huán)文本→代碼→模型→發(fā)現(xiàn)問(wèn)題→修改文本或代碼→再生成。這個(gè)閉環(huán)使得AI生成模型的可維護(hù)性遠(yuǎn)遠(yuǎn)超過(guò)了生成式圖像那種一次性消費(fèi)品。5.4 關(guān)于計(jì)算效率的實(shí)測(cè)數(shù)據(jù)很多朋友擔(dān)心text-to-cad會(huì)不會(huì)吃很多算力。以我常用的CadQuery內(nèi)核為例生成一個(gè)中等復(fù)雜度的零件在普通CPU上一般耗時(shí)1到3秒加上LLM的推理時(shí)間從輸入文本到拿到模型文件整體通常在10到30秒之間。這個(gè)數(shù)據(jù)說(shuō)不上快但對(duì)于早期方案驗(yàn)證來(lái)說(shuō)完全夠用。如果做批量生成建議把LLM請(qǐng)求改成異步批處理。我做過(guò)一個(gè)測(cè)試用同一組零件描述生成50個(gè)變體串行執(zhí)行耗了快20分鐘改成并發(fā)請(qǐng)求后縮短到4分鐘以內(nèi)效果顯著。6. 進(jìn)階玩法讓text-to-cad接入你現(xiàn)有的工作流如果只是研究研究工具上面那些內(nèi)容已經(jīng)足夠。但要在真實(shí)項(xiàng)目里用起來(lái)必須考慮如何和現(xiàn)有流程對(duì)接。我給出三個(gè)我認(rèn)為最實(shí)用的場(chǎng)景。6.1 快速生成設(shè)計(jì)選項(xiàng)從一個(gè)答案到一組方案做機(jī)械設(shè)計(jì)的人都知道早期概念階段最重要的是快速比選多個(gè)思路。傳統(tǒng)做法是手繪草圖或者手工建模一個(gè)方案半小時(shí)起步根本談不上快速迭代。有了text-to-cad之后我把提示詞里的參數(shù)區(qū)塊抽出來(lái)用一段簡(jiǎn)單的Python腳本循環(huán)生成不同參數(shù)組合的變體然后同時(shí)導(dǎo)出STEP文件。在FreeCAD里批量打開(kāi)橫向比較不同方案的體積、干涉、裝配性。這個(gè)流程過(guò)去一個(gè)下午的工作量現(xiàn)在大概一小時(shí)就完成了。6.2 讓非設(shè)計(jì)背景的同事參與早期設(shè)計(jì)我團(tuán)隊(duì)里有幾個(gè)負(fù)責(zé)采購(gòu)和項(xiàng)目管理的同事他們經(jīng)常在項(xiàng)目初期有很好的想法但無(wú)法用三維軟件表達(dá)。text-to-cad極大降低了這個(gè)門(mén)檻——他們只要把想法用自然語(yǔ)言描述出來(lái)我這邊生成模型后一起評(píng)審。有一次一個(gè)采購(gòu)?fù)绿岢瞿懿荒馨训鬃陌惭b孔設(shè)計(jì)成長(zhǎng)條形的腰型孔方便現(xiàn)場(chǎng)調(diào)整他過(guò)去只能口頭描述現(xiàn)在可以直接讓我生成一個(gè)對(duì)比模型直觀展示調(diào)整余量。這種協(xié)作方式的隱性價(jià)值比模型本身大得多。6.3 結(jié)合拓?fù)鋬?yōu)化做正向設(shè)計(jì)更進(jìn)階的玩法是把text-to-cad生成的參數(shù)化模型作為拓?fù)鋬?yōu)化的初始模型。因?yàn)镃adQuery腳本輸出的是實(shí)體內(nèi)核不是網(wǎng)格所以可以直接導(dǎo)入到支持參數(shù)迭代的優(yōu)化軟件里。我試過(guò)把AI生成的支架模型導(dǎo)入優(yōu)化流程設(shè)定好載荷和約束條件后自動(dòng)尋優(yōu)輸出的優(yōu)化結(jié)果再反向帶入CadQuery腳本里修改關(guān)鍵截面參數(shù)。這個(gè)AI生成數(shù)值優(yōu)化人工校驗(yàn)的三段式流程目前已經(jīng)在我好幾個(gè)預(yù)研項(xiàng)目里跑通了。7. 常用工具與資源清單直接抄作業(yè)這里整理一份我實(shí)測(cè)過(guò)、值得一試的工具和資源清單按使用場(chǎng)景分類用途工具/資源說(shuō)明腳本編輯器VS Code CadQuery插件語(yǔ)法高亮和自動(dòng)補(bǔ)全可用推薦筆記本環(huán)境Jupyter jupyter-cadquery適合探索性建模和逐步調(diào)參模型查看FreeCAD免費(fèi)開(kāi)源STEP導(dǎo)入兼容性好LLM服務(wù)GPT-4級(jí)別API / 本地CodeLlama復(fù)雜零件用強(qiáng)模型簡(jiǎn)單件用輕量模型社區(qū)與案例庫(kù)CadQuery官方文檔和示例庫(kù)幾乎每個(gè)常用特征都有現(xiàn)成參考垂直工具ZooDiscord社區(qū)版本簡(jiǎn)單需求可以直接白嫖適合先嘗鮮注意很多所謂text-to-cad工具目前還處于內(nèi)測(cè)階段使用前務(wù)必確認(rèn)它的輸出格式是否支持STEP文件導(dǎo)出。如果只導(dǎo)出STL說(shuō)明工具定位就是概念展示不是工程可用別抱太高期待。8. 實(shí)操中的幾個(gè)高頻問(wèn)題與避坑點(diǎn)最后集中回答幾個(gè)高頻問(wèn)題都是我在實(shí)際使用過(guò)程中真碰到過(guò)的每個(gè)都標(biāo)注了解決思路。問(wèn)LLM生成的CadQuery代碼經(jīng)常報(bào)錯(cuò)怎么辦答我的經(jīng)驗(yàn)是60%以上的報(bào)錯(cuò)都集中在API使用錯(cuò)誤上。CadQuery的接口更新比較頻繁LLM訓(xùn)練數(shù)據(jù)里可能混入舊版API。一個(gè)比較有效的做法是在提示詞里附上CadQuery的版本號(hào)比如請(qǐng)使用CadQuery 2.x版本的API。另一個(gè)思路是讓LLM先生成偽代碼再由人翻譯成準(zhǔn)確API雖然多了一步但成功率提高很多。問(wèn)生成結(jié)果和我的描述出入很大是哪里出了問(wèn)題答90%的情況是提示詞里的描述不夠結(jié)構(gòu)化。你需要把自然語(yǔ)言描述拆成三個(gè)區(qū)域形狀描述區(qū)大致是什么形狀、尺寸參數(shù)區(qū)關(guān)鍵數(shù)字和公差的明確值、特征約束區(qū)孔位、倒角、厚度、壁厚等。分開(kāi)寫(xiě)之后LLM的完成度會(huì)明顯提升。問(wèn)模型導(dǎo)出STL后3D打印表面有很多破面怎么辦答這個(gè)問(wèn)題可以直接定位到建模精度參數(shù)也就是前面講過(guò)的tolerance和angularTolerance。此外STL導(dǎo)出的網(wǎng)格密度和模型的單位設(shè)置也有關(guān)系務(wù)必確認(rèn)模型是以毫米為單位導(dǎo)出的否則一個(gè)1可能被切片軟件讀成1英寸。問(wèn)這類工具到底能不能替代專業(yè)CAD工程師答我的判斷是短期內(nèi)不能但長(zhǎng)期一定會(huì)改變工作方式。它真正替代的是把一個(gè)明確的想法變成三維模型這個(gè)過(guò)程但這個(gè)想法本身是否合理、是否可加工、是否符合裝配要求這些判斷終究還是落在人身上。我現(xiàn)在的定位是text-to-cad是我的快速建模助理不是設(shè)計(jì)決策者?;氐阶畛醯膯?wèn)題——text-to-cad到底改變了什么我的體會(huì)是它改變的不是建模速度那么簡(jiǎn)單而是把三維表達(dá)能力從專業(yè)設(shè)計(jì)師手里釋放了出來(lái)讓更多人能以更低門(mén)檻參與三維方案的創(chuàng)建和討論。當(dāng)然工具的成熟度還在爬坡幻覺(jué)、精度、裝配語(yǔ)義這些硬傷短期內(nèi)不會(huì)徹底消失。但如果你愿意在提示詞工程和驗(yàn)證流程上花點(diǎn)功夫它完全能成為你實(shí)際工作流里趁手的一環(huán)。