# Reconstruct 3mf Solidworks Assemblies

> Inspect, split, convert, semantically reconstruct, and validate multi-part 3MF models as SolidWorks parts and assemblies. Use for 3MF-to-SLDPRT/SLDASM conversion, incorrect print-bed layouts, missing or duplicated components, mesh-versus-parametric decisions, assembly reconstruction from photos or videos, BOM recovery, and Arduino/servo integration for printable mechanisms such as robotic arms.

- Skill: `zhaolong666520/reconstruct-3mf-solidworks-assemblies` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add zhaolong666520/reconstruct-3mf-solidworks-assemblies`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zhaolong666520/reconstruct-3mf-solidworks-assemblies/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: Zhaolong666520 (https://skillmd.com/u/zhaolong666520)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/zhaolong666520/reconstruct-3mf-solidworks-assemblies

---


# 3MF 到 SolidWorks 装配重建

## 目标

把多零件 3MF 转换成可核对的 SolidWorks 零件包和装配体。先区分“打印排版”与“真实装配”，再恢复零件关系；不要把成功保存文件当成装配正确。

## 工作流

### 1. 明确交付等级

先确定用户需要哪一种结果：

1. 单个网格 `SLDPRT`：仅适合单零件或明确要求合并的模型。
2. 独立零件包：每个唯一几何体一个 `SLDPRT`，保留全部实例数量。
3. 定位装配：生成 `SLDASM`，零件按正确姿态固定，但不承诺完整配合关系。
4. 工程装配：建立同心、重合、距离、角度及限位配合，并检查运动自由度。
5. 参数化重建：按基准、草图和特征重新建模；不要把导入网格称为可编辑参数化零件。

在交付说明中明确所处等级。

### 2. 先检查 3MF 结构

运行：

```powershell
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 默认视为打印平台排版，不视为机械装配关系。只有当多视图证明零件孔轴、接触面和功能链正确时，才可直接复用。

若排版不是装配，按以下证据恢复关系，优先级从高到低：

1. 作者装配视频、说明书和原始 CAD；
2. 官方模型页面及照片；
3. 孔轴、轴承位、舵机安装位、齿轮啮合和对称结构；
4. 文件名、零件形状和尺寸；
5. 工程推断。

把推断项标为“推定”，不要伪装成源文件自带装配信息。

### 5. 建立功能链

按机械功能而不是打印顺序分组：

```text
底座/电控壳体 → 回转台 → 肩部 → 上臂 → 肘部 → 前臂 → 腕部 → 夹爪
```

先固定基准件，再依次定位轴、轴承、齿轮、舵盘和连杆。对于镜像夹爪，先验证齿轮相位和开合方向，再复制或镜像零件。

缺少舵机、轴承、舵盘、螺钉或电路板时保留安装空间，并在交付说明中列出缺件。不要通过移动打印件去填补本应由五金件占据的间隙。

### 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](references/robotic-arm-case-study.md)。其中记录本 Skill 每项能力如何从机械臂项目的错误、修正和新方法中总结出来。

## 交付格式

至少提供：

- 零件数与实例数；
- 输出文件路径；
- 装配等级；
- 网格或参数化状态；
- 缺少的非打印件；
- 验证结果和仍需人工确认的推定项；
- 参考资料链接。

