7.4 KiB
GenCAD 项目接入评估
2026-09-07源码复核快照
- MIT研究仓库复核提交:
f5484cf90e30d15b980313006a1424f8949b3496(2025-07-14)。 gurul/gencad工具链复核提交:364770c8f09792064389e7abc85240813622d120(2026-08-27)。- MIT仓库的正式
inference_gencad.py逐个遍历PNG,每张图片独立编码并生成一个CAD;它没有调用仓库中仅定义、未被其他代码引用的MultiViewResNetImageEncoder。因此不能把“代码里有多视图类”理解成已实现家具多视角融合。 - MIT仓库的命令词汇和实现常量共同限定为直线、圆弧、圆、草图循环和拉伸,
MAX_TOTAL_LEN=60、MAX_N_EXT=10。没有装配体、零件实例、运动副、五金和制造特征语义。 - MIT仓库README的Evaluation仍标记为
Coming soon;论文指标来自作者论文,仓库没有现成的家具实拍、多视图、BOM或生产孔槽复现实验。 - MIT仓库根目录没有LICENSE文件。论文公开和代码可下载不等于允许商用;授权未明确前只能隔离研究,不进入生产依赖和训练资产。
gurul/gencad根仓库为MIT,但其中包含AGPL子模块和独立许可的vendored代码,使用时必须逐组件合规,不能把整个依赖树视为MIT。
同名项目必须区分
MIT GenCAD 研究
项目是图像条件的参数化 CAD 程序生成模型,组合了:
- 自回归 CAD 命令编码/解码;
- 图片与 CAD 程序的对比学习共享表征;
- 图片条件的潜空间扩散;
- CAD 命令序列解码。
论文使用过滤后的 DeepCAD 数据:168,674 个有效 CAD,152,530/8,515/7,629 作为训练、验证和测试,生成 845,105 张灰度图片。五个版本主要是 X/Y/Z 缩放变体,不是产品多视角证据。
它的命令词汇只有直线、圆弧、圆、循环起点、序列终点和拉伸,最大 10 次拉伸、总序列长度 60。没有装配语义、家具部件实例、五金、连接孔槽规则、材料和工艺成本。
论文明确列出的限制包括:工业 CAD 任务更复杂;缺少旋转、圆角、倒角等操作;不能保证输出有效;训练图主要是干净等轴 CAD 图,真实照片、噪声背景和非等轴视角需要后续研究。论文失败样例含相交面、不规则实体和不连通实体。
研究仓库当前没有可见的 LICENSE 文件,代码或权重用于商业产品前必须先明确授权。
gurul/gencad 工具链
这是另一个项目:把无头 FreeCAD 暴露给编程代理,并提供截面渲染和等轴渲染。最值得借鉴的是:
- build → render → inspect → repair 的闭环;
- 用真实几何内核生成截面图,检查孔、槽、壁厚和间隙;
- 用对象位移生成炸开视图;
- 最终保留 FCStd/STEP 供人工测量和复核。
不能原样接入生产。其 freecad_run 接受任意绝对 Python 脚本路径,以完整宿主环境执行;没有允许目录、环境变量清理、容器隔离或文件/网络能力限制,只有超时。截面工具也允许调用方指定任意输入输出绝对路径。
主仓库为 MIT,但包含独立许可的子模块;不能把整个目录一概按 MIT 处理。
对当前产品成本评估的价值
值得采用
- 图片—CAD 共享向量检索:用产品局部图从经过审核的历史零件库检索几何模板,只作为候选,不读取对应公司成本答案。
- 多候选生成:同一低置信零件生成多个参数化候选,由尺寸、连接、干涉和视觉一致性共同排序。
- 截面复核:在背板槽、抽屉底板槽、排钻孔、偏心件孔和金属管壁位置自动切片,直接验证实体内部结构。
- 闭环修复:失败反馈必须定位到零件、轴、孔槽或连接面,只允许局部补丁。
- 炸开视图:继续使用结构图谱中的稳定零件 ID 和位移向量,生成可复核的装配/炸开/包装三态。
应该如何落到我们的架构
GenCAD不应成为“原图直接输出最终家具CAD”的黑盒。可复用的思想应拆成四层,并由现有结构图谱保持唯一事实源:
- 候选检索层:按局部图像、轮廓和尺寸约束从经过人工验收的零件模板库检索top-k;只返回候选几何/连接模板及相似度,不返回公司同款BOM数量或成本答案。
- 多候选图谱层:对低置信结构生成2—4个完整装配图谱候选,不直接生成互不关联的实体;每个候选都必须满足原图证据、整体尺寸、角色数量契约和材料工艺约束。
- 确定性几何裁判层:统一执行参数依赖重算、装配边界、真实接触、B-rep闭合、正体积干涉、孔槽边界、连接件唯一计数和关键截面检查。硬门禁失败的候选不能进入视觉评分。
- 独立视觉裁判层:把原始多视图与CAD正面/侧面/俯视/等轴及关键截面同时给复核模型;视觉模型只输出定位到稳定零件ID的差异,不直接改成本或宣告可生产。
候选排序建议使用可审计的分层门禁,而不是一个加权总分掩盖致命错误:
证据/拓扑硬门 → 毫米尺寸硬门 → B-rep/孔槽/干涉硬门 → 多视图一致性 → 不确定性数量 → 模型置信度
只有前三级全部通过的候选才允许进入后两级;否则即使渲染外观很像也必须失败。
不能直接接入生产的原因
| 能力 | MIT GenCAD | 家具成本评估需要 | 判断 |
|---|---|---|---|
| 输入 | 单张干净等轴CAD图/草图 | 3张实拍+尺寸图,跨视图同件追踪 | 不满足 |
| 输出对象 | 单个CAD程序/实体 | 多零件装配图谱+BOM+运动关系 | 不满足 |
| 几何词汇 | 草图+拉伸为主 | 板件、管件、孔槽、封边、焊缝、五金 | 不满足 |
| 正确性 | 论文明确不能保证有效CAD | 任一硬门失败不得报价完成 | 不满足 |
| 评价 | 分布级COV/MMD/JSD/FID | 每件产品毫米误差、BOM精确率、连接可制造性 | 指标不等价 |
| 商用许可 | 仓库未见LICENSE | 生产依赖必须有明确授权 | 当前阻塞 |
因此接入策略是:借鉴方法,不直接部署MIT模型;借用gurul/gencad的截面复核思路,但使用我们已有的隔离CAD工作者和类型化接口重写,禁止任意脚本路径执行。
不应采用
- 不把 MIT GenCAD 当成完整家具图像到 CAD 的主模型。
- 不用它决定 BOM 数量、抽屉排列、移门/铰链、材料和工艺。
- 不直接把 gurul/gencad 的任意脚本执行 MCP 暴露给 Chat API。
- 不以“渲染像”或“STEP 可打开”代替毫米尺寸和可制造性门禁。
推荐优先级
- 现有结构图谱继续作为装配、BOM 和连接关系的唯一权威中间表示。
- Zero-to-CAD 作为孔槽/圆角/异形等单零件几何候选器。
- 在隔离的可信 FreeCAD/OCCT 工作者中增加截面几何复核器。
- 采用 GenCAD 的对比检索思路建设公司历史零件模板检索,但在生成结果冻结后才做成本对照。
- CAD-Coder 和 MIT GenCAD 仅作为额外候选与离线基准。
安全接入边界
- 只允许服务端生成的受信脚本进入几何工作者。
- 工作者运行于容器/沙箱,禁网、只读基镜像、限定 CPU/内存/超时和输出目录。
- 所有输入、输出和图谱哈希进入审计记录。
- 截面图与原图/CAD 多视图一起交给独立复核模型;任何硬门禁失败都不得生成报价完成状态。