Understanding Harness Synchronization – Advanced Users

MCAD CoDesigner 如何支持线束设计

MCAD CoDesigner 的线束支持功能会集成线束的 ECAD 与 MCAD 模型。目标是允许 harness geometry 在 MCAD 中完成设计,然后将线束元素的物理参数(长度)回传到 ECAD。

ECAD 与 MCAD 环境之间的共同(且本质上相似)要素在于:线束的原理图/接线图在双方的线束模型交换中基本一致。然而,ECAD 与 MCAD 的物理模型不同:在 ECAD 侧并不存在精确的线束物理模型;而在 MCAD 侧,物理模型由 MCAD CoDesigner 基于 ECAD 侧提供的数据(连接器模型、线束拓扑以及线束对象参数)创建(生成)。

在 ECAD 侧,线束模型的数据来源是线束工程中的布局图。该图是平面的,并非真实线束比例,但包含拓扑以及线束的内部原理图,用于在 MCAD 侧构建线束物理模型草案。

MCAD CoDesigner 的线束支持初期面向 Creo 和 Solidworks。尽管两者在接线图定义方面可视为相似,但在电缆/导线的 3D 布线以及组件定义方面差异很大。

差异总结如下:

  1. SOLIDWORKS 会将同一路径上的所有电缆/导线打包为一个单一束(bundle),并且建议不要区分连接器引脚。因此,MCAD CoDesigner 不会为每个组件上的每个引脚创建独立的连接点(这是遵循 SOLIDWORKS 的建议)。另一方面,Creo 试图精确建模每根电缆/导线与连接器。因此当 MCAD CoDesigner 拉取设计时,会为每个 Creo 引脚创建一个连接点。

  2. SOLIDWORKS 的布线基于受约束的 3D 样条曲线(本质上是用于定义布线路径的标准 SOLIDWORKS 实体),而 Creo 使用专用于导线和电缆的特定实体。

  3. SOLIDWORKS 具有独立的电缆与连接器库,这些库由 MCAD CoDesigner(以及用户)创建/维护。库定义可用的导线与连接器(包括其引脚),可在项目间使用与共享。从技术上讲,这些库是 XML(用于导线)以及 XML + .sldprt(用于连接器)。
    目前 CoDesigner 不支持 Creo 的共享 MCAD 库,而是在装配体内直接将电缆/导线类型定义为 Spool。在 Creo 中,连接器也是独立模型,这些模型可单独使用,无需注册到任何库中。

  4. 除线束部件外,SOLIDWORKS 还会将线束信息保存在 xxx-fromToList.xmlxxx-segmentList.xml 文件中。CoDesiger 不会直接使用这些信息,但 SOLIDWORKS 需要这些文件才能与线束设计保持一致地工作。

Additional Notes:

  • ECAD 布局图中的束(bundle)与 MCAD 侧的束并不相同。MCAD 的束适用于 MCAD 设计,但这些束实体不会发送到 ECAD。ECAD 的束段(bundle segments)则被视为连接点之间线束束中的特定部分。换言之,束段及其长度会在 ECAD 与 MCAD 之间同步,但“整束”作为一个实体不会同步。

  • 连接点在 MCAD 与 ECAD 侧的含义不同。在 ECAD 侧,连接点是布线拓扑的一部分;而在 MCAD 侧(针对 SOLIDWORKS),它是连接器的入口特征。

同步线束设计项目时遇到问题?请查看本页的 故障排除 部分,其中提供了对一些常见问题的解决方案。

线束项目统一模型

MCAD CoDesigner 用于在 ECAD 与 MCAD 之间交换线束的统一模型,本质上反映了在 Altium Designer 中创建的线束对象模型。

统一线束模型包含以下对象:

  • 导线(Wires)

  • 电缆(Cables,包含导线)

  • 双绞线对(Twisted pairs,在 ECAD 中被视为电缆的一种特殊情况)

  • 连接器(Connectors:端子、未连接点、拼接或直通拼接)

  • 束段(Bundle segments:在布线路径的某一段将电缆与导线进行捆扎)

  • 连接点(Connection points:线束布局中的固定点,用于定义布线路径的特定段)

MCAD-ECAD 交换不包含任何其他对象。关于支持对象及其参数的详细信息见 此处

