为 CoDesign 准备 Siemens NX
Altium CoDesigner 是一个用于在 ECAD 与 MCAD 设计领域之间传输印制电路板设计的接口。一旦将 CoDesigner 插件添加到你的 MCAD 软件中,CoDesigner 就可以在两端来回传递设计变更。设计变更通过 Altium Workspace 进行传递,Workspace 充当 ECAD 与 MCAD 领域之间的桥梁。
► 检查你的 MCAD 软件与 CoDesigner 之间的版本兼容性
在 Siemens NX 中安装与配置 CoDesigner
要与 Siemens® NX™ 进行双向接口,你需要安装 Altium CoDesigner for Siemens NX Add-In。
安装并启用 Add-In,以便在你的 MCAD 软件中访问 CoDesigner。
安装 Add-In 的步骤如下:
-
安装前关闭 Siemens NX。
-
运行 MCAD CoDesigner 安装程序。
-
启动 Siemens NX,并确认 Add-In 已安装且可在 Altium CoDesigner 功能区中使用,如下所示。
-
CoDesigner Add-In 会将 CoDesigner 面板添加到 Siemens NX。所有协作活动都通过该面板执行。
-
将 CoDesigner Add-In 安装到不同位置:
-
如果已安装 CoDesigner,请先卸载
AltiumCoDesignerNX<BuildNumber>。完成后,文件夹C:\Program Files\Siemens\NX<BuildNumber>\ALTIUM_CODESIGNER将被移除。 -
使用命令行选项
/DIR="x:\dirname"(
)运行 CoDesigner 安装程序。Add-In 的位置会注册到 Siemens 文件 C:\Program Files\Siemens\NX<BuildNumber>\UGII\menus\ug_custom_dirs.dat(
)中。
-
显示 CoDesigner 面板
CoDesigner 通过 Siemens NX 面板访问。
在 Siemens NX 中,可通过点击 Altium CoDesigner 面板的 CoDesigner 按钮来启用,如上所示。
从 Siemens NX 连接到你的 Workspace
Siemens NX 通过 Workspace 与你的 Altium 设计软件协作,你必须登录该 Workspace。 当你未登录时,Altium CoDesigner 选项卡将包含登录字段,如下所示。
有两种登录模式:一种用于登录 Altium 365 Workspace,另一种用于登录本地部署(On-Prem)的 Enterprise Server 上的 Workspace。详见下文。
为 Siemens NX 的 Altium MCAD CoDesigner 授权
要能够从 Siemens NX 成功登录你的 Altium Workspace,必须在你的 Altium Workspace 中添加相应许可证。请注意,Siemens NX 仅面向拥有 Altium Enterprise Solution 的设计人员提供。
如果你在没有可用有效许可证的情况下尝试登录,消息 The usage of Altium CoDesigner for Siemens NX is not allowed by your license, 将显示在 Altium CoDesigner 面板上。
添加许可证的方法取决于你使用的 Workspace 类型:
| Workspace 类型 | 许可证名称 | 如何为 Siemens NX 的 CoDesigner 授权 |
|---|---|---|
| Enterprise Altium 365(云端 Workspace) | Altium 365 MCAD Siemens NX Addon | 请联系你的 Altium Enterprise 客户经理。 |
| 本地部署 Enterprise Server Workspace | Enterprise Server MCAD Siemens NX Addon | 在浏览器中登录你的 Enterprise Server Workspace 后,选择 Admin - Licenses。 了解更多关于 安装本地部署 Enterprise License。 |
当 Siemens NX 许可证已添加到你的 Workspace 后,你将能够通过 Siemens NX 中的 Altium CoDesigner 面板 Sign In 到 Altium MCAD CoDesigner,如下所述。
连接到 Altium 365 Workspace
登录 Altium 365 Workspace。
-
在 Altium CoDesigner 面板中选择 Altium Account 选项。
-
在 Email 中输入你用于登录 Altium Live 的邮箱地址,并输入你的 Altium Live Password。
-
启用 Remember Me 选项以保留这些信息(包括密码),并在每次启动 Siemens NX 时自动连接到你的 Workspace(通过 Altium 365 平台)。
-
点击 Sign In 按钮进行连接。
连接到 Altium Enterprise Server Workspace
登录本地部署(On-Prem)Enterprise Server Workspace。
-
在 Altium CoDesigner 面板中选择 Custom Server 选项。
-
首次登录时,你必须指定用于连接本地部署 Enterprise Server Workspace 的 Server address(URL)。该地址将由你的系统管理员提供。
-
输入你的 User Name 和 Password,这些也将由你的系统管理员提供。
-
启用 Remember Me 选项以保留这些信息(包括密码),并在每次启动 Siemens NX 时自动连接到你的 Workspace。
登录后,你就可以开始通过 Altium CoDesigner 进行协作。
CoDesigner 已安装完成并可供使用。
配置 Siemens NX 协作设置
登录后,可在 Altium CoDesigner Settings 对话框中配置 CoDesigner 设置;该对话框可通过 CoDesigner 菜单中的 Settings 菜单项(
)打开。
使用 Altium CoDesigner Settings 对话框来配置 CoDesigner 选项。
-
Common folder for storing models that are coming from ECAD - 此字段允许机械工程师控制从 ECAD 拉取的模型存储位置。该字段的配置方式取决于是否使用 Teamcenter;有关各选项的详细信息,请参阅下方的 Model Storage section。
-
Build 3D geometry for Copper - 顶层与底层铜层始终以贴花(decal)的形式呈现在板件表面。启用此选项后,CoDesigner 还会创建拉伸特征来表示所有铜层以及通孔焊盘。请注意,启用此选项可能会生成大量数据,从而显著影响性能。
-
Build Vias - 启用此选项以同时包含过孔孔壁(Via barrels)。 请注意,启用此选项可能会生成大量数据,从而显著影响性能。
-
Smart Sketch Update - 启用后,在执行 Pull 时,MCAD CoDesigner 只会重绘在 ECAD 中发生变化的草图元素,并保持与未变化元素相关的尺寸与约束不变。如果该选项产生不理想的结果,请禁用它。了解更多关于 Smart Sketch Change 支持。
-
Build Route Tool Path– Route Tool Path(走刀路径)是一个轮廓,用于在制造面板上将电路板铣切出来。如果在 MCAD 中不需要该路径,请禁用此选项。了解更多关于 ECAD Route Tool Path。
-
Ignore components smaller than
<Value><Units>in height - 可以将较小的元件从同步过程中排除。配置此选项后,在执行 Pull 时会排除小于<Value><Units>的元件。请注意,元件高度在 ECAD 中是作为元件(封装)的属性来定义的,并不是放置在封装上的 3D 模型高度。了解更多关于 配置 Siemens NX 忽略较小元件。 -
Units System - 用于从 ECAD Pull 电路板时所使用的单位。该设置会覆盖在电路板被 Push 时 ECAD 中使用的单位。
-
Participate in the product improvement program - 启用此选项可自动与 Altium 共享有关你使用 CoDesigner 的技术信息。了解更多关于 产品改进计划。
使用 Teamcenter PLM
Siemens Teamcenter PLM 将机械工程师连接在一起,使他们能够在全球范围内共享其零件与设计。CoDesigner 在 Siemens NX 中对 PCB Assembly、PCB Part 以及 Components 执行操作时支持 Teamcenter PLM。PCB 装配体可以从 Teamcenter 界面直接在 Siemens NX 中保存和打开,如下所示。
模型存储
CoDesigner 存储从 ECAD Pull 下来的 3D PCB 元件模型的位置,取决于是否使用 Teamcenter,以及 CoDesigner 的 Common folder for storing models that are coming from ECAD 选项如何配置。
| Common Folder for Storing Models | Not using Teamcenter | Using Teamcenter |
|---|---|---|
| 未输入值 | 模型存储在项目文件夹中 | 模型存储在 CoDesigner 创建的默认 Teamcenter 文件夹中( |
| 输入了本地路径与文件夹 | 模型存储在指定的本地文件夹中 | 模型存储在指定的本地文件夹中,不会在 Teamcenter 中注册。 请注意,PCB Assembly 和 PCB Part 仍会保存在 Teamcenter 中。 # |
输入了 Teamcenter 路径(:root_TC_folder:subfolder1:subfolder12:) |
不适用 | 模型存储在指定的 Teamcenter 文件夹中。 |
CoDesigner 支持 Siemens Teamcenter PLM。
► 了解更多关于 链接原生 ECAD 与 MCAD 设计组件。
使用 Teamcenter 模板
Siemens Teamcenter 对模板的支持提供了一种灵活方式,用于定义新建零件或装配 Item 时要使用的参数,支持以下参数:
-
Item Type -
Units -
TemplateName -
TemplatePresentationName -
TemplateFileName -
Additional template parameters
CoDesigner 3.7 引入了在创建零件或装配时通过 XML 配置文件来定义这些参数的支持。
配置 XML 位置
配置 XML 文件会从 NX 安装文件夹中部署并使用:
C:\Program Files\Siemens\<NxVersionNumber>\ALTIUM_CODESIGNER\template_parameters_mapping.xml
该 XML 文件描述了要使用的模板,以及为受支持的零件与装配体需要设置的参数。
配置 XML 文件
下面是配置 XML 的示例。 请注意,文件中共有七个部分:
<?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>
<FlexPart ItemType="Item" TemplateName="NXSheetMetalTemplate" TemplatePresentationName="Sheet Metal">
<!--<TemplateFileName>@DB/sheet-metal-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>
</FlexPart>
<RigidAssembly 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="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>
</RigidAssembly>
<RigidPart 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>
</RigidPart>
</Mapping>
该 XML 包含 7 个部分:BoardAssembly、BoardPart、CopperPart 、ComponentPart、FlexPart、RigidAssembly 和 RigidPart。
每个部分都定义了相应设计模型类型的创建参数。
需要定义的属性包括:
-
ItemType- Teamcenter Item Type -
TemplateName- Model、Assembly、Other…(应与PAX文件记录的ObjectData中指定的类相对应) -
TemplatePresentationName -
TemplateFileName- 与在 Teamcenter 中加载的模板条目修订版相关。如果未定义,则将使用基于其他 属性(包括Units)找到的第一个匹配项。
属性值应映射到你的 PAX 文件中找到的类似属性的值,以便在 Teamcenter 中识别该模板。 此外,你还可以使用 AttributesTemplate 部分指定在创建零件时要设置的属性。
请使用以下示例语法作为参考:
<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>
每个 Param 条目都对应一个属性集。需要定义的各项属性包括:
-
Name- 要设置的参数名称 -
Category- 属性的类别(通常是该属性的 ItemType 名称) -
Type- 属性的数据类型,允许的值为:String、Number、Integer、Boolean、Date -
ValueDate -
Value- 用于生成属性值的值模板。它可以是常量,也可以是带有对上下文元数据引用的表达式。
Value模板由包含在{}中的表达式组成。
例如,表达式{ProjectName}将被替换为实际的项目名称。如果模板包含该表达式,那么它会在不同项目的上下文中应用,最终的值将由其指定的替换内容生成。
在值模板中可以组合多个表达式和常量值。可用的表达式包括:
-
ProjectName- 替换为项目名称 -
ProjectParam_Param1- 替换为项目的 Param1(Param1 是来自 ECAD 的项目参数名称) -
VariantParam_Param1- 替换为当前项目变体的 Param1(Param1 是来自 ECAD 的项目参数名称) -
SubType- 替换为铜部件子类型名称,仅应在 CopperPart 上使用。 -
ComponentParam_Param2- 替换为 Param2 组件参数的值,该表达式只能用于 ComponentPart。
例如,如果 ProjectName 是 MyProject,并且 Area 项目参数为 PSU,则该元素为:
<Param Name="Description" Category="MyItem" Type="String" Value="{ProjectName}-{ProjectParam_Area}"/>
此示例会将字符串值 MyProject-PSU 设置到 MyItem 类别的 Description 属性中。
MCAD 到 ECAD - 从 Teamcenter 引用 ECAD 封装
MCAD 模型到 ECAD 封装的链接,是通过在你的 Altium Workspace 中将某个 MCAD 模型属性映射到某个 ECAD 组件参数来定义的。用于从 Teamcenter 模型定义到 ECAD 组件封装链接的机制在 CoDesigner 3.7 中得到了改进。现在支持在 Workspace 的 MCAD model property used for mapping and recognition 字段中同时定义 Teamcenter Category 和 Property ,语法如下:
<CategoryName>::<PropertyName>
用于链接的 Teamcenter Category 和 Property 会在 Workspace 设置中进行映射,语法为 <CategoryName>::<PropertyName>。
ECAD 到 MCAD - 在 Teamcenter 中定位 MCAD 模型
ECAD 组件封装到 MCAD 模型的链接,是通过指定一个包含 MCAD 模型的 ECAD 组件参数来定义的。这在你的 Altium Workspace 中的 MCAD CoDesigner 设置里进行配置。 在拉取到 MCAD 的过程中,CoDesigner 会在 MCAD 数据管理系统中搜索该名称的 MCAD 模型。
如果在 Siemens NX 中使用原生的 ECAD 到 MCAD 组件链接,则必须在 ECAD 组件参数中定义 MCAD 组件引用,使其包含 Teamcenter 路径,参数值形式为:
:root_TC_folder:subfolder1:subfolder12:model_name
忽略 Teamcenter 中不可用的模型
为更好地处理电路板上存在但在 Teamcenter 中没有对应模型的组件情况,CoDesigner 3.9 更新增加了一个配置项,用于在 Pull into MCAD 时忽略无法获取的组件。
要启用该设置,请编辑文件:
\Program Files\Siemens\NXXXX\ALTIUM_CODESIGNER\template_parameters_mapping.xml.
在 ComponentPart 部分,设置:
IgnoreComponentsMissingInDMS为 1(或 yes 或 true),如下所示。
编辑 NX 参数映射文件,以忽略 Teamcenter 中不可用的组件。
下一步是什么?
现在 CoDesigner 已安装到你的 MCAD 软件并连接到你的 Workspace,下一步是配置相关的 Workspace 设置。
► 了解更多:配置你的 Workspace 设置
)。