夏季里那丝清凉 发表于 2025-6-19 15:21:04

关于NX工程制图获取时间并自动写入图框的做法

论坛里有利用表达式获取系统时间并写入制图图框的做法,以前我也一直是用表达式的方式,近来总看着这些多出来的表达式不爽,尝试用自定义命令调用操作记录文件的方式来写入系统时间。

1,用户默认设置里将操作记录语言更改为C#(可选,更改后方便自己录制一些简单命令并用自定义的用户命令按钮来调用)


2,自定义一个用户命令,右键编辑操作,更改类型为操作记录文件,选择文件类型用C#源文件。(可以自己随便录制一段操作记录并保存操作记录文件,之后选择该操作记录文件即可;抑或新建文本,更改后缀名为cs。)


3,将操作记录文件里的内容替换为这段代码,其中string attributeTitle = "RELEASE_DATE";的RELEASE_DATE为要写入日期的部件属性,可以更改为实际需要的日期属性。


4,点击一下自定义的用户命令,系统当前日期将写入RELEASE_DATE属性里,没有该属性会自动创建这个属性;string currentDate = DateTime.Now.ToString("yyyy-MM-dd");中的yyyy-MM-dd为日期格式,自行更改需要的格式。


操作记录文件的代码如下:

using System;
using NXOpen;

public class SetDateAttribute
{
    public static void Main(string[] args)
    {
      // 获取当前会话和工作部件
      Session theSession = Session.GetSession();
      Part workPart = theSession.Parts.Work;
      
      // 获取当前日期
      string currentDate = DateTime.Now.ToString("yyyy-MM-dd");
      string attributeTitle = "RELEASE_DATE";
      
      try
      {
            // 正确调用 SetUserAttribute 方法
            workPart.SetUserAttribute(
                attributeTitle,   // 属性名称
                -1,            // 索引 (-1 表示整个部件)
                currentDate,   // 属性值
                Update.Option.Now // 正确的更新选项
            );
            
            // 提交更新
            theSession.UpdateManager.DoUpdate(0);
      }
      catch
      {
            // 静默处理错误
      }
    }
}

战士* 发表于 2025-6-19 17:40:08

谢谢分享好好学习

f3634861 发表于 2025-6-19 17:53:50

:lol:lol:lol:lol:lol:lol:lol

周龙祥 发表于 2025-6-19 18:41:39

谢谢分享好好学习

lipngwg612 发表于 2025-6-19 19:24:52

能自动出图出BOM表吗?!

tongjiashan2 发表于 2025-6-19 20:41:58

收藏!学习中……
谢谢楼主分享。

893011376 发表于 2025-6-19 21:22:35

楼主威武啊

cwghaier 发表于 2025-6-20 07:28:27

谢谢楼主分享。

gonghb 发表于 2025-6-20 08:07:50

赶紧学习学习,我就是用表达式写入时间的。谢谢分享

水母曙猿 发表于 2025-6-20 08:12:23

值得学习,人才济济。
页: [1] 2
查看完整版本: 关于NX工程制图获取时间并自动写入图框的做法