适用版本:NX6及以上
在进行NX二次开发时,某些业务场景需要获取在仿真模块中模态信息,进行一些操作,比如导出名称。本篇技巧主要介绍通过NXOpen的方式来获取仿真模块当前模态的方法。
通过NXOpen的方式获取仿真模块当前选中的模态,可以获取到模态的信息,并用于其它操作。
手动实现
双击模态对象,根据PostView窗口,查看显示的信息,如图1所示。
代码实现
根据获取到的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.}
通过遍历找到选中模态的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,获取到相应的模态对象。根据获取到的模态对象,可以获取相应的信息,用于其他的操作。