Direct Layout & Routing on a 3D Substrate in Altium NEXUS

Created: January 31, 2022 | Updated: September 1, 2022
Applies to Altium NEXUS Client version: 5
This documentation page references Altium NEXUS/NEXUS Client (part of the deployed NEXUS solution), which has been discontinued. All your PCB design, data management and collaboration needs can now be delivered by Altium Designer (with Altium Designer Enterprise Subscription) and a connected Altium 365 Workspace. Check out the FAQs page for more information.


Our new 3D Layout tool brings true 3D circuit design to Altium NEXUS for the first time, allowing you to combine electrical and mechanical functionality into a single part.

A 3D PCB integrates into your Altium NEXUS project in the same way as a standard PCB - its components and connectivity are driven by your schematic design, and it incorporates standard SMT footprints from your usual component library.

Structural electronics is an exciting new area of electronic product development. 

Various processes are available to print conductive patterns directly onto a substrate - an approach known generally as printed electronics, which is already supported in Altium NEXUS in its 2D PCB design environment.

An alternative to printing the electrical layout is to use a laser to etch the circuit pattern directly onto the surface of a 3D substrate, which then undergoes a standard metalization treatment to build up that pattern into conductive pathways. This process, known as Laser Direct Structuring (LDS), enables the circuit to be integrated into the structure of the final product.

Designing circuit pathways over the surface of a 3D structure brings unique challenges. The editing space must support the placement of components and the connections between them that define the unique circuit. This editor must also be able to import the 3D substrate that the electronic circuit is going to be created on - it must be a true, 3-dimensional electronic design editor.

The designer must be able to position the components onto any surface of the imported 3D substrate. Then the designer must be able to define the connective pathways between the component pins, a process commonly referred to as routing the connections. Again, those routes must be able to travel over the surface of the substrate, regardless of the current orientation of the substrate surface at any point along the route path.

And finally, the designer must be able to generate the manufacturing data in the format required by the Laser Direct Structuring (LDS) process.

The new 3D Layout tool brings this functionality for the first time to Altium NEXUS.


  • System Requirements (in addition to standard Altium NEXUS requirements)
    • Minimum: Graphics card (supporting DirectX 11 or better) such as GeForce 400 series/Radeon HD 5000 series/Intel HD 4600
    • Recommended: High-performance graphics card (supporting DirectX 11 or better), such as GeForce GTX 1060/Radeon RX 470
  • This software is under development and contains bugs. Please save your work regularly.
  • The PCB-related tools and functions that are available within the software are generally described in this document. Any tools not described are not only non-functional, but may lead to an error or crash.
  • If you're new to PCB design and Altium NEXUS, you might like to complete the introductory tutorial for 2D PCB design. It will take you from a blank schematic page to a completed PCB; explaining how to create a project, find the components, capture the schematic, define the connectivity, define the routing widths, and much more - A Complete Design Walkthrough with Altium NEXUS
  • Altium appreciates the time and effort you put in to testing the new 3D structural layout and routing capabilities. You can share your questions, thoughts and ideas about how to improve it by posting in the 3D Layout and Routing Beta forum, or contact the development team directly by emailing


The 3D layout functionality is included in Altium NEXUS 22, it becomes available once the Beta User Program extension has been installed and enabled.

Designers participating in the beta program can download the beta version of Altium NEXUS 22 from Note that you must be signed in to the Altium website to access beta builds.

  1. Click here to register for Altium's beta program.
  2. Select the option to create a new installation. If you have an existing installation of Altium NEXUS you will be able to install this version as a separate installation, which is recommended for Beta software.
  3. Enter your Altium account details when prompted.
  4. Once the beta version of Altium NEXUS has been installed, start it and sign in using your Beta credentials.
  5. Click the Current User icon at the top right of the software (), then select the Extensions and Updates command to open the Extensions and Updates page, as shown below.
  6. On the Purchased tab, locate and install the Beta User Program extension.

