dalongxia/server_patch/ai_3d_model/ai-solid-wood-cost/GENCAD_INTEGRATION_EVALUATION.md

7.4 KiB
Raw Blame History

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 程序生成模型,组合了:

  1. 自回归 CAD 命令编码/解码;
  2. 图片与 CAD 程序的对比学习共享表征;
  3. 图片条件的潜空间扩散;
  4. 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 处理。

对当前产品成本评估的价值

值得采用

  1. 图片—CAD 共享向量检索:用产品局部图从经过审核的历史零件库检索几何模板,只作为候选,不读取对应公司成本答案。
  2. 多候选生成:同一低置信零件生成多个参数化候选,由尺寸、连接、干涉和视觉一致性共同排序。
  3. 截面复核:在背板槽、抽屉底板槽、排钻孔、偏心件孔和金属管壁位置自动切片,直接验证实体内部结构。
  4. 闭环修复:失败反馈必须定位到零件、轴、孔槽或连接面,只允许局部补丁。
  5. 炸开视图:继续使用结构图谱中的稳定零件 ID 和位移向量,生成可复核的装配/炸开/包装三态。

应该如何落到我们的架构

GenCAD不应成为“原图直接输出最终家具CAD”的黑盒。可复用的思想应拆成四层,并由现有结构图谱保持唯一事实源:

  1. 候选检索层:按局部图像、轮廓和尺寸约束从经过人工验收的零件模板库检索top-k;只返回候选几何/连接模板及相似度,不返回公司同款BOM数量或成本答案。
  2. 多候选图谱层:对低置信结构生成2—4个完整装配图谱候选,不直接生成互不关联的实体;每个候选都必须满足原图证据、整体尺寸、角色数量契约和材料工艺约束。
  3. 确定性几何裁判层:统一执行参数依赖重算、装配边界、真实接触、B-rep闭合、正体积干涉、孔槽边界、连接件唯一计数和关键截面检查。硬门禁失败的候选不能进入视觉评分。
  4. 独立视觉裁判层:把原始多视图与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 可打开”代替毫米尺寸和可制造性门禁。

推荐优先级

  1. 现有结构图谱继续作为装配、BOM 和连接关系的唯一权威中间表示。
  2. Zero-to-CAD 作为孔槽/圆角/异形等单零件几何候选器。
  3. 在隔离的可信 FreeCAD/OCCT 工作者中增加截面几何复核器。
  4. 采用 GenCAD 的对比检索思路建设公司历史零件模板检索,但在生成结果冻结后才做成本对照。
  5. CAD-Coder 和 MIT GenCAD 仅作为额外候选与离线基准。

安全接入边界

  • 只允许服务端生成的受信脚本进入几何工作者。
  • 工作者运行于容器/沙箱,禁网、只读基镜像、限定 CPU/内存/超时和输出目录。
  • 所有输入、输出和图谱哈希进入审计记录。
  • 截面图与原图/CAD 多视图一起交给独立复核模型;任何硬门禁失败都不得生成报价完成状态。