Преимущество 3D в интеграции ECAD-MCAD
Parent page: More about PCB Design
The 3D Advantage
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.
Ambiant Stack Machine prototype made during a practical course on Physical Computing at Ludwig-Maximilians-Universität München (image credit: FredericPK from SketchingWithHardware)
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:
- Create 3D component models
- Import standard-format 3D component models
- Import the product case/enclosure
- Perform 3D collision checks within the PCB editor
- Export the loaded board in a standard file format
The 3D PCB Editor
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.
Apart from looking great, there are many reasons to work in a true, 3D PCB editor. The motion in this animation was created with the PCB editor's 3D movie feature.
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.
PCB Editor Display Modes
To support the various design tasks, the PCB editor has 3 display modes (View menu):
- Board Planning Mode - use this mode to define the overall board shape, as well as board regions and bending lines on a rigid-flex design. Press the 1 shortcut to switch to this mode.
- 2D Layout Mode - the standard 2D PCB design mode, used for component placement and routing, and general board design tasks. Press L to configure the layers that are currently displayed. Press the 2 shortcut to switch to this mode.
- 3D Layout Mode - a highly realistic 3D representation of the board. Press L to configure the Projection mode, which layers are visible, their colors, and if 3D bodies are to be displayed/hidden. Press the 3 shortcut to switch to this mode.
Use the 1, 2 and 3 shortcuts to quickly switch to the required display mode: Board Planning Mode, 2D Layout Mode and 3D Layout Mode.
Controlling the 3D View
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:
Zooming
- Ctrl + Right-drag mouse, or
- Ctrl + Roll mouse-wheel, or
- PgUp / PgDn keys.
Panning
- Right-drag mouse, or
- the standard Windows Roll mouse-wheel (vertical) or Shift+Roll mouse-wheel (horizontal).
Rotation
- Shift + Right-drag mouse. When you hold the Shift key down, a directional sphere appears at the current cursor position (as shown in the animation below). Rotational movement of the model is made about the center of the sphere (position the cursor before pressing Shift to display the sphere), using the following controls. Move the mouse around to highlight and select the required control before right-clicking:
- Right-drag sphere when the Center Dot is highlighted - rotate in any direction.
- Right-drag sphere when the Horizontal Arrow is highlighted - rotate the view about the Y-axis.
- Right-drag sphere when the Vertical Arrow is highlighted - rotate the view about the X-axis.
- Right-drag sphere when the Circle Segment is highlighted - rotate the view about the Z-plane.
Change the Orientation
- 0 (zero) - view board from above
- 9 - view board from above, rotated 90 degrees
- 8 - orthogonal view of board
The video below demonstrates most of these view control techniques.
Use the keyboard keys in combination with the right mouse button to orient the 3D view.
The Footprint and the Component
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 footprint defines the space the component occupies , and provides the points of connection from the component pins/pads to the routing on 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.
3D Body objects can be used to create the component shape (left). If there is a suitable MCAD model available, it can be imported into a 3D Body object.
Creating the Shape from 3D Body Objects
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. |
Component shapes can be built up from multiple 3D Body objects
Refer to the 3D Body object page to learn more about placing and editing 3D Body objects.
Create the 3D Body Objects from the Footprint
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.
Existing objects in the footprint can be used to create new 3D Body objects.
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.
8The software can create 3D Body objects based on the shape of existing objects.
Notes about using this dialog:
- The detection algorithm will offer either: a rectangular shape created from the bounding rectangle, or a polygonal shape that follows the outline of the object.
- To create a 3D Body from an existing object, click the blue text in the Body State column.
- The Overall Height defaults to the Height defined in the PCB Library Footprint dialog.
- For a component pin that passes down through the board, set the Body Projection to Bottom Side.
- The 3D Body objects are created when you click the Close button in the dialog. If the display is already set to 3D mode you might need to refresh it (End shortcut), or switch to 2D then back to 3D, to see the new objects.
Importing a 3D MCAD Component Model
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:
- A 3D model is added to a component footprint by placing a 3D Body object - the 3D model is then imported into that 3D Body object.
- When the Place » 3D Body command is selected from the menus the command will default to placing an extruded shape, press Tab to pause the placement process and open the Properties panel in 3D Body mode to import a 3D model.
- In the 3D Body mode of the Properties panel, click the Generic button to display the Source options, which can then be set to use an Embedded model (models must be embedded in a footprint, or sourced from a server).
- Click the Choose button to select the 3D MCAD model file. Components can be imported in the STEP (
*.Step
and*.Stp
), Parasolid (*.x_t
and*.x_b
) and SolidWorks Parts File (*.SldPrt
) formats. - When a model has been selected and the Open button clicked in the Choose Model dialog, the model will appear floating on the cursor in the workspace. If the editor is still paused, click the pause button (
) to return to editing, and place the model anywhere in the workspace.
- The default behavior of the software is to remain in placement mode, press Esc to drop out of placement mode so you can position the model just placed. More on positioning the 3D model below.
The 3D MCAD model is imported into a 3D Body object.
Orienting and Positioning the 3D Model
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:
- Additional Snap Points can be added to the model, which can then be used to hold the model as it is accurately positioned on the footprint.
- Snap Points can be added interactively, via the Tools » 3D Body Placement » Add Snap Point from Vertices command. The command has 2 modes (create the point at a click location, or, create the point midway between 2 click locations), press Spacebar to switch modes after choosing the STEP model. Keep an eye on the Status bar to know where you are up to in the process, and which mode you are in. The video below demonstrates using this command.
- Snap Points can also be defined by entering the X, Y & Z values in the Properties panel in 3D Body mode (double-click on the model to open the panel in this mode).
- The Properties panel can be used (in 3D Body mode) to rotate the model around each axis, and raise or lower it in the Z plane (demonstrated in the video below).
- The model can also be aligned with the footprint using the Tools » 3D Body Placement » Orient and Position 3D Body command. This command requires you to first click to nominate 3 reference points on the footprint, and then click on 3 corresponding vertices on the model. The software will then reorient the model and position those 3 model vertices at the equivalent reference points you chose on the footprint.
- Generally, it is easy to perform rotation tasks in 3D display mode, and X-Y positioning tasks, such as aligning a Snap Point with a location on the footprint, in 2D display mode.
The Properties panel can be used to visually reorient the model.
Center Snapping for 3D models
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:
- All hole centers.
- The 90° locations (points crossing the orthogonal axes) around a hole circle.
- The middle of a border line.
- The model’s body axis.
- The center point in a line between two snap points (Spacebar mode).
These snap points were added using the automatic snap to hole center capability.
MCAD to ECAD - the Enclosure and Board Shape
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.
Exporting the Enclosure from MCAD
STEP is a complex and highly detailed file format. To maximize the success of transferring design data, keep the following in mind:
- The board shape can be exported inside the enclosure, as long as it is a separate sub-assembly. If this has been done, you can redefine the ECAD board shape from the mechanical definition with a few clicks in the PCB editor.
- Use the AP214 format whenever possible
- Use a surface or solid geometries option, if available
Suitable export options for SolidWorks on the left, and PTC Creo (formerly Pro/E) on the right.
Importing the Enclosure into the PCB Editor
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.
Import the enclosure into the PCB editor to perform 3D collision testing during board design.
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.
Controlling the Display of the Enclosure
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 enclosure, or part of it, can be hidden from view, and also from DRCs.
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:
- Select Free Models in the Components section of the panel.
- Select the enclosure in the Model section of the panel, if it contains sub-parts you will be able to expand it, as shown in the image above.
- Click on the required sub-part model name to select it, this enables the dropdown below that section of the panel, where you can control the opacity or hide that part of the model. There is also a checkbox that can be used to disable DRC checking of any STEP model.
Defining the Board Shape from the MCAD 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.
If the imported STEP model includes the board shape, this can be used to redefine the board shape in the PCB editor.
To define the PCB editor board shape from a shape within the imported STEP model:
- If necessary, you can hide part of the enclosure to give access to the board shape (as shown in the video above).
- Run the Design » Board Shape » Define from 3D Body command with the display in 3D Layout Mode.
- This is a 2-stage command, first you select the model,
- then you select the face that the board shape will be defined from.
- The Board Outline Creation Successful dialog will appear, here you choose which face of the board will be aligned with the model face that you just clicked on. The term top PCB board surface refers to the upper surface of the Top Layer copper. This is the zero reference for the PCB editor's Z plane, so a good approach is to click on the upper surface of the board shape in the STEP model, and align it with the top PCB board surface.
- You also get the option to hide the MCAD board object from the DRC process. It is a good idea to enable this option, since the board shape is now accurately defined and will now be used for component placement and DRC testing.
Perform 3D collision checks within the PCB editor
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).
Multiple Component Clearance design rules can be defined, to precisely control the collision testing process.
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.
Collisions are detected as you work. The rule being applied in this animation is shown in the previous image, it allows the push button body to fit under the LCD.
Referencing a 3D Model in a 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 InNamedPolygon('PolygonNameHere')
keyword.
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.
The 3D Body Identifier can be used to scope a design rule, so that it only targets the component's 3D model.
Performing Measurements in 3D
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:
- hover the cursor over the required object (it will highlight in green), or
- hold Ctrl as you hover the cursor to highlight only the specific face on the target 3D 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.
Perform accurate object-to-object measurements in the 3D Layout Mode. The shortest distance beween the chosen objects (or surfaces in this example), is shown in yellow.
ECAD to MCAD - Export the loaded board
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.
Configure the STEP export options as required.
Notes about using this dialog:
- If you only want to export select components, it is generally easier to select them in 2D display mode.
- Free 3D Bodies are additional 3D models placed in the PCB editor, such as the enclosure.
- The board is always exported. To exclude all components (only export the board), enable the Export Selected option, with no components selected.
- The 3D Bodies Export Options apply to 3D bodies/models added to the component footprints in the PCB library editor. The term simple bodies refers to extruded, cylindrical or spherical 3D Body objects.
- In the STEP file, each component is identified by its designator. If the MCAD designer needs to import multiple boards into a single MCAD file there is likely to be designator clashes, to avoid this include a Component Suffix.
- Use the Export as Single Part option to export the board as a part rather than as an assembly.
- The Export Folded Board option only functions if there bending lines defined in the design. To export the board partially folded, before running the Export command configure the fold amount using the Fold State slider in the Layer Stack Region mode of the PCB panel. The value defined will automatically be applied in the Export Options dialog.
A partially folded rigid-flex board, exported from the PCB editor and imported into the Rhinoceros 3D MCAD design software.
Generating Outputs
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.
A 300dpi 3D screenshot taken from the PCB editor, then scaled in an image editor to the maximum size supported in this Web documentation editor.
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. |
Printing from the PCB editor
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.
Printing from an OutputJob
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.
Click the appropriate Add New text to add a new output to the job, as shown above. Each output type is then configured by selecting its name in the list and
right-clicking and selecting Configure (or double-clicking on its name).