The Beta User Program extension will be available in the Purchased tab once you have been registered in the Beta Users program.The Beta User Program extension will be available in the Purchased tab once you have been registered in the Beta Users program.

  1. The last step is to enable access to Beta features and then confirm that the 3DLayout.Enable option is enabled in the Advanced Settings dialog. The dialog is accessed by clicking the Advanced button on the System - General page of the Preferences dialog, click the  button at the top right of the software to open the Preferences. First, enable the Allow Beta features checkbox at the top of the Advanced Settings dialog (as shown below), then use the Search field at the top right of the dialog to locate the 3DLayout.Enable advanced option in the list and confirm that it is enabled. After changing any Advanced Setting, Altium NEXUS must be restarted.

Updating the Menus and Toolbars

If you are installing the software as an update to an existing installation rather than as a new, separate installation, the menus and toolbars will not automatically update. Instead, the 2D PCB editor menus and toolbars will continue to be displayed. The video below shows how you can enable the new 3DPCB editor menus and shortcuts, make sure a PcbDoc3D document is the active document when you double-click on the menu bar to edit the resources.

Creating a 3D PCB

In the same way as a standard PCB document (PcbDoc), a 3D PCB (PcbDoc3D) can be either created within a project, or as a free document.

  • To create a new 3D PCB from within a project, right-click on the project name in the Projects panel, then select Add New to Project » PCB3D.

  • To create a 3D PCB as a free document, select File » New » PCB3D from the menus.

As part of the creation process, a dialog box will appear, prompting you to select a file to form the substrate of the 3D PCB. The file selected must either be in STEP or IGES format. The advantage of the IGES format is that it can include embedded sketches.

Note: only single-part (not assembly) STEP or IGES files are accepted.

Once selected, the substrate file will be displayed in the 3D PCB editing window. If you cancel the substrate selection window, a default substrate will be displayed.

Working in the 3D PCB Editor

The camera controls are as follows:

  • To pan, drag with the right mouse button
  • To zoom, use the scroll wheel
  • To rotate, hold shift and drag with the right mouse button. The center of rotation is defined by the location of the mouse pointer when the command is initiated.

By default, 3D bodies contained in any of the component footprints in the design will be visible.  Depending on the footprints and the layout, it may be easier to temporarily hide these during layout work. This can be done using the View » Component Bodies » Hide and View » Component Bodies » Show commands (shortcuts: 2 to hide, 3 to show).

Configuring the Substrate Colors

The substrate surface color and outline color, as well as the color of the currently selected object, can be configured in the System Colors section of the View Configuration panel, as shown below.

The color of the copper can be configured in the Layers section of the View Configuration panel, as shown below.

Working with Components

  • If the 3D PCB is part of a project, components can be synchronized to it from schematic sheets using the standard commands (Design » Update PCB from the schematic editor, Design » Import Changes from xxx.PrjPcb from the PCB editor). In this case, the schematic pin net assignments will also be transferred to the 3D PCB component pads. Note that there are default design rules created as part of this process, refer to the Default Project Options and Design Rules section of this page to learn more.
  • Once synchronized to the PCB, the components will initially appear floating in 3D space next to the substrate body, and can be dragged one by one onto the surface of the substrate. The default behavior is that when you drag a component onto the substrate, the initial orientation of the component on the substrate surface will depend on the route taken with the mouse when dragging.

  • Alternatively, components can be dragged straight onto the substrate from the Components panel. In this case, all the component’s pads will be designated as No Net.
  • As you move a component, the component centerpoint (indicated by a green cross at the cursor) will snap to a visible sketch grid. Learn more about sketch grids and the Alignment Tools.
  • When a component is being dragged, the Spacebar rotates it in increments defined by the Rotation Step angle defined in the PCB Editor - General page of the Preferences dialog (show image). The default rotation step is 90 degrees.
  • The behavior of a component’s orientation, when dragged over different surfaces of the substrate, is controlled by 3DLayout.ComponentDrag.KeepOrientation advanced setting.
    • If the value is True (the default value), the algorithm will attempt to maintain the same component orientation as it passes over each surface boundary. The result of this is that a component’s orientation on any surface is dependent on the route it took to get to that surface.

    • If the value of the 3DLayout.ComponentDrag.KeepOrientation advanced setting is False, the algorithm will ensure that all components on the same surface have the same orientation, regardless of the route they took to get to that surface. This means that the user may expect to see a sudden change in component orientation as it is dragged across a surface boundary.

  • The rotation of a component can be set in the Properties panel when the component is selected. (show image)
  • You can also interactively redefine the datum rotation (zero-degree orientation). To do this:
    • Click once to select the component. A box will appear around the component, and a rotation handle will become visible. The handle is used to interactively set the orientation of the component and define its zero-degree rotation. Rotation changes made in the Properties panel are then measured from this datum rotation.

    • Click and hold this handle, and drag it to the desired position to define the datum rotation of the component.

  • Pads are the only copper within a component footprint that will be successfully placed. Fills and regions will be ignored.
  • When a component is dragged over the surface of the substrate, the shape of its pads will be created by projecting their shape from the plane of the 2D footprint onto the substrate surface. If this surface is not planar, the resulting shape of the pads will be distorted. There are limits to the level of distortion that can be tolerated. Once this limit is reached, the pad will not be created.
  • To access the properties of a component, left-click the component body. A wireframe box will appear around the component. Its properties can then be accessed via the Properties panel. Once a component has been selected, a pad can be selected by a further left-click directly on the pad.
  • The pad’s properties can then be edited via the Properties panel. Some functions within the Properties panel for components and pads do not work (and some may have unpredictable and undesirable effects, such as modifying the location X and Y coordinates). The officially supported functions are the modification of Net, Rotation, Shape, and X/Y Size.
  • If the pad's properties are not available for editing, it means the global Protect Locked Primitives in Component option is enabled in the PCB Editor - General page of the Preferences dialog (show image). To override this locally and edit the pad of this component, select the component rather than the pad (the wireframe box will appear), then click the Primitives lock button (show image) to unlock that component's primitives. Remember to re-lock the component primitives when you have finished editing the pad properties.
  • Modifying some properties that are applicable only to a 2D PCB (for example, the X and Y coordinates) may have unexpected and undesirable effects.

