Parent page: More about PCB Design
There's a saying in the design world that the cost of fixing a mistake goes up 10 fold each step of the way. So it costs 10 times as much to fix a mistake during prototyping compared to fixing it during design, then 10 times more again to fix that same mistake during production, and 10 times more again to fix it once the product has been shipped! These are rough approximations, but a cost increase in the order of 1000 times to fix a mistake when the product is in the customer's hand, compared to fixing it during design - that's a strong motivator to get it right during design!
One of the hardest areas to get right is fitting the loaded board into the product enclosure. Today's products are not large, rectangular boxes with lots of empty space - they have unusual shapes, are often compact with tightly packed innards, and might include multiple PCBs that connect together. And the board has to fit precisely into the housing, so that the mounting holes, display and other controls align exactly with their openings and fixing points.
Why is it so hard? - because the board design must move back and forth across the ECAD - MCAD divide.
Traditionally, the ECAD guy designed the board in a 2D design environment, sizing the board and positioning the case-critical elements using dimensions provided by the MCAD designer. On the other side of the fence, the MCAD guy would model the board and place the critical components based on dimensions provided by the ECAD designer - and fingers crossed - they would both get it right and the board would fit!
To help avoid mistakes and that dreaded cost multiplier, a common approach has been to mock-up the loaded board for fit in its enclosure. The board is mocked-up by printing the component overlay and pads, and sticking that printout onto thin cardboard. Then the critical components are glued on, including anything that had to project through or come close to the case, like the connectors and the display. The case is modeled using cardboard or foam, and the board fitted into it. Often this is simply not practical for many product designs, for example, things get hard when the case is an unusual shape.
Like all areas of design, getting a board into its enclosure is about give and take - adjust that mounting hole location, tweak this component position, then modify the display opening when the supplier flags the chosen display as end of life.
The best solution is to knock down that fence and create a connection between the ECAD and MCAD design domains. A connection that allows the loaded board to be easily transferred back and forth between the ECAD and MCAD design spaces.
For this to happen, you need 3 dimensional ECAD and MCAD design environments. You also need the board and its components to have a 3D definition that can be understood in both design domains, supporting those critical changes to the board shape, component locations and case openings.
To deliver this you need a 3D PCB editor, that can:
Sometimes the response when a board designer first sees their board in 3D in the PCB editor is, "hey I don't need that, that's just eye candy!"
Yes it does look good, but it's definitely not just eye-candy. Sure the board designer is highly skilled at mapping 3 dimensional design tasks into a multi-layered 2D design space, and many of the design tasks, such as routing, are well handled in that 2D space. But the 3D mode of the PCB editor offers the designer much more.
Being able to display the board in a highly realistic 3D view allows the designer to see the loaded board, ready to be fitted into the enclosure. Add a 3D mouse, such as the Space Navigator, and the realism goes up a notch - it's as if you're holding the loaded board in your hand, turning it around and over as you examine it in detail. Now you can immediately see that a designator will be obscured by that component, or that you've forgotten to tent the vias.
Add support for importing component models and now you can bring in those unusually shaped, dimensionally critical components, such as the connectors.
Then add support for 3D collision detection, and now you can be confident that that component will fit under the connector, and the loaded board will fit into its enclosure.
Add the last piece in the puzzle, support for exporting the loaded board to MCAD, and the mechanical designer can test it for fit inside the final enclosure, complete with fasteners, stand-offs and the myriad of other mechanical items that go to make up the finished product.
To support the various design tasks, the PCB editor has 3 display modes (View menu):
In the PCB editor 3D Layout Mode, you can fluidly zoom the view, rotate it and even travel inside the board using the following keyboard and mouse combinations:
The video below demonstrates most of these view control techniques.
Main article: Creating the PCB Footprint
In the PCB editor, the area that the component occupies on the fabricated board is defined by the component footprint. Component footprints are created and edited in the PCB library editor. Refer to the Creating the PCB Footprint page to learn more.
A typical footprint includes pads and a component overlay, and can also include any other mechanical details required. In the example footprint below, most of the component outline is defined on a mechanical layer (the green lines) rather than the (yellow) overlay, because this component will be mounted so that it hangs over a cutout in the board.
The component that is mounted on that footprint can be modelled using 3D Body objects, which are placed onto the footprint in the PCB library editor. The 3D Body object supports a number of simple shapes, including extruded polygons, cylinders and spheres, that can be combined to build up the required component shape, as shown in the image on the left below.
The 3D Body object is also used as a container into which an MCAD format model can be imported. Doing this allows the imported MCAD model to be maniplated in the same way as standard 3D Body objects. The image on the right below shows a STEP model for an LED.
If the component is not dimensionally critical, or there is no suitable MCAD model available, its shape can be defined by placing one or more 3D Body objects.
There are three styles of 3D Body objects that can be placed:
|Generic||A generic model, such as a STEP-format component model, is placed by linking or embedding it in a 3D Body object.|
|Extruded||In the X-Y plane (top view), the extruded object is defined interactively, in the same way that other polygonal objects are defined in the PCB editor. The object is then extruded up (or down) in the Z plane, based on the Overall Height and Standoff Height properties defined in the 3D Body mode of the Properties panel, and the Body Projection option. You can also apply a Texture File, such as a logo, to the surface of an Extruded 3D Body object.|
|Cylindrical||The properties of this shape are defined in the 3D Body mode of the Properties panel.|
|Spherical||The properties of this shape are defined in the 3D Body mode of the Properties panel.|
Refer to the 3D Body object page to learn more about placing and editing 3D Body objects.
To accelerate the process of building up the component shape out of 3D Bodies, the software can create a series of extruded 3D Body objects based on shapes detected in the footprint. This feature can be helpful if the component has an unusual shape, which is already reflected in the shapes defined in the footprint's component overlay. You can also add additional objects into the footprint on mechanical layers, which you can then use to create additional 3D Body objects from - for example, to create the pins.
The images below show a TO-92 transistor footprint. From this an outline drawn on a mechanical layer is used to define the transistor body. There have also been 3 small squares created on that mechanical layer (placed as 4 lines), which are used to define the component pins - the settings are shown in the dialog image below.
To create 3D Body objects from shapes in the footprint run the Tools » Manage 3D Bodies for Current Component command, the Component Body Manager dialog will open.
Notes about using this dialog:
An accurate 3D model is the preferred approach. Not only does it look better, if it is correctly designed it will be dimensionally accurate, giving more accurate 3D collision testing in the PCB editor.
Notes on importing a 3D MCAD model:
*.Stp), Parasolid (
*.x_b) and SolidWorks Parts File (
Once the MCAD model has been placed near the component footprint, it can be positioned. It is common that a downloaded 3D model will need to be reoriented to suit the footprint.
There are a number of tools and features to help with this process:
To improve the convenience and accuracy of adding Snap Points to a 3D model, the following points are automatically snapped to during Snap Point definition:
Main article: STEP Export-Import
A common approach is for the mechanical designer to develop an initial concept model, so everyone involved can get a sense of what the product will look like. From there the mechanical designer refines the enclosure design, and defines the initial board shape.
That enclosure and board shape can be passed over to the ECAD designer, by saving it out of the MCAD tool in the STEP format.
STEP is a complex and highly detailed file format. To maximize the success of transferring design data, keep the following in mind:
As well as being able to import a component model into the library editor, you can also import the enclosure into the PCB editor. Doing this allows you to perform accurate 3D collision testing of the loaded board sitting inside its enclosure.
When you are using an MCAD component model, it is imported into the footprint in the PCB library editor. For the enclosure, you import the model into a 3D Body in the main PCB editor, using the Place » 3D Body command. In the 3D Body mode of the Properties panel, you must set the source of the model to Server, File or Embedded. If you choose the Embedded option, the MCAD model is stored within the PCB file. For the Server and File options, the model is linked to the PCB file.
The process of importing an MCAD enclosure into the PCB editor is demonstrated in the next video, below.
Main article: PCB - 3D Models
A big advantage of defining the PCB editor board shape from the board shape in the STEP model, is that your board is then perfectly sized and positioned within the enclosure. To redefine the board shape you need to be able to see the board inside the STEP model, which you can do by hiding part or all of the enclosure (demonstrated in the next video).
The visibility of all 3D models is controlled in the 3D Models mode of the PCB panel.
To hide a sub-part in a model:
If the imported enclosure includes the board shape, and that shape has been included as a separate sub-assembly, then the ECAD board shape can easily be redefined directly from the MCAD board shape, as shown below.
To define the PCB editor board shape from a shape within the imported STEP model:
Main article: Constraining the Design - Design Rules
Perhaps the greatest strength of the 3D PCB editor is the ability to perform 3D collision testing. As well as catching general component-to-component collisions, now you can confidently position one component under another, or test if the loaded board fits correctly into the enclosure.
Collision testing relies on the Component Clearance design rule. This is a binary rule, meaning it tests between this object(s) and that object(s).
The default behavior is to display the objects in violation, and the distance between those two objects. To see the exact location of the minimum separation between the objects, enable the Show actual violation distances option in the Component Clearance design rule.
Main article: Scoping Design Rules
To get the most out of the design rules system, it is important to understand how to best scope the design rule. The rule scope defines the set of objects targeted by that rule, for example a rule scoped with the
InPolygon keyword will apply to all of the primitives within all of the polygons on the board. To target a the objects within a specific polygon, you would use the
If you are creating a rule to target a specific component, you can use the query keyword
InComponent('ComponentDesignatorHere'). That rule scope will target all objects within the component C1, including the pads, overlay tracks, 3D model, and so on.
If you only want the rule to target the 3D model in a component, you can use the
id keyword in the design rule. For example, in the video above the LCD is a separate sub-assembly, with a designator of LCD1. The 3D model used in that component has an id value of
LCD_2x16, as shown in the image on the left below. To use this id, the rule could have been configured as shown in the image on the right.
As well as checking for collisions, another task the designer often needs to do is to measure the distance between two 3D objects. What is the clearance between the connector and the case? How much room is there between that IC and the connector that is above it?
The Measure 3D Objects command (Reports menu) gives detailed measurement distances for the X, Y and Z planes, as well as the shortest distance between the chosen objects.
The command has 2 modes for selecting the target object:
In the image below a surface on the blue connector has been chosen, and the closest surface on the white product case. The 3D Distance dialog has been overlaid on the image.
Main article: STEP Export-Import
So you're ready to export the loaded board to your MCAD designer, you do this via the File » Export » STEP 3D. Once you've entered a name for the file, the Export Options dialog will appear.
Notes about using this dialog:
There are a variety of 3D-type outputs that can be generated. The table below summarizes the available outputs and how each is configured and generated.
|Output Type||Best From The||Notes|
|Screen capture||PCB editor||When the editor is in 3D Layout Mode, press Ctrl+C to take a screenshot of the current view. The 3D Snapshot Resolution dialog will appear, select the required Render Resolution and click OK to copy the image onto the Windows clipboard. From there, paste it into your preferred bitmap editor.|
|PCB 3D Print||OutputJob||
Configured in the PCB 3D Print Settings dialog. In the OutputJob, map the output a New PDF container or directly to a printer. Position the board as required before generating output, then click the Take Current Camera Position and Take Current View Configuration buttons to generate a printout of what you can see on the screen. The output will be the same as performing a screen capture.
|PCB 3D Video||OutputJob||
Configured in the PCB 3D Video dialog. In the OutputJob, map the output to a New Video container. Output can be in a variety of video formats. To generate this output you need to first define a PCB 3D movie in the PCB 3D Movie Editor panel. Refer to the 3D PCB Video page to learn more.
|PDF 3D||OutputJob / PCB editor||Configured in the PDF3D dialog. In the OutputJob, map the output to a New Folder Structure. Requires Adobe Acrobat v9 or newer to support the 3D motion. Output can also include key frames from a PCB 3D Movie, if one has been defined. Refer to the PDF3D Exporter page to learn more.|
The PCB editor is able to generate printouts from both the 2D and 3D layout modes. It is also possible to define multiple 2D printouts, with different layers and objects enabled - for example, final artwork prints, composite prints, power plane prints, and so on.
Since there are multiple PCB printouts available, the printout that is generated when you select File » Print from the PCB editor menus is determined by the currently selected Default Print, which is configured via the File » Default Prints command.
Main article: Preparing Multiple Outputs in an OutputJob
Because there is a range of PCB printouts available, most designers prefer to use an OutputJob, where each specific output type can easily be added and configured, and output generated from it.
The 3D type printouts are added in the Documentation Outputs section of the OutputJob file. Click the Add New Documentation Output link to display the menu and select the required output type, as shown in the image below.