NX 2506 设置零件属性模板和图纸标题栏模板(研究中)

最近更新于 2025-10-27 00:02

零件属性模板

创建

新建一个空白文件
file

打开属性模板
文件 – 实用工具 – 属性模板
file

切换到目录
file

开始创建属性,这里类别我都统一写的“自定义模型属性”,每次设置后点“应用”就不会关闭窗口
file

  • DB_PART_NAME 零件名 字符串
  • DB_PART_NO 图号 字符串
  • Designer 设计 字符串
  • Designer_Date 设计日期 字符串
  • Checker 校对 字符串
  • Checker_Date 校对日期 字符串
  • Auditor 审核 字符串
  • Auditor_Date 审核日期 字符串
  • Approver 批准 字符串
  • Approver_Date 批准日期 字符串
  • DB_PART_TYPE 类型 字符串
  • Material 材料 字符串

创建好后,展开操作,导出至目录
file

选一个固定目录保存,并命名文件
file

修改默认

文件 – 实用工具 – 用户默认设置
file

基本环境 – 用户属性,在 Windows 那里点击“浏览”,选择前面导出的文件,修改后重启 NX 生效,前面创建的空白文件可以不用保存
file

设置生效后,新建零件或打开零件也都有这些属性
在装配导航器的零件上右键属性就能看到对应零件的属性


如果要恢复可以设为原值:%UGII_TMP_DIR%\NXAttributeCatalog.xml

通过 Python 脚本一键更新图号和名称

import NXOpen
import os

def main():
    session = NXOpen.Session.GetSession()
    work_part = session.Parts.Work
    lw = session.ListingWindow
    lw.Open()

    if not work_part:
        lw.WriteLine("未检测到活动零件。")
        return

    # 从顶层装配开始递归处理所有组件
    root_component = work_part.ComponentAssembly.RootComponent
    if root_component is None:
        # 当前是单个零件
        update_part_attributes(work_part, lw)
    else:
        # 当前是装配体
        process_component_recursive(root_component, lw)

    lw.WriteLine("\n=== 属性更新完成 ===")

def process_component_recursive(component, lw):
    """递归遍历组件及其子组件"""
    try:
        # 获取组件对应的零件对象
        part = component.Prototype
        if part is not None:
            update_part_attributes(part, lw)
    except Exception as e:
        lw.WriteLine("组件处理失败:{} -> {}".format(component.DisplayName, e))

    # 递归子组件
    for child in component.GetChildren():
        process_component_recursive(child, lw)

def update_part_attributes(part, lw):
    """根据零件文件名更新属性"""
    try:
        if not part.IsFullyLoaded:
            part.LoadFully()

        filename = os.path.basename(part.FullPath)
        name_without_ext, ext = os.path.splitext(filename)

        # 拆分格式 “图号 名称.prt”
        parts = name_without_ext.split(" ", 1)
        if len(parts) != 2:
            lw.WriteLine("❌ 文件名不符合规则: {}".format(filename))
            return

        part_no, part_name = parts

        # 设置属性
        set_nx_attribute(part, "DB_PART_NO", part_no)
        set_nx_attribute(part, "DB_PART_NAME", part_name)

        lw.WriteLine("✔ [{}] DB_PART_NO='{}', DB_PART_NAME='{}'".format(
            filename, part_no, part_name
        ))

    except Exception as e:
        lw.WriteLine("更新零件失败:{} -> {}".format(part.FullPath, e))

def set_nx_attribute(part, attr_name, value):
    """设置或更新属性"""
    part.SetUserAttribute(attr_name, -1, value, NXOpen.Update.Option.Now)

if __name__ == "__main__":
    main()

质量属性

设置自动创建质量属性

打开用户默认设置
基本环境 – 材料/质量
在部件属性选项里,确保质量相关的属性勾选了“创建属性”
file

在累计属性选项里,确保质量相关的属性勾选了“创建属性”
file

在杂项选项里,勾选“生成质量数据”,并将“替代生成质量数据”选为“始终生成”
file

测试:新建一个零件,随意建模一个实体,并保存文件,在零件上右键属性,在质量选项卡下可以看到质量
file

然后我创建了一个子零件,在属性选项卡可以看到“MassPropRollupMass”的值就是累计质量(所选装配体的总质量),“MassPropMass”是当前零件的质量
file

NX 2506 设置零件属性模板和图纸标题栏模板(研究中)
Scroll to top
打开目录