Note that due to the lighting/shading effects in the graphics window, when a pad is selected, it can take on the same color as the substrate, and may seem to disappear. If this happens, try rotating the camera to view the PCB from a different angle.

Alignment Tools

  • There are two tools available to enable the display of sketch entities on the surface of the substrate. You can: import a sketch from MCAD; or use the Sketch Grid Generation feature in the 3D Layout editor. Once displayed, the sketch entities can be used to aid the placement of components and traces.
  • When dragging a component, the mouse pointer will snap to the center of the footprint.  The mouse pointer (and therefore the component center) will then snap to the sketch elements. 
  • When a component is selected, it will also display a rotation handle. Click and drag the handle to rotate the component. The cursor will snap to the sketch elements. Learn more about interactive component rotation.
  • When routing, the trace start and endpoints will snap to any intersections formed by sketch elements. If the mouse pointer is not near any intersections, it will snap to the sketch lines. If, during routing, the mouse pointer is moved along a sketch line (including curved lines), the trace will follow that line.
  • The two tools described below can be used independently at the same time on the same PCB.

Sketch Import

  • When designing the substrate in MCAD, 3D curves can be placed on the surface of the part and included in the exported IGES file. 
  • In Solidworks, for example, a 2D sketch can be placed onto the 3D surface using the Project Curve command.

  • These “curves” can then be included in the IGES export using the Export 3D Curve features option.

  • When the IGES file is imported into AD to form the substrate for a 3D PCB, these elements can be displayed by selecting the View » Show Sketches command.

If you have multiple .PcbDoc3D documents open, you might find that when you select the View » Show Sketches command the sketches become visible on the inactive PcbDoc3D document, rather than the one you are currently working on. This issue will be resolved in the next update of the 3D Layout software. In the meantime, to avoid this situation close any inactive PcbDoc3D documents.

Sketch Grid Generation

  • From within the 3D PCB document, it is possible to generate a grid on one of the three datum planes (XY, XZ, YZ - inherited from the STEP/IGES model imported to form the substrate) using the Sketches Grid section of the Properties panel when there are no objects selected in the 3D design space. This grid is then projected from the specified plane onto the surfaces of the part. Note that this grid is independent of sketch grids imported as part of the substrate.

  • The plane, size, offset (from substrate center) and rotation can be controlled by the user.


Routing is the process of defining copper pathways between the connected component pins. You route the design by replacing each net connection line with track objects on a copper layer.

Displaying the Connection Lines

  • As an aid to routing, it is possible to display the net connection lines (View » Connections » Show All). Connection lines are displayed between unconnected copper areas of the same net, reflecting the connectivity defined in the project schematic documents. For each net, the default approach is for the algorithm to calculate the configuration of lines which minimizes their total length.

