最近更新于 2025-10-27 00:02
零件属性模板
创建
新建一个空白文件

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

切换到目录

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

- DB_PART_NAME 零件名 字符串
- DB_PART_NO 图号 字符串
- Designer 设计 字符串
- Designer_Date 设计日期 字符串
- Checker 校对 字符串
- Checker_Date 校对日期 字符串
- Auditor 审核 字符串
- Auditor_Date 审核日期 字符串
- Approver 批准 字符串
- Approver_Date 批准日期 字符串
- DB_PART_TYPE 类型 字符串
- Material 材料 字符串
创建好后,展开操作,导出至目录

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

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

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

设置生效后,新建零件或打开零件也都有这些属性
在装配导航器的零件上右键属性就能看到对应零件的属性
如果要恢复可以设为原值:%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()
质量属性
设置自动创建质量属性
打开用户默认设置
基本环境 – 材料/质量
在部件属性选项里,确保质量相关的属性勾选了“创建属性”

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

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

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

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

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