商业版功能—— 本实例的 Business 方案已包含。如需自托管此功能,需要商业许可。 许可说明 →

CAD

Paid

从 Onshape 和 Onshape Government 同步 CAD 数据到 Carbon,或直接在 Onshape 内推送。

两个 Onshape 集成

Carbon 同时提供两个 Onshape 集成。它们互不共享:各自是独立的 Onshape OAuth 应用,拥有自己的连接、凭据以及哪些 Carbon 物料已关联的记录。公司可以连接任一、两者或都不连接,断开一个绝不会影响另一个。

集成ID方向作用
Onshapeonshape拉取Carbon 列出文档并拉取模型。开启 Sync released assets(同步已发布资产) 后,Webhook 会按部件号把已发布的图纸和 CAD 模型附加到已存在的 Carbon 物料。它从不创建物料。
Onshape V2onshape-v2推送Onshape 内的 Carbon 面板。准备就绪时你可以从 CAD 文档推送部件、装配和发布。Carbon 从不自行拉取。

Onshape Government 是面向 ITAR 和 FedRAMP 版本的第三种、仅拉取的 Onshape 变体,通过你的企业拥有的私有 OAuth 应用连接;参见 Onshape Government。

面板请使用 Onshape V2。如果 Onshape 中出现 Carbon 图标但面板报告未连接,说明公司连接的是 Onshape 而不是 Onshape V2——请同时连接 V2。

HEADS UP

每张卡片都需要服务端配置自己的 OAuth 客户端:Onshape V2 读取 ONSHAPE_V2_CLIENT_ID,Onshape 读取 ONSHAPE_CLIENT_ID。缺少时卡片显示 Not Configured 且无法安装。连接还需要该集成的客户端密钥和重定向 URL。参见环境变量和下方设置部分。

设置 Onshape 应用

以下内容每个 Carbon 部署由运维人员执行一次,云端和自托管 Carbon 相同。每个集成在 Onshape 开发者门户中有自己的 OAuth 应用,且只读取自己的变量:

Onshape V2(面板)Onshape(拉取)
客户端 IDONSHAPE_V2_CLIENT_IDONSHAPE_CLIENT_ID
客户端密钥ONSHAPE_V2_CLIENT_SECRETONSHAPE_CLIENT_SECRET
重定向 URLONSHAPE_V2_OAUTH_REDIRECT_URLONSHAPE_OAUTH_REDIRECT_URL
要注册的重定向 URIhttps://<erp-host>/api/integrations/onshape-v2/oauthhttps://<erp-host>/api/integrations/onshape/oauth
面板扩展是否

使用面板请设置 Onshape V2。只有需要已发布资产同步时才设置 Onshape。

为每个集成创建 OAuth 应用

登录 dev-portal.onshape.com,创建 OAuth 应用,并授予读取作用域(OAuth2Read)和写入作用域(OAuth2Write,标记为 Application can write to your documents)。面板不会向 Onshape 写入任何内容,但除非应用拥有 Carbon 请求的所有作用域,Onshape 会以 invalid_scope 拒绝授权,而 Carbon 会请求两者。

把应用的客户端 ID 和密钥填入上表对应集成的变量。

注册每个应用的重定向 URI

每个集成在自己的回调上完成 OAuth。在每个应用上,注册上表对应集成的重定向 URI,主机为你的 Carbon ERP 源,并把相同值放入其重定向 URL 变量。

每个环境变量中的值必须与注册的 URI 逐字符一致。不一致会导致令牌交换失败,Connect 弹窗会报告连接错误。

为面板添加扩展

在 Onshape V2 应用上添加扩展,位置为 Element right panel(元素右侧面板),操作 URL 如下(同样使用你的 Carbon ERP 源):

https://<erp-host>/onshape/panel?documentId={$documentId}&wv={$workspaceOrVersion}&wvId={$workspaceOrVersionId}&elementId={$elementId}&partNumber={$partNumber}&revision={$revision}&nodeId={$nodeId}&occurrencePath={$occurrencePath}&configuration={$configuration}