For the connection lines to be visible, the component pads must be on the substrate.

  • If you find that the connection lines do not refresh as you move a component, you can force the software to recalculate their location by toggling their visibility off and on using the View » Connections » Hide All and View » Connections » Show All commands (shortcuts, press the following keys in turn: V,C,H & V,C,S). 
  • The connection lines are not updating because currently, the connection line functionality is incompatible with the PCB.Optimizations.CommitChanges option in the Advanced Settings dialog. The dialog is accessed via the System - General page of the Preferences dialog, click the  button to open the dialog. As an alternative to manually hiding/showing the connection lines, this option can be disabled. Note that disabling this option removes some of the recent optimizations added for routing a standard 2D PCB.

The need to manually refresh connection lines or disable the advanced option will not be required in Altium NEXUS 22.8.

Color-Coding the Connection Lines

  • The set of connection lines that make up each net can be color-coded, as shown below:

  • To apply a color to a specific net, first select a pad belonging to that net (click once to select the component, pause, then click a second time to select the pad), then click the Net hyperlink in the Properties panel:

  • Click the color icon, and choose a new color for that net's connection lines in the palette that appears:

  • Alternatively, use the PCB panel:
    • Use the selector at the top of the panel to set it to Nets mode,
    • locate the net in the list and right-click on the name to display the context menu,
    • select the Change Net Color command to open the Choose Color dialog.

Preparing for Routing

  • Once a connection is routed between two pads of the same net, the associated connection line disappears. This allows the connection lines to be used as a visual check to ensure all nets are fully routed - for a fully routed design, no connection lines will remain. If required, the connection lines can be hidden using the command View » Connections » Hide All.
  • Only manual interactive routing is supported (automatic routing is not supported, and neither is placing copper using the Line tool).
  • There are two interactive routing modes available:
    • Ignore Obstacles - connection to copper of a different net must be avoided manually, it is possible to create short circuits. This mode is the most stable and the fastest.
    • Walkaround Obstacles - the routing algorithm prevents short circuits by maintaining a clearance between the route and copper objects in a different net. This is a calculation-intensive process so there may be a lag before the software detects the collision and wraps the route around the obstacle. The algorithm requires the cursor to be outside of the object that belongs to the different net.
  • Select the Tools » Preferences command to open the Preferences dialog, then open the PCB Editor - Interactive Routing page of the dialog to select the routing mode.

Although it is possible to select other routing modes, these are for 2D PCB design only and must not be used. Selecting one of the other modes may result in a crash, and loss of work.

Setting the Object Clearance and Routing Width

The PCB editor uses Design Rules to define the width of the routing, and the minimum clearance allowed between objects that belong to different nets.

  • To set the clearance and routing width requirements, open the PCB Rules and Constraints Editor (Design » Rules).

Configuring the Clearance Constraint

  • In the tree on the left of the design rules dialog, expand the tree and select the default Clearance rule.
  • Only the three values highlighted in the image below affect the algorithm:

  • Note that TH (thruhole) pads are recognized in the 3D PCB document as such, but the hole itself will not be included.

Configuring the Routing Width

  • The width for newly placed tracks is defined by the applicable routing Width design rule. The 3D router only supports the Preferred Width value for the Top Layer. This can be configured in the overall Preferred Width field (highlighted in the image below), or in the layer-specific width field.

To automatically apply a different clearance requirement or routing width to a net (or class of nets) as you route, create a higher-priority rule that targets that net (or class of nets).

Learn more about applying a rule to specific objects

Learn more about configuring the rule priorities

Default Project Options and Design Rules

Every new project has default rule-creation settings, and every new PcbDoc3D document has default rules. For example, the default project settings will result in the creation of one or more Placement design rules, when the design is synchronized between the schematic editor to the PCB3D editor. The consequence of this default Placement rule is that the online DRC will detect that the components are not contained within the room, so they will be highlighted (in green) as being in violation. 

  • The default Placement design rule can be deleted, right-click on the rule in the PCB Rules and Constraints Editor to display the context menu and delete it, as shown below. Learn more about Design Rules.

  • To prevent the software from creating a Placement rule for each schematic sheet in the project when you synchronize a design between the schematic and 3DPCB editors, open the Options for PCB Project dialog (Project » Project Options), switch to the Class Generation tab, and disable the Generate Rooms option, as shown below. Learn more about the Project Options.

