> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CAD

> 将 Onshape 或 Onshape Government 连接到 Alforse，把物料清单导入草稿状态的自制方法，并将已发布的图纸和 CAD 模型附加到现有物料上。

CAD 集成把公司与 Onshape 连接起来，使工程数据无需重新录入即可进入 Alforse。
工程师用它把装配体的物料清单带入自制方法，管理员用它让已发布的图纸和 3D 模型保持附加在对应物料上。

## 集成的功能

数据单向流动：从 Onshape 到 Alforse。一个连接提供两项功能。

| 功能 | 作用 | 使用位置 |
| - | - | - |
| 物料清单导入 | 读取 Onshape 装配体在某个已保存版本下的 BOM，并写入草稿状态的自制方法。 | 物料的 **物料清单**。参见[导入物料清单](#import-a-bill-of-materials)。 |
| 已发布资产同步 | 按零件编号匹配，把已发布的 Onshape 图纸和 CAD 模型附加到已存在的 Alforse 物料上。它从不创建物料。 | 集成卡片上的 **同步已发布资产**（Sync released assets）开关。参见[同步已发布资产](#sync-released-assets)。 |

### 选择连接类型

有两种 Onshape 集成。它们运行相同的同步，区别仅在于授权访问的 OAuth 应用归谁所有。

| 集成 | Id | 授权 |
| - | - | - |
| **Onshape** | `onshape` | 使用 Alforse 的 OAuth 应用。你选择 **连接** 并在弹出窗口中批准访问。 |
| **Onshape Government** | `onshape-government` | 使用你的企业（Enterprise）拥有的私有 OAuth 应用，适用于 Onshape 的 ITAR 和 FedRAMP 版本。参见 [Onshape Government](#onshape-government)。 |

一个公司同一时间只能拥有一个 Onshape 连接。如果在已安装第一个的情况下尝试安装第二个，Alforse 会拒绝，并提示 *Onshape is already connected*（Onshape 已连接）（或 *Onshape Government is already connected*）。请先卸载当前连接。

## 连接 Onshape

两张 Onshape 卡片都位于 **设置 → 集成** 的 CAD 类别中。

### 授权连接

在 **Onshape** 卡片上选择 **连接**。会打开一个指向 Onshape 的弹出窗口；在那里批准访问。弹出窗口会自动关闭，集成页面重新加载，卡片显示为已安装。

### 打开已发布资产同步（可选）

打开卡片并打开 **同步已发布资产** 开关。开关打开后，会出现 **回填已发布资产**（Backfill released assets）操作。

## Onshape Government

**Onshape Government** 是 Onshape 的 ITAR 和 FedRAMP 版本。它没有公开的应用商店，因此你的企业需要为 Alforse 创建一个 **私有 OAuth 应用**，并在 Alforse 中输入其凭证。连接之后，它与 **Onshape** 一样，支持文档浏览、物料清单导入和已发布资产同步。

### 在 Onshape 中创建私有应用

企业管理员打开 **Enterprise settings → Developer → OAuth applications** 并创建一个新的 OAuth 应用：

* **名称：** Alforse。为其指定唯一的主要格式（primary format），并将类型设为 **Connected Cloud App**。
* **重定向 URL：** `https://app.alforse.com/api/integrations/onshape-government/oauth`。Alforse 中的 Onshape Government 抽屉会显示需要粘贴的确切重定向 URL 和 OAuth URL。
* **权限：** 授予 **Application can read your profile information**、**Application can read your documents** 和 **Application can write to your documents**。

Onshape 只会显示一次客户端密钥，所以请立即复制。如果你在企业中为 Alforse 支持人员提供一个席位，支持人员可以协助创建该应用。

### 在 Alforse 中输入应用的详细信息

在 **设置 → 集成** 中打开 **Onshape Government**。输入你的 Onshape URL（必须是 `https://` 地址），然后输入应用的客户端 ID 和客户端密钥。

### 批准连接

保存设置。Alforse 会将你重定向到 Onshape 以批准访问；之后返回 Alforse。

### Onshape Government 设置

| 设置 | 作用 |
| - | - |
| Onshape URL | 你的团队登录 Onshape Government 所用的地址。每个企业都有自己的地址。 |
| 客户端 ID / 客户端密钥 | 你企业私有 OAuth 应用的凭证。密钥以加密方式存储。留空该字段可保留已保存的密钥，或重新输入以重新连接。 |
| 同步已发布资产 | 与 **Onshape** 上完全相同：已发布的图纸和模型会被拉取到匹配的物料上。 |

HEADS UP

通过私有应用发起的调用会计入你企业的 **Onshape API 年度限额**。浏览文档和导入物料清单各需要几次调用，但已发布资产同步对每个已发布的修订版都要多次调用。如果你的额度紧张，请保持同步关闭。

## 导入物料清单

安装 Onshape 连接后，物料的 **物料清单** 会显示一张 Onshape 卡片。BOM 始终来自文档的已保存版本，而不是实时工作区。

1. 用箭头展开 Onshape 卡片。
2. 选择 **文件**、**版本** 和 **装配**。
3. 选择 **获取**。Alforse 读取 Onshape BOM，并在 **物料清单** 框中列出各行。零件没有零件 ID 的行会标记为 *No part ID*（无零件 ID）。
4. 选择 **保存**，将这些行写入自制方法。

第一次保存之后，卡片会显示 *Last synced*（上次同步）。选择 **刷新** 重新加载列表。

### 导入规则

* **仅限草稿。** 只有当自制方法处于 **草稿** 状态时，该卡片才可用。在启用的方法上它被禁用，因为启用的方法已在使用中。
* **权限。** 保存需要 **parts: update** 权限。
* **完全替换。** 保存会使方法的各行与 Onshape BOM 完全一致，包括子装配体。
* **已发布的子装配体。** 如果某个子装配体已发布的方法与 Onshape 不同，则保存会被拒绝。请为该子装配体创建新版本（草稿），然后再次保存。

## 同步已发布资产

**同步已发布资产** 默认关闭。打开后，Onshape 会把每次发布通知 Alforse，Alforse 会把已发布的文件附加到已存在的物料上：

| Onshape 发布内容 | 作为物料的以下内容附加 |
| - | - |
| 已发布零件或装配体的 CAD 模型 | 物料的 3D 模型 |
| 已发布的图纸 | 以零件编号和修订版命名的 PDF |

### 物料如何匹配

* 零件编号和修订版与物料 ID 进行匹配。
* 编号为 `DRW-<number>` 的图纸会附加到 `PRT-<number>` 或 `ASM-<number>`。
* 如果没有匹配的物料，或匹配到多个，则不会附加任何内容。同步只关联文件，从不创建物料。
* 重复发布不会把同一文件附加两次。

### 回填现有发布

新的发布会即时同步。若要拉取在你打开同步之前发布的资产，请选择卡片上的 **回填已发布资产**（仅在同步打开时出现）。Alforse随后会一次性获取每个匹配物料的已发布资产。回填需要 **settings: update** 权限。

资产同步需要 OAuth 应用的写入权限。如果缺少该权限，卡片会提示你重新连接并授予写入权限。

## 故障排查

连接尝试失败时，Alforse 会在集成页面上显示一条消息。

| 消息或现象 | 原因 | 解决办法 |
| - | - | - |
| *Onshape denied the connection*（Onshape 拒绝了连接）（写入权限） | Onshape 返回了 `invalid_scope`：OAuth 应用缺少 "Application can write to your documents"。 | 在 OAuth 应用上授予该权限，然后重新连接。 |
| *Onshape denied the connection* | 在 Onshape 中授权被拒绝。 | 重新连接。 |
| *The Onshape connection expired*（Onshape 连接已过期） | 登录状态在你批准之前已超时。 | 返回集成页面并重新连接。 |
| *Onshape rejected the authorization*（Onshape 拒绝了授权） | 用授权码换取令牌失败。 | 重新连接。对于 Government，请检查 Onshape URL 和客户端密钥。 |
| *Couldn't save the Onshape connection*（无法保存 Onshape 连接） | Onshape 已授权访问，但保存连接失败。 | 重试。 |
| *Onshape is already connected* / *Onshape Government is already connected* | 公司已经持有另一个 Onshape 连接。 | 卸载它，然后再连接。 |
| 选择 **连接** 后没有反应 | 浏览器拦截了弹出窗口，因此 Alforse 改为将整个页面跳转到 Onshape。 | 允许 Alforse 的弹出窗口并重试。 |

## 相关内容

**物料**

CAD 文件所附加到的零件记录。

[Open](https://docs.alforse.com/zh/docs/reference/items.md)

**方法与来源**

零件的物料清单是如何构建的。

[Open](https://docs.alforse.com/zh/docs/reference/methods.md)

**修订版**

为什么零件的每个修订版都是独立的物料记录。

[Open](https://docs.alforse.com/zh/docs/reference/items.md#revisions)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.