今天我们讲的是如何判断选中的对象是否是实体,思路是先在ug中创建多个体,然后分别选中一个体和多个体。但实际你在验证的过程中会发现选中的不是实体,想要选中的是实体,就先在无选择过滤器所在的下拉框中选择实体之后,再用鼠标去选择对象就可以保证选中的对象是实体了。
下面图片显示了无选择过滤器所在的位置:
下面直接上代码(纯干货):
NXOpen.Session theSession = NXOpen.Session.GetSession();
NXOpen.Part workPart = theSession.Parts.Work;
NXOpen.Part displayPart = theSession.Parts.Display;
int selcount = 0;
Tag[] objs;
//theUFSession.UiOnt.AskSelectedNodes(out selcount,out objs);
theUfSession.Ui.AskGlobalSelObjectList(out selcount, out objs);
if (selcount < 1)
{
theUI.NXMessageBox.Show("提示", NXMessageBox.DialogType.Information, "请选中体");
return retValue;
}
else if (selcount == 1)
{
theUI.NXMessageBox.Show("提示", NXMessageBox.DialogType.Information, "选中一个体");
}
else if (selcount > 1)
{
theUI.NXMessageBox.Show("提示", NXMessageBox.DialogType.Information, "选中多个体");
}
for(int i=0;i<objs.Length;i++)
{
int type;
int subtype;
theUfSession.Obj.AskTypeAndSubtype(objs[i], out type, out subtype);
if (type == 70 && subtype == 0)
{
theUI.NXMessageBox.Show("提示", NXMessageBox.DialogType.Information, "选中的体为实体");
}
else
{
theUI.NXMessageBox.Show("提示", NXMessageBox.DialogType.Information, "选中的体不是实体");
}
}
不选择体的情况下,运行效果:
选中一个体,但没有改成实体的状态运行效果:
选中一个体,并且将无选择过滤器改成实体,再运行效果如下:
选中多个体,并且无选择过滤器改为实体,会循环提示选中多个实体。这里不进行展示了,大家可以自己尝试一下运行效果。