设计约定与假设

  1. 从 CoDesigner 的角度,电缆被视为包含多根导线的标准部件。电缆内部不再捆扎其他电缆;捆扎通过束段来实现。

  2. 最小弯曲半径与厚度是电缆和导线的重要物理属性,它们决定了可能的布线方式(以及无法布线的情况)。

  3. 用于线束设计的连接器组件不用于 PCB 设计。

  4. 连接器组件在 ECAD 侧的封装中应包含 3D 模型。

  5. 物理引脚仅在 MCAD 侧的连接器模型中指定。

  6. ECAD 侧定义的连接点用于在布线路径上将独立导线/电缆捆扎在一起。可将其视为导线/电缆集合路径上的虚拟“扎带/卡扣”。以这种方式捆扎有助于避免不正确的布线,例如导线/电缆彼此干涉。

  7. “未连接(Not-connected)”导线应以“未连接”端子结束,即以一个组件作为终点。该组件没有物理实体,但用于定义未连接导线端点的精确位置。

  8. 电缆的长度等于其内部最长导线的长度。

  9. 电缆/导线路径上各束段长度之和始终小于该电缆/导线的长度。这是因为束段仅描述电缆/导线布线中被捆扎的部分。

  10. 在 SOLIDWORKS 中(遵循 SOLIDWORKS 建议),CoDesigner 仅为连接器创建一个作为入口点的单一引脚。如有需要,用户可重新定义连接器以指定多个连接点及其关联引脚。

线束支持的限制与要求

  1. CoDesigner 不支持在 MCAD 侧更改线束原理图或拓扑。

  2. 若使用 SOLIDWORKS PDM,线束库需要手动管理。修改前应签出线束 XML 文件,修改后应签入。若计划更新连接器,也应将其签出。

  3. Creo 支持 DMS 映射;对 SOLIDWORKS 的支持将在 CoDesigner 3.12 版本中加入。

  4. 在 3.12 之前的 CoDesigner 版本中,连接器模型名称基于 ECAD 封装名称。从 CoDesigner 3.12 起,连接器模型名称基于 Naming of component models that are transferred from ECAD to MCAD 选项,该选项在 Workspace Administrator Settings 的 MCAD CoDesigner 页面中配置。

  5. 对于 SOLIDWORKS,必须在 PC 上安装 MS Excel 才能进行线束同步,并且 SOLIDWORKS 许可证等级必须支持 SOLIDWORKS Routing。

  6. 对于 Creo,Creo 许可证包中应包含线束(harness)许可。

  7. CoDesigner 不使用导线或电缆的 types,而是为每根导线或每条电缆创建一个独立的 type,并以其位号命名(即使该电缆/导线的属性与其他导线/电缆完全相同)。

使用 SOLIDWORKS 库

  • Solidworks Routing 库内容存储在 cable.xmlcomponents.xml 文件中,并关联相应的组件模型。

  • MCAD CoDesigner 始终使用其自有的 cable.xml(项目专用,每个项目不同)以及自有的 components.xml(可在项目间共享,甚至可与非 CoDesigner 项目共享)。

  • Components.xml 存储在项目文件夹中,或存储在公共组件文件夹中(如果已在 MCAD CoDesigner 选项中定义该文件夹)。该 XML 引用的组件模型与 Components.xml 文件放在同一文件夹中。

  • CoDesigner 在初次拉取/推送/应用更改操作期间会使用这些库文件,这可能导致 SOLIDWORKS 中当前库文件设置发生变化。因此,当需要使用非 CoDesigner 专用库时(例如用户希望使用非 CoDesigner 的线束装配体),MCAD 工程师可能需要确保已设置正确的默认库。

未连接导线建模的特殊性

  • 在 ECAD 接线图中,未连接导线应连接到一个“未连接(Not-connected)”实体。

  • 在 ECAD 布局图中,应为接线图中某个特定“未连接”实体创建相应的连接点,并创建将未连接导线铺设到该点的束段。

  • 在 MCAD 侧,会为每个“未连接”连接点创建一个独立的连接器模型。基本上,MCAD 侧对未连接导线的行为与已连接导线相同,唯一差别是:未连接导线的“连接器”仅存在于 MCAD 侧。

