3MF 到 SolidWorks 装配重建
目标
把多零件 3MF 转换成可核对的 SolidWorks 零件包和装配体。先区分“打印排版”与“真实装配”,再恢复零件关系;不要把成功保存文件当成装配正确。
工作流
1. 明确交付等级
先确定用户需要哪一种结果:
- 单个网格
SLDPRT:仅适合单零件或明确要求合并的模型。 - 独立零件包:每个唯一几何体一个
SLDPRT,保留全部实例数量。 - 定位装配:生成
SLDASM,零件按正确姿态固定,但不承诺完整配合关系。 - 工程装配:建立同心、重合、距离、角度及限位配合,并检查运动自由度。
- 参数化重建:按基准、草图和特征重新建模;不要把导入网格称为可编辑参数化零件。
在交付说明中明确所处等级。
2. 先检查 3MF 结构
运行:
python scripts/inspect_3mf.py input.3mf
核对单位、模型文件、网格对象、组件对象、构建实例、名称和变换。分别记录:
- 唯一零件数;
- 装配实例数;
- 重复实例和同名但不同对象;
- 组件级变换与 build-item 变换;
- 3MF 是否只包含打印件。
如果文件含多个零件,禁止直接把全部三角面保存成一个 SLDPRT,除非用户明确要求合并。
3. 拆分并转换零件
按唯一“模型路径 + 对象 ID + 固有变换”拆分网格,按实例表保留重复数量。应用 3MF 的 12 值仿射变换时,先用基向量小样验证矩阵方向。
导入 SolidWorks 前固定单位。3MF/STL 通常使用毫米;SolidWorks API 的组件平移通常使用米,插入装配时把毫米除以 1000。
保存每个零件后检查:
- 文件存在且大小非零;
- 三角面数和包围盒合理;
- 正视、俯视、右视和等轴测预览非空;
- 零件名称与清单一致。
4. 判断变换代表什么
把 3MF build transforms 默认视为打印平台排版,不视为机械装配关系。只有当多视图证明零件孔轴、接触面和功能链正确时,才可直接复用。
若排版不是装配,按以下证据恢复关系,优先级从高到低:
- 作者装配视频、说明书和原始 CAD;
- 官方模型页面及照片;
- 孔轴、轴承位、舵机安装位、齿轮啮合和对称结构;
- 文件名、零件形状和尺寸;
- 工程推断。
把推断项标为“推定”,不要伪装成源文件自带装配信息。
5. 建立功能链
按机械功能而不是打印顺序分组:
底座/电控壳体 → 回转台 → 肩部 → 上臂 → 肘部 → 前臂 → 腕部 → 夹爪
先固定基准件,再依次定位轴、轴承、齿轮、舵盘和连杆。对于镜像夹爪,先验证齿轮相位和开合方向,再复制或镜像零件。
缺少舵机、轴承、舵盘、螺钉或电路板时保留安装空间,并在交付说明中列出缺件。不要通过移动打印件去填补本应由五金件占据的间隙。
6. 验证装配
同时执行结构、视觉和物理检查:
- 唯一零件数与实例数一致;
- 交付清单中的
SLDPRT、SLDASM、说明和压缩包全部存在; - 四向预览已缩放到模型且非空;
- 基座、关节轴、齿轮和夹爪中心线连续;
- 无明显反向、镜像错误、悬空或不合理穿插;
- 关键配合间隙符合舵机、轴承和紧固件规格;
- 运动装配的自由度与限位合理;
- 固定定位装配明确标注“固定位置”,不称为完整配合装配。
自动审查分数不能替代目视检查。预览为空时,先执行缩放适合窗口并重新导出;仍为空则检查模型状态、显示模式和相机位置。
7. 恢复非打印件与电控
从作者页面、视频说明或原始资料建立 BOM;把“官方列出”“视频展示”和“工程建议”分开标注。对舵机机械臂额外核对舵机角度、舵盘、轴承型号、螺钉长度、电源电压和峰值电流。
禁止从 Arduino 5V 引脚直接为多舵机系统供电。使用独立稳压电源,并让控制器地与舵机电源地共地。
何时调用其他 Skill
- 用
autocad-mechanical-drawing-reconstruction从网格或尺寸重建参数化零件。 - 用
blender-mcp做快速三维检查、爆炸视图和碰撞观察。 - 用
geartrax-micro-spur-gear校核或重建小型直齿轮。 - 用
3coding-visual整理 Arduino 程序、引脚和接线图。 - 用
Agent Browser查找作者页面、装配视频、BOM 和原始资料。 - 用
imagegen生成仅用于说明的装配示意图;不得把生成图当成尺寸或配合证据。 - 用文档、PDF、数据分析或 Git 类 Skill 制作清单、提取说明、比较版本和保存可追溯记录。
复盘与来源
处理相似任务前阅读 references/robotic-arm-case-study.md。其中记录本 Skill 每项能力如何从机械臂项目的错误、修正和新方法中总结出来。
交付格式
至少提供:
- 零件数与实例数;
- 输出文件路径;
- 装配等级;
- 网格或参数化状态;
- 缺少的非打印件;
- 验证结果和仍需人工确认的推定项;
- 参考资料链接。