Use of this CoDesigner documentation requires:
A supported Altium design client:
Note that not all features described on this page are available in all installations of Altium MCAD CoDesigner, refer to the Note in the right-hand pane for information on which features will be available in your installation.
To determine the supported Altium design clients, note the version of the MCAD CoDesigner Addin you are using, then check for supported versions in the ECAD-MCAD Version Compatibility Matrix
Altium CircuitMaker 2.1 or later is supported, with the Fusion 360 CoDesigner extension version 2.8 or later. Note that CircuitMaker only supports Autodesk Fusion 360®. Learn more .
An Altium Workspace , supported Workspaces include:
Altium 365 Workspace
Altium Enterprise Server Workspace. Note: if you are using an on-premises server and there have been licensing-related feature changes, please refresh your licensing by deleting and re-adding the licenses in the Admin – Licenses page of the server's browser interface.
Supported MCAD design software with a suitable version of the CoDesigner Addin .
An exciting evolution in the design and development of electronic products is the ability to print the electronic circuit directly onto a substrate, such as a plastic molding that becomes a part of a product. Altium is building technology to support the design of Printed Electronics and Molded Interconnect Devices (MIDs), by performing the Layout and Routing directly on a 3D Structure . At this stage, CoDesigner does not support the transfer of a printed electronics design between ECAD and MCAD because of the different design approaches needed. Development is ongoing, and support will be added in a future update.
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 how 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 must be able to transfer changes at any point in their design process. 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, define the board thickness, and Push the updated board back to the MCAD designer, ready for placement of any location-critical mechatronic components.
What is a Workspace?
An Altium Workspace is a dedicated content storage and management system, that couples directly into your design software. Altium's design software works seamlessly with the Workspace, providing an elegant answer to the question of handling design data with secured integrity.
Altium's design software can connect to the following Workspaces:
Altium 365 Workspace - a Workspace hosted on the Altium 365 cloud-based infrastructure platform . The Workspace facilitates the seamless connectivity of, and the mechanics for moving data between, the design, manufacturing, and supply domains. A cloud-based Workspace is recommended since it opens up a variety of global sharing and collaborative features that can only be experienced and enjoyed through the cloud-based Altium 365 platform.
Altium On-Prem Enterprise Server Workspace - if your design team cannot use a cloud-hosted Workspace, Altium also supports an On-Prem Enterprise Server that is installed on-site and managed by your own IT department.
Learn more about Designing with a Connected Workspace
What is a Personal Space?
Every designer who registers with Altium Live also gets access to their own Altium 365 Personal Space. The Personal Space is free, and offers some of the collaborative capabilities available in a Workspace. The Personal Space is also used as the ECAD-MCAD transfer interface for designers working between Altium CircuitMaker and Autodesk Fusion 360.
Learn more about the Altium 365 Personal Space
Learn more about Collaborating between Altium CircuitMaker and Autodesk Fusion 360
Transferring the Design Data
The Role of the Workspace
MCAD CoDesigner transfers the design between ECAD and MCAD by Pushing and Pulling design changes through an Altium Workspace. When you perform a Push from ECAD, 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 board data, layer geometry, the component 3D models in Parasolid format (learn more about how the 3D models are named in MCAD), and if enabled, the copper geometry.
When a Push is performed in either ECAD or MCAD, CoDesigner first prepares the data package within a local sub-folder, <DesignName>-EDM
. On the MCAD side, the EDM folder is also used to store the MCAD data. This data package is then transferred into a special folder in your Altium Workspace, called Mechatronic 3D Models
. This folder is only used by MCAD CoDesigner for storing ECAD-to-MCAD data. If you are using MCAD CoDesigner, please do not delete or move this folder, and do not restrict access for electrical and mechanical engineers.
Learn more about Transferring Mechatronic 3D Models
ECAD-MCAD Object Translations
As the board design is transferred back and forth between ECAD and MCAD, objects in one design space must be translated to equivalent objects in the other design space. For some of the objects, the translation is straightforward; for example, an ECAD mounting hole becomes an MCAD hole, and the MCAD board part becomes the ECAD board shape.
For other objects, the process is not as direct. For example, an ECAD component includes footprint elements that become part of the fabricated board, including the silkscreen and the pads (which include layer-specific details such as copper and solder mask, as well as holes); as well as the 3D model of the component that is loaded onto that footprint during PCB assembly. In MCAD, all of the board-related elements in the ECAD component become part of the MCAD board part, and the 3D model becomes the MCAD component.
This translation of objects can initially result in confusion; for example, when you move a component in MCAD, the component pads and their holes get left behind. After Pushing the board back to ECAD and then Pulling into MCAD again, the location of those pads updates to match the new location of their component.
To help understand this, the collapsible sections below summarize how objects are translated in each direction.
ECAD Board (*.PrjPcb) to MCAD Board Assembly
ECAD Object
becomes MCAD Object
Notes
Board
Shape - rigid board region
Part with an extruded sketch of the board shape
Learn more – SOLIDWORKS
Learn more – Creo
Shape - flex board region
Sheetmetal part with the sketch that corresponds to the flex region, with sketched bends for each ECAD bend
Learn more – SOLIDWORKS
Learn more – Creo
Cutout
Extruded cut feature
Pad hole
(components & free pads)
Circular hole
Hole in Board Part
Circular hole with countersink / counterbore
Hole with countersink / counterbore in Board Part
Uses the MCAD Revolve feature
Slotted hole
Extruded cut feature in Board Part
Rectangular hole
Extruded cut feature in Board Part
3D Object
Both true 3D models & extruded 3D body objects
Not transferred
It is assumed that 3D objects are part of the mechanical enclosure and already exist in MCAD. To transfer mechanical items from ECAD, include them as an ECAD component.
Room
Text Note Room extruded surface
Placed and graphically shaped in ECAD as a Room object, configured as a Placement Design Rule
Keepout area
Keep out area extruded surface
Can apply to all layers (defined on ECAD Keep-out layer), or be layer-specific (defined on an ECAD signal layer)
Rout tool path
Extruded cut
Component
3D model
MCAD Part Model
Transferred as a Parasolid part, unless MCAD part referencing is enabled and suitable parameter detected, then MCAD part placed from PDM. (learn more )
Component Parameters
MCAD Part Properties
MCAD part reference (optional)
MCAD part from PDM
MCAD part referencing configured in Workspace, and MCAD part reference included in component, and MCAD part found in the MCAD PDM. (learn more )
With Copper Geometry options disabled (learn more )
Component
Component copper (pads & user-defined copper areas)
(also Free Pad copper)
Surface layer copper becomes part of the surface Decal
Learn more
Silkscreen / Soldermask
Surface Decal
Learn more
Vias
Copper
Surface Decal
Learn more
Hole
Ignored
Barrel
Ignored
Other Copper, Soldermask & Silkscreen objects
Surface layer Decal for each side of the board
Each Decal combines: Silkscreen, soldermask, surface layer copper (learn more )
With Copper geometry options enabled (learn more )
Copper & Soldermask layers
Extruded sketch in <LayerName_ID>
Assembly
Build 3D Copper Geometry option enabled Each copper and soldermask layer becomes an MCAD assembly with an extruded sketch of the objects on that layer
Pads (component and free pads)
Copper
Extruded sketch in <LayerName_ID>
Assembly
Build 3D Copper Geometry option enabled
Barrel
Extruded sketch in
INTERLAYER<ID>
Part
Build 3D Copper Geometry option enabled (Part is a child of INTERLAYER<ID> Assembly)
Vias
Copper
Extruded sketch in
<LayerName_ID>
Assembly
Build Vias option enabled
Hole
Hole in Board Part
Build Vias option enabled
Barrel
Extruded sketch in
COPPER_LAYER_VIA<ID>
Part
Build Vias option enabled (Part is a child of INTERLAYER<ID>
Assembly)
MCAD Board Assembly to ECAD Board (*.PrjPcb)
MCAD Object
becomes ECAD Object
Notes
Board
Extrude based on the board outline shape
Board shape
Circular fillets with a constant radius and symmetric distance-distance style chamfers are supported. (Learn more )
Extruded cut
Board cutout
Internal contour in the board outline sketch
Board cutout
SOLIDWORKS only
Hole
Free pad
Board cutout
SOLIDWORKS only, when the Transfer board sketch holes option is enabled in the CoDesigner Settings dialog. (learn more )
Part Model
Component linkage enabled
ECAD Component
If MCAD-ECAD model linkage is configured and the referenced ECAD component is found in the Altium Workspace. (learn more )
Component linkage not enabled
3D Body Object
MCAD part placed as an ECAD 3D Body object (referred to as a Freebody object during Pull into ECAD).
Note that changes made to Freebody objects in ECAD (location, orientation, etc) are not transferred back to MCAD. (learn more )
Assy / Part
Located outside of the PCB Assembly and Defined in CoDesigner as part of the Enclosure, OR, located inside of the PCB Assembly
3D Body Object
Location changes made in ECAD are not transferred back to MCAD. (learn more )
Not defined in MCAD as part of the Enclosure
Not transferred
Constraints
Board outline
Not modified unless board shape is edited in ECAD, then board is redrawn in MCAD (edge IDs are updated). Constraints applied to those edges will be lost.
Board will remain in location in MCAD, constraints can be restored if required. (learn more )
Component
ECAD component is locked
Learn more
Unsupported Changes
Learn more
Automatic CoDesigner Push when you Save to Server
When you perform a Save in ECAD, your design file is saved locally, into the project's working folder. When you perform a Save to Server , your file is saved locally, and then also saved to the project's Workspace folder. These actions are independent of performing a Push in MCAD CoDesigner. 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.
The Workspace performs Automatic Pushing, initiating this process after the first Pull into MCAD has been performed.
Automatic Pushing is currently only enabled for Altium 365 Workspaces. Support for On-Prem Enterprise Server Workspaces will be added soon.
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.
If an automatic Push cannot be performed, the MCAD engineer is warned that the version of data they are pulling is not the latest (show image ).
Automatic Pushing is not performed when:
The PCB file has only been saved to the working folder, it is yet to be Saved to the Server. Once a Save to Server has been performed, automatic Pushing begins after the first Pull from the Workspace by the mechanical engineer.
The ECAD project contains multiple PCB files, all of which have been Saved to the Server. The ECAD engineer can resolve this by performing a manual MCAD Push on the correct PCB.
The PCB has failed CoDesigner's validation checks, these must be resolved before an automatic or manual MCAD Push can be performed.
Where MCAD CoDesigner Logs its Operational Progress
MCAD CoDesigner logs extensive details about all aspects of ECAD and MCAD operations into log files. The log files are located in:
C:\Users\<>\AppData\Local\Altium\Altium CoDesigner\
In this location:
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 who 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 .
The history of changes can also be viewed in the Workspace.
Refer to the Note in the right-hand pane for information on whether the project History feature will be available in your installation of MCAD CoDesigner.
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.
Keepouts and Rooms created or changed in ECAD are not displayed by default in MCAD, removing redundant visual information for the mechanical engineer. Their visibility in MCAD can be restored when needed.
Copper regions can not be defined in MCAD. If the MCAD engineer needs to define a copper region, place a Keep Out Area on the appropriate layer in MCAD.
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 .
CoDesigner MCAD Settings Menu
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.
To check the version number in an older version of CoDesigner that does not display the version number, open Programs and Features in the Windows Control 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
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.
Details for Starting the Design in ECAD
In ECAD, the CoDesign project must be a managed project. It is not necessary to start with a managed project though, if the project has been created as a local project it is automatically converted when you first attempt to Push.
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)
The Folder and Local Storage fields are accessed by clicking the Advanced control.
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.
Note that the PCB pushed to the Workspace is identified by the project name, not the board's filename. If you push a second PCB from the same project, it will overwrite the first PCB.
In MCAD:
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.
Details for Pulling the board into MCAD
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 .
The dialog can either show all projects across all folders or display projects within their folders, click the button at the top of the dialog to toggle the display mode.
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.
Pushing from MCAD back to ECAD:
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.
Pulling into ECAD:
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.
Re-opening an Existing Board
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.
Starting the Design in your MCAD Software
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.
If the ECAD project does not exist, it can be created in the MCAD software, along with the board assembly. Keep in mind that any constraints and dimensions you create before the board thickness is defined on the ECAD side may be lost when the ECAD designer edits the board thickness and pushes this to MCAD.
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.
When you click the Push button you are saving a list of push-able changes into your Workspace, not the complete board file. A board file must also be created in ECAD, any pending MCAD changes can then be Pulled into ECAD and applied to it. Refer to the Add a PCB to the Project section to learn how to create the board file in ECAD.
You can continue to edit the board shape in your MCAD software but it can not be considered functional until the board thickness has been defined in the ECAD PCB editor. The board thickness is determined by defining the Layer Stack in the PCB editor. This should be done before placing 3D Models and mounting holes in the MCAD software because a change to the board thickness can affect clearances between 3D Models and the board assembly.
The working copy of the MCAD design is a standard mechanical design file, stored in the default format of your MCAD software. The MCAD software remains aware that the assembly is part of a CoDesign, and will automatically check the synchronization status whenever the assembly is opened, and update the Altium CoDesigner panel to display the message history and details of any pending changes.
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 on/off state of the Share checkbox is determined by the presence of a Workspace member with the Mechanical Engineers role assigned. If there are none, then the checkbox is On by default.
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
Existing Workspace Status
Permissions Assigned During Share
Notes
No active Altium account
Not a member of the Project Workspace
Given Guest access to the project, with Edit permissions
Invitee receives an email with a link to create an Altium Account. Once created, the Guest will then also have browser access to the Project through the Shared with Me section of their Personal Space .
Note that the invitee will not have access to the project from their MCAD software. This can be resolved by adding the user as a member of the Workspace and assigning them Edit permissions.
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.
Note that the email notifications feature requires the Enable Mail Notifications option to be enabled in the Workspace (show image ).
After a brief delay, a success dialog will appear.
The project is now shared with the Mechanical Engineer.
Notes about Performing a Push and Share
You should sign into your Workspace in your browser and confirm that the invited mechanical engineer has been assigned Edit permissions in the project Share dialog (show image ). While the Mechanical Engineer will be able to Pull the board with only View permissions, they will not be able to Push changes to the board design if the project is not shared with them with Edit permissions. Because ECAD-MCAD CoDesign is done through a tool-neutral intermediate file and the mechanical engineer has read-only access to the actual PCB design files, the risk in sharing is low.
All Administrators for the Workspace will receive a notification email that the invitee (identified by their email address) was invited to the project.
If the invitee does not have an Altium Account, they will receive an email directing them to an intermediate form to sign up/register for an Altium account. Once they have registered, the project will be shared with them as a Guest with Edit permissions . Note that the non-Altium Account invitee, upon signing up, will be treated as if they were their own personal organization. They will not be added as a member of your Workspace (show image ).
If the Altium Designer engineer who performed the Push and Share does not have Workspace Admin permissions, the flow includes an additional stage. Firstly, all Workspace Administrators will be notified of the request for sharing. Once an Administrator approves the the Invitation Request (show image ), the invitation will be processed as just described, and the originator of the initial invitation will also be notified by email. Learn more about Inviting other Users to Your Altium 365 Workspace .
Working Between MCAD and ECAD
The precision of changes that CoDesigner currently detects are: 0.5 mils (0.0127 mm)
for linear dimensions, and 0.5 degrees
for angular dimensions. This precision will be increased in a future CoDesigner update.
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.
The following types of PCBs will not be transferred from ECAD to MCAD:
MCAD-Coordinates Grid
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.
Note that changing the location of the board outline in MCAD should be performed before components and other objects are placed, to avoid having to manually restore the location of these objects.
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.
The top/bottom Solder Mask layers are not transferred to Autodesk Fusion 360. Instead, the board object has the color of the ECAD Top Solder Mask layer applied.
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.
Notes:
Refer to the Note in the right-hand pane for information on whether the Advanced Copper Geometry feature will be available in your installation of MCAD CoDesigner. If it is not, image-based decals are available, as described above .
The copper shape can only be edited in ECAD, edits made in MCAD are not Pushed to ECAD.
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.
As mentioned earlier, in MCAD the components are placed on the top and bottom side component planes (which are created in MCAD when the board is pulled). Because these planes are at the outer surface of the top and bottom copper layers, components pushed from ECAD are placed in MCAD so that they ignore the thickness of the solder mask layer. This results in collisions between the components and the solder mask layer. If these collisions present a design issue, temporarily decrease the thickness of the PCB so that the components are effectively sitting on the outer surface of the solder mask layers. This will be resolved in a future update by the addition of an option to hide the solder mask layers in MCAD.
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, such as 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 defines an area where specific components must be placed or excluded. 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, such as 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.
Notes about transferring Board Areas:
Fill and Solid Region ECAD Keepout Regions are supported.
CoDesigner detects the locked status of Keepouts and Rooms in ECAD, ensuring that these are not moved during a Pull from MCAD.
Because the ECAD Keepout objects do not include a unique identifier or an object name, ECAD to MCAD Keepout changes are made by removing the existing object and adding a new object (with a new MCAD name).
Changes made to ECAD Rooms are also marked as removed and added during an ECAD to MCAD change, but the Name and Comment are retained.
Keepouts and Rooms created or changed in ECAD are not displayed by default in MCAD, removing redundant visual information for the mechanical engineer. Their visibility in MCAD can be restored when needed.
Important Note about Versions: If there is potential that the ECAD extension has been updated but the MCAD plugin has not, be careful when you are applying MCAD to ECAD changes. If you have Keepouts and Rooms defined on the PCB in ECAD, CoDesigner will suggest deleting them. The solution is simply to reject those changes in ECAD so that the Keepouts and Rooms are retained.
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. Note that this is the PCB component Height property, not the height of the 3D model added to the component footprint (show image ).
The threshold height that CoDesigner tests for is defined 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. The image below shows the settings for Autodesk Fusion 360, the same setting is available in each supported MCAD.
Small components can be excluded during Pull to MCAD by setting the Ignore components smaller than the height threshold.
Configuring the Component Height in ECAD
The video below demonstrates techniques for locating PCB components without their Height defined (default of zero) and quickly updating the Height value for multiple components. It then demonstrates how to set the Ignore components setting smaller than in MCAD, and how MCAD CoDesigner handles this during a Pull from ECAD.
Incorrect component Height values can be quickly detected and resolved in ECAD.
Smart Sketch Changes in MCAD
Support for Smart Sketch Changes in MCAD was added in MCAD CoDesigner 3.9.
Consider the situation where the ECAD engineer needs to modify the board shape, and that shape has dimensions and constraints applied in MCAD. Previously, the dimensions and constraints in MCAD's sketch would be lost when the board was Pulled back into MCAD. Now during a Pull, CoDesigner redraws only the elements of a sketch which were changed in ECAD, so that the dimensions and constraints related to non-changed elements are kept as they were.
Note that in some cases, for example where there are complex mechanical constraints, this behavior may lead to unexpected changes in the geometry. In such cases, it may be more efficient to disable this new smart sketch support feature and Pull again, then recreate the dimensions and constraints (as was required in earlier versions of CoDesigner). That can be achieved by disabling the Smart Sketch Change option in the MCAD Altium CoDesigner Settings dialog.
Smart dimensions that are not impacted by design changes, are retained during a Pull from ECAD.
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.
Working with PCB Variants
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.
Support for Pushing all of the variants from ECAD with the corresponding variant selection during Pull into MCAD was added in CoDesigner 2.3.0. In versions older than that, CoDesigner only supported Pushing and Pulling a specific variant of a board between ECAD and MCAD.
In versions of CoDesigner older than 2.3.0:
When you perform a Push from ECAD, you are pushing the variant you are currently looking at in the PCB editor.
Each time a board is Pushed from ECAD to the Workspace, it overwrites the data saved during the previous Push.
If multiple variants need to be pushed, each variant must be Pulled to MCAD and saved before the next variant is Pushed from ECAD.
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 .
Support for pushing all variants from ECAD and the ability to select the required variant in MCAD was added in CoDesigner 2.3.0. If you are working with a version of CoDesigner older than this, you must push each of the required variants from ECAD.
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 : <DesignName>_<VariantName>_BOARD
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.
Because the default name for the MCAD board assembly is the project name, it is recommended to save each variant assembly with a variant-related name.
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.
The Altium Workspace is not intended to be used as a mechanism for multiple MCAD engineers to synchronize changes; this should be done via a suitable MCAD Product Data Management system. If there is no PDM available and the Altium Workspace is being used, remember that the ECAD engineer must Pull and accept MCAD engineer 1's changes, then Push the updated board back to the Workspace, for MCAD engineer 2 to be then able to Pull and see them (as described below).
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.
Including Fillets and Chamfers in the Board Shape in MCAD
Support for Fillets and Chamfers was added in MCAD CoDesigner 3.9.
A common approach for a mechanical engineer is to apply chamfers and fillets to shape the corners of the board. If these are defined in MCAD as 3D entities, CoDesigner cannot transfer them to ECAD because the ECAD PCB editor defines the board shape as a 2D object (with a thickness). To resolve this, when CoDesigner detects such a 3D entity, it offers to convert them to 2D entities and embed them into the board sketch.
3D MCAD fillets and chamfers applied to a z-axis edge can be transformed to 2D by CoDesigner, and pushed to ECAD.
Note that fillet and chamfer transformation is a one-way process. Once they have been converted, they can no longer be edited as 3D entities.
The initial support for 3D-to-2D entity transformation is for 3D fillets and chamfers created on the vertical edges of the board shape in MCAD (edges along the Z-axis).
Versions prior to CoDesigner 3.9 warned the mechanical engineer about the existence of such entities, but they were ignored.
Fillet and chamfer support:
Regular (circular) fillets with a constant radius are supported. (show image )
Chamfers defined by equal distances from the edge (symmetric distance-distance) are supported. (show image )
Chamfers defined as an angle-distance (show image ), or non-symmetric distance-distance, are not supported.
Fillets and chamfers defined on non-straight side edges, as well as on other fillets and chamfers, are not supported.
Fillets and chamfers defined on a rigid-flex design are not supported.
The Fillet and Chamfer Transformation Process
When you click Push to ECAD in the Altium CoDesigner panel and 3D entities are detected, the following dialog is displayed.
If you click Yes - the 3D entities are transformed into 2D entities and applied to the board sketch. Note that CoDesigner has not performed the Push yet. The following dialog will appear, instructing you to Push again to transfer the design to ECAD. Visually confirm that the transformation has been performed correctly, then click Push to ECAD in the Altium CoDesigner panel to continue the collaborative design process.
If you click No - the 3D entities are not transformed and the following dialog is displayed, listing all 3D entities that will not be transferred to ECAD. This dialog is also displayed when there are 3D entities that CoDesigner cannot transform to 2D.
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).
Note that this feature utilizes a new API, so is only available with Altium Designer 21.3.x or newer.
Note that the automatic feature does not resolve self-intersections detected in the board outline or in a board cutout. To resolve these you can use the manual techniques 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 (mm
or 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.
The video above demonstrates resolving issues with the board outline and a board cutout in Altium Designer. The process is essentially the same in other Altium design software.
Learn more about the Vertex Editing Modes
Learn more about Defining the Board Shape
Fixing one issue forces ECAD to recalculate the entire contour of the board or cutout, and that recalculation might solve other issues automatically, so it is recommended to do a Push after each fix action.
Pull a Previous Revision of the PCB into MCAD
Support for pulling a previous revision was added in MCAD CoDesigner 3.9i
To Pull the ECAD board into an empty MCAD assembly, click the Pull button in the Altium CoDesigner panel to open the Select Project from Company Workspace dialog. The dialog defaults to giving you the last-pushed board. If you need to open a previous release or revision of a PCB design, click Change in the ECAD Push to Open section of the dialog, opening the Select Push dialog.
The dialog lists all previous Pushes, choose the one you require and click OK . If the ECAD commits have been tagged, you can quickly filter the list by enabling the Only show tagged commits option in the Select Push dialog.
Use the Select Push dialog to select the previous revision, from all revisions Pushed in ECAD.
The Workspace performs Automatic Pushing, initiating this process after the first Pull into MCAD has been performed. Learn more about Automatic Pushing .
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.
Before being transferred from ECAD to MCAD, the 3D component models are transformed to the Parasolid format (learn more about how the 3D models are named in MCAD). There may be situations where some of the models can not be transformed. Such models are replaced with their bounding box in MCAD, and CoDesigner shows a warning message about this.
Alternatively, you can replace such a model with a single-body parasolid model in ECAD, as these are transferred directly between ECAD and MCAD without transformation. Learn more about Resolving Problematic Models .
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.
One approach to changing the PCB shape is to delete the whole outline and create it from scratch using an offset from the corresponding contour of your 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.
Notes:
Do not include any internal contours in the board outline sketch in Creo and Inventor, or in the rigid-flex board outline sketch in SolidWorks. For cutouts and holes, use the Extruded Cut or the Hole feature, accordingly.
Do not create multiple profiles in the board outline sketch in Inventor, CoDesigner can interpret them in an unpredictable manner.
In Fusion 360, if the board shape is being recreated in MCAD using the Project command to project an existing enclosure contour, you must disable the Projection Link option in the Fusion 360 PROJECT dialog. When the Projection Link option is enabled, the projected contour is automatically resized whenever the referenced contour is resized, at this stage CoDesigner does not support this capability.
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).
It’s strongly recommended that this constraint is NOT modified or broken, because it may cause unpredictable changes.
Notes:
If components are already placed, they should be moved within the board assembly, accordingly.
The “electrical” board origin in ECAD will not be changed, as it is handled separately.
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.
Notes:
Feature patterns are not supported.
If the hole locations are defined in relation to the board edge, these relations will be destroyed if the board outline is subsequently modified in ECAD and brought back into MCAD. See the section Working with Constraints and Dimensions below, for more information on working with holes.
Creating/editing Cutouts
Start editing the Board part.
Create/edit an Extruded Cut feature based on the top or the bottom surface of the board part.
Notes:
Sketches with multiple contours are not supported in PTC Creo or Autodesk Inventor, they should not be used.*
Feature patterns are not supported.
If the sketch of the extruded cut is defined in relation to the board edge, these relations will be destroyed if the board outline is subsequently modified in ECAD and brought back into MCAD.
Editing the placement of components
Start editing the Board assembly.
Move/rotate/flip, or mate/constrain a component.
Notes:
Component holes and the silkscreen do not follow component moves in MCAD. To reflect component-dependent changes like these; Push the board to ECAD, apply the changes there, then Push the board from ECAD back to MCAD to update the component holes and silkscreen.
MCAD mates/constraints that reference a board edge can be destroyed if the board shape is modified in ECAD.
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.
Considering the time involved in redefining constraints, it is recommended to only make changes to the board outline in MCAD .
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.
Note: Be careful with where the mates/constraints are applied. For example, if you have not secured the PCB assembly within the device assembly and then applied a constraint/mate between a PCB component and the enclosure, it may cause unpredictable changes in your design.
Changes that will not be Transferred from MCAD to ECAD
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.
Refer to the Note in the right-hand pane for information on whether the Enclosure Exchange feature will be available in your installation of MCAD CoDesigner. If it is not available, this video demonstrates 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.
* This behavior is planned to be improved in a future update.
Working with an MCAD Data Management System
Refer to the Note in the right-hand pane for information on whether the ECAD-MCAD Component Linkage feature will be available in your installation of MCAD CoDesigner.
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 .
The link between the ECAD component and the native MCAD component is defined in your Altium Workspace. Learn more about Linking from the ECAD Components to the MCAD Components .
The Altium Workspace is not intended to be used as a mechanism for multiple MCAD engineers to synchronize changes; this should be done via a suitable MCAD Product Data Management system. If there is no PDM available and the Altium Workspace is being used, remember that the ECAD engineer must Pull and accept MCAD engineer 1's changes, then Push the updated board back to the Workspace, for MCAD engineer 2 to be then able to Pull and see them.
Working with SOLIDWORKS PDM
CoDesigner has been developed and tested with SOLIDWORKS® PDM Professional.
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>:folder\folder\component.sldprt
, where <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, ManagedProjectGUID
and 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: <ManagedProjectName>.PrjPcb
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 ManagedProjectName
and ManagedProjectGUID
properties, the CoDesigner panel will reflect the updated project name.