NX二次开发-获取CAE当前模态

NX二次开发-获取CAE当前模态

作者:张晓峰   审校:徐涛

适用版本:NX6及以上

在进行NX二次开发时,某些业务场景需要获取在仿真模块中模态信息,进行一些操作,比如导出名称。本篇技巧主要介绍通过NXOpen的方式来获取仿真模块当前模态的方法。

功能说明

通过NXOpen的方式获取仿真模块当前选中的模态,可以获取到模态的信息,并用于其它操作。

实现方法
1

手动实现

双击模态对象,根据PostView窗口,查看显示的信息,如图1所示。

2

代码实现

NX二次开发-获取CAE当前模态

根据获取到的PostView的ID,获取到ResultType和Result。

 

1.  int[] postviewIdArr = Session.GetSession().Post.GetPostviewIds();

2.  string modalName = null;

3.  if (postviewIdArr.Length != 0)

4.  {

5.          Result res; ResultParameters rp;

6.Session.GetSession().Post.GetResultForPostview(postviewIdArr[0], out res, out rp);

7.          ResultType resultType = rp.GetGenericResultType() as ResultType;

8.          var modal = AutoCAEReportForm.GetSelectedModal(res, resultType);//选中模态的名称

9.          if (modal == null) return;

10.        modalName = modal.Name;

11.}

NX二次开发-获取CAE当前模态

通过遍历找到选中模态的BaseIteration,然后获取到相应的模态对象,如下代码所示。

1. public static BaseIteration GetSelectedModal(Result res, ResultType rt)

2. {

3.     BaseLoadcase[] allLoadcases = res.GetLoadcases();

4.     foreach (var oneLoadcase in allLoadcases)

5.     {

6.        foreach (BaseIteration iteration in oneLoadcase.GetIterations())

7.        {

8.             foreach (BaseResultType resultTypes in iteration.GetResultTypes())

9.             {

10.                 if (resultTypes.Tag == rt.Tag)

11.                 {

12.                    return iteration;

13.                 }

14.             }

15.        }

16.    }

17.    return null;

18. }

总    结

综上所述,我们通过PostView的ID,获取到相应的模态对象。根据获取到的模态对象,可以获取相应的信息,用于其他的操作。

相关软件
40 多年来,Nastran 有限元求解器一直是应力、振动、屈曲、结构故障、热传递、声学和气动弹性力学分析方面的行业标准。航空航天、汽车、电子、重型机械、医疗设备及其他行业的众多制造商和工程供应商均依靠 NX Nastran 软件满足在工程
相关阅读