Routing a Connection

To start routing, select the Route » Interactive Routing menu command, click the shortcut button in the Active Bar as shown below, or press the Ctrl+W shortcut combination.

Tips for routing

  • Launch the Interactive Routing command. Note that there may be a brief delay between selecting the command and being able to start routing. Note that at this stage, the cursor does not change appearance when you launch interactive routing.
  • To start routing, click anywhere on the pad (or existing route) of interest. A track segment will appear, the fixed end will automatically attach to the pad center (or existing track end), and the other end will be attached to the moving cursor. The track segments you place with each mouse click will automatically be assigned the Net of that pad or existing route.
  • The moving end of the route will have a green interactive connection line attached to it. The software will automatically connect the other end of that connection line to the nearest object of the same net. You are free to route the connection to any object in that net, you do not have to follow the pattern of the connection lines. The software will automatically update the connection lines as soon as you exit interactive routing mode. The image below shows the pale-colored original connection line, and the green interactive connection line as the route approaches the target pad. Hover the cursor over the image to show the completed connection.

  • Left-click to place the track segment and define a fixed point in the routing. You then continue to move the cursor and click to place subsequent track segments.
  • As you approach the target object, once the cursor is within the edges of the object it will snap to the pad center or existing track segment centerline (or track endpoint if close).
  • When the routing of that connection is complete, right-click (or press Esc on the keyboard) to exit Interactive Routing mode. Note that this drops you out of interactive routing mode, and you must re-launch the command to continue routing.
  • You are free to leave a route incomplete and return to it later. Right-click the mouse to stop routing.
  • You can also commence routing anywhere on the surface of the substrate. In this situation the routing will have a Net assignment of No Net, so if you then route to a pad that has a net assigned you will create a clearance violation. For this reason, it is advised to start routing from an existing net object.
  • If required, you can use the Properties panel to change the net assigned to an already-placed track segment(s).
  • If you are routing in Walkaround Obstacle mode there may be a delay before the track segments appear as you approach an existing object that belongs to a different net. Note that the Walkaround algorithm requires the cursor to be outside of other net objects to be able to calculate a route path. There may also be a delay between a click event and a track appearing.
  • If the interactive router has appeared to freeze, stop moving the mouse and wait to allow the software to finish calculating the required object locations. This is particularly important when moving from one substrate surface to another surface.
  • It is not possible to move a track segment that has already been placed - it must be deleted and re-routed.
  • To change the width of an already-placed track segment, select it and edit the Width setting in the Properties panel. Its width can be adjusted, but modifying its location, length, or start/end coordinates will have no effect.
  • To change the width of multiple segments, hold the Ctrl key then click to select each segment. Then edit the width of all of the selected segments in the Properties panel.
  • To remove already-placed routes, select the track segment(s) and press the Delete key on the keyboard.
  • To remove the routing of an entire net, open the PCB panel, set it to Nets mode, enable the Select checkbox, and select the required net (or nets) in the Nets section of the panel. At the moment the panel is the active element in the software, click once on the PcbDoc3D document tab at the top of the graphical editing workspace to make it the active element in the software, then press the Delete key. Selected pads will not be deleted as they are child objects of their parent components, so can only be deleted with those components.

Routing with a Sketch Grid

Because you are routing connections across the irregular surfaces of 3D objects, the traditional XY-plane PCB grid does not make sense. Instead, the 3D Layout editor supports two types of sketch features.

  • The 3D Layout editor Sketch Grid is enabled and configured in the Properties panel when there are no objects selected in the design space. Configure the sketch grid properties to suit the required routing pitch, including the: Plane Kind (the plane from which the sketch grid is projected); Size (pitch of the grid) and Rotation (rotation angle parallel to that plane). During routing, as the mouse pointer approaches the sketch grid it will snap to the nearest grid line.
  • If the substrate is imported from an IGES file, any sketch features (lines and arcs) embedded within that IGES file can also be used as a guide for the placement of routes. During routing, if the mouse pointer is moved towards a sketch line intersection, it will snap to that intersection. Otherwise, it will snap to a nearby sketch line. The sketches can only be used for placement if they are visible. To toggle their visibility, select the View » Show Sketches (note that this command does not apply to the display of the Sketch Grid, configured in the Properties panel).

