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 布线以及组件定义方面差异很大。
差异总结如下:
-
SOLIDWORKS 会将同一路径上的所有电缆/导线打包为一个单一束(bundle),并且建议不要区分连接器引脚。因此,MCAD CoDesigner 不会为每个组件上的每个引脚创建独立的连接点(这是遵循 SOLIDWORKS 的建议)。另一方面,Creo 试图精确建模每根电缆/导线与连接器。因此当 MCAD CoDesigner 拉取设计时,会为每个 Creo 引脚创建一个连接点。
-
SOLIDWORKS 的布线基于受约束的 3D 样条曲线(本质上是用于定义布线路径的标准 SOLIDWORKS 实体),而 Creo 使用专用于导线和电缆的特定实体。
-
SOLIDWORKS 具有独立的电缆与连接器库,这些库由 MCAD CoDesigner(以及用户)创建/维护。库定义可用的导线与连接器(包括其引脚),可在项目间使用与共享。从技术上讲,这些库是 XML(用于导线)以及 XML + .sldprt(用于连接器)。
目前 CoDesigner 不支持 Creo 的共享 MCAD 库,而是在装配体内直接将电缆/导线类型定义为 Spool。在 Creo 中,连接器也是独立模型,这些模型可单独使用,无需注册到任何库中。 -
除线束部件外,SOLIDWORKS 还会将线束信息保存在 xxx-fromToList.xml 和 xxx-segmentList.xml 文件中。CoDesiger 不会直接使用这些信息,但 SOLIDWORKS 需要这些文件才能与线束设计保持一致地工作。
线束项目统一模型
MCAD CoDesigner 用于在 ECAD 与 MCAD 之间交换线束的统一模型,本质上反映了在 Altium Designer 中创建的线束对象模型。
统一线束模型包含以下对象:
-
导线(Wires)
-
电缆(Cables,包含导线)
-
双绞线对(Twisted pairs,在 ECAD 中被视为电缆的一种特殊情况)
-
连接器(Connectors:端子、未连接点、拼接或直通拼接)
-
束段(Bundle segments:在布线路径的某一段将电缆与导线进行捆扎)
-
连接点(Connection points:线束布局中的固定点,用于定义布线路径的特定段)
设计约定与假设
-
从 CoDesigner 的角度,电缆被视为包含多根导线的标准部件。电缆内部不再捆扎其他电缆;捆扎通过束段来实现。
-
最小弯曲半径与厚度是电缆和导线的重要物理属性,它们决定了可能的布线方式(以及无法布线的情况)。
-
用于线束设计的连接器组件不用于 PCB 设计。
-
连接器组件在 ECAD 侧的封装中应包含 3D 模型。
-
物理引脚仅在 MCAD 侧的连接器模型中指定。
-
ECAD 侧定义的连接点用于在布线路径上将独立导线/电缆捆扎在一起。可将其视为导线/电缆集合路径上的虚拟“扎带/卡扣”。以这种方式捆扎有助于避免不正确的布线,例如导线/电缆彼此干涉。
-
“未连接(Not-connected)”导线应以“未连接”端子结束,即以一个组件作为终点。该组件没有物理实体,但用于定义未连接导线端点的精确位置。
-
电缆的长度等于其内部最长导线的长度。
-
电缆/导线路径上各束段长度之和始终小于该电缆/导线的长度。这是因为束段仅描述电缆/导线布线中被捆扎的部分。
-
在 SOLIDWORKS 中(遵循 SOLIDWORKS 建议),CoDesigner 仅为连接器创建一个作为入口点的单一引脚。如有需要,用户可重新定义连接器以指定多个连接点及其关联引脚。
线束支持的限制与要求
-
CoDesigner 不支持在 MCAD 侧更改线束原理图或拓扑。
-
若使用 SOLIDWORKS PDM,线束库需要手动管理。修改前应签出线束 XML 文件,修改后应签入。若计划更新连接器,也应将其签出。
-
Creo 支持 DMS 映射;对 SOLIDWORKS 的支持将在 CoDesigner 3.12 版本中加入。
-
在 3.12 之前的 CoDesigner 版本中,连接器模型名称基于 ECAD 封装名称。从 CoDesigner 3.12 起,连接器模型名称基于 Naming of component models that are transferred from ECAD to MCAD 选项,该选项在 Workspace Administrator Settings 的 MCAD CoDesigner 页面中配置。
-
对于 SOLIDWORKS,必须在 PC 上安装 MS Excel 才能进行线束同步,并且 SOLIDWORKS 许可证等级必须支持 SOLIDWORKS Routing。
-
对于 Creo,Creo 许可证包中应包含线束(harness)许可。
-
CoDesigner 不使用导线或电缆的 types,而是为每根导线或每条电缆创建一个独立的 type,并以其位号命名(即使该电缆/导线的属性与其他导线/电缆完全相同)。
使用 SOLIDWORKS 库
-
Solidworks Routing 库内容存储在 cable.xml 和 components.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 侧。
MCAD 中初次拉取(Initial Pull)的工作方式
在 MCAD 中,线束的初始拉取流程可以视为一个多阶段过程,包含以下步骤:
-
创建线束装配(它只是一个装配体,类似于 PCB 装配)
-
在已创建的装配体中放置连接器(并在需要时创建连接器),其位置在 X-Y 平面上应与 ECAD 布局图对应。也就是说,连接器原点应与布局图处于相同的 X-Y 位置,并且连接器 Z 轴方向应与装配体 Z 轴方向一致:
-
连接器是由 Parasolid 模型创建的 MCAD 零件。模型由 ECAD 提供,并以 ECAD 元件所用封装(footprint)的名称命名(如果 ECAD 能提供的话)。
-
或者,不使用 ECAD 模型来创建连接器零件,而是通过 CoDesigner 的元件映射设置,将连接器映射到现有的 MCAD 连接器零件。
-
如果 MCAD 端尚不存在该连接器零件,则会按如下方式基于 ECAD 模型自动创建:
-
对于 Creo:零件由 ECAD 提供的 Parasolid 模型创建(如果未提供模型,则使用空模型)。在该零件中,每个连接器引脚都建模为一个坐标系,位于 X-Z 平面上并排成一行(间距 0.1 英寸),其朝向与默认零件坐标系的朝向一致。此外,还会创建一个用于连接进入电缆的坐标系,专门命名为 ‘CS0’,其 X 坐标位于引脚行的中间位置,并在 X 与 Z 坐标方向上具有相等的偏移量(即引脚行越长,引脚行到 CS0 的距离越大)
-
对于 SOLIDWORKS:流程类似,但有以下差异:
-
非 splice 的连接器引脚不会建模为物理连接点。相反,只创建一个连接点,引脚以“虚拟”的方式与之关联(同一个点也用于将电缆连接到连接器)。该连接点引脚定义为垂直于 Front 平面,且相对原点在 X 方向偏移 100 mil、在 Y 方向偏移 100 mil。引脚方向与 Z 轴相反。
-
创建的连接器(包括其“虚拟”引脚信息)会注册到 SOLIDWORKS 连接器库中(components.xml),以便 SOLIDWORKS 进一步将该零件识别为组件。请参阅 SOLIDWORKS Connectors Properties Format。
-
-
-
‘Splice’ 和 ‘Not-connected’ 实体也会建模为连接器并注册到连接器库(components.xml)中,但不包含实体本体(仅包含连接点)。这些实体的零件名称基于 ECAD ID 命名。这些零件旨在项目专用,不应在不同项目之间共享。
-
在 Creo 和 SOLIDWORKS 中,splice 都建模为连接器。每个引脚单独建模。这些引脚的朝向与连接器引脚相同,沿 Y 轴方向排成一行,间距 100 mil。
-
直通 splice(或 Tap)与 splice 的建模方式类似,但对于绕过 splice 的那根线不建模任何连接器。此类导线没有精确的连接点,但后续可以通过 splice 位置进行布线。
-
-
-
当所有连接器都放置到装配体中后,将原理图(即 From-To 表)导入到 MCAD 设计中。原理图导入是 MCAD 内部流程,CoDesigner 只是准备待导入的数据并执行导入。Creo 与 SOLIDWORKS 在此步骤中的处理差异很大。
-
对于 Creo:
-
线束零件由 MCAD CoDesigner 在线束装配中创建。
-
MCAD CoDesigner 准备 neutral format wirelist (NWF) 文件并将其导入线束(NWF Specification,NWF)。
-
基于导入的逻辑数据创建逻辑导线/电缆与线轴(spool)(逻辑实体在模型中没有几何形体)。
-
-
对于 SOLIDWORKS:
-
在临时文件夹(Windows temp 文件夹)中创建一个准备好的 Excel From-To 表文件,用于登记连接器的连通性(example of Excel table format)。
-
准备一个 cable.xml 文件(本质上是一个库),用于登记项目电缆(参见 Cable properties format)。
Note:不同于组件库,电缆库(cables.xml)应为项目专用,不在项目之间共享。该 XML 文件创建在项目文件夹中。 -
执行 Import From-To(Start from From-To)命令,并指定参数:Excel From-To 表、Cable.xml 文件和 Components.xml 文件,以创建线束零件。该零件将使用上面创建的装配体中的默认线束模板创建。
-
导入的组件与电缆将被 SOLIDWORKS 识别并在逻辑上连接(不包含精确的电缆走线路径)。不过,这不仅仅是将原理图数据导入 MCAD 模型(如 Creo 的方式),而是创建线束零件,并生成用于后续线束布线几何的“线框”。具体而言,会在线束零件中创建线束草图以及连接器的连接点(草图中的特殊线段)。
Note: SOLIDWORKS 的线束实现要求 PC 上安装 MS Office,这使得 SOLIDWORKS 能导入 CoDesigner 准备的 XLS 文件。
-
-
-
接下来,使用布局图中的坐标在设计中创建连接点(ECAD 术语)。
-
对于 Creo:连接点创建为基准点(datum points)。
-
对于 SOLIDWORKS:连接点在线束的 3D 草图中创建为线段。线段长度为 40 mil,每段线的中心位于连接点上,线段本身与草图的 Y 轴平行。
-
-
连接点与线束段(bundle segment)信息会保存在 MCAD 模型的特定装配属性中。这些属性由 MCAD CoDesigner 管理,不应由用户手动编辑。
-
在 Creo 中,它们保存在属性:AltiumMCAD_ConnectionPoints 和 AltiumMCAD_BundleSegments。
-
在 SOLIDWORKS 中,它们保存在属性:ConnectionPointsStorage 和 BundleSegmentsStorage。
-
-
MCAD 端线束拉取流程的最后阶段是电缆与导线的布线。需要说明的是,它们不会仅基于 From-To 表自动布线,因为还必须考虑 From-To 表中未提及的连接点与 tap 点(本质上也要把 ECAD 端的 bundle segments 纳入考虑)。
-
对于 Creo:CoDesigner 使用线束 API 来执行:
-
将每根电缆/导线从起始连接器布线到终止连接器,并经过上一步创建的连接点(要使用的连接点会基于从 ECAD 获取的 bundle segment 数据识别)。
-
导线从连接器引脚到连接器引脚进行布线;而电缆则从连接器的电缆入口端口(由 CS0 表示)布线到另一个电缆入口端口。电缆内部的导线不会自动布线,可按需手动布线。
-
为保证此步骤的一致性,CoDesigner 必须在每个连接器上找到正确的连接点(引脚),并且 MCAD 必须能够在给定的线径/最小弯曲半径以及布线点间距等约束下完成导线/电缆布线。如果无法在这些约束内完成布线,则不会布线并会报告错误。
-
-
对于 SOLIDWORKS:布线按如下方式进行:
-
在 SOLIDWORKS 中打开布线草图与布线本身进行编辑。
-
对每根独立导线/电缆进行布线。
-
要布线电缆/导线,第一步是识别 from/to 连接器以及相关连接器的连接点。
-
然后根据该导线/电缆所属的 bundle segments,确定该导线/电缆经过的草图点序列。
-
接着调用自动布线(autorouting)。
-
-
-
在 MCAD 中收集线束设计以发送到 ECAD
-
从 MCAD 发送到 ECAD 的关键信息是导线、电缆以及 bundle segments 的长度。
-
导线、电缆、组件及其连接关系可直接从 MCAD 端模型读取。连接点与 bundle segments 在 MCAD 模型中并不存在,因此需要从保存在属性中的数据获取。
-
电缆与导线的长度通过 MCAD API 从相应的导线与电缆对象获取;如果导线/电缆也已完成布线,则该长度应是正确的。
-
线束分支段(bundle segment)的长度并不是 MCAD 直接提供的。为了获得该长度,CoDesigner 会先在该线束模型中查找并识别所有分段点(segment points),然后通过 MCAD API 获取沿着路径(route)点与点之间的距离。如果某些点未包含在线段导线/电缆的布线路径中,则该过程可能失败。
使用 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.xml、components.xml、xxx-fromToList.xml 和 xxx-segmentList.xml。如果其中某个文件未签出,则在应用线束设计变更时可能出现不可预测的错误,或当其他 PDM 用户访问该设计时出现问题。
-
对于首次线束 pull,如果使用了 CoDesigner 公共组件文件夹,请确保在 pull 之前已签出 components.xml。
SOLIDWORKS:更改连接器(包括添加多个连接点)
-
在 SOLIDWORKS 中为连接器创建新的连接点或重新定义现有连接点后,需要在(线束装配体上下文中)运行 SOLIDWORKS 的 Re-Import From/To 命令,然后使用与该线束装配体对应的 From-To .xlsx 文件对其进行 Rebuild 。
-
如果添加了新的连接点,还需要绘制新的样条线(splines)到新创建的连接点。
首次 Pull 失败时
如果在 MCAD 中首次 pull 或线束更新无法正常工作,建议检查以下内容:
- 是否有可用的线束许可证供用户使用?(用户必须为 Pro 或 Enterprise 级别)
- 从 ECAD push 线束设计时是否有任何警告?(如有,务必修复)
- MCAD 软件是否具备支持线束设计功能的合适许可证?(如不确定,用户应尝试手动创建线束)
- 将线束设计 pull 到 MCAD 时是否显示任何错误?例如,如果某些导线/电缆无法布线,可能需要检查其线径/最小弯曲半径参数)
- 如果使用 SOLIDWORKS PDM,请确保在进行线束更新/首次 pull 之前,所有与线束相关的文件(包括库文件)都已签出。
- 如果出现不一致的行为,请阅读日志中的错误与警告,以帮助识别可能的根因。
- 对于 SOLIDWORKS,可能存在导线/电缆未自动布线的情况,因此值得在 “Edit Route”->“Edit wires” 面板中进行验证。在此处,如果导线/电缆有警告或长度为零,可能需要通过选择导线应布线的路径段来手动布线。
将变更发送到 ECAD
如果从 ECAD 的首次 pull 成功,但线束无法正确回传到 ECAD,可能是因为在 MCAD 中进行了不受支持的更改。为避免出现这种情况,在 MCAD 中应避免以下操作:
- 不要删除或重命名 MCAD CoDesigner 创建的连接点(基本上,不要更改线束拓扑)。
- 不要在 MCAD 中更改线束原理图,即不要添加/删除/重命名连接器、导线或电缆。
- 不要更改电缆或导线属性(这些不会同步回 ECAD)。
- 不要更改由 CoDesigner 创建的连接器入口点(entry point)的连接器引脚/入口点名称。
- 在从 MCAD push 变更之前,确保 MCAD 中未高亮显示任何线束不一致之处。
- 在 Creo 中,如果设计中包含电缆,请确保手动布线从电缆端部到连接器引脚的导线(可通过选择电缆并执行布线来进行手动布线)。
- 对于 SOLIDWORKS,在故障排查范围内,建议核实将布线路段分配给特定导线的情况。在某些边界场景下,该分配可能不正确,可能需要手动修复。
使用来自 ECAD 的变更更新 MCAD 设计
-
使用 ECAD 变更更新线束设计时,如果移除了线束节点(连接点/连接器),可能会导致丢失 MCAD 端布线。无论 MCAD CoDesigner 是否应当正确应用此类移除变更,都建议避免进行此类更新。
-
在使用 ECAD 变更更新 MCAD 设计之前,建议确保 MCAD 端线束设计一致(MCAD 未检测到警告/错误)。
-
通常建议在应用新变更之前保存 MCAD 线束装配体,以便在需要时可以回滚到先前状态。
-
如果 CoDesigner 无法将线束变更从 ECAD pull 到 Creo(显示错误消息),可能需要删除模型中的物理电缆以及对应的线轴(spool),然后再次 pull 变更。之后需要从模型树中重新布线该电缆。
-
如果电缆或导线的连通性或布线发生变化,MCAD CoDesigner 可能会对其重新布线,从而导致附着在电缆或导线布线路径上的 MCAD 实体变得松散/脱离。