这篇内容能帮你做什么
目标很明确:让 AI 直接给你生成一个可运行、可部署的在线 3D CAD 预览小工具。用户上传 STEP/IGES 后,页面能展示模型结构树(装配层级)、统计 BOM(零件数量/名称/体积/质量等可选字段),并导出 CSV + 一份可读的校验报告。
适用场景
适合采购/工程/制造团队做快速审查:收到供应商 CAD 文件,想快速确认装配层级、零件数量是否合理、是否存在空实体/缺失单位/异常尺寸等问题;也适合做内部资产入库前的格式检查与统计汇总。
交付物要求(你让 AI 必须输出这些)
1) 完整项目源码(前端+后端)与清晰文件树;2) 本地运行命令;3) Docker 构建与一键启动;4) 部署说明(至少覆盖 Docker/单机);5) 测试用例或 QA checklist;6) 关键异常的处理策略(坏文件、超大文件、超时、并发等)。
Prompt(复制到 AI 里直接用)
你是一个资深全栈工程师与 DevOps。
请为我生成一个“在线 3D 预览 + 结构树 + BOM 统计”Web 工具的完整可运行项目。
【硬约束】
- 只处理用户上传的既有 3D CAD 文件,不做任何“生成渲染图/出图/海报/插画/AI 绘画”。不要引导使用 Midjourney/Stable Diffusion 等。
- 支持输入:STEP(.step/.stp)、IGES(.iges/.igs)。
- 输出:
1) 浏览器端可交互预览(旋转/缩放/平移,基础材质即可,不要追求渲染效果)。
2) 模型结构树(装配/零件层级),点击节点可高亮对应部件。
3) BOM 统计:至少包含 name、count、boundingBox(长宽高)、volume(如可得)、unit(如可推断)、warnings。
4) 导出:BOM CSV + 校验报告(HTML 或 Markdown)。
【技术路线(必须给出可构建方案)】
- 前端:Next.js(React) + Type 。
- 3D 预览:Three.js。
- 后端:Node.js API Routes 或独立 Express(任选其一,但要解释选择)。
- STEP/IGES 解析与转 glTF:使用 Docker 里可用的转换工具链(例如 FreeCAD/OCCT 相关方案)。
要求:提供 Dockerfile 与 docker-compose.yml,让我 clone 后一条命令能跑起来。
【功能细节】
1) 上传:
- 支持拖拽上传;显示文件大小;限制与提示(例如单文件 glTF”转换任务。
- 需要进度/状态:queued/running/success/failed。
- 失败要给出可读错误(例如“文件为空”“转换超时”“格式不受支持”),并保留 server 侧日志片段(但不要泄露系统路径)。
3) 结构树与 BOM:
- 从转换/解析过程中提取装配层级;如果工具链不直接提供结构树,给出可行的替代实现(例如额外解析步骤)。
- BOM 计算要能处理重复零件(同名不同实例)与装配嵌套。
4) 预览交互:
- 视图:自适应居中、fit to view。
- 结构树点击高亮:改变材质/描边均可。
- 提供一个“隔离显示当前零件”的开关。
5) 导出:
- BOM CSV 下载。
- 校验报告:包含基本指标(零件数、装配深度、单位推断、最大尺寸、转换耗时)、以及 warnings 列表(例如:缺失单位、异常比例、空网格、过大/过小尺寸等)。
【非功能要求】
- 性能:后端转换任务要有超时控制(例如 120s 可配置)。
- 安全:上传目录隔离;禁止路径穿越;限制可访问的静态文件;设置合适的 CORS。
- 可观测性:提供简单日志与 request id。
【你必须输出的内容(按此顺序)】
A. 项目简介(1段)
B. 技术栈与架构图(用 ASCII 图即可)
C. 文件树(必须完整到关键文件)
D. 关键代码(完整文件内容,不要只给片段):
- package.json
- next.config.js/tsconfig 等
- 前端页面(上传页+预览页或同页)
- 后端接口:上传、任务状态、下载 glTF、BOM、报告
- 转换任务实现(含超时、错误处理)
- Dockerfile + docker-compose.yml
E. 本地运行命令(开发模式/生产模式各一套)
F. 部署说明(Docker/单机)
G. 测试:
- 至少 10 条 QA checklist(覆盖:错误文件、超大文件、并发、超时、网络中断、重复上传、导出校验等)
H. 免责声明:仅用于文件预览与统计,不保证工程级精度;用户需自行验证。
发布前自检清单(避免白忙)
确认:只写一个类别(3D预览);标题格式为“类别 + 具体主题 + AI 提示词 (Prompts)”;正文段落标题全部用 <h4>;Prompt 在灰底块里;内容不包含任何出图/渲染图/插画生成导向;交付物与场景在摘要里写清;并且要求 AI 输出可运行项目源码、文件树、命令、部署、QA。