NX二次开发:切换应用模块

文章讲述了作者在观看教学视频后,发现NX建模模块切换到加工模块时存在bug。作者分享了封装的SwitchApplicationModules函数,用于在不同模块间切换,并演示了如何在代码中调用该函数以改变应用程序模块。
摘要由CSDN通过智能技术生成

一、概述

        最近将唐工的教学视频基本上看完了,收获很大;昨天NX二次开发学习群中,有小伙伴说在从建模模块切换到加工模块是说有问题,我尝试了一下录制的代码,确实有BUG,调试了一下,找到了一种方法,做以下笔记,防止忘记。最近感觉学的内容有点多,不知怎么回事总是记忆不清。

二、切换模块函数的封装

/***************************************************************************************
		**SwitchApplicationModules切换应用模块。
		**1,没有模块;2,建模模块;3,外观造型设计;4、制图模块;5、加工模块;6、加工检测模块;
		**7、加工生产线设计;8、运动仿真模块;9、PCB 设计-挠性印制电路设计;10,钣金模块
		****************************************************************************************/
static string SwitchApplicationModules(const int &Value);



/*********************************************************************************************
**Function:				SwitchApplicationModules切换应用模块
**FunctionType:			int
**double Value			返回应用模块的标识
**tag_t BodyOrFaceTag	体或者面的TAG值
**SeeAlso				UF_APP_NONE = 0;			//没有应用模块
						UG_APP_MODELING = 40;		//建模模块Ctrl+M
						UG_APP_STUDIO = 88;			//外观造型设计 Ctrl+Alt+S
						UG_APP_DRAFTING = 1;		//制图模块Ctrl+Shift+D
						UG_APP_MANUFACTURING = 16;	//加工模块Ctrl+Alt+M
						UG_APP_INSPECTION = 93;		//加工检测模块Ctrl+Alt+I
						APP_LINE_DESIGNER			//加工生产线设计Ctrl+Shift+L
						UG_APP_MECHANISMS = 14		//运动仿真模块Ctrl+Alt+K
						UG_APP_FLEX_PCB = 92;		//PCB 设计-挠性印制电路设计Ctrl+Alt+P
						UG_APP_SBSM = 85;			//钣金模块Ctrl+Shift+M
************************************************************************************************/
string LiangFuns::UserUFBaseFun::SwitchApplicationModules(const int &Value)
{
	string SwitchApplication;
	switch (Value)
	{
		case 1:
			SwitchApplication = "UF_APP_NONE";
			break;
		case 2:
			SwitchApplication = "UG_APP_MODELING";
			break;
		case 3:
			SwitchApplication = "UG_APP_STUDIO";
			break;
		case 4:
			SwitchApplication = "UG_APP_DRAFTING";
			break;
		case 5:
			SwitchApplication = "UG_APP_MANUFACTURING";
			break;
		case 6:
			SwitchApplication = "UG_APP_INSPECTION";
			break;
		case 7:
			SwitchApplication = "APP_LINE_DESIGNER";
			break;
		case 8:
			SwitchApplication = "UG_APP_MECHANISMS";
			break;
		case 9:
			SwitchApplication = "UG_APP_FLEX_PCB";
			break;
		case 10:
			SwitchApplication = "UG_APP_SBSM";
			break;
	}
	return SwitchApplication;
}

三、运行代码

	NXOpen::Session *theSession = NXOpen::Session::GetSession();
	NXOpen::Part *workPart(theSession->Parts()->Work());
	NXOpen::Part *displayPart(theSession->Parts()->Display());
	// ----------------------------------------------
	//   Menu: 应用模块(N)->加工(C)->生产线设计(I)
	// ----------------------------------------------
	string  ApplicationSwitch = UserUFBaseFun::SwitchApplicationModules(5);
	NXString AppName = theSession->ApplicationName();
	if (AppName.GetLocaleText() != ApplicationSwitch)
	{
		//theSession->ApplicationSwitchImmediate("UG_APP_MANUFACTURING");
		theUI->MenuBarManager()->ApplicationSwitchRequest(ApplicationSwitch.c_str());
	}

//记得加上头文件#include <NXOpen/MenuBar_MenuBarManager.hxx>

四、结果如下

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白雪公主的后妈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值