文字转CAD工具快速上手:用一句话把想法变成可下载的3D模型
【免费下载链接】text-to-cad-uiA lightweight UI for interacting with the Zoo Text-to-CAD API.项目地址: https://gitcode.com/gh_mirrors/te/text-to-cad-ui
深夜加班画图的工程师都懂那种滋味:客户发来一句"帮我看看这个零件行不行",你打开CAD软件,从零开始建草图、拉特征、倒圆角,半小时后对方又说"尺寸改一下"。而text-to-cad-ui这款免费开源的文字转CAD工具,把这段痛苦的流程压缩成了一句话的时间——你输入"设计一个带5个M12孔的320mm通风刹车盘",它就在几秒内给你生成一个可以直接旋转查看、下载导出的3D模型。
这不是科幻演示,而是一个真正能跑起来的开源项目。它本质上是一个轻量级的Web界面,封装了Zoo Text-to-CAD API,用自然语言替代传统建模操作。本文就带你从零开始,认识它、安装它、用它产出第一个模型,再挖一挖那些藏在代码里的实用细节。
传统建模为什么让人望而却步
先讲一个真实的对比。用传统CAD画一个工字梁,标准流程大致是:
- 新建零件,选择基准面
- 绘制截面草图(两片翼缘加一条腹板)
- 标注尺寸:长度、翼缘宽度、腹板厚度、圆角半径
- 拉伸成实体,再处理细节
这套流程本身不难,难的是你要先学会这套"软件语法"——菜单在哪、命令叫什么、坐标系怎么摆。很多非机械专业的人(比如做采购、做教育、做产品经理的)被挡在了这第一道门槛前。
而text-to-cad-ui的解法完全不同:把"建模动作"换成"描述需求"。你不需要知道任何命令,只需要把零件长什么样说清楚。它背后的模型会理解你的描述,生成符合工程语义的模型文件。同样是工字梁,一句"12英寸长、4英寸高、翼缘2.66×0.29英寸、腹板0.19英寸、根部半径0.46英寸"就够了。
text-to-cad-ui是什么:一句话定位
text-to-cad-ui是Zoo官方开源的示例级项目,用SvelteKit构建,专门用来演示如何快速对接Zoo Text-to-CAD API。它给你的不是一个笨重的客户端,而是一个清爽的Web页面:左边输入文字,中间实时预览3D模型,右边管理你的生成历史。
它的核心卖点可以浓缩成三条:
| 卖点 | 说明 |
|---|---|
| 零学习成本 | 会打字就会用,无需任何CAD软件基础 |
| 秒级出图 | 简单模型几秒生成,复杂模型20-30秒 |
| 格式自由 | 一键导出GLTF、STL、STEP、OBJ等工业格式,还能拿到KCL源码 |
三步上手:从克隆到看到界面
整个过程只需要三条命令,跟着做就能跑起来。
第一步:获取源代码
在终端执行:
git clone https://gitcode.com/gh_mirrors/te/text-to-cad-ui cd text-to-cad-ui第二步:准备环境变量
项目通过环境变量管理API连接。仓库里提供了一个示例配置,复制一份出来:
cp .env.development .env.development.local然后编辑.env.development.local,填入你自己的API令牌。配置项非常简单,核心就是两个:
PUBLIC_API_URL=你的API服务地址 PUBLIC_API_KEY=你的API令牌第三步:安装依赖并启动
npm install npm run dev浏览器访问http://localhost:5173,一个极简的文字转CAD界面就出现了。页面正中央是输入区,下方有随机刷新的示例提示词按钮,点击就能把示例填入输入框,非常适合第一次体验。
第一次实战:用一句提示词生成刹车盘
环境跑通之后,我们来走一遍完整流程。这次用一个贯穿始终的案例:通风刹车盘。
1. 输入你的需求
在输入框里输入:
A 320mm vented brake rotor with 5 M12 holes on 114.3mm PCD翻译过来就是:直径320毫米的通风刹车盘,带5个M12安装孔,分布在114.3毫米的分度圆上。注意这里包含了三个关键信息:整体尺寸(320mm)、孔的规格与数量(5个M12)、孔的分布方式(114.3mm PCD)。描述得越具体,模型就越接近你要的东西。
2. 观察模型生成
提交后,界面会显示生成状态。完成后模型会出现在3D预览区,默认带有缓慢的自动旋转,方便你从各个角度检查。这个预览功能值得多说一句:它用的是Three.js技术栈,支持鼠标拖拽旋转、滚轮缩放,而且有一个很贴心的细节——当你开始拖动模型时,自动旋转会暂停5秒,等你操作完再恢复,不会和你抢控制权。这个小交互藏在src/components/ModelViewer.svelte里,改天想给项目加功能,这里是很好的切入点。
3. 导出你想要的格式
模型满意之后,点击Download按钮右侧的格式下拉框,你会看到一串选项:gltf、glb、obj、ply、stl、step,如果模型带了源码,还会多出一个kcl选项。
这里有个值得注意的机制:默认下载的是gltf格式,但其他格式并不是一开始就存在的。当你选择stl或step时,工具会自动调用文件转换接口,把gltf实时转换成目标格式,转换期间按钮会显示"Converting"状态,完成后自动触发下载。也就是说,无论你要什么格式,界面上都是一键的事,转换过程被完全隐藏了。
那些示例文章不会告诉你的隐藏细节
这个项目体积不大,但藏了不少值得把玩的细节,我挑三个最有价值的分享给你。
细节一:生成历史按时间自动归档
项目把每次生成的记录存在浏览器的localStorage里,不会丢。更妙的是,历史列表会按"今天、过去7天、本月、今年"自动分桶显示,打开侧边栏就能看到自己最近的工作流。这个分桶逻辑定义在src/lib/consts.ts的时间桶配置里,是一个很典型的时间管理设计,值得借鉴。
细节二:提示词会自动变成文件名
你下载的文件名不是乱码,而是由提示词自动转换的。比如输入"Sash window, 500mm wide",下载的gltf文件就会叫sash-window-500mm-wide.gltf——提示词被转成了kebab-case风格。这个转换逻辑在src/lib/toKebabCase.ts里,保证你导出的文件放到项目文件夹里,一眼就能认出是哪个零件的模型。
细节三:代码即模型,KCL源码随手可得
大多数文字转CAD工具只给你"结果文件",text-to-cad-ui却额外暴露了KCL源码。KCL是Zoo的编程建模语言,等于你除了拿到模型,还拿到了一份"模型的配方"。这意味着你可以把生成结果交给懂代码的人继续微调,或者作为参数化设计的起点。在DownloadButton组件里,KCL被特殊处理成纯文本下载,和二进制模型文件走的是完全不同的通道。
提示词避坑指南:从"能出图"到"出对图"
用过几次之后你会发现,同样的工具,提示词写得好不好,结果天差地别。这里分享几条实测有效的经验。
先说尺寸单位
中文描述习惯不带单位,但模型生成非常依赖单位。320mm和320是两个概念,务必带上单位。角度、直径、壁厚这些参数也一样,写"45度"不写"45",写"2mm壁厚"不写"2壁厚"。
再说结构描述
只写"一个齿轮"你会得到一个"不知道什么参数的齿轮"。写成"模数2、齿数30的直齿轮"才可能拿到符合工程语义的结果。项目自带的示例提示词是最好的教材,比如:
A bone plate for a human femur, 8 holes, 4.5 mm screws(股骨骨板,8孔,4.5毫米螺钉)17-floor twisted tower, 30 m wide, 5 m floor height(17层扭曲塔)Surgical drill guide, 150 mm handle, Ø2 & Ø3.2 mm bits(手术钻导板)
注意这些示例的共性:每个都包含数量、尺寸、结构三类信息。照着这个模板写,成功率会高很多。
复杂模型分步来
一次描述太复杂的模型,容易生成失败或结果不理想。建议先描述基本形状,等模型出来后再补充细节,分两次生成。这也是对API负载更友好的做法。
常见问题快问快答
问:需要会编程才能用吗?
完全不需要。项目是给终端用户用的Web界面,你的身份只是"描述需求的人"。唯一和代码沾边的步骤是启动项目时的三条命令,复制粘贴就能完成。当然,如果你恰好会一点Svelte,改改组件、加加功能会非常顺手。
问:生成的模型能导入SolidWorks、AutoCAD这类软件吗?
能。通过格式下拉框导出STEP或STL格式即可,这两种是主流工程软件通用的交换格式。导出后直接拖进目标软件就能使用。
问:生成一个模型要多久?
简单模型大约5-10秒,复杂模型20-30秒。生成时间主要取决于模型复杂度和API的当前负载。界面有加载指示,等待时不会干着急。
问:免费吗?
项目本身完全免费开源,你可以任意查看源码、修改、二次开发。使用时的实际开销只有Zoo API的调用费用,具体以Zoo平台的计费规则为准。
问:生成历史存在哪?会不会丢?
存在你浏览器的localStorage里,换浏览器或清缓存会清空。代码里还留了一个很细心的设计:如果存储空间超限,会自动从最旧的记录开始清理,避免整个历史被清掉。这个逻辑在src/lib/stores.ts里,感兴趣可以翻一翻。
从今天开始,让文字替你建模
text-to-cad-ui的意义不在于取代专业CAD软件——复杂装配、工程图、仿真这些工作它做不了。它的价值在于把"想法→模型"这段最耗时的路径压缩到极致:概念验证、方案对比、教学演示、给客户看效果,这些场景里,它比任何传统工具都快。
现在就动手吧:克隆项目、填上API密钥、启动服务,然后输入你脑子里那个构思已久的零件描述,看看它是不是比想象中更接近你想要的样子。如果跑通了,下一步还可以去读读src/lib/zooClient.ts和src/components/PromptForm.svelte,你会发现自己已经站在了二次开发的门口。
【免费下载链接】text-to-cad-uiA lightweight UI for interacting with the Zoo Text-to-CAD API.项目地址: https://gitcode.com/gh_mirrors/te/text-to-cad-ui
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考