Placing a Solid Region

Support for placing a Solid Region has been added in Altium NEXUS 22.6. The region object can be used to create any straight-edged copper shape, passing over edges in the structure if required. The video demonstrates the process of placing a Solid Region onto a 3D structure.

Notes about placing a Solid Region:

  • Use the 2 (show components) and 3 (hide components) shortcuts to toggle the visibility of components.
  • The cursor will snap to a visible Sketch Grid. Enable the Show Grid option in the Properties panel to use a software-generated grid, then configure the grid properties to suit the shape of the region about to be placed.
  • Click the Place Solid Region button on the Active Bar to start placing a Solid Region.
  • The software will build the solid shape to the left of the edges being defined by your mouse clicks. Move in an anti-clockwise direction as you place the click points to define a region within the area you map out. Moving the cursor in a clockwise direction will define the region outside of the area you map, if that area passes over a curve/edge in the 3D substrate.
  • When ready, right-click to exit region placement. The software will automatically define the last edge between the last and first click locations. 
  • Click once on a placed region to select it. Once selected:
    • The net name can be defined in the Properties panel if you require the region to connect to a net.
    • Press the Delete key to remove the selected region(s). At this stage, the shape of a placed region cannot be interactively edited.

Exporting the 3D PCB

Once the design has been completed, the 3D PCB can be exported by using the File » Export » 3D Layout command. The exported data will be saved into the local project folder.  Note that non-English characters (á, ú, ü etc) are not supported in the export location path.

The completed design in the Altium 3D PCB editor; the exported data opened in MCAD; and the product rendered in MCAD.The completed design in the Altium 3D PCB editor; the exported data opened in MCAD; and the product rendered in MCAD.The completed design in the Altium 3D PCB editor; the exported data opened in MCAD; and the product rendered in MCAD.The completed design in the Altium 3D PCB editor; the exported data opened in MCAD; and the product rendered in MCAD.

The default export settings are listed below. Use the relevant Advanced Settings to configure other export options. 

Option Default Output Advanced Settings Options




Select the required format in the Export File dialog


Substrate and conductive pattern

3DLayout.Export.WithSubstrate = True

Conductive pattern only

3DLayout.Export.WithSubstrate = False


Substrate and conductive pattern as separate parts in a single assembly

3DLayout.Export.AsSinglePart = False

Substrate and conductive pattern as separate features/bodies in a single part

3DLayout.Export.AsSinglePart = True

Conductive Pattern Thickness


3DLayout.Export.Extrude = 0

3DLayout.Export.ExtrudeIntoSubstrate = 0

Any value, extruded into and/or out of the substrate

3DLayout.Export.Extrude = value (microns) Extrude out by this amount

3DLayout.Export.ExtrudeIntoSubstrate = value (microns) Extrude in by this amount

Advanced Settings are configured in the Advanced Settings dialog, accessed through the Preferences dialog. Click the  button to open the Preferences dialog, then click the Advanced button on the System - General page of the dialog to open the Advanced Settings dialog.

You can also control how the transitions between the conductive surfaces (merges) are handled in the exported file by changing the values of two Advanced Settings options. Search for merge in the Advanced Settings dialog to quickly locate the settings, as shown in the image below.

The effect of these settings on the export data is shown in the following table:

  TrackToTrackMergeMode=0 TrackToTrackMergeMode=1 TrackToTrackMergeMode=2

Note - the Laser Direct Structuring process typically requires the export data format associated with TrackToTrackMergeMode = 0 and TrackToPadMergeMode = 0.

Other Project Output Data

  • Project outputs that derive data from the schematic documents (the BOM for example) are available as normal.
  • Project outputs that rely on a PCB document (a draftsman assembly drawing for example) are not currently available for a 3D PCB document. 


Found an issue with this document? Highlight the area, then use Ctrl+Enter to report it.

Contact Us

Contact our corporate or local offices directly.

We're sorry to hear the article wasn't helpful to you.
Could you take a moment to tell us why?
200 characters remaining
You are reporting an issue with the following selected text
and/or image within the active document: