Understanding Harness Synchronization – Advanced Users
利用できる機能は、Altium 製品のアクセスレベルによって異なります。Altium Designer ソフトウェア サブスクリプション の様々なレベルに含まれる機能と、Altium 365 プラットフォーム で提供されるアプリケーションを通じて提供される機能を比較してください。
ソフトウェアの機能が見つからない場合は、Altium の営業担当者に連絡して 詳細を確認してください。
How MCAD CoDesigner supports Harness Design Copy Link Copied
MCAD CoDesigner’s Harness support integrates the ECAD and MCAD models of the harness. The goal is to allow the harness geometry to be designed in MCAD and then transferred back to ECAD, as the physical parameters (lengths) of the harness elements.
The common (and essentially similar) element between the ECAD and MCAD environments is that the schematic/wiring diagram of the harness is essentially the same for both sides of the harness model exchange. However, the physical model is different between ECAD and MCAD(s). On the ECAD side, there is no exact physical model of the harness, while on the MCAD side, the physical model is created (generated) by MCAD CoDesigner, based on data provided from the ECAD side (connector models, harness topology, and harness object parameters).
On the ECAD side, the source of data for the harness model is the layout diagram in the harness project. This diagram is flat and not of real harness proportions, but contains topology as well as the internal schematic of the harness, which is used to build the draft harness physical model on the MCAD side.
Initial MCAD CoDesigner harness support is for Creo and Solidworks. While both implementations might be considered similar in terms of the wiring diagram definition, they are quite different in terms of the 3D routing of cables and wires and component definitions.
Summarizing their differences:
-
SOLIDWORKS bundles every cable\wire on the same route into a single bundle, and also recommends that you do not distinguish connector pins. Subsequently, MCAD CoDesigner does not create separate connection points for every pin on each component (this is as per SOLIDWORKS recommendations). On the other hand, Creo attempts to model each cable\wire and connector precisely. So when MCAD CoDesigner pulls the design, it creates a connection point for every Creo pin.
-
SOLIDWORKS routing is based on constrained 3D splines (which are basically just standard SOLIDWORKS entities that define routing paths), while Creo uses specific entities for wires and cables.
-
SOLIDWORKS has separate libraries of cables and connectors that are created/maintained by MCAD CoDesigner (and the user). Libraries define available wires and connectors (including their pins), which can be used and shared between projects. Technically, these libraries are XMLs (for wires) and XMLs+.sldprt(s) for connectors.
At the moment CoDesigner does not support shared MCAD libraries for Creo, instead defining the type of cable\wire directly inside the harness assembly as a Spool. In Creo, the connectors are also separate models, and these models can be used separately without any requirement to be registered in any library. -
In addition to the harness part, SOLIDWORKS saves harness information in xxx-fromToList.xml and xxx-segmentList.xml files. CoDesiger does not use this information directly, but SOLIDWORKS requires these files to work consistently with the harness design.
Harness Project Unified Model
The unified Model used by MCAD CoDesigner to exchange the harness between ECAD and MCAD essentially reflects the harness object Model created in Altium Designer.
The unified harness Model contains the following objects:
-
Wires
-
Cables (that contain wires)
-
Twisted pairs (in ECAD these are considered a corner case of cables)
-
Connectors (terminal, non-connected points, splice, or inline splice)
-
Bundle segments (that are bundling cables and wires on a segment of their routing path)
-
Connection points (these are fixed points in the harness layout to define specific segments of the routing path)
Design Agreements and Assumptions
-
From CoDesigner's perspective, cables are considered standard parts that include several wires. Cables do not bundle other cables inside; for bundling purposes, bundle segments are used.
-
Minimum bending radius and thickness are important physical properties for cables and wires. They define possible routing (and cases where routing is impossible) for wires and cables.
-
Connector components used for harness design are not used for PCB design.
-
Connector components should have a 3D model in their footprint on the ECAD side.
-
Physical pins are specified in the connector model in MCAD only.
-
Connection points defined on the ECAD side are the way to bundle separate wires/cables on their routing path. They can be considered as virtual ‘tie clamps’ on the route of the wires/cables set. Bundling a set of wires/cables this way may help to avoid improper routing, where wires/cables are clashing with each other.
-
A ‘Not-connected’ wire should end with a ‘Not-connected’ terminal, that is the component. That component has no physical body, but defines the exact location where the not-connected wire end will be.
-
A cable is as long as the longest wire inside it.
-
The summary length of bundle segments on the cable\wire route is always less than the length of this cable\wire. This is caused by the fact that bundle segments are describing just the bundled parts of the cable\wire routing.
-
In SOLIDWORKS (as per SOLIDWORKS recommendations), CoDesigner creates just a single pin as an entry point for a connector. The user may redefine the connector to specify more than one connection point, with associated pins, if required.
Limitations and Requirements of Harness Support
-
CoDesigner does not support MCAD side changes to the harness schematics or topology.
-
If working with SOLIDWORKS PDM, harness libraries should be managed manually. The harness XML files should be checked out before modifications and checked in after modifications. If connectors are planned to be updated, they should be checked out, too.
-
DMS mapping is supported in Creo.
-
Connector models are named based on the ECAD footprint name.
-
For SOLIDWORKS, MS Excel must be installed on the PC for harness synchronization to work, and the SOLIDWORKS license level must support SOLIDWORKS routing.
-
For Creo, the harness license should be in the pack of Creo licenses.
-
CoDesigner does not operate with types of wires or cables, it creates a separate type for every wires or cable, named by its designator (even for cable\wire properties that are totally the same as other wires/cables).
Working with SOLIDWORKS Libraries
-
Solidworks routing library content is stored in cable.xml and components.xml files with related component models.
-
MCAD CoDesigner always uses its own cable.xml, which is project-specific (different for every project), and its own components.xml, which can be shared between projects (even shared with non-CoDesigner projects).
-
Components.xml is stored in the project folder, or in the common components folder (if the folder has been defined in the MCAD CoDesigner options). The component models that this XML is referencing are placed in the same folder as the Components.xml file.
-
CoDesigner uses these library files during initial pull/push/applying changes operations, and this may cause changes to the current library files settings in SOLIDWORKS. So for the case where non-CoDesigner specific libraries are needed (for example if a user wants to use a non-CoDesigner harness assembly), the MCAD engineer may be required to make sure that the proper default libraries are set.
Not-connected Wires Modeling Peculiarities
-
On the ECAD wiring diagram, a Not-connected wire should be connected with a Not-connected entity.
-
On the ECAD layout diagram, the connection point associated with a specific Not-connected entity of the wiring diagram should be created, as should the bundle segment that will lay the not-connected wire to this point.
-
On the MCAD side, a separate connector model will be created for each ‘not-connected’ connection point. Basically, the MCAD side behavior of a not-connected wire will be the same as the behavior of a connected wire, with the only difference being that the ‘connector’ for a not-connected wire exists on the MCAD side only.
How the Initial Pull works in MCAD
In MCAD, the initial pull procedure for a harness can be considered as a multi-staged process, consisting of the following steps:
-
Harness assembly creation (it is just an assembly, similar to a PCB assembly)
-
Connector placement (and as needed, creation), inside of the created assembly, in positions that correspond to the ECAD layout diagram in the X-Y plane. That is, the connector origin should lay in the same X-Y position as the layout diagram, and connector Z-axis will have the same direction as the assembly Z-axis:
-
The connectors are MCAD parts created from Parasolid models. The models are provided by ECAD, and named with the name of the footprint used for the ECAD component (if ECAD is able to provide them).
-
Alternatively, instead of using the ECAD model to create the connector part, the connector can be mapped to an existing MCAD connector part, using the CoDesigner component mapping settings.
-
If the connector part does not yet exist on the MCAD side, its part is created automatically from the ECAD model in the following way:
-
For Creo, the part is created from the Parasolid model provided by ECAD (if no model is provided, then an empty model is used). In this part, every connector pin is modeled as a coordinate system, located in the X-Z plane in a row (0.1 inches apart), oriented the same way as the default part coordinate system is oriented. In addition, a coordinate system for attaching the incoming cable is created, specifically named ‘CS0’, located in the middle of the row of pins by an X coordinate, with equal offsets by X and Z coordinates (i.e. for longer pin rows, the distance from the pin row to CS0 is bigger)
-
For SOLIDWORKS, the procedure is similar, with the following differences:
-
Non-splice connector pins are not modeled as physical connection points. Instead, just a single connection point is created, where pins are associated virtually (and the same point is also used to attach cables to their connector). The connection point pin is defined as normal to the Front plane, with 100 mils offset by X and 100 mils offset by Y from the origin. The direction of the pin is opposite to the Z axis.
-
The created connector (including information about its ‘virtual’ pins) is registered in the SOLIDWORKS library (components.xml), to let SOLIDWORKS further recognize the part as a component. Refer to the SOLIDWORKS Connectors Properties Format.
-
-
-
‘Splice’ and ‘Not-connected’ entities are also modeled as a connector and registered in the connectors library (components.xml) but without a body (just with connection points). The parts for these entities are named based on the ECAD IDs. These parts are intended to be project-specific and are not supposed to be shared between different projects.
-
In both Creo and SOLIDWORKS splices are modelled as connectors. Each pin is modeled separately. These pins are oriented the same way as connector pins, in one row along the Y-axis, with 100 mil spacing between them.
-
In-line splices (or Taps) are modeled similarly to a splice, without any connector for a wire that bypasses the splice. Such a wire has no exact connector points, but can later be routed via splice locations.
-
-
-
Once all the connectors are placed in the assembly, the schematic (i.e. From-To table) is imported into the MCAD design. The schematics import is an internal MCAD process, CoDesigner just prepares the data to be imported and executes it. Creo and SOLIDWORKS cases are significantly different in this step.
-
For Creo:
-
The harness part is created in a harness assembly by MCAD CoDesigner.
-
The neutral format wirelist (NWF) file is prepared by MCAD CoDesigner and imported into the harness (NWF Specification, NWF).
-
Logical wires/cables and spools are created, based on imported logical data (logical entities have no geometry in the model).
-
-
For SOLIDWORKS:
-
In a temporary folder (Windows temp folder) a prepared Excel From-To table file is created, where the connectivity of the connectors are registered (example of Excel table format).
-
A cable.xml file (essentially a library) is prepared, where project cables are registered (refer to the Cable properties format).
Note: unlike the components library, the cables library (cables.xml) is supposed to be project-specific, not shared between projects. This XML file is created in the project folder. -
Execute the Import From-To (Start from From-To) command, with parameters of: Excel From-To table, Cable.xml file and Components.xml file, to create the harness part. The part will be created using the default harness template in the assembly created above.
-
The imported components and cables will recognized by SOLIDWORKS and connected logically (without exact cable routing). However, it is not just an import of schematic data into the MCAD model (as it is for Creo), but the creation of the harness part, with a ‘wireframe’ for further harness routing geometry. In particular, in the harness part the harness sketch and connector’s connection points (special lines in the sketch), are created.
Note: SOLIDWORKS harness implementation requires MS Office to be installed on the PC. This allows SOLIDWORKS to import the XLS files that CoDesigner prepares.
-
-
-
Next, connection points (in ECAD terms) are created in the design, using coordinates from the layout drawing.
-
For Creo, connection points are created as datum points.
-
For SOLIDWORKS, the connection points are created as line segments in the 3D sketch of the harness. The line segments are 40 mils long, and the center of each segment lies on the connection point. The segment itself is parallel to the sketch's Y-axis.
-
-
Connection points and bundle segment information are saved in specific assembly properties of the MCAD model. These properties are managed by MCAD CoDesigner and are not supposed to be user-edited.
-
In Creo, they are saved in the properties: AltiumMCAD_ConnectionPoints and AltiumMCAD_BundleSegments.
-
In SOLIDWORKS they are saved in the properties: ConnectionPointsStorage and BundleSegmentsStorage.
-
-
The last stage of the harness pull process on the MCAD side is the routing of cables and wires. It is worth mentioning that they are not routed automatically based on the From-To table, having to also take into consideration connection points and tap points that are not mentioned in the From-To table (basically, incorporating the ECAD-side bundle segments as well).
-
For Creo, using the harness API CoDesigner is:
-
Routing each cable/wire from start to end connector, through connection points created in the previous step (connection points to use are recognized based on bundle segment data obtained from ECAD).
-
Wires are routed from connector pin to connector pin, however, cables are routed from the connector cable entry port (represented by CS0) to another cable entry port. Wires that are inside the cable are not routed automatically and can be manually routed as needed.
-
For consistency in this step, it is important for CoDesigner to find the proper connection points (pins) on each connector, and for MCAD to be able to route the wire\cable within the constraints given by the thickness\min bending radius and distance between routing points. If it is not possible to route the wire\cable within the given constraints, it will not be routed and an error will be reported.
-
-
For SOLIDWORKS, the routing happens in the following way:
-
The routing sketch and the routing itself are opened for editing in SOLIDWORKS.
-
Each standalone wire\cable is routed.
-
To route the cable\wire, the first step is to identify from\to connectors and related connector’s connection points.
-
Then according to the bundle segments where the wire\cable is identified, the sequence of sketch points that the wire\cable is going through, are defined.
-
Next autorouting is invoked.
-
-
-
Collecting the Harness Design in MCAD to send to ECAD
-
The key information sent from MCAD to ECAD is the length of wires, cables, and bundle segments.
-
Wires, cables, components, and their connections are directly read from the MCAD side model. Connection points and bundle segments do not exist in the MCAD model, so they are obtained from data saved in properties.
-
The length of cables and wires is obtained from corresponding wires and cables using the MCAD API, and if the wire\cable is routed as well, then the length should be correct.
-
The length of a bundle segment is not something that MCAD provides directly. To get this length, CoDesigner first finds and identifies all of the segment points in the harness model, then asks the MCAD API for the distance between points along the route. This process may fail if some points are not included in the segment wire\cable routing.
Updating the MCAD Harness Design with ECAD Changes
-
On the MCAD side, CoDesigner accepts all changes in the design, except changes in connector positions (CoDesigner ignores position changes, using positions from the initial placement).
-
If the schematic is changed, CoDesigner will reimport the FromToTable and update the routing accordingly. However, if only properties are changed, CoDesigner only applies property changes.
-
A change in a connection point is a special case where the From-To table is not reimported (because it has not actually changed). However, a change in a connection point means the wires should be re-routed. This behavior can be used as an intentional trigger to re-route. For example, if the user removes a connection point on the MCAD side and Pulls the harness again, when the changes are applied the cables\wires through the removed connection point will be re-routed. This can be used as a technique to repair routing for specific wires.
-
Another case to note is when there are connectivity changes, only partial re-routing is performed as needed, however the MCAD side schematic is fully updated (as CoDesigner is not able to request a partial schematic update).
-
In ECAD, the only incoming change that can be applied is a length change for wires, cables and bundle segments. Length change is applied as a property of the corresponding objects, no ECAD-side geometry is changed.
Troubleshooting Harness Synchronization Issues Copy Link Copied
Common Reasons for Issues
Due to the MCAD side limitations and the essential differences in the way that the harness is modeled in ECAD and MCAD, not every ECAD harness design can be properly built in MCAD. When the harness can not be properly built in MCAD, changes to the harness design will be required in ECAD. MCAD CoDesigner attempts to identify such cases during Push from ECAD, but it is possible that not all cases are recognized, so precise investigation may be required to identify unsupported ECAD design elements.
Notes on working in the SOLIDWORKS PDM Environment
-
A standard rule for working with the SOLIDWORKS PDM is: all files that could be changed should be checked out before the change, and then checked in after all changes are completed.
-
For harness changes, this rule applies to: the harness part and all XML files that are involved in the harness design process i.e. cables.xml, components.xml, xxx-fromToList.xml and xxx-segmentList.xml. If one of these files is not checked out, then unpredictable errors may occur while applying changes to the harness design, or when another another PDM user accesses this design.
-
For the initial harness pull, make sure components.xml is checked out before the pull, if the CoDesigner common components folder is being used.
SOLIDWORKS: Changing Connectors (including adding multiple connection points)
-
After creating new or redefining existing connection points in a connector in SOLIDWORKS, it is required to run the SOLIDWORKS's Re-Import From/To command (in the context of the harness assembly), and then Rebuild it using the From-To .xlsx file that corresponds to that harness assembly.
-
If new connection points are added, new splines will also need to be drawn to the newly created connection points.
When the Initial Pull Fails
If the initial pull or a harness update is not working in MCAD, then it is worth checking the following:
- Is a harness license available for a user? (user must be Pro or Enterprise level)
- Are there any warnings while pushing the harness design from ECAD? (if yes, then it is important to fix them)
- Does the MCAD software have suitable licenses to support harness design functionality? (if unsure, the user should attempt to create a harness manually)
- Are there any errors shown during the harness design pull into MCAD? For example, if it is impossible to route some wire\cables it may be worth reviewing their thickness\min bend radius parameters)
- If SOLIDWORKS PDM is being used, make sure all of the harness-related files (including libraries) are checked out before the harness update\initial pull.
- If inconsistent behaviour occurs, read the errors and warnings in the log to help identify possible root causes.
- For SOLIDWORKS, it could be the case where wires\cables are not routed automatically, so it is worth verifying this in the ‘Edit Route’->’Edit wires’ panel. Here if the wire\cable has a warning or zero length, it may be required to route it manually by selection of path segments where wire should be routed.
Sending Changes to ECAD
In the situation where the initial pull from ECAD worked, but the harness could not be sent back to ECAD correctly, it may be due to unsupported changes having been made in MCAD. There are things to avoid doing in MCAD to not get into such a situation:
- Do not remove or rename connection points that MCAD CoDesigner creates (basically, do not change the harness topology).
- Do not change the schematic of the harness in MCAD, i.e. do not add/remove/rename Connectors, Wires, or Cables.
- Do not change cable or wire properties (they are not synchronized back to ECAD).
- Do not change connector pin/entry point names for connector entry points created by CoDesigner.
- Before pushing changes from MCAD, make sure there are no inconsistencies in the harness that are being highlighted in MCAD.
- In Creo, if there are any cables are in the design, make sure you manually route wires that are going from the cable ends to connector pins (manual routing can be performed by cable selection and execution of routing).
- For SOLIDWORKS, in the scope of troubleshooting, it is worth verifying the assignment of routing segments to specific wires. In some corner cases this assignment could be incorrect, and it may be necessary to fix this manually.
Updating the MCAD Design with Changes from ECAD
-
Updating the harness design with ECAD changes may lead to losing MCAD side routing, if harness nodes (connection points/connectors) are removed. Regardless of whether MCAD CoDesigner should properly apply such removal changes, it is recommended to avoid such updates.
-
Before updating the MCAD design with ECAD changes, it is recommended that the MCAD side harness design be consistent (has no warnings/errors detected by MCAD).
-
In general, it is recommended to save the MCAD harness assembly before applying new changes, so that it is possible to rollback to a previous state if needed.
-
If the cable or wire connectivity or routing is changed, MCAD CoDesigner may re-route it, leading to loose MCAD entities attached to a cable or wire routing.