[NXOpen C++] UG二次开发,使用MaskTriple设置过滤器后选择对象

说明:使用MaskTriple设置过滤器后选择对象

测试代码:设置过滤器仅选择圆弧曲线

//使用MaskTriple设置过滤器后选择对象
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace NXOpen;
using namespace std;

extern "C" DllExport int ufusr_ask_unload()
{
	return (int)Session::LibraryUnloadOptionImmediately;
}

extern "C" DllExport void ufusr(char *param, int *retCode, int paramLen)
{
	Session *theSession = Session::GetSession(); 
	Part *workPart(theSession->Parts()->Work());
	UI *theUI = UI::GetUI();
	TaggedObject *object;
	Point3d cursor;
	//theUI->SelectionManager()->SelectTaggedObject("提示123","这里是标题",Selection::SelectionScopeWorkPart,true,false,&object,&cursor);
	//添加方式过滤
	vector masks;
	Selection::MaskTriple mask;
	mask.Type=UF_circle_type;           //大类   圆弧
	mask.Subtype = UF_all_subtype;      //小类   所有
	masks.push_back(mask);
	//提示  标题  选择范围   选择的结果把以前的清除,选择想选中的   是否包含特征  是否高亮显示  选择方式过滤   选择的对象
	Selection::Response res;
	res=theUI->SelectionManager()->SelectTaggedObject("提示123","这里是标题",Selection::SelectionScopeWorkPart,Selection::SelectionActionClearAndEnableSpecific,true,false,masks,&object,&cursor);
	if (res == Selection::ResponseObjectSelected)//如果选中了
	{
		tag_t tagTag=NULL_TAG;
		tagTag=object->GetTag();
		char cTag[256]="";
		sprintf(cTag,"tag=%d",tagTag);  //大类
		theSession->ListingWindow()->Open();  //打开信息窗
		theSession->ListingWindow()->WriteLine(cTag);  //输出对象标签
	}
}

效果演示:

[NXOpen C++] UG二次开发,使用MaskTriple设置过滤器后选择对象_第1张图片

你可能感兴趣的:(UG二次开发,UG二次开发)