购买与咨询 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; //退出循环
}
}
}
}
}
核心部分代码:

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