Notes:

  • 未连接导线(如果存在)也有长度。

  • 未连接导线的长度取决于其端点在空间中的位置。这就是 CoDesigner 需要一个特殊“连接器”模型来连接已连接端的原因。

  • 除上述方式外,MCAD CoDesigner 无法正确处理以其他方式定义的未连接导线。

  • 如果电缆在 MCAD 侧建模,则其中的未连接导线将与电缆具有相同长度,即使该电缆内部的导线未连接(至少在 Creo 中如此)。

MCAD 中初次拉取(Initial Pull)的工作方式

在 MCAD 中,线束的初始拉取流程可以视为一个多阶段过程,包含以下步骤:

  1. 创建线束装配(它只是一个装配体,类似于 PCB 装配)

  2. 在已创建的装配体中放置连接器(并在需要时创建连接器),其位置在 X-Y 平面上应与 ECAD 布局图对应。也就是说,连接器原点应与布局图处于相同的 X-Y 位置,并且连接器 Z 轴方向应与装配体 Z 轴方向一致:

    1. 连接器是由 Parasolid 模型创建的 MCAD 零件。模型由 ECAD 提供,并以 ECAD 元件所用封装(footprint)的名称命名(如果 ECAD 能提供的话)。

    2. 或者,不使用 ECAD 模型来创建连接器零件,而是通过 CoDesigner 的元件映射设置,将连接器映射到现有的 MCAD 连接器零件。

    3. 如果 MCAD 端尚不存在该连接器零件,则会按如下方式基于 ECAD 模型自动创建:

      1. 对于 Creo:零件由 ECAD 提供的 Parasolid 模型创建(如果未提供模型,则使用空模型)。在该零件中,每个连接器引脚都建模为一个坐标系,位于 X-Z 平面上并排成一行(间距 0.1 英寸),其朝向与默认零件坐标系的朝向一致。此外,还会创建一个用于连接进入电缆的坐标系,专门命名为 ‘CS0’,其 X 坐标位于引脚行的中间位置,并在 X 与 Z 坐标方向上具有相等的偏移量(即引脚行越长,引脚行到 CS0 的距离越大)

      2. 对于 SOLIDWORKS:流程类似,但有以下差异:

        1. 非 splice 的连接器引脚不会建模为物理连接点。相反,只创建一个连接点,引脚以“虚拟”的方式与之关联(同一个点也用于将电缆连接到连接器)。该连接点引脚定义为垂直于 Front 平面,且相对原点在 X 方向偏移 100 mil、在 Y 方向偏移 100 mil。引脚方向与 Z 轴相反。

        2. 创建的连接器(包括其“虚拟”引脚信息)会注册到 SOLIDWORKS 连接器库中(components.xml),以便 SOLIDWORKS 进一步将该零件识别为组件。请参阅 SOLIDWORKS Connectors Properties Format。 

    4. ‘Splice’ 和 ‘Not-connected’ 实体也会建模为连接器并注册到连接器库(components.xml)中,但不包含实体本体(仅包含连接点)。这些实体的零件名称基于 ECAD ID 命名。这些零件旨在项目专用,不应在不同项目之间共享。

      1. 在 Creo 和 SOLIDWORKS 中,splice 都建模为连接器。每个引脚单独建模。这些引脚的朝向与连接器引脚相同,沿 Y 轴方向排成一行,间距 100 mil。

      2. 直通 splice(或 Tap)与 splice 的建模方式类似,但对于绕过 splice 的那根线不建模任何连接器。此类导线没有精确的连接点,但后续可以通过 splice 位置进行布线。

