Altium Designer 20.2 or later, with the MCAD CoDesigner extension version 2.0.4 or later (extension 2.1.0 recommended)
Dassault Systemes SOLIDWORKS® (Standard, Pro & Premium) - version 2018, 2019, 2020, 2021, with CoDesigner Addin version 2.0.4, or later (Addin 2.1.0 recommended)
Rigid-flex support is only available for SOLIDWORKS, support for PTC Creo® and Autodesk Inventor® is coming soon.
Perhaps the most challenging printed circuit board design to bring to production is a rigid-flex design. Designing a flex or rigid-flex circuit is very much an electromechanical process. Designing any PCB is a three-dimensional design process, but for a flex or rigid-flex design, the three-dimensional requirements are much more important. Why? Because the rigid-flex board may attach to multiple surfaces within the product enclosure during the product assembly process, requiring careful design of how the loaded board will flex to interface to the enclosure during assembly.
To date, this tight electro-mechanical design challenge has been solved by making a mechanical mock-up, also known as a paper doll cut out. This process must be as accurate and realistic as possible with all possible mechanical and hardware elements included so that both the assembly process and the finished assembly can be carefully analyzed.
Altium CoDesign helps solve this challenge, delivering the ability to transfer the rigid-flex design between the ECAD and MCAD domains. It does this by implementing each flex region of the board as a SOLIDWORKS Sheet-Metal Feature.
How it Works
Rigid-Flex in Altium Designer
In Altium Designer, the rigid-flex board is designed in the X-Y plane as a single board outline, which is then split into board regions. The Z-plane is defined by configuring the set of copper, insulation, and surface finishing layers to be created during the board fabrication process.
For a rigid-flex design, the set of fabrication layers can be different for each region of the board. For example, one rigid region might be four copper layers, a flex region projecting from that rigid region might be one copper and one melamine layer, and the flex region might connect to another rigid region, made up of six copper layers. In Altium Designer a separate layerstack is defined and assigned to each of these regions.
A board with two rigid regions connected by a flexible region, in Altium Designer on the left and in SOLIDWORKS on the right.
In Altium Designer the rigid-flex board is designed flat. Bends defined in the flex regions can be applied when the board is displayed in the PCB editor's 3D Layout Mode, by sliding the Fold State slider in the Layer Stack Regions mode of the PCB panel. The bends are applied in the Sequence order configured in the panel.
The board is Pushed to SOLIDWORKS in the folded state, the bends can then be suppressed in SOLIDWORKS to display and work on the board.
When the rigid-flex board is Pushed from Altium Designer to SOLIDWORKS, the board structure is mapped in the following way:
A SOLIDWORKS part is created for the entire board, named <PcbProjectName>_BOARD
Within this part, a SOLIDWORKS Extrude Feature is created for each rigid and each flex region, named <PcbRegionName>. The thickness of each extrude is defined in ECAD by the sum of the layer thicknesses included in the board layer stack in that region.
Each flex region of the board is represented by a SOLIDWORKS Sheet-Metal Feature.
For each bend in a flex region, a SOLIDWORKS Sketched Bend is created. Sketched Bends can be suppressed in SOLIDWORKS to flatten the board out.
A coordinate system is defined at one end of each of the rigid-flex split lines. Each of these coordinate systems is used for mating each rigid region component assembly (described below).
The board outline is defined by a Sketch. This Master Sketch includes all regions split by the split lines.
A SOLIDWORKS Assembly is created for the set of components mounted on each rigid region of the board, named <PcbRegionName>_COMPONENTS. The assembly includes a SOLIDWORKS Part for each component mounted on that region. This assembly is mated to the board part by a local coordinate system.
Note that components mounted on the flex region(s) are not transferred to SOLIDWORKS.
Altium CoDesigner supports the transfer of rigid-flex boards from ECAD to SOLIDWORKS and back.
The Mechanical Engineer, after getting a rigid-flex board from ECAD, can:
Preview the ECAD changes in MCAD.
Create new rigid and flex board regions in MCAD.
Create new bends in MCAD.
Make changes to the geometry of the rigid and flex segments of the board. For example, adjust the board’s shape to suit the geometry of the product enclosure, create cutouts or mounting holes, or change the radius of a bend.
Make changes to the placement of existing components, and place new components on the board.
Push those changes to ECAD and pull new changes from ECAD.
Capabilities not yet Supported
Create a rigid-flex board from scratch in MCAD.
Transfer copper and silkscreen detail.
Transfer boards that include flex regions that have different thicknesses (multiple flex regions are supported).
Transfer components mounted on a flex region from ECAD to MCAD.
Place components on a flex region in MCAD.
Create new board regions on a flex-only board.
Requirements for the ECAD Board Definition
When the board is Pushed from ECAD, CoDesigner checks for potential issues with the board outline, and the location and size of bending areas. On Pull in to MCAD, CoDesigner also checks the radius of each bend and rejects any bend that cannot be rendered as an MCAD sheet metal bend.
The Board Shape
On Push from ECAD the board contour (outline) is tested. If there are micro-segments or self-intersecting contours detected, an error dialog is displayed detailing the location of each error. These issues must be resolved in ECAD.
CoDesigner tests the board outline for issues that cannot be supported in MCAD, resolve these in ECAD.
In ECAD, technically there is no limit to the properties that can be applied to a bend in a flexible PCB. In MCAD, sheet-metal capabilities are used to represent the flex segments, and all MCAD tools apply the physics of bending metal as limitations to the bend properties.
To ensure that the bends can be represented in MCAD, the following requirements must be met:
A bending area should not overlap or touch another bending area or rigid region. The bend radius must not extend beyond an adjacent split line, requiring at least 2.5 mil (0.075 mm) distance between the edge of the bend area and a rigid region. This is tested when you Push in ECAD and must be resolved to be able to push successfully.
In this design, the bend area is too close to the split line (less than 2.5mil).
Suitable bending radii are defined. CoDesigner checks for: a bending radius that is too small; a bending angle that is too big; or bending segments that are too short. This is checked during Pull in to MCAD, taking the thickness of “metal” and the bend relief requirements into consideration.
Two bends have a radius that is too small to be formed in sheet metal so cannot be created.
It is not possible in ECAD to calculate which bends can be built by the MCAD tools and which will fail. However, during Pull in to MCAD CoDesigner will warn if a bend cannot be built. In this situation, it is recommended that the mechanical engineer contact the ECAD designer to work out how the properties of a specific bend can be changed.
On Pull in to MCAD, CoDesigner checks that the minimum bend radius is:
rmin > 1/2 * FlexSubstackThickness
The substack thickness is displayed in the Layer Stack Manager Properties panel.
Open (expand) the main board Part in the model tree.
Open the first flex Region Feature and start editing its Sketch (this is the master Sketch for the entire board).
Each edge will include an anchor, these are added by CoDesigner during initial creation for internal purposes, they can be deleted as required to modify the Sketch.
Split lines can be deleted and recreated if required.
Modify the shape as required.
Edit the master Sketch to change the shape of the board.
If a rigid or flex segment, or a bending line, is accidentally broken or removed you will have to restore that definition manually.
To create or redefine a flex region
If a split line has been removed and redrawn, the flex region will need to be redefined.
Edit the flex feature in the model tree.
Check that the correct Contour in the Sketch is being used for the flex region. If it is not, delete the Selected Contour and select the correct one. ( show image )
The sheet metal feature that represents the flex region may report an error with an incorrect face being referenced, edit the feature and select the bottom Face as the reference. ( show image )
Bends in this flex region may have also been broken, there are tips for fixing these below.
To restore a bend broken by edits made to a flex region
Expand the Sketched Bend in error in the model tree.
Edit the Sketch Plane for that Sketched Bend. ( show image )
To position the bend, edit the Sketch for the Sketched Bend. ( show image )
Position the bend in the correct location. ( show image )
To define the properties of the bend, edit the Sketched Bend and configure the radius and angle. ( show image )
To change a bend
Select a Sketched Bend and Edit it to change its location, angle or radius.
The Coordinate System is used to secure the assembly of components placed on that rigid section of the board. If the Coordinate System becomes broken, it can be restored by synchronizing the board with ECAD.
This is done by:
Pushing the board shape changes to ECAD
Pulling and applying those changes in ECAD
Pushing the board from ECAD back to MCAD
Pulling the board in to MCAD
To create a cutout or a mounting hole
Start editing the main board Part.
To ensure the Cut Extrude or Hole is created before the board is flexed, move the “feature visibility” bar of the Cut Extrude or Hole upward in the model tree and place it above the first Bend feature.
Create a Cut Extrude or Hole on the board part (with the sketch located on its top or bottom face).
Making Changes to Component Placement in SOLIDWORKS
To define the precise location of a component (universal approach)
Move your component upwards in the model tree to the board assembly level (if you want to locate that component relative to the board) or to the device level (if you want to locate that component relative to the enclosure).
Define the precise location of that component using mates or dimensions. Then delete those mates/dimensions.
Move your component back into the initial component subassembly (or to another subassembly if required) in the model tree.
To make a simple movement/rotation of a component on the same board face within one rigid region
Start editing the corresponding component subassembly.
Move/rotate the component using the corresponding capabilities of SOLIDWORKS (eg “Triad”).
Additional Recommendations for the Mechanical Engineer
How to unfold a board (for example, to check for overlapping)
Open (expand) the main board part in the model tree.
Select the Sketched Bend features in the model tree (one or several according to the board structure and what is required) and Suppress them.
Note that in SOLIDWORKS 2018 and 2019, the components of an assembly related to a rigid region will not move with the region, on unfold.
If you broke a model (and rebuild or undo does not help)
If your latest changes were not saved, simply close your PCB assembly without saving, and open it again.
If saved, pull changes from your managed content server and apply only those that are related to the broken entities.
If pulling changes did not help, close your PCB assembly and pull it again to a new folder (keep in mind that the changes you just made to the PCB will be lost).
Do not change the set of existing coordinate systems and the set of mates between them.