Carbon 按每个 = 左侧的名称读取参数;{$…} 占位符由 Onshape 替换。Onshape 会自行追加 server、companyId、userId、locale 和 clientId;请不要添加。面板会告知 Onshape 它已在 server 源就绪。缺少 server 时显示「Open this panel from Onshape」。

订阅应看到面板的用户

扩展只为已订阅 Onshape V2 应用的 Onshape 用户渲染。把它发布到你的私有 App Store,让每个用户在那里打开并选择 Get for free(免费获取)。在 Carbon 中完成 OAuth 不会完成订阅——有可用 Carbon 连接但未订阅的用户在 Onshape 中根本看不到 Carbon 图标。

使用新环境重启 Carbon

环境变量在启动时读取。Carbon 侧的 onshape-v2 集成行由数据库迁移预置,因此迁移落后的部署只会显示 Onshape 卡片。

连接属于授权它的应用。如果更改集成的客户端 ID,所有公司都必须重新连接该集成。

NOTE

私有 Onshape 应用每次调用都会消耗应用所有者的年度 API 配额。公开上架 App Store 的应用则不受此限制。

连接公司

在 Carbon 中打开设置 → 集成。两张 Onshape 卡片都在 CAD 类别下。

连接 Onshape V2

在 Onshape V2 上点击 Connect(连接)。Onshape 会打开弹窗;批准访问。弹窗会自动关闭,卡片切换为已安装。卡片只保存连接;属性映射和推送默认值在面板的 Fields(字段) 页面上。

可选:连接 Onshape

仅在需要已发布资产同步时。Sync released assets 和 Backfill released assets(回填已发布资产) 在此卡片上。该连接与 V2 独立。

如果弹窗以错误结束:

消息原因修复
Onshape isn't configured集成的客户端 ID、客户端密钥或重定向 URL 环境变量缺失。每个集成只读取自己的三个变量。为该集成设置变量并重启。
Onshape denied the connection,提到写入权限Onshape 返回 invalid_scope。在 OAuth 应用上授予 OAuth2Write。
Onshape rejected the authorization令牌交换失败:重定向 URI 不匹配、客户端密钥错误,或重定向 URI 注册在另一个集成的应用上。逐字符比较环境变量与该集成自己应用上注册的 URI。
Couldn't save the Onshape connectionOnshape 已授权但数据库写入失败。检查服务器日志;重试。
Connect 没有任何反应浏览器阻止了弹窗。允许 Carbon 源的弹窗后重试。

Onshape Government

Onshape Government 是 Onshape 的 ITAR 和 FedRAMP 版本。由于它没有公开 App Store,你的企业必须为 Carbon 创建私有 OAuth 应用。连接后,它支持文档浏览、物料清单导入和已发布资产同步。

在 Onshape 中创建私有应用

企业管理员打开 Enterprise settings → Developer → OAuth applications 并创建新的 OAuth 应用。类型选择 Connected Cloud App。把重定向 URL 设为 https://<你的 Carbon 地址>/api/integrations/onshape-government/oauth。授予个人资料读取、文档读取和文档写入权限。Onshape 只显示一次客户端密钥,请立即复制。如果能在你的企业中分配一个席位,Carbon 支持团队可以协助创建应用。

在 Carbon 中输入

在设置 → 集成下打开 Onshape Government。输入你的 Onshape URL 以及应用的客户端 ID 和客户端密钥。集成抽屉会显示你的 Carbon 实例的重定向 URL。

批准连接

保存设置,在你的 Onshape 租户中批准连接,然后返回 Carbon。

设置控制内容
Onshape URL你的团队登录 Onshape Government 的地址。每个企业都有自己的地址。
客户端 ID / 客户端密钥你企业的私有 OAuth 应用。密钥加密存储。留空保留已保存的密钥,或重新输入以重新连接。
同步已发布资产与 Onshape 相同:把已发布图纸和模型拉取到匹配的物料上。
HEADS UP

私有应用的 API 调用计入你企业的年度 Onshape API 限额。浏览和导入物料清单各需几次调用。已发布资产同步每个已发布版本需要多次调用,如果配额紧张请关闭它。

一家公司只能连接一个 Onshape 环境。连接另一个之前请断开当前集成。

