点击查看详细介绍

UG判断当前窗口显示的模型是否是指定的PART模型 精华帖

nxopen 7年前 2969 1

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


UG判断当前模型是否是指定的模型,如果不是打开该模型,或者已经打开了该模型,切换到该模型的窗口

比如:
当前UG打开了C:\1.PRT 文件,然后你需要判断当前是不是打开的C:\2.PRT 这个文件,如果不是自己用UG打开C:\2.PRT,如果UG之前已经打开过了C:\2.PRT,那么将C:\2.PRT作为显示部件

以下为逻辑实现代码:

//要判断的模型文件,自行通过变量传递
char *partNamePath = "C:\\1.prt";					
tag_t displayTag = UF_PART_ask_display_part();		//获得当前UG显示部件TAG
char part_fspec[MAX_FSPEC_SIZE+1];
UF_PART_ask_part_name(displayTag, part_fspec);		//获得当前显示部件的名称	
if(stricmp(partNamePath, part_fspec) != 0)	//判断两个路径是否相等,不相等就不等于0
{
	//进一步判断内存是否已经存在指定的模型
	int num_parts = UF_PART_ask_num_parts();	//获得当前对话框加载的part数量
 	bool i *** ool = false;	//先定义内存未加载
	if(num_parts>1)
	{
		for(int i=0; i<num_parts; i++)
		{
			tag_t tempPart = UF_PART_ask_nth_part(i); //得到以加载的第 i 个part
			if(tempPart != NULL_TAG)
			{
				char temp_part_fspec[MAX_FSPEC_SIZE+1];
				UF_PART_ask_part_name(tempPart, temp_part_fspec);//获得part名称	
				if(stricmp(partNamePath, temp_part_fspec) == 0)	//判断两个路径是否相等
				{
					//如果相等表明内存已经加载,直接设为显示部件,然后结束循环
					UF_PART_set_display_part(tempPart);		
					i *** ool = true;		//内存已加载
					break; //退出循环
				}
			}
		}
	}
}


核心部分代码:

●●●请先 登陆注册 后查看●●●

1

最新回复 (1)
  • zxj_sz 4年前
    1

    学习学习学习了解一下

请登录后发表新帖