Parent page: ECAD-MCAD CoDesign
What is CoDesign?
Working between the electronic and mechanical design domains brings unique challenges. ECAD and MCAD tools have different design objectives and have evolved down different paths, as well as the way they store and manage their data.
But today's designs demand that this challenge be solved - small and complex product enclosures that house multiple, irregular-shaped printed circuit boards - to successfully design these products, the designers must be able to collaborate as they pass design changes back and forth between the ECAD and MCAD domains.
Passing complex and detailed design changes between different design software is much more than just being able to save data in another format. The electronic and mechanical design teams work independently and need to be able to transfer changes at any point in their design process. The issue is, how do you manage the flow of changes back and forth between the teams, without impacting either team's day-to-day design work? The last thing the design teams need is for one team to have to stop work until the other team has accepted their latest change before both teams can proceed.
This collaborative design challenge is solved by CoDesigner, an interface for transferring printed circuit board designs between the ECAD and MCAD design domains.
How it Works
Once the CoDesigner plug-in has been added to the ECAD and MCAD software, CoDesigner can pass design changes back and forth through an Altium Workspace. The Workspace acts as a bridge between the ECAD and MCAD domains, as shown below.
The advantage of passing design changes through a Workspace is the update process becomes stateless. That means each side can continue to work independently, there is no need to worry about where the other team is up to in the design process.
For example, when the MCAD designer has defined the board shape, they can Push the assembly to the Workspace. The ECAD designer will automatically be notified that there is a change pending. When they click Pull, their board is compared to the MCAD board definition in the Workspace and a list of changes required to synchronize their board with the Workspace version is generated. The ECAD designer can then enable the changes they want, and Apply them to their board. The ECAD designer might then configure the various copper and other fabrication layers required in the layer stack, defining the board thickness, and Push the updated board back to the MCAD designer, ready for placement of any location-critical mechatronic components.
Automatic CoDesigner Push when you Save to Server
When you perform a Push from ECAD in CoDesigner, you are not pushing the PCB file to the Altium Workspace, you are pushing a special ECAD-to-MCAD data package. This package includes: the PCB data, layer geometry, the component 3D models in Parasolid format (learn more about how the 3D models are named in MCAD), and the copper geometry.
Saving the PCB project to the Server (Workspace) is performed independently from a Push to MCAD. This separation of MCAD Pushing and Saving to Server can be a source of confusion, where an electrical engineer might think that the Save to Server they performed at the end of the day meant that everyone else who needs access to that design data, is now up-to-date and ready-to-go.
To simplify the process of keeping files in sync, the Workspace performs an automatic MCAD Push, whenever a Save to Server is performed on the PCB project in ECAD.
An MCAD Push is automatically performed when the project is Saved to the Server.
When the MCAD engineer performs a Pull, they are alerted to the fact that the last MCAD Push was automatic, as shown in the slides below.
The Collaborative Design Interface
Both your Altium and your MCAD software interface to each other through a panel (tab) in the software. In your Altium software, it's called the MCAD CoDesigner panel; in your MCAD software, it's called the Altium CoDesigner panel, or tab.
MCAD CoDesigner / Altium CoDesigner Panel
Design changes are Pushed and Pulled between the ECAD and MCAD domains through a dedicated panel.
- In your Altium design software, the MCAD CoDesigner panel is used to Push and Pull design changes back and forth, and display messages.
- In the MCAD software, the Altium CoDesigner panel is used to:
- Create new collaboration projects
- Open an existing collaboration project
- Configure collaboration options
- Push and Pull design changes back and forth
- Display messages
Working in the CoDesigner Panel
The functionality available in the CoDesigner panel is essentially the same in both ECAD and MCAD. The panel always displays the last change made in ECAD and the last change made in MCAD.
All CoDesign activity is performed through the CoDesigner panel.
Latest from ECAD / Latest from MCAD
- These two sections display the last change made in ECAD and the last change made in MCAD.
- Click the triangle icon to expand the panel and show the detail of the last change .
- When new changes are pushed from the other domain, the banner appears automatically, as shown below.
The panel will detail:
- The sign-in name of the engineer who performed the Push
- The optional comment they entered when they Pushed
When changes are pushed, a New Changes notification banner appears.
- When the Pull button is clicked, CoDesigner compares the currently open design against the version last Pushed to the Workspace from the other design domain. Each difference that is detected is listed in the Changes list in the panel, as shown below. When you select a change in the list, the impact of that change is highlighted in purple, if possible.
Click on a Change in the list to highlight the impact of that change.
- Clear the checkbox for each change you do not want to apply.
- There may be a change that cannot be applied, in this situation, that change and its checkbox are greyed out. This difference will continue to exist after the changes have been applied, and should be discussed with the engineer that Pushed it.
- When you are ready, click the Apply button to apply all enabled Changes to the currently open design.
Support for Change History and Rejection Comments
The complete history of all changes is retained. To examine the history, click the History link to the right of the Latest from the ECAD/MCAD drop-down, as shown below.
Change history makes it easy for the engineers on both sides to be aware of each other's responses to the changes being made.
Each set of changes details:
- Who made this set of changes.
- The date this set of changes occurred.
- The optional summary statement included when the changes were Pushed from the other domain.
- A list of each specific change, with a tick indicating which change was accepted, or a cross for each change that was rejected.
- An optional statement detailing why a specific change was rejected. For example, in the image above the change about the placement change to a hole was rejected.
- Click the button in the History mode of the panel to return to the Latest Changes mode.
- A complete history of the changes that have been made in the project can also be viewed in your Workspace (using your browser), or in your Altium design software.
- To view the history in your browser, first open the project (it will open in a separate browser tab), then click on History in the panel on the left. To view the history in your Altium software, select Project » History & Version Control » Show Project History from the menus.
► Learn more about Project History in: an Altium 365 Workspace, or in an Enterprise Server Workspace (Project History is also available in a Concord Pro Workspace, or a NEXUS Server Workspace, which have been discontinued as products and brand names).
The history of changes can also be viewed in the Workspace.
PCB Definition - Board Areas
In a design there may be areas on the board that requires special attention, which the MCAD engineer needs to define and pass to the ECAD engineer. For example, there may be a zone on the board surface that must be kept clear of copper because a conductive part of the enclosure comes into contact with the board surface when the product is assembled. To support this, the MCAD engineer can define Keep Out Areas and Text Note Rooms, using the buttons on the Altium CoDesigner ribbon.
If either of these objects has been placed on the board in MCAD, they will be listed in the Board Areas list in the PCB Definitions section of the CoDesigner panel:
- Keep Out Area - A Keep Out Area defined in MCAD will become a PCB Keepout in ECAD. A PCB Keepout is a region or area of the board that has been configured to restrict the placement of specific ECAD objects. Keepouts can be defined for either side of the board, or applied to all PCB layers. The objects that are to be kept out of this area on the ECAD PCB are selected as Keepout Restriction properties in the Altium CoDesigner MCAD panel; configure them as required. Learn more about placing a Keep Out Area in MCAD.
- Text Note Room - a Text Note Room defined in MCAD will become a PCB Room in ECAD. A PCB Room is a design rule used to define an area where specific components must be placed in, or excluded from. A common use for this rule is to define a component height restriction in the board area covered by the Room. Typically the Room rule will be applied to an individual component, or a class of components. Click on a Text Note Room definition in the Altium CoDesigner MCAD panel to select it, then enter instructions or information for the ECAD engineer; this text will become the Comment field for that Room in the ECAD PCB editor. Learn more about placing a Text Note Room in MCAD.
Board Areas are special zones defined by the MCAD engineer, that are then Pushed to the ECAD engineer. Hover your cursor over the image to show the Text Note Room properties.
PCB Definition - Board Enclosure
CoDesigner supports working at the device assembly level in MCAD, and transferring the enclosure with the board from MCAD to ECAD.
CoDesigner recognizes that the board and the enclosure have been added to the device assembly.
► Learn more about working in the device assembly and pushing the enclosure from MCAD to ECAD.
The CoDesigner settings menu is used to configure CoDesigner in your MCAD software.
Click the down arrow at the top right of the Altium CoDesigner panel to open the menu.
Use the menu options to:
- Confirm which Server/Workspace you are currently signed in to.
- Sign out of the Server/Workspace you are currently signed in to.
- Open the CoDesigner Settings dialog, where you can configure a central location to store models and enable true copper support.
- Access a Custom Server. Clicking the Use Custom Server option will sign you out of the current Workspace and return you to the sign-in mode of the Altium CoDesigner panel.
The CoDesigner MCAD Ribbon
When the CoDesigner Add-In is installed in your MCAD software, it adds the Altium CoDesigner Ribbon to the interface. Click on the Altium CoDesigner tab to access the Ribbon, which provides an easy way of accessing the common PCB-specific design objects needed during the ECAD-MCAD CoDesign process. Using these buttons ensures that the correct MCAD object type is used to create a compatible ECAD object.
Use the CoDesigner Ribbon to define objects on the PCB in an ECAD-ready way.
Recommended Collaboration Workflow
ECAD-MCAD CoDesign is a flexible process, there is no prescriptive approach that must be followed. While it is common for the board shape to be designed in MCAD, the board thickness must be defined in ECAD because that is where the various PCB layer materials are selected and configured. This requirement leads to a recommended design flow, as outlined below.
Starting the Collaboration Process in ECAD
- Create the project.
- Add a PCB.
- Define the layer stack to set the board thickness.
- Open the MCAD CoDesigner panel (click the Panels button at the bottom right of the design space and select the panel name, or use the View » Panels submenu),
- Push the board using the button in the MCAD CoDesigner panel. As well as Pushing the ECAD-MCAD exchange data to your Workspace, this also saves the project and the board file to the Workspace. The saved project and board become the ECAD designer's working files.
Create the Project
The PCB must be part of a project for you to be able to share it with an MCAD designer.
Select the Location where the project will be stored, the Type, and Name the project. The dialog changes depending on where your Workspace is hosted, hover the cursor over the image to see the differences.
To create a new managed project:
- Select File » New » Project to open the Create Project dialog.
- In the Locations column, select your Workspace.
- Set the Project Type to PCB <Default>
- Set the remaining dialog options to:
- Project Name - name of the ECAD PCB project
- Description - optional description of the project
- Folder - the folder where the project is stored in your Workspace
- Local Storage - folder on your hard disk, below which the working copy of the project will be stored (a project folder, named the same as your project, is automatically created)
Add a PCB to the Project
A PCB must be added to the project in ECAD, regardless of where the project was first created.
A PCB must always be added to the project in ECAD.
Adding a new PCB:
- Select File » New » PCB, a new blank PCB will be added to the project and opened in the PCB editor.
- Save the PCB with a suitable name (File » Save).
Define the PCB Layer Stack
The Layer Stack, or Z-plane properties of the CoDesign board, are defined in the PCB editor's Layer Stack Manager.
The layer stack defines the thickness of the board.
Defining the Layer Stack:
- Select Design » Layer Stack Manager, the Layer Stack Manager editor will open on a separate document tab, as shown above.
- Use the right-click menu to add the required new layers to the layer stack.
- For each layer, click the ellipsis button ( ) in the Material column to select the correct layer material from the Material Library.
- Save the Layer Stack to update the PCB with these changes. Click here to learn more about defining the layer stack.
- Save the PCB file and the Project (File » Save All). This saves the working copies of the project files.
- The last step is to save the project files to the Workspace. Right-click on the project name in the Projects panel and select Save to Server from the context menu. The Commit to Version Control dialog will appear, indicating which modified files need to be committed. Enter a comment if required, and click the Commit and Push button.
Push the Board to the MCAD Designer
Assuming that the X-Y shape of the board is being defined in the MCAD software, the board can now be Pushed to the Workspace.
Now that the thickness has been defined in ECAD, the board can be pushed to MCAD for shape definition.
Pushing the board to the MCAD software:
- If the MCAD CoDesigner panel is not open, click the button (lower right of the software) and select MCAD CoDesigner from the menu.
- Click the Push button in the panel.
- A message window will appear, enter a message for the MCAD designer that describes what you are pushing to them.
- Click Send to complete the Push process. A message dialog will appear, reporting the status of the process.
- When the Push is complete, the Latest from ECAD section in the panel will display the Activity thread, as shown below.
The Latest from ECAD section reports that the board has been Pushed to the Workspace, note that the panel also reports there have been No Pull actions yet.
- Open the Altium CoDesigner panel. The steps to open the panel will depend on which MCAD software is being used; use the relevant Installing CoDesigner in your MCAD software link for more details.
- Pull the Board in the Altium CoDesigner panel - this creates an MCAD board assembly based on the board definition in your Workspace.
If the project and the board have already been created in ECAD but not yet opened in your MCAD software, the project must be Pulled from your Workspace. To do this:
- Open your MCAD software.
- Display the Altium CoDesigner panel. Sign in to your Workspace if you are not currently signed in. If you're not sure how to display the panel, learn more about Installing and Configuring Altium MCAD CoDesigner.
- Because there is no assembly currently open, the panel will display the Pull, Create, and Recognize Designs buttons. Click the Pull button.
- The Select Project dialog will open, select the required project and click OK.
- In SOLIDWORKS and Autodesk Inventor, the Windows Save As dialog will appear; save the MCAD assembly in a suitable location.
In PTC Creo the Checkout Project dialog will appear if Creo is connected to Windchill, where the MCAD Project assembly can be renamed if required. It also details the current Working Directory and the Models Library Folder locations. Click Checkout to create the MCAD assembly.
- The board assembly will display in the MCAD editor, ready to be worked on. Save the MCAD design changes as an MCAD assembly.
- When required, design changes can be passed to the ECAD environment by clicking the Push button in the Altium CoDesigner panel.
- Insert the board into the device assembly.
- Configure the board shape to suit the enclosure.
- Define the mounting holes.
- Position location-critical mechatronic components.
- Define any required Keep-out Zones or Text Note Rooms.
- Save the MCAD assembly.
Refer to the Recommendations for the Mechanical Engineer section for more detailed information on defining the board shape, adding holes, and positioning components.
- Using the button in the MCAD CoDesigner panel, Push the board to the Workspace - this saves the board definition, holes, and placed component details as MCAD-ECAD exchange data.
- Open the board and perform a Pull to load the updated board definition and component details from your Workspace.
In MCAD or ECAD:
- Reopen the assembly or PCB file to continue working on the design.
To continue working on an existing board design (either ECAD or MCAD), re-open your working copy of the Assembly (MCAD), or project and board file (ECAD). If there are any updates pending the CoDesigner panel will display a warning that New changes have been detected. If the New changes message does not appear automatically, click the Pull button to force CoDesigner to check for changes.
If the mechanical assembly already exists, reopen it to continue working on the design.
Starting the Collaboration Process in MCAD
Starting the Board in MCAD:
- It is possible to start the PCB design process in MCAD, but it is not recommended. The process is the same in all of the supported MCAD environments.
You start the design process in your MCAD software in the Altium CoDesigner panel, by clicking the Create button. However, the flow is not intuitive because, in ECAD, the engineer must still create a PCB file to pull the MCAD board definition into.
- Sign in to CoDesigner, as described on the relevant page of the Installing and Configuring Altium MCAD CoDesigner section.
- Click the Create button in the Altium CoDesigner panel (also referred to as a tab in some MCAD tools).
- The Select Project dialog will open, click the New Project button in the dialog, as shown above.
- The Create New Server Project dialog will open. In the dialog, enter a suitable Name and optional Description for the project, and click OK. The Windows Save As dialog will open.
- A default board assembly is now being created in the MCAD software, which you need to save in a suitable location. Enter a name, select a location to store the assembly, and click Save in the Windows Save As dialog. The MCAD editor will display the new, default board shape. As part of this step, an ECAD PCB project is also created in your Workspace.
- The new board shape information does not exist in the Workspace yet. To add it, click the Push button on the Altium CoDesigner panel. A Comment window will appear on the Altium CoDesigner panel, this comment will be displayed in the ECAD software.
- Enter a brief description in the Comment window and click the Send button. A message dialog will appear while the changes made to the board shape are being saved to your Workspace. When that process is complete your Push message will appear in the Altium CoDesigner panel.
Push and Share to Invite a Mechanical Engineer (Workspace hosted on Altium 365)
When you click Push in the MCAD CoDesigner panel in ECAD, the MCAD CoDesigner panel also provides the opportunity to Share the project with another engineer.
CoDesigner Pushes and Pulls the board design by passing a special ECAD-to-MCAD data package back and forth through your Altium Workspace. When you enable the Share checkbox, you launch a process that configures Workspace access and project permissions for the invited engineer to access the project, including the special ECAD-MCAD data package. The invited engineer's access is delivered in their MCAD software through the Push/Pull features in the Altium CoDesigner panel, and also through a Web browser if they have or choose to create an Altium Account as part of the invitation process.
The project can be shared with anyone, regardless of whether they are already a member of the project's Workspace, or even have an Altium Account. The table below summarizes the project access, depending on the state of permissions that the invitee had when the Share is performed.
|Existing Altium Account Status
|Permissions Assigned During Share
|No active Altium account
||Not a member of the Project Workspace
||Given Guest access to the project, with Edit permissions
A Guest can access the design via the Altium CoDesigner panel in their MCAD software.
Invitee also receives an email with a link to create an Altium Account. The Altium account is optional; if created, the Guest will then also have browser access to the Project through the Shared with Me section of their Personal Space.
|Active Altium account
||Not a member of the Project Workspace
||Becomes a Member of the project's Workspace and assigned the Mechanical Engineer Role, project shared with View permissions
The new Workspace member is assigned the Mechanical Engineer role. Now that there is a Workspace member with the ME Role assigned, the Share checkbox will no longer be automatically enabled.
Note that project permissions must be elevated to Edit for the Mechanical Engineer to be able to perform a Push from MCAD.
|Active Altium account
||Already a member of the Project Workspace
||Project shared with Edit permissions
The Sharing Process
If the Share checkbox is enabled, the Share with a Mechanical Engineer dialog will open when you click the Send button in the MCAD CoDesigner panel.
Enter the Email Address of the person you wish to share the project with (and an optional Note), then click the Share button in the dialog. If the invitee is not already a member of the Workspace, the Share with a Mechanical Engineer notification dialog will then appear, warning that the invited user might be outside of your organization.
When you click OK in this dialog, or if they are already a member of your Workspace, a notification email is then generated and sent to the invitee.
After a brief delay, a success dialog will appear.
The project is now shared with the Mechanical Engineer.
Working Between MCAD and ECAD
At any point in the design process, changes can be transferred between the MCAD and ECAD tools, using the CoDesigner panel.
Changes are pushed and pulled between the MCAD and ECAD tools through the CoDesigner panel.
- To transfer design changes, click the Push button in the corresponding panel.
- When the Push button has been clicked, an editing window appears at the top of the source editor's panel. Enter a message about the design change then click Send.
- When Send is clicked:
- The working copy of the modified PCB file is automatically saved if it is currently unsaved.
- The changes are written to your Workspace.
- The Posted message is displayed in the message thread of the source editor's CoDesigner panel.
- The target editor's panel will display a message that there is a change pending the next time they open their working copy of the design file.
- Click Pull in the target editor's panel, a list detailing each change needed to re-synchronize the designs will be displayed.
Working with the Change List
When the Pull button is clicked, each change that needs to be made to the working file to synchronize it with the snapshot on your Workspace is listed, as shown below.
- Each difference detected between the current design and the snapshot stored in your Workspace is detailed as a Change in the Change List.
- A Change does not have to be accepted. If a change is ignored it will appear in the Change List again, the next time an update is performed in that direction. Be aware that if you choose to ignore a change, for example moving a mounting hole, and you then perform a Push of your design changes, the ignored change may be overwritten since your version has the mounting hole in the old location. The MCAD designer can always avoid losing their change by not accepting your mounting hole move.
- A single design change, such as changing the location of a component, can become multiple changes in the Change List. When a PCB component is moved, there are MCAD changes to: the location of the component, the shapes the component makes on the Component Overlay, and the shapes the component makes in the top and bottom copper layers. Related changes should all be applied together.
- The list may include changes that cannot be applied in the target environment. In this situation, the change will be displayed but the checkbox will be unavailable, indicating that this difference cannot be resolved.
- Where possible, the selected change is highlighted in the design space when you click on it in the Change List.
- Click Apply to apply the changes that are ticked.
CoDesigner uses the ECAD Absolute Origin as the reference when the board is pushed from ECAD to MCAD. CoDesigner 2.4 introduced a feature to create a new MCAD Coordinates grid on Pull into ECAD, including an MCAD Origin entity, when the MCAD origin differs from the default (absolute) ECAD origin. This helps the electrical engineer communicate with the mechanical engineer on the positioning of the different board entities.
The representation of the MCAD Coordinates grid can be customized in ECAD, double-click on the entry in the Properties panel to open the Grid Editor dialog. Learn more about the PCB Grids System.
The coordinate grid defined in MCAD can also be customized in ECAD.
MCAD Planes for Component Placement
From CoDesigner 2.2.0 onward, top and bottom side component planes are created in MCAD when the board is pulled, to simplify the process of placing components in MCAD. Components pushed from ECAD are placed in MCAD to ignore the thickness of the solder mask layer.
How CoDesigner Handles Copper, Mask and Overlay Layers
Along with the board shape and components, CoDesigner also transfers the top and bottom side: copper, solder mask, and component overlay layers, from ECAD to MCAD.
ECAD Layers as Decals
The default is that these layers are Pushed to the Workspace from ECAD as individual SVG images. When the board assembly is Pulled into MCAD, CoDesigner converts the SVG images to PNG images. From these PNG images, CoDesigner then combines the top-side set of images into a single top-side decal, and the bottom-side set into a single bottom-side decal. These two decals are then applied to the top and bottom board surfaces during Pull into MCAD.
The top and bottom side decals are applied to each side of the board in MCAD.
Fusion 360 - ECAD Layers as Sketch Profiles
A different approach is used to transfer the top/bottom copper and component overlay layers from ECAD to Autodesk Fusion 360. In Autodesk Fusion 360, these layers are imported as Sketch Profiles drawn on the Board object. This set of layers can be toggled on and off in Autodesk Fusion 360 by clicking the Advanced Geometry () button in the Altium CoDesigner ribbon. Alternatively, use the Fusion 360 visibility icon to selectively hide/display any of these layers.
Component overlay and surface copper layers are created as Sketch Profiles in Autodesk Fusion 360.
Advanced Copper Geometry in MCAD
As an alternative to displaying decals (images) of the copper + mask + overlay layers in MCAD, CoDesigner can also transfer the actual copper geometry (referred to as Advanced Copper Geometry) and the 3D mask layers to MCAD. This feature is currently supported by PTC Creo, Autodesk Inventor, SOLIDWORKS, and Siemens NX. From CoDesigner 2.7 onward, the component overlay (silkscreen) decal is applied to the face of the solder mask extrude.
The copper layers can be transferred to MCAD if required. In the image above, the components and the layers have been hidden, except for the top copper layer.
To include the Advanced Copper Geometry, enable the Build 3D geometry for Copper and Solder Mask option in the Altium CoDesigner Settings dialog (along with the Build Vias option if required). The Settings dialog is accessed from the CoDesigner menu in the Altium CoDesigner panel (show image).
Enable the Build 3D geometry for Copper and Solder Mask option to include these layers in the MCAD assembly (Autodesk Inventor dialog).
Notes about working with copper geometry and 3D mask layers:
- Copper and mask layers are included as MCAD sub-assemblies.
- All PCB copper layers that are present in the layerstack are included. Note that the copper layer thickness does not include plated layer data, such as Surface Finish. This will be added in a future update.
- Thruhole pad barrels are included when the Build 3D geometry for Copper and Solder Mask option is enabled.
- The via surface shapes are also included when the Build 3D geometry for Copper and Solder Mask option is enabled. Enable the Build Vias option to include the via copper barrels.
- When the Build 3D geometry for Copper and Solder Mask option is enabled, the component overlay (silkscreen) decal is applied to the face of the solder mask extrude.
- Depending on the complexity of the design, including the copper geometry and vias can significantly increase the file size and the time to Pull the design into MCAD.
- Copper and mask data is always Pushed from ECAD. There is no need to Push again from ECAD if you enable the Build 3D geometry for Copper and Solder Mask and Build Vias options in MCAD, just close the board and Pull it again from the Workspace.
Accurate Representation of the Solder Mask
Introduced in Update 2.5, CoDesigner builds a precise model of the solder mask, including the openings for the pads, as a separate entity in MCAD when the Build 3D Copper option is enabled. Because the mask fills the etched regions between the copper, the thickness of the mask layer in MCAD is the sum of the thicknesses of the top copper layer plus the solder mask layer, as defined in ECAD.
Since the solder mask fills the etched regions between the tracks, pads and vias, its total thickness in MCAD is the sum of the copper layer thickness plus the solder mask thickness, as defined in ECAD.
Support for Keepouts and Rooms
The Altium CoDesigner Ribbon provides an easy way of accessing the common PCB-specific design objects in MCAD, including Keepouts and Rooms. Using these buttons ensures that the correct MCAD object type is used to create a compatible ECAD object.
Support for Keepouts
A PCB Keepout is a region or area of the board that has been configured to restrict the placement of specific ECAD objects. Keepouts can be defined for either side of the board or applied to all PCB layers. The objects that are to be kept out of this area are selected as Keepout Restriction properties.
Defining a Keepout in MCAD:
- Click the Keep Out Area button on the Altium CoDesigner ribbon.
- You will be prompted to choose a face, surface or plane, click on the side of the board that requires the keepout. If the keepout is to apply to all layers it can be drawn on either side.
- Click on a suitable MCAD sketch tool, for example, Rectangle, to define the keepout. Note that the sketch must only include one contour, internal contours are not supported.
- Draw the shape required for the keepout.
- Exit the Sketch mode.
- The properties of the feature can now be edited. You can think of the keepout as a fence around the keepout area, edit the Depth to a small value, for example, 1mm.
- This keepout will become an ECAD layer-specific keepout, on the layer it has been drawn in MCAD. To define an all-layer keepout, in MCAD configure the keepout to extrude in both directions, setting the Depth in the second direction to a value that is large enough to extrude it through the board.
- Click the MCAD Accept button to finish the feature definition process. If required, the feature can be renamed in the Feature tree.
- In the Altium CoDesigner panel, select the PCB Definition tab and configure the keepout restrictions as required. The keepout can now be pushed to ECAD, where it will be added as a Keepout Region. Depending on how it was configured in MCAD, it will become a Top Layer Keepout, a Bottom Layer Keepout, or a Keepout Layer Keepout. If required the keepout shape can be adjusted in ECAD and pushed back to MCAD.
Support for Rooms
A PCB Room is a design rule that is used to define an area that specific components must be placed in, or excluded from. A common use for this rule is to define a component height restriction in the board area covered by the Room. Typically the Room rule will be applied to an individual component or a class of components.
Defining a Room in MCAD:
- Click the Text Note Room button on the Altium CoDesigner ribbon.
- You will be prompted to choose a face, surface or plane, click on the side of the board that requires the room.
- Click on a suitable MCAD sketch tool, for example, Rectangle, to define the room. Note that the sketch must only include one contour, internal contours are not supported.
- Draw the shape required for the room.
- Exit the Sketch mode.
- Click the MCAD Accept button to finish the feature definition process. If required, the feature can be renamed in the Feature tree.
- In the Altium CoDesigner panel, select the PCB Definition tab and enter a comment for the room that explains its purpose to the ECAD engineer. The room can now be pushed to ECAD, where it will be added as a Placement Room design rule, on the layer it has been drawn in MCAD. The only property that can be transferred between MCAD and ECAD is the Comment, which becomes the Placement Room design rule comment.
- The Placement Room design room can now be configured as required in ECAD.
Keepout areas and Rooms can be defined in MCAD and pushed to ECAD.
Controlling the Number of Components Pulled to MCAD
To improve performance when working on boards with a large number of components, CoDesigner supports excluding components below a user-defined height during a Pull from ECAD. For the height threshold, CoDesigner uses the height defined as part of the component properties in ECAD (show image).
Define the threshold height in the Altium CoDesigner Settings dialog, as shown in the image below. The dialog is accessed via the Altium CoDesigner panel in MCAD, select Settings in the panel's menu to open the dialog.
Small components can be excluded during Pull to MCAD by setting the Ignore components smaller than the height threshold.
CoDesigning a PCB with Variants
Altium Designer allow the electronics designer to create variations of the product they are designing. Supported variations include: flagging a component as not fitted; modifying a component's parameters, including the component value that is silkscreened on the board; or replacing a component with an alternate component (which may or may not use a different footprint).
In Altium Designer, there is only one board design. Variant information, such as details about an alternate component, is stored in the project file and applied to the board when the variant is selected in the Projects panel. The
[No Variations] version of the board is saved as the PcbDoc.
Altium Designer can be used to create variations of a board design, select the variant in the Projects panel then Push to MCAD in the CoDesigner panel.
Pushing a Variant from ECAD
When a board is pushed from ECAD, all variants are pushed. The required variant is selected during the pull into MCAD.
Double-click in the Projects panel to select the required variant to be Pushed.
Pulling a Variant in to MCAD
A PCB variant is Pulled to MCAD in the same way as a non-variant PCB, by clicking the Pull button in the Altium CoDesigner panel. If the project includes variants they will be listed in the Select Project dialog, as shown below. Select the required variant and click OK.
If the board is a variant, additional information detailing the variant name is displayed at the top of the Altium CoDesigner panel, as shown below.
Notes about variants:
- All components, including non-varied and varied components, are identified by the current component model naming scheme.
- The board part in each variant is identified as :
- It is recommended to include the variant name as part of the MCAD assembly name.
The board part is identified by the design name and the variant name. Hover the cursor over the image to show a different variant.
Pushing a Variant from MCAD
In MCAD, CoDesigner is aware if a component is part of the base design
[No Variations], or belongs to a specific variant. Changes made to a component in the base design
[No Variations] will impact all variants of the board in ECAD, while changes made in a specific variant will only be applied to that variant in ECAD.
Modifications made to a variant are pushed from MCAD to ECAD in the usual way, by clicking Push in the Altium CoDesigner panel.
Pulling a Variant into ECAD
If you attempt to perform a Pull in to the ECAD PCB editor and the wrong variant is currently active, you will receive the following error message. The applicable variant name is displayed in the Error dialog; switch to that variant and Pull again.
The Pull cannot be completed as the wrong variant is active in the ECAD PCB editor.
If there have been changes made to a component in the base design, they can be applied in any variant in ECAD. Those changes will then be present in all variants in ECAD.
► Learn more about working with Variants in ECAD
Recommendations for the Mechanical Engineer
This section details functionality and behaviors that the mechanical engineer should be aware of when using CoDesigner.
Displaying the ECAD Reference Designator in MCAD
Altium MCAD CoDesigner uses a different approach to display the reference designator in Each MCAD tool:
- Autodesk Fusion - Display the ECAD Properties panel to display the properties of the currently selected part (show image).
- Autodesk Inventor - Reference designator is displayed in the Model Tree by default (show image).
- PTC Creo - In the Model Tree mode of the panel, click the Tree Columns button to open the Model Tree Columns dialog. Set the Not Displayed Type to
ECAD Params, locate the
ECAD_REF_DES parameter, and click the Add Column button (show image).
- SOLIDWORKS - Reference designator is displayed in the Model Tree by default (show image).
- Siemens NX - In the Assembly Navigator, right-click where the column names are displayed to open the context menu, then select Columns » Component Name to display the Component Name column ( show image ).
Synchronizing Changes Between Mechanical Engineers
- CoDesigner transfers the mechanical PCB assembly to ECAD through an Altium Workspace, such as an Altium 365 Workspace. The changes Pushed/Pulled through the Workspace are directional - the PCB assembly Pushed from MCAD (and Pulled to ECAD) is stored separately in the Workspace from the PCB assembly Pushed from ECAD (and Pulled to MCAD). That means a second mechanical engineer cannot Pull the modified board that a mechanical engineer just Pushed to the Workspace, instead they will be Pulling the last-pushed ECAD data. Note that MCAD constraints exist only in the MCAD assembly in which they were created. When the board is pushed from MCAD to ECAD, the component positions resulting from the constraints are pushed, but not the constraints themselves. Therefore if the board is pulled into a new MCAD assembly, none of the constraints created by a previous MCAD engineer will be included.
ECAD and MCAD changes are stored separately in the Workspace.
To allow other mechanical engineers to see your changes, save your PCB assembly in the same way as you do for any other assembly - to common storage available for both. This method will preserve any MCAD constraints. Alternatively, get the ECAD designer to Pull the data into ECAD, save it, and then Push the updated design back to MCAD. However, as explained above, no MCAD constraints will be included by using this method.
- Another important point is that changes made to the same PCB assembly by different mechanical engineers are not merged when they are Pushed, the latest change Pushed by any mechanical engineer will overwrite previous changes Pushed by other mechanical engineers.
Pictorial Demonstration of the Synchronization Process
ECAD and MCAD push their changes to different storage locations on the Workspace. That means each engineer can only pull changes that have been pushed by the other engineer. Those changes will only include their own changes if they’ve already been accepted by the other engineer before the other engineer has pushed.
For example, a board is created in ECAD, Pushed to the Workspace, and Pulled to MCAD:
If the ECAD engineer then adds components AND the MCAD engineer adds holes, AND if each Pushes their board then Pulls the other’s board, CoDesigner will try to remove the holes in the MCAD engineer's board, and remove the components on the ECAD engineer's board:
Each engineer does have the option to reject specific proposed changes, for example, the ECAD engineer could accept the addition of the holes but reject the deletion of the removed components. However, working in this way can be hard to manage with complex boards and/or changes. Another point is that all changes to the decals are only seen by CoDesigner as a single change, so can only be accepted or rejected as a whole, not individually.
A better approach is for one engineer to make their changes and push the board, then for the other engineer to pull the board before making their changes, as shown below.
Use a circular approach to passing design changes between ECAD and MCAD.
Resolving Issues with the Board Contour in ECAD
When the board is Pushed from ECAD, CoDesigner checks the board contour and warns the user if there are issues with micro-segments, or if self-intersecting contours have been found. When the board is Pulled to MCAD, CoDesigner will attempt to resolve these issues. If they cannot be resolved, they must be resolved in ECAD.
Automatic Micro-Segment Removal
CoDesigner 2.4 introduced an automatic feature to detect and resolve micro-segments in the board outline. If they are detected, a dialog will appear offering to resolve the issues, as shown below. If you click Yes the detected issues will be resolved automatically. If you click No and close the dialog, an error dialog will then appear detailing the location of any issues, which must then be resolved manually (as described below).
Manual Micro-Segment and Self-Intersection Removal
Micro-segments and self-intersections that have not been resolved automatically or are detected in a board cutout, must be resolved manually.
To fix the issues in ECAD:
- Copy the error information from the dialog into a text editor so the coordinates for the issues are available.
- Set the snap grid (Gtrl+G shortcut) to a small value (eg 0.001 mil) so you can make small changes to the location of vertices.
- Switch to View » Board Planning Mode.
- Zoom in to the location of the issue. Alternatively, use the Jump Location command (Edit » Jump » New Location, or J, L shortcut) and type the coordinates into the Jump to Location dialog. Note that you can include the units (
mil) with the value if they are different from the current board units. If the issue is due to an arc, the issue location could be the arc center point. In this situation visually check the board outline for short, shallow arcs.
- Run the Design » Edit Board Shape command (D, D shortcut). The board outline will display vertices at the ends and center of each edge. Check for multiple vertices that are very close together and very shallow arcs. Use the following tips to help you resolve issues:
- Click and drag on an edge or a vertex to modify the shape. There are three shape modification modes available during editing: Break edge, Move (slide) edge, Incurvate (bend) edge; press Shift+Space during editing to cycle through the modes. The current mode is displayed on the Status bar.
- Move the vertex at the end of a short edge slightly, then release the mouse button. Often this will be sufficient for the software to resolve and remove the short edge.
- A short shallow arc can be converted to a straight edge by dragging the center vertex in Incurvate mode to flatten the arc (it will be replaced by a straight edge when you release it).
- Green alignment guides will display when the moving edge or arc chord aligns with an existing edge.
- Click and hold on a vertex then press Delete to remove it; to add a vertex hold Ctrl as you click on the edge, then position the cursor and release.
- Push the board again.
Board contour self-intersections and micro-segments must be resolved before the board can be pushed to MCAD.
► Learn more about the Vertex Editing Modes
► Learn more about Defining the Board Shape
Visibility of Changes Made on the ECAD side
It is important to open the PCB assembly itself in your MCAD software, not the parent device/assembly that the PCB assembly is being designed to fit in. If the PCB assembly is opened, changes made and pushed from the ECAD side will be detailed in the Altium CoDesigner panel. Changes will not be detailed in the panel if the parent device/assembly is opened.
Getting Changes to your PCB Assembly from ECAD
- Open your PCB assembly as a separate file (as a root assembly) in MCAD.
- Open the Altium CoDesigner panel.
- Click Pull.
- Review the changes in the table, enable the ones you want to be applied, and click the Apply button.
When you have a PCB Assembly Open in MCAD for the First Time
- Add the PCB assembly to your device’s assembly.
- Secure it by applying suitable mates/constraints.
If a contour of the PCB does not correspond to the shape of your enclosure:
- Start editing the Board part.
- Edit the sketch of the board’s extrusion and adjust its shape to the enclosure.
Making Changes to the PCB Design in MCAD
Below are some tips for ensuring the design shapes and objects used in MCAD will be supported when the board is pushed to ECAD.
Editing the board outline shape:
- Start editing the Board part.
- Edit the sketch of the board’s extrusion.
Changing the MCAD Board Origin:
- If necessary, the mechanical engineer can change the MCAD origin of a bare board in the early stages of the board definition. To do that, the mechanical engineer can simply move or redraw the entire sketch of the board outline, within the board part. Note that the board part is constrained as “fixed” within the board assembly, with its origin coincident with that of the assembly (therefore, the “MCAD origin” relates to both the board part origin and the board assembly origin).
Creating/editing Mounting Holes:
- Start editing the Board part.
- Create/edit a Hole feature on the top or the bottom surface of the board part.
- Start editing the Board part.
- Create/edit an Extruded Cut feature based on the top or the bottom surface of the board part.
Editing the placement of components:
- Start editing the Board assembly.
- Move/rotate/flip, or mate/constrain a component.
Synchronizing Fixed or Constrained in MCAD to Locked in ECAD
If a component is fixed or constrained in MCAD, it becomes locked in ECAD (regardless of if that constraint allows any movements within the PCB assembly or not). If a component is locked in ECAD, it becomes fixed in MCAD unless it is already constrained there. Changes in the locked/fixed state are synchronized between MCAD and ECAD.
Transferring ECAD Component Parameters to MCAD
ECAD PCB component parameters are transferred to the corresponding models created in MCAD. Note that this does not include components that were originally placed in MCAD.
Working with Constraints and Dimensions in MCAD
Constraints applied to the board outline:
- The mechanical engineer can apply a constraint from an element of the board outline: to another board outline element; to a datum/reference feature; to a part in a higher-level assembly; or to a component. CoDesigner does not modify these constraints. However, if the board outline is changed on the ECAD side, the sketch of the board part will be redrawn in MCAD, and all of the edge IDs will be changed. Note that any change to any part of the board outline in ECAD will result in the entire board being redrawn in MCAD, and all board edge IDs changing. If there was a constraint applied to those edges or to the derived surfaces, those constraints will be broken. The board will stay in place in MCAD, and if necessary, the constraints can be manually restored.
Constraints applied to the components:
- The mechanical engineer can apply a constraint from a component: to the board; to an enclosure; or to another component. These constraints will stay healthy if the model of that component can be found locally (if the PCB assembly is not built from scratch in a different folder, or if a common folder is set up for storing models). However, if a component is moved on the ECAD side, the placement change on the MCAD side may not correspond to that movement and should be checked manually (CoDesigner will notify you in this situation). For components with an ECAD footprint, the component standoff (location relative to the board surface in the Z direction) will always be defined by the position of the STEP model in the footprint. CoDesigner will always attempt to override any conflicting MCAD constraints on a Pull into MCAD.
Changes that will not be Transferred from MCAD to ECAD
- Bare Board thickness - defined by the Layer Stack in ECAD.
- Any additional geometric features applied to the board part (eg. 3D chamfers/fillets), except for holes and extruded cuts in the board's z-axis direction.
- Any additional geometric features created in the context of the board assembly (eg. holes created in the context of an assembly), unless these features are propagated to parts.
- The location of component holes if they are moved separately from the component.
- The size of component holes.
- Feature Patterns.
- Sketches of cutouts with multiple contours (in PTC Creo and Autodesk Inventor).
- Changes made to the extruded copper.
- Changes made to the silkscreen.
Working in the Context of the Device Assembly
In CoDesigner 2.2.0, support was added for working at the device assembly level in MCAD, and then transferring the enclosure together with the board to ECAD. The video below demonstrates the process of including the board assembly in the device enclosure, and transferring the enclosure to ECAD.
► Note that this option is not available with an Altium Designer Standard Subscription. Designers with a Standard Subscription can watch this video to see another approach to transferring the enclosure.
Tips for working with the enclosure:
- After placing the board assembly in the enclosure, click the Recognize button in the Altium CoDesigner panel. CoDesigner will detect the relationship between the board and the enclosure, and detail the names of all board assemblies added to the device enclosure at the top of the panel.
- Once the relationship has been detected, the last step is to add the enclosure to the board. To do this:
- Select the enclosure in the model tree.
- Display the Altium CoDesigner ribbon.
- Click the Enclosure button on the ribbon.
- Open/display the Altium CoDesigner panel, where you can confirm that the enclosure is associated with the board in the Board Enclosure section of the Altium CoDesigner panel.
- The enclosure with the board can now be pushed to ECAD.
Sending the PCB Assembly with your Changes to ECAD
- Make sure your PCB assembly is opened as a separate doc (as a root assembly) in MCAD.
- Go to the Altium CoDesigner panel.
- Click Push.
Working with an MCAD Data Management System
CoDesigner supports the placement of native MCAD components when the PCB is being Pushed from ECAD and Pulled into MCAD. To do this, CoDesigner asks the MCAD software to get the model of the component from the MCAD's data management system (by the model’s name) and then places that component on the MCAD PCB assembly, instead of the model that came from ECAD.
ECAD-to-MCAD native component linking is currently supported in:
- PTC Creo Parametric with CoDesigner Addin version 2.6.0, or later, connected to a PTC Windchill® server. Consult your Creo documentation for information on how to connect to Windchill. Learn more about configuring PTC Creo.
- SOLIDWORKS with CoDesigner Addin version 2.6.0, or later, connected to SOLIDWORKS® PDM Professional. Consult your SOLIDWORKS documentation for information on how to connect to SOLIDWORKS PDM. Learn more about configuring SOLIDWORKS to work with native MCAD components.
- Siemens® NX™ with CoDesigner Addin version 3.4.0, or later, connected to Siemens Teamcenter PLM. Consult your Siemens NX documentation for information on how to connect to Teamcenter PLM. Learn more about configuring Siemens NX to work with native MCAD components.
Working with SOLIDWORKS PDM
Placing Native MCAD Components from SOLIDWORKS PDM
When the board design is transferred from ECAD to SOLIDWORKS MCAD, CoDesigner supports replacing the ECAD component with a native MCAD-equivalent component from the SOLIDWORKS PDM system. To achieve this, you must configure settings in:
- MCAD - configure your PDM settings, CoDesigner model storage, and understand the synchronization requirements, as described here.
- ECAD - reference the MCAD model in the ECAD component, using the correct syntax. The MCAD component reference must be defined in the ECAD component as a parameter, with the parameter value in the form:
<vault> is the name of the SOLIDWORKS PDM vault.
- Workspace - configure the Workspace options to indicate that you want to use native MCAD components, and define which ECAD component parameter will be used to reference the equivalent MCAD component. Learn more about Linking from the ECAD Components to the MCAD Components.
Before Pulling Changes to the Existing PCB Assembly
- Synchronize the local copy of the Common folder for storing models component folder with the server (use the Get latest version command in SOLIDWORKS PDM)
- Check out the following files:
- Board assembly
- Board part
- For rigid-flex 2.0 assemblies - all of the board parts and sub-assemblies
- If 3D copper is built - assemblies and parts related to the 3D copper and solder mask
- Decal PNGs, if they are stored in PDM
Note: Normally, there is no need to check the component models out of PDM.
On Pulling Changes from ECAD to MCAD
- Pay attention to any changes to component properties which CoDesigner may want to make - the corresponding string will be highlighted in yellow in the list of changes table in the Altium CoDesigner panel in SOLIDWORKS.
A common reason there may be changes is that when creating the component models in MCAD, CoDesigner writes the component properties stored in ECAD’s component library to the MCAD model properties. However, some of those properties, for example, Description and Material, may be changed by MCAD or PDM automatically afterward. Accordingly, if different values of properties are detected, CoDesigner will suggest changing them.
However, if you try to apply those changes, MCAD will require checking each affected model out of PDM or saving them with another name. To avoid this, uncheck those changes related to changing component properties in the Altium CoDesigner panel. Note that it is strongly recommended that you clarify why the component properties are different, and synchronize them on the MCAD and ECAD sides.
After Applying Changes
- Check the newly created components, board assembly, subassemblies and parts into PDM.
Cloning the MCAD PCB
Do you have an existing MCAD PCB assembly that you would like to clone and re-use in a new PCB project in order not to lose your mechanical dimensions and references? This can be achieved by editing two of the properties in the cloned copy of the MCAD assembly.
The MCAD PCB assembly is associated with the ECAD project through two properties,
ManagedProjectName, which can be viewed and edited in the Properties dialog for the MCAD PCB assembly. The image below shows the Properties dialog for SOLIDWORKS.
Two properties link the MCAD assembly to the ECAD project.
- To associate an existing MCAD PCB assembly with a new ECAD project, you need to update these properties in the MCAD assembly to suit the new ECAD project.
ManagedProjectName - the ECAD PCB project filename:
ManagedProjectGUID - to find the GUID, you can either copy it from the:
- Workspace browser address bar. Open the Altium Workspace where the project is stored, then double-click on the project to open it in a separate browser tab. The URL in the browser address bar includes the
ManagedProjectGUID, as shown in this image.
- ECAD project file. Open the project file in a text editor (it has the
.PrjPcb extension). The
ManagedProjectGUID is located in the
[Design] section at the top of the file (show image). Copy the
ManagedProjectGUID, but do not modify or save the file
.PrjPcb in the text editor.
- In your MCAD software, open the MCAD PCB assembly, edit the Value of those two properties, save the MCAD assembly, and close it.
Reopen the clone MCAD assembly and check the top of the Altium CoDesigner panel; it should now display the
ManagedProjectName property that you entered into the clone file in step 1. If it does, then the cloning process has been successful, and the board definition can now be Pushed to the Workspace from your MCAD software.
After editing the
ManagedProjectGUID properties, the CoDesigner panel will reflect the updated project name.