Onshape 中的 Carbon 面板

打开 Part Studio、装配或图纸,点击右侧面板中的 Carbon 图标。点击 Sign in to Carbon(登录 Carbon):Carbon 自己源上的弹窗会为你登录(或先进入正常登录),然后自行关闭。会话最长 12 小时,且仅保存在该浏览器标签页中。

面板作用于弹窗所用 Carbon 标签页中当前登录的公司;面板顶部会显示是哪家。要推送到其他公司,请在 Carbon 中切换公司,然后在面板中点击 Sign out(退出) 和 Sign in to Carbon。

面板有三页:

  • Parts、Assembly 或 Push,随你打开的元素而定。图纸在这里没有可推送内容;其 PDF 随发布带入。
  • Releases(发布),针对整个文档。
  • Fields(字段),在 Part Studio 或装配上,面向 Carbon 中具有 settings: update 权限的用户。

推送在工作区或版本中有效。在微版本中面板只显示状态。

状态

每个部件或 BOM 行在推送前显示其状态:

状态含义
Linked(已关联)一次面板推送把这个 Onshape 部件关联到 Carbon 物料。
Conflict(冲突)Carbon 已有该部件号的物料,但未关联到此部件。推送会使用该物料。
Unlinked(未关联)Carbon 没有该部件号的物料。推送会创建一个。
Released(已发布)部件已在 Onshape 发布。请从 Releases 推送;其 Push 按钮关闭。

装配的物料清单显示为树状,折叠到顶层,与 Onshape 的结构化 BOM 一致。

写入前先复核

每次推送分两步。点击 Push 会显示 Carbon 将要执行的操作复核;此时尚未写入:

  • 将创建的物料及其将获得的值。补货方式、默认制造方法类型和跟踪类型可在此更改;物料 ID 和版本来自 Onshape。每个映射值显示其来自的 Onshape 属性(参见字段);未映射的值从推送默认值开始。
  • 将按部件号关联到现有 Carbon 物料的项,或因为 Onshape 变更而更新的项。复核列出推送将替换的值(设为每次推送都更新的字段)以及 Carbon 保留的 Onshape 值(设为创建时设置的字段)。
  • 对于装配,每个制造方法及其新增的行、之前推送写入且将变化的行、手工添加但被接管的行,以及保留的行。
  • 对于发布,它创建的每个版本以及使用的变更通知。

Push n to Carbon 按所示应用复核;Cancel 不写入任何内容。复核保留 15 分钟;之后请 Review again(重新复核)。复核中的选择只写入 Carbon;Onshape 保留其值。

推送部件

为 Onshape 部件创建或更新 Carbon 物料:部件号成为物料 ID,外加名称、说明、版本、3D 模型和缩略图。变更后再次推送会更新物料。推送未变更的部件只写入不同的映射值,不导出任何内容。部件必须先在 Onshape 中有部件号。Push all(全部推送) 推送 Part Studio 中所有有编号的部件,最多 50 个。

推送后,该物料就像其他 Carbon 物料一样,所有字段仍可编辑。之后的推送只替换 Fields 页面中设为每次推送都更新的字段。物料页面显示 Onshape 卡片,包含链接、推送会替换的字段、Open in Onshape(在 Onshape 中打开) 以及 Detach(解除关联)(移除链接以停止更新)。该卡片只显示面板建立的链接。

推送装配

推送装配及其物料清单:BOM 中每个物料不存在时创建,BOM 落到装配的制造方法上,包括子装配。推送只改变 Onshape 改变的内容:之前推送写入的行会被更新或移除。你为 Onshape BOM 也列出的部件手工添加的行会被接管;其数量随 Onshape,工序和报废保持不变。Onshape 未列出的手工添加行不受影响。

超过 1,500 个不同部件的装配会被整体拒绝;Push this level only(仅推送此层级) 推送其顶层 BOM,每个子装配作为一行。

BOM 中尚未关联 Onshape 部件的物料会与各自的部件关联。每个关联到其 BOM 行的物料采用设为每次推送都更新的值。只有 Onshape 拥有的值才会写入,因此空的名称或说明单元格绝不会清空 Carbon 的文本。已关联到另一个 Onshape 部件的物料保留其链接,推送不会向它写入任何内容。