Note: 如果在 MCAD CoDesigner for SOLIDWORKS 设置中指定了公共组件文件夹,则 components.xml 文件将创建在公共组件文件夹中。

  1. 当所有连接器都放置到装配体中后,将原理图(即 From-To 表)导入到 MCAD 设计中。原理图导入是 MCAD 内部流程,CoDesigner 只是准备待导入的数据并执行导入。Creo 与 SOLIDWORKS 在此步骤中的处理差异很大。

    1. 对于 Creo:

      1. 线束零件由 MCAD CoDesigner 在线束装配中创建。

      2. MCAD CoDesigner 准备 neutral format wirelist (NWF) 文件并将其导入线束(NWF SpecificationNWF)。

      3. 基于导入的逻辑数据创建逻辑导线/电缆与线轴(spool)(逻辑实体在模型中没有几何形体)。

    2. 对于 SOLIDWORKS:

      1. 在临时文件夹(Windows temp 文件夹)中创建一个准备好的 Excel From-To 表文件,用于登记连接器的连通性(example of Excel table format)。

      2. 准备一个 cable.xml 文件(本质上是一个库),用于登记项目电缆(参见 Cable properties format)。
        Note:不同于组件库,电缆库(cables.xml)应为项目专用,不在项目之间共享。该 XML 文件创建在项目文件夹中。

      3. 执行 Import From-To(Start from From-To)命令,并指定参数:Excel From-To 表、Cable.xml 文件和 Components.xml 文件,以创建线束零件。该零件将使用上面创建的装配体中的默认线束模板创建。

      4. 导入的组件与电缆将被 SOLIDWORKS 识别并在逻辑上连接(不包含精确的电缆走线路径)。不过,这不仅仅是将原理图数据导入 MCAD 模型(如 Creo 的方式),而是创建线束零件,并生成用于后续线束布线几何的“线框”。具体而言,会在线束零件中创建线束草图以及连接器的连接点(草图中的特殊线段)。
        Note: SOLIDWORKS 的线束实现要求 PC 上安装 MS Office,这使得 SOLIDWORKS 能导入 CoDesigner 准备的 XLS 文件。

  2. 接下来,使用布局图中的坐标在设计中创建连接点(ECAD 术语)。

    1. 对于 Creo:连接点创建为基准点(datum points)。

    2. 对于 SOLIDWORKS:连接点在线束的 3D 草图中创建为线段。线段长度为 40 mil,每段线的中心位于连接点上,线段本身与草图的 Y 轴平行。

  3. 连接点与线束段(bundle segment)信息会保存在 MCAD 模型的特定装配属性中。这些属性由 MCAD CoDesigner 管理,不应由用户手动编辑。

    1. 在 Creo 中,它们保存在属性:AltiumMCAD_ConnectionPointsAltiumMCAD_BundleSegments

    2. 在 SOLIDWORKS 中,它们保存在属性:ConnectionPointsStorageBundleSegmentsStorage

  4. MCAD 端线束拉取流程的最后阶段是电缆与导线的布线。需要说明的是,它们不会仅基于 From-To 表自动布线,因为还必须考虑 From-To 表中未提及的连接点与 tap 点(本质上也要把 ECAD 端的 bundle segments 纳入考虑)。

    1. 对于 Creo:CoDesigner 使用线束 API 来执行:

      1. 将每根电缆/导线从起始连接器布线到终止连接器,并经过上一步创建的连接点(要使用的连接点会基于从 ECAD 获取的 bundle segment 数据识别)。

      2. 导线从连接器引脚到连接器引脚进行布线;而电缆则从连接器的电缆入口端口(由 CS0 表示)布线到另一个电缆入口端口。电缆内部的导线不会自动布线,可按需手动布线。

      3. 为保证此步骤的一致性,CoDesigner 必须在每个连接器上找到正确的连接点(引脚),并且 MCAD 必须能够在给定的线径/最小弯曲半径以及布线点间距等约束下完成导线/电缆布线。如果无法在这些约束内完成布线,则不会布线并会报告错误。

    2. 对于 SOLIDWORKS:布线按如下方式进行:

      1. 在 SOLIDWORKS 中打开布线草图与布线本身进行编辑。

      2. 对每根独立导线/电缆进行布线。

        1. 要布线电缆/导线,第一步是识别 from/to 连接器以及相关连接器的连接点。

        2. 然后根据该导线/电缆所属的 bundle segments,确定该导线/电缆经过的草图点序列。

        3. 接着调用自动布线(autorouting)。

          Note:即使违反几何最小弯曲半径或线径约束,电缆仍会被布线,但 SOLIDWORKS 会将该电缆显示为存在不一致区域。

Note:

SOLIDWORKS 与 Creo 在布线流程上的主要差异在于:在 Creo 中,CoDesigner 为特定导线与电缆创建布线路径;而在 SOLIDWORKS 中,它创建的是电缆导线的路径,这些导线并未被 CoDesigner 精确地与某一根特定电缆或导线绑定。因此,SOLIDWORKS 会根据 CoDesigner 提供的原理图,后续自行决定哪些导线或电缆会被纳入这些路径。

