AI 机械 CAD 工作室 - 项目总结

6 min read214项目
分享:

一、项目概述

这次做了一个 AI 驱动的生成式机械设计平台。用户输入自然语言描述(比如"做一个轻量化NEMA17电机支架,适配M4螺丝"),系统会自动解析设计意图、生成多个设计方案、进行工程约束检查,最后输出可制造的 3D 模型。

从最初的"CAD 参数化生成工具"升级为"生成式机械设计工作站",核心变化是引入了工程智能层。

技术栈:

  • 前端:Next.js 14 + Three.js + TailwindCSS(工业暗色主题)
  • 后端:Python FastAPI + build123d(CAD 建模)+ SQLAlchemy(数据存储)
  • 部署:后端通过 Cloudflare 隧道对外服务,前端静态导出由 FastAPI 托管
  • 域名:cad.myonlyheart.xyz

二、核心模块

1. 工程约束检查引擎(Constraint Engine)

在生成 CAD 模型之前,先检查参数是否满足制造约束:

  • FDM 3D 打印检查:壁厚(最小 1.2mm)、孔径(最小 2.0mm)、悬垂角度(最大 45 度)
  • 标准件验证:公制螺栓通孔(M2-M8)、NEMA 电机安装孔(NEMA17/23/34)、轴承配合(608/625/6001)
  • 几何封闭性检查

关键设计:每个检查失败时会返回可修复标记,系统自动修正参数(比如壁厚不够就自动加厚)。

API:POST /api/v1/constraint/check

2. 设计空间生成器(Design Space Generator)

给定一个零件类型和基本需求,自动生成多个设计方案供用户对比:

  • 支持的变体策略:支架类 4 种(标准/轻量化/加强/薄壁)、电机座 4 种、齿轮 3 种
  • 每个方案附带性能估算:重量等级、强度等级、打印时间
  • 自动成本估算:基于材料密度和体积,计算材料费和电费
  • 推荐机制:根据用户优先级(轻量化/刚性/易打印/低成本)自动推荐最优方案

API:POST /api/v1/design/generate

3. 自动装配引擎(Assembly Engine)

将多个零件按约束关系自动组装:

  • 对齐求解:孔对孔、轴中心对齐、Z 轴对齐
  • 装配约束:固定连接、插入配合、滑动配合、间隙配合
  • 约束循环检测
  • 自动生成 build123d 装配代码

API:POST /api/v1/assembly/build

4. LLM 设计理解层

自然语言到工程设计意图的解析:

  • 设计意图解析:从"轻量化电机支架,适配M4螺丝"中提取零件类型、约束条件、优先级
  • 关键词映射:载荷等级(light/medium/heavy)、材料(PLA/ABS/PETG/TPU/Nylon)、优先级(lightweight/rigid/printable/fast_print/low_cost)
  • 支持规格识别:螺栓规格(M2-M8)、电机类型(NEMA17/23/34)、轴承型号(608/625/6001)

核心接口:POST /api/v1/generate-variants(一站式:自然语言 → 多方案)

三、前端升级

方案对比组件(VariantSelector)

  • 卡片式展示多个设计方案,带性能指标(重量/强度/打印时间,颜色编码)
  • "推荐"和"需修复"标记
  • 点击选择方案后自动生成对应 STL
  • 底部成本对比表

设计分析面板(AnalysisPanel)

  • 设计意图摘要:解析出的零件类型、约束条件、优先级排序
  • 约束检查总览:通过/失败状态
  • 问题详情列表:严重级别、是否可自动修复
  • 自动修复记录和剩余需手动处理的问题

四、完整数据流

用户输入自然语言 → LLM 设计理解层解析意图 → 设计空间生成器生成 4 个方案 → 约束检查引擎验证每个方案 → 成本估算器计算对比数据 → 前端展示方案选择器 + 分析面板 → 用户选择方案 → build123d 生成 CAD 模型 → 导出 STL/STEP → 3D 预览

五、部署变更

从 Vercel + Railway 迁移到本地 + Cloudflare 隧道:

  • 后端运行在本地 Windows 机器,通过 uvicorn 提供服务
  • 前端改为静态导出(Next.js output: 'export'),由 FastAPI 直接托管
  • 单一入口:所有请求通过 cad.myonlyheart.xyz 进入,FastAPI 同时提供 API 和静态页面
  • 隧道配置:在现有 Cloudflare 命名隧道中添加 cad.myonlyheart.xyz → localhost:8000 路由
  • 启动脚本:start_cad.bat 一键启动

六、访问方式

本地:http://localhost:8000 公网:https://cad.myonlyheart.xyz API 文档:http://localhost:8000/docs