采购或制造。 对于新物料,以下第一个给出值的规则胜出:

  1. 你在复核中的选择,
  2. 映射到补货方式的 Onshape 属性(参见字段),
  3. 有组件的 BOM 行为制造,
  4. 来自 Onshape 标准内容库的部件为采购,
  5. 推送默认值。

Subassembly BOM behavior(子装配 BOM 行为) 为 Show assembly only(仅显示装配) 的子装配不带组件列出,因此推送不会为其写入 BOM,也不说明采购或制造。当物料的采购/制造与 Onshape BOM 不一致时,复核会警告:会获得 BOM 的采购物料,或 Onshape 视为单个整体的制造物料。

已发布的制造方法绝不被编辑。 当装配的方法是已启用且 Onshape BOM 与其不同时,推送会取一个新的草稿版本并写入其中,与 Carbon 中版本变更的方式相同。在有人发布该草稿之前,生效内容不会改变。再次推送会写入同一草稿。推送结果会把每个新草稿列为尚未生效。

推送发布

Releases 页面列出文档最新的 20 个 Onshape 发布,每个标记为 In Carbon(已在 Carbon)、Partial(部分) 或 Not in Carbon(不在 Carbon)。推送一个会:

  • 按发布版本号创建每个已发布部件和装配的 Carbon 版本;Carbon 有下一版本时从其复制,
  • 把每个已发布装配的 BOM(截至发布版本)写入新版本的制造方法,
  • 按发布版本取每个已发布物料的映射值,
  • 按发布版本附加模型和缩略图,并把每个已发布图纸作为 <部件号>-<版本>.pdf 附加到其部件上。

新版本进入一张草稿变更通知,以发布命名。它们在你在 Carbon 中发布该通知之前保持未启用,发布后激活它们并取代之前的每个版本。在通知打开且未等待审批时再次推送发布,会加入同一通知,不会重复创建;否则推送会开始新通知。推送必须创建的 BOM 组件不在通知上。

仅有图纸的发布在其 PDF 附加后显示 In Carbon。发布管理需要 Onshape 公司账户;没有时页面会说明。

字段

Fields 页面把 Onshape 属性(Vendor、Project、Material、你公司的自定义属性)映射到 Carbon。属性可以设置部件的物料字段或自定义字段。页面列出你当前打开元素的属性,但映射属于公司并适用于每次推送。它位于面板中,因为 Onshape 只能从文档内部列出属性。

页面以固定行开始:部件号和版本始终来自 Onshape,名称和说明各有模式(见下)。然后是带推送默认值的物料字段,即没有属性设置时新物料获得的值:

物料字段值推送默认值
补货方式采购、制造、采购与制造制造
默认制造方法类型按订单制造、从库存领用、按订单采购按订单制造(制造)、从库存领用(采购)
跟踪类型库存、非库存、序列号、批次库存
计量单位你公司的单位EA,或你公司的第一个单位
制造商部件号属性的文本无
来源方式指定、直运、从库存发货(仅采购与制造物料)无
  • 列表字段有转换:每行把 Onshape 值转换为 Carbon 值。行以 Carbon 自己的值开始,因此选项相同的 Onshape 列表无需设置。把某行设为 No value(无值) 可让字段交给下一条规则。没有对应行的 Onshape 值会在复核中标出且不写入。
  • 与单位代码或名称匹配的计量单位值无需映射行。
  • 物料字段按物料页面的写入方式写入。更改补货方式也会设置相应的方法。更改补货方式、制造方法或来源方式还会更新草稿 BOM 上的物料行;更改跟踪类型还会更新未结生产订单、收货、发货和调拨。

自定义字段: 先在 Carbon 中创建字段,然后在此选择。文本、列表和对象属性映射到文本字段,布尔映射到是/否,数字映射到数值,日期映射到日期。Onshape 的计算、用户、文件和类别属性无法映射;页面会在列表下方列出它们。没有对应类型 Carbon 字段的属性会说明应添加哪种部件自定义字段类型。

每个 Carbon 字段接受一个属性。已被另一属性设置的字段会灰显保留在列表中,并显示该属性的名称。

Onshape 何时写入字段。 每个映射以及物料的名称和说明都有两种模式之一:

  • 创建时设置(默认):推送创建物料时 Onshape 填充该字段。之后 Carbon 拥有该字段,后续推送不再更改。
  • 每次推送都更新:每次推送都用 Onshape 的值替换 Carbon 的值,包括在 Carbon 中做的编辑。空的自定义字段属性会清空 Carbon 字段;空的物料字段或说明从不写入。

设置采购或制造。 Onshape 没有采购/制造属性。在 Onshape 中创建一个列表属性,例如 Make or buy,选项为 Buy、Make 和 Buy and Make。在此映射到补货方式,并在你公司采购的部件上设置值。来自 Onshape 标准内容库的部件(紧固件和其他五金件)在没有属性给值时以采购带入。

  • Carbon 按 Onshape 中的显示名称匹配列表值,没有显示名称时按其值匹配。
  • Onshape 默认值也是一个值:每个没有自身值的部件都会发送该默认值。使用每次推送都更新时,默认值会替换每个未在 Onshape 中设置的联系物料的 Carbon 值。让 Onshape 默认值留空,以便新物料由推送默认值决定。
  • 仅适用于部件的属性在装配行上没有值。Carbon 在那里不写入任何内容。

Refresh(刷新) 重新读取属性和字段列表。Save(保存) 同时保存映射和推送默认值。

面板故障排查

当面板无法从 Onshape 读取,或装配的 BOM 缺少面板需要的列时,错误带有 Show details(显示详情) 和 Copy details(复制详情):Carbon 向 Onshape 请求了什么、Onshape 回答了什么,包括 Onshape 地址、状态和消息,以及无法读取 BOM 时 Onshape 返回的列标题。请粘贴到支持请求中。它绝不包含令牌或单元格值。

症状原因修复
Onshape 右侧面板没有 Carbon 图标Onshape 用户未订阅 Onshape V2 应用,或其中缺少扩展。通过私有 App Store 订阅;检查扩展存在且位置为 Element right panel。
Open this panel from Onshape页面在 Onshape 之外打开,因此没有 Onshape server 源。从 Onshape 右侧面板打开;检查扩展的操作 URL 指向 ERP 主机。
在 Onshape 内面板空白路由从 *.onshape.com 以外的源被嵌入,或浏览器无法访问 ERP 主机。Carbon 只允许 Onshape 嵌入它;检查操作 URL 中的 ERP 源。
登录弹窗显示 Open this page from the Carbon panel in Onshape弹窗被直接打开,而不是从面板打开。使用 Sign in to Carbon 按钮。
面板回到 Sign in to Carbon面板会话结束:12 小时、受控环境会话限制或退出登录。重新登录。
Carbon is not reachable面板对 Carbon 的首次请求失败:ERP 主机不可达或返回错误,显示在标题下方。点击 Retry 或 Sign in again;检查 ERP 主机和服务器日志。
The yearly API limit for Carbon's Onshape app is used up拥有 OAuth 应用的账户年度 API 限额用尽后,Onshape 对每次调用返回 HTTP 402。向 Onshape 提高限额。所有者可在 Company settings → Developer 查看用量。公开上架 App Store 的应用不受限制。
Onshape is not connected for this company只连接了 Onshape(同步),或没有连接任何 Onshape 集成。连接 Onshape V2。
复核以 503 打不开Carbon 无法把复核存入 Redis。检查 REDIS_URL。
Push to Carbon 后显示 Review again15 分钟复核过期,或已应用。点击 Review again。
部件显示 ConflictCarbon 已有该部件号的物料(手工、导入或同步集成创建)。推送它:面板会关联并更新该物料而不是创建重复。
推送结果显示 New Draft version, not yet live装配的制造方法已发布,因此推送写入草稿版本。准备好后在 Carbon 中发布该草稿。
Connect 时 invalid_scopeOAuth 应用缺少 OAuth2Write。在开发者门户中授予。

相关内容