在大多数情况下,CoDesigner 创建的布线路径配合所提供的原理图数据,足以让 SOLIDWORKS 选择合适的导线/电缆进行路径分配。但也可能出现 SOLIDWORKS 为某根在 ECAD 中指定了路径的电缆或导线选择了另一条路径的情况。若发生这种情况,则必须在 MCAD 中进行手动布线修正。

在 MCAD 中收集线束设计以发送到 ECAD

  • 从 MCAD 发送到 ECAD 的关键信息是导线、电缆以及 bundle segments 的长度。

  • 导线、电缆、组件及其连接关系可直接从 MCAD 端模型读取。连接点与 bundle segments 在 MCAD 模型中并不存在,因此需要从保存在属性中的数据获取。

  • 电缆与导线的长度通过 MCAD API 从相应的导线与电缆对象获取;如果导线/电缆也已完成布线,则该长度应是正确的。

Note:对于 SOLIDWORKS,MCAD CoDesigner 获取到的线束导线/电缆长度是裁切长度(cutting length)。也就是说,它包含导线或电缆在连接器内部的长度。

  • 线束分支段(bundle segment)的长度并不是 MCAD 直接提供的。为了获得该长度,CoDesigner 会先在该线束模型中查找并识别所有分段点(segment points),然后通过 MCAD API 获取沿着路径(route)点与点之间的距离。如果某些点未包含在线段导线/电缆的布线路径中,则该过程可能失败。

Note:线段长度由其中每根电缆/导线的长度计算得出。如果同一线段内不同电缆的长度不同,则选择最短的那一根。

Note:MCAD CoDesigner 在用户界面中有一张表,用于汇总计算得到的长度。用户可以覆盖该表中的计算值;如果设置了用户值,则将使用用户值。

使用 ECAD 变更更新 MCAD 线束设计

  • 在 MCAD 端,CoDesigner 会接受设计中的所有变更,但连接器位置变更除外(CoDesigner 会忽略位置变化,继续使用初始放置时的位置)。

  • 如果原理图发生变化,CoDesigner 将重新导入 FromToTable 并相应更新布线。不过,如果仅属性发生变化,CoDesigner 只会应用属性变更。

  • 连接点(connection point)的变更属于一种特殊情况:From-To 表不会被重新导入(因为它实际上并未改变)。然而,连接点的变更意味着导线应当重新布线。该行为可用作有意触发重新布线的手段。例如,若用户在 MCAD 端删除一个连接点并再次 Pull 线束,则在应用变更时,经过被删除连接点的电缆/导线将被重新布线。这可作为修复特定导线布线的技巧。

  • 另一个需要注意的情况是:当连通性发生变化时,只会按需执行部分重新布线;但 MCAD 端原理图会被完整更新(因为 CoDesigner 无法请求部分原理图更新)。

  • 在 ECAD 中,唯一可应用的传入变更是导线、电缆以及线束分支段的长度变更。长度变更会作为相应对象的属性应用,不会更改 ECAD 端的几何形状。

线束同步问题故障排查

问题的常见原因

由于 MCAD 端的限制,以及 ECAD 与 MCAD 在线束建模方式上的本质差异,并非每个 ECAD 线束设计都能在 MCAD 中正确构建。当线束无法在 MCAD 中正确构建时,就需要在 ECAD 中对线束设计进行修改。MCAD CoDesigner 会在从 ECAD Push 时尝试识别此类情况,但可能无法识别所有情况,因此可能需要进行精确排查,以确定不受支持的 ECAD 设计元素。

SOLIDWORKS PDM 环境下工作的注意事项

  • 在 SOLIDWORKS PDM 中工作的标准规则是:所有可能会被更改的文件,应在更改前签出(check out),并在所有更改完成后签入(check in)。

  • 对于线束变更,该规则适用于:线束零件(harness part)以及线束设计流程中涉及的所有 XML 文件,即 cables.xmlcomponents.xmlxxx-fromToList.xmlxxx-segmentList.xml。如果其中某个文件未签出,则在应用线束设计变更时可能出现不可预测的错误,或当其他 PDM 用户访问该设计时出现问题。

  • 对于首次线束 pull,如果使用了 CoDesigner 公共组件文件夹,请确保在 pull 之前已签出 components.xml

