Preparing Siemens NX for CoDesign
Parent page: Installing & Configuring Altium CoDesigner
Altium CoDesigner is an interface for transferring printed circuit board designs between the ECAD and MCAD design domains. Once the CoDesigner add-in has been added to your MCAD software, CoDesigner can pass design changes back and forth. Design changes are passed through an Altium Workspace, which acts as a bridge between the ECAD and MCAD domains.
► Check the version compatibility between your MCAD software and CoDesigner
Installing and Configuring CoDesigner in Siemens NX
To interface to and from Siemens® NX™, you need to install the Altium CoDesigner for Siemens NX Add-In.
To install the Add-In:
- Close Siemens NX before installing.
- Download the MCAD CoDesigner Siemens NX Add-In (refer to the Download details below).
- Run the MCAD CoDesigner installer.
- Launch Siemens NX and confirm that the Add-In is installed and available in the Altium CoDesigner ribbon, as shown below.
- The CoDesigner Add-In adds the CoDesigner panel to Siemens NX. All collaboration activities are performed through this panel.
Displaying the CoDesigner Panel
In Siemens NX, the Altium CoDesigner panel can be enabled by clicking the CoDesigner button, as shown above.
Connecting to your Workspace from Siemens NX
Siemens NX collaborates with your Altium design software through a Workspace, to which you must sign in. When you are not signed in, the Altium CoDesigner Tab will include sign-in fields, as shown below.
There are two sign-in modes, one for signing into an Altium 365 Workspace, the other for signing in to a Workspace on an On-Prem Enterprise Server. More on this below.
Licensing Altium MCAD CoDesigner for Siemens NX
To be able to successfully sign into your Altium Workspace from Siemens NX, a suitable license must be added to your Altium Workspace. Note that Siemens NX is only available to designers with an Altium Enterprise Solution.
If you attempt to sign in without a valid license available, the message, The usage of Altium CoDesigner for Siemens NX is not allowed by your license, will be displayed on the Altium CoDesigner panel.
The method of adding the license will depend on the type of Workspace you use:
Workspace Type | License Name | How to License CoDesigner for Siemens NX |
---|---|---|
Enterprise Altium 365 (cloud Workspace) | Altium 365 MCAD Siemens NX Addon | Contact your Altium Enterprise Account Manager. |
On-prem Enterprise Server Workspace | Enterprise Server MCAD Siemens NX Addon | Select Admin - Licenses when you are signed in to your Enterprise Server Workspace in your web browser. Learn more about installing an on-prem Enterprise License. |
Once the Siemens NX license has been added to your Workspace, you will be able to Sign In to Altium MCAD CoDesigner via the Altium CoDesigner panel in Siemens NX, as described below.
Connecting to an Altium 365 Workspace
- Select the Altium Account option in the Altium CoDesigner panel.
- Enter the email address you use to sign in to Altium Live as your Email, and your Altium Live Password.
- Enable the Remember Me option to retain the details (including the password) and automatically connect to your Workspace (through the Altium 365 platform) each time Siemens NX is started.
- Click the Sign In button to connect.
Connecting to an Altium Enterprise Server Workspace
-
Select the Custom Server option in the Altium CoDesigner panel.
-
The first time you sign in, you must specify the Server address (URL) to connect to your On-Prem Enterprise Server Workspace. The address will be provided by your system administrator.
-
Enter your User Name and Password, these will also be provided by your system administrator.
-
Enable the Remember Me option to retain the details (including the password) and automatically connect to your Workspace each time Siemens NX is started.
Once you have signed in, you are ready to start collaborating through Altium CoDesigner.
Configuring the Siemens NX Collaboration Settings
Once you have signed in, CoDesigner settings can be configured in the Altium CoDesigner Settings dialog, opened via the Settings menu entry in the CoDesigner menu (show image).
-
Common folder for storing models that are coming from ECAD - All component models created by CoDesigner are stored in this location, regardless of the project they belong to (note that the board part and board assembly are created by CoDesigner in the project folder specified during the initial pull into Siemens NX). If no location is specified, all component models will be created in the project folder and will be unavailable for reuse in other projects.
-
Build 3D geometry for Copper- Top and bottom layer copper layers are always represented as decals on the surfaces of the board part. When this option is enabled, CoDesigner will also create extruded features to represent all copper layers, as well as thruhole pads. Note that enabling this option can create a large amount of data that significantly impacts performance.
-
Build Vias- enable this option to also include the Via barrels. Note that enabling this option can create a large amount of data that significantly impacts performance.
- Smart Sketch Update - when enabled, during a Pull MCAD CoDesigner only redraws the elements of a sketch that were changed in ECAD, keeping dimensions and constraints related to non-changed elements as they were. Disable this option if it produces undesirable results. Learn more about Smart Sketch Change support.
-
Ignore components smaller than
<Value><Units>
in height - smaller components can be excluded from the synchronization process. Configure this option to exclude components less than<Value><Units>
when a Pull is performed. Note that the component height is defined in ECAD as a property of the component (footprint), it is not the height of the 3D model placed on the footprint. Learn more about configuring Siemens NX to ignore smaller components. - Units System - units to be used for the board being Pulled from ECAD. This setting overrides the units being used in ECAD when the board was Pushed.
- Participate in the product improvement program - enable this option to automatically share technical information with Altium about your use of CoDesigner. Learn more about the product improvement program.
Working with Teamcenter PLM
Siemens Teamcenter PLM brings mechanical engineers together, allowing them to share their parts and their designs across the globe. CoDesigner supports Teamcenter PLM when performing operations with the PCB Assembly, the PCB Part, and the Components, in Siemens NX. PCB assemblies can be saved and opened from the Teamcenter interface directly in Siemens NX, as shown below.
MCAD to ECAD - Referencing the ECAD Footprint from Teamcenter
MCAD model to ECAD footprint linking is defined by mapping an MCAD model property to an ECAD component parameter in your Altium Workspace. The mechanism used to define the link from the Teamcenter model to the ECAD component footprint was improved in CoDesigner 3.7. It now supports defining both the Teamcenter Category and the Property in the MCAD model property used for mapping and recognition field in the Workspace, using the following syntax:
<CategoryName>::<PropertyName>
ECAD to MCAD - Locating the MCAD Model in Teamcenter
ECAD component footprint to MCAD model linking is defined by specifying an ECAD component parameter that contains the MCAD model. This is configured in the MCAD CoDesigner settings in your Altium Workspace. During pull into MCAD, CoDesigner will search the MCAD data management system for an MCAD model of that name.
If native ECAD-to-MCAD component linkage is used in Siemens NX, the MCAD component reference must be defined in the ECAD component parameter so that it includes the Teamcenter path, with the parameter value in the form:
:root_TC_folder:subfolder1:subfolder12:model_name
Ignoring Models not Available in Teamcenter
To better handle the situation where there are components on the board that are not available as models in Teamcenter, the 3.9 update to CoDesigner adds a configuration setting to ignore components that cannot be obtained during a Pull into MCAD.
To enable the setting, edit the file:
\Program Files\Siemens\NXXXX\ALTIUM_CODESIGNER\template_parameters_mapping.xml
.
In the ComponentPart section, set:
IgnoreComponentsMissingInDMS
to 1 (or yes or true), as shown below.
Model Storage
CoDesigner stores the 3D component models from each PCB that it pulls from ECAD in one of two locations. The default is to save the component models into the same folder as the MCAD PCB assembly. Alternatively, you can configure a common component folder that CoDesigner uses for all component models from all PCBs pulled from ECAD. The advantage of this approach is that CoDesigner can share component models that are common across different PCB assemblies.
When Teamcenter PLM is being used, if there is no common component folder configured in the Altium CoDesigner Settings dialog (shown above), CoDesigner will create an \Altium_Components
folder in the root of the Teamcenter repository to store the 3D components from all pulled PCB projects. If a Common folder for storing models from ECAD has been configured in the dialog, that location will be used instead.
► Learn more about Linking Native ECAD and MCAD Design Components.
Working with Teamcenter Templates (added in CoDesigner 3.7)
Siemens Teamcenter's support for templates provides a flexible way to define the parameters to be used in new part or assembly items, supporting the following parameters:
-
Item Type
-
Units
-
TemplateName
-
TemplatePresentationName
-
TemplateFileName
-
Additional template parameters
CoDesigner 3.7 introduced support for defining these parameters during part or assembly creation, using an XML configuration file.
Configuration XML Location
The configuration XML file is deployed and used from the NX installation folder:
C:\Program Files\Siemens\<NxVersionNumber>\ALTIUM_CODESIGNER\template_parameters_mapping.xml
The XML file describes the templates to be used and parameters to be set for supported parts and assemblies.
Configuration XML File
Below is a sample of the configuration XML. Note that there are four sections in the file:
<?xml version="1.0" encoding="UTF-8"?> <Mapping> <BoardAssembly ItemType="Item" TemplateName="AssemblyTemplate" TemplatePresentationName="Assembly"> <!--<TemplateFileName>@DB/assembly-mm-template/A</TemplateFileName>--> <AttributesTemplate> <!-- <Param Name="DB_PART_NAME" Category="Item" Type="String" Value="{ProjectName}"/> <Param Name="Param2" Category="Item" Type="String" Value="{ProjectParam_Param1}"/> <Param Name="Param3" Category="Item" Type="String" Value="{VariantParam_Param1}"/> <Param Name="Param4" Category="Item" Type="String" Value="{VariantName}"/> <Param Name="Param5" Category="Item" Type="Number" Value="0.23"/> <Param Name="Param6" Category="Item" Type="Integer" Value="12"/> <Param Name="Param7" Category="Item" Type="Boolean" Value="False"/> <Param Name="Param8" Category="Item" Type="Date" Value="08/18/2018 07:22:16 PM"/> <Param Name="Param9" Category="Item" Type="Date" Value="08/18/2018 07:22:16"/> <Param Name="Param10" Category="Item" Type="Date" Value="2019-01-23 07:22:00"/> --> </AttributesTemplate> </BoardAssembly> <BoardPart ItemType="Item" TemplateName="ModelTemplate" TemplatePresentationName="Model"> <!--<TemplateFileName>@DB/model-plain-1-mm-template/A</TemplateFileName>--> <AttributesTemplate> <!-- <Param Name="DB_PART_NAME" Category="Item" Type="String" Value="{ProjectName}"/> <Param Name="Param2" Category="Item" Type="String" Value="{ProjectParam_Param1}"/> <Param Name="Param3" Category="Item" Type="String" Value="{VariantParam_Param1}"/> <Param Name="Param4" Category="Item" Type="Number" Value="0.2"/> <Param Name="Param5" Category="Item" Type="Integer" Value="123"/> <Param Name="Param6" Category="Item" Type="Boolean" Value="True"/> <Param Name="Param7" Category="Item" Type="Date" Value="2019-01-23 07:22:00"/> --> </AttributesTemplate> </BoardPart> <CopperPart ItemType="Item" TemplateName="ModelTemplate" TemplatePresentationName="Model"> <!--<TemplateFileName>@DB/model-plain-1-mm-template/A</TemplateFileName>--> <AttributesTemplate> <!-- <Param Name="DB_PART_NAME" Category="Item" Type="String" Value="{ProjectName}"/> <Param Name="Param2" Category="Item" Type="String" Value="{ProjectParam_Param1}"/> <Param Name="Param3" Category="Item" Type="String" Value="{VariantParam_Param1}"/> <Param Name="Param4" Category="Item" Type="String" Value="{SubType}"/> --> </AttributesTemplate> </CopperPart> <ComponentPart ItemType="Item" TemplateName="ModelTemplate" TemplatePresentationName="Model"> <!--<TemplateFileName>@DB/model-plain-1-mm-template/A</TemplateFileName>--> <AttributesTemplate> <!-- <Param Name="Param1" Category="Item" Value="{ComponentParam_Param1}"/> <Param Name="Param2" Category="Item" Value="{ComponentParam_Param2}"/> --> </AttributesTemplate> </ComponentPart> </Mapping>
The XML contains 4 sections: BoardAssembly
, BoardPart
, CopperPart
and ComponentPart
. Each section defines the creation parameters for the corresponding design model types.
The attributes to define are:
-
ItemType
- Teamcenter Item Type -
TemplateName
- Model, Assembly, Other… (should correspond to the class specified inObjectData
of thePAX
file record) -
TemplatePresentationName
-
TemplateFileName
- Relates to the template item revision loaded in Teamcenter. If this is not defined, then the first match found based on the other attributes (includingUnits
) will be used.
Attribute values should map to the values of similar attributes found in your PAX
file, so that the template can be identified in Teamcenter. Additionally, you can specify the attributes to set during part creation using the AttributesTemplate section.
Use the following example syntax as a guide:
<AttributesTemplate> <Param Name="DB_PART_NAME" Category="Item" Type="String" Value="{ProjectName}"/> <Param Name="Param2" Category="Item" Type="String" Value="{ProjectParam_Param1}"/> <Param Name="Param3" Category="Item" Type="String" Value="{VariantParam_Param1}"/> …… …… </AttributesTemplate>
Each Param item corresponds to an attribute set. The properties of each that need to be defined include:
-
Name
- the name of the parameter to set -
Category
- the category of the attribute (this is often the name of the ItemType for the attribute) -
Type
- the data type of the attribute, allowed values are: String, Number, Integer, Boolean, Date -
Value
- the value template used to generate an attribute value. This can be a constant or an expression with a reference to context metadata.
TheValue
template consists of expressions that are enclosed by{}
.
For example, the expression{ProjectName}
will be replaced with the actual project name. If the template contains this expression, it will be applied in the context of different projects, and the resulting value will be created by its designated replacement.
Several expressions and constant values can be combined in the value template. Possible expressions are:
-
ProjectName
- replaced with the name of the project -
ProjectParam_Param1
- replaced with Param1 of the project (Param1 is the name of the project parameter from ECAD) -
VariantParam_Param1
- replaced with Param1 of the current project variant (Param1 is the name of the project parameter from ECAD) -
SubType
- replaced with the copper part subtype name, should be used for CopperPart only. -
ComponentParam_Param2
- replaced with the value of the Param2 component parameters which can only be used on ComponentPart.
For example, if ProjectName
is MyProject and the Area
project parameter is PSU then the element is:
<Param Name="Description" Category="MyItem" Type="String" Value="{ProjectName}-{ProjectParam_Area}"/>
This example will set the string value MyProject-PSU to the Description
attribute of the MyItem
category.
Where to Next?
Now that CoDesigner is installed in your MCAD software and connected to your Workspace, the next step is to configure the relevant Workspace settings.
► Learn more about Configuring your Workspace Settings