SOLIDWORKS:更改连接器(包括添加多个连接点)

  • 在 SOLIDWORKS 中为连接器创建新的连接点或重新定义现有连接点后,需要在(线束装配体上下文中)运行 SOLIDWORKS 的 Re-Import From/To 命令,然后使用与该线束装配体对应的 From-To .xlsx 文件对其进行 Rebuild 。

  • 如果添加了新的连接点,还需要绘制新的样条线(splines)到新创建的连接点。

首次 Pull 失败时

如果在 MCAD 中首次 pull 或线束更新无法正常工作,建议检查以下内容:

  1. 是否有可用的线束许可证供用户使用?(用户必须为 Pro 或 Enterprise 级别)
  2. 从 ECAD push 线束设计时是否有任何警告?(如有,务必修复)
  3. MCAD 软件是否具备支持线束设计功能的合适许可证?(如不确定,用户应尝试手动创建线束)
  4. 将线束设计 pull 到 MCAD 时是否显示任何错误?例如,如果某些导线/电缆无法布线,可能需要检查其线径/最小弯曲半径参数)
  5. 如果使用 SOLIDWORKS PDM,请确保在进行线束更新/首次 pull 之前,所有与线束相关的文件(包括库文件)都已签出。
  6. 如果出现不一致的行为,请阅读日志中的错误与警告,以帮助识别可能的根因。
  7. 对于 SOLIDWORKS,可能存在导线/电缆未自动布线的情况,因此值得在 “Edit Route”->“Edit wires” 面板中进行验证。在此处,如果导线/电缆有警告或长度为零,可能需要通过选择导线应布线的路径段来手动布线。

将变更发送到 ECAD

如果从 ECAD 的首次 pull 成功,但线束无法正确回传到 ECAD,可能是因为在 MCAD 中进行了不受支持的更改。为避免出现这种情况,在 MCAD 中应避免以下操作:

  1. 不要删除或重命名 MCAD CoDesigner 创建的连接点(基本上,不要更改线束拓扑)。
  2. 不要在 MCAD 中更改线束原理图,即不要添加/删除/重命名连接器、导线或电缆。
  3. 不要更改电缆或导线属性(这些不会同步回 ECAD)。
  4. 不要更改由 CoDesigner 创建的连接器入口点(entry point)的连接器引脚/入口点名称。
  5. 在从 MCAD push 变更之前,确保 MCAD 中未高亮显示任何线束不一致之处。
  6. 在 Creo 中,如果设计中包含电缆,请确保手动布线从电缆端部到连接器引脚的导线(可通过选择电缆并执行布线来进行手动布线)。
  7. 对于 SOLIDWORKS,在故障排查范围内,建议核实将布线路段分配给特定导线的情况。在某些边界场景下,该分配可能不正确,可能需要手动修复。

使用来自 ECAD 的变更更新 MCAD 设计

  1. 使用 ECAD 变更更新线束设计时,如果移除了线束节点(连接点/连接器),可能会导致丢失 MCAD 端布线。无论 MCAD CoDesigner 是否应当正确应用此类移除变更,都建议避免进行此类更新。

  2. 在使用 ECAD 变更更新 MCAD 设计之前,建议确保 MCAD 端线束设计一致(MCAD 未检测到警告/错误)。

  3. 通常建议在应用新变更之前保存 MCAD 线束装配体,以便在需要时可以回滚到先前状态。

  4. 如果 CoDesigner 无法将线束变更从 ECAD pull 到 Creo(显示错误消息),可能需要删除模型中的物理电缆以及对应的线轴(spool),然后再次 pull 变更。之后需要从模型树中重新布线该电缆。

  5. 如果电缆或导线的连通性或布线发生变化,MCAD CoDesigner 可能会对其重新布线,从而导致附着在电缆或导线布线路径上的 MCAD 实体变得松散/脱离。

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
功能可用性

您可使用的功能取决于您所选择的 Altium 解决方案 —— Altium DevelopAltium Agile(Agile Teams 或 Agile Enterprise 版本),或仍在有效订阅期内的 Altium Designer。

如果您在软件中未找到文中提及的功能,请联系 Altium 销售团队了解更多信息。

Content