高级过滤函数的使用

博客提及可参考NX二次开发选择对象控件过滤相关内容,如Simcenter Nastran software噪声震动分析及知乎上关于NX二次开发(C#)UIStyler通过AddFilter()设置过滤的文章,还介绍可通过filter_cb回调函数依条件判断确定对象能否选中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

也可以参考:NX二次开发-选择对象控件过滤-Simcenter Nastran software-噪声震动分析-软服之家

NX二次开发(C#)-UIStyler-通过AddFilter()给选择对象设置过滤 - 知乎

//设置过滤
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
std::vector<Selection::MaskTriple>maskArray(1); //括号内数字:maskArray数组大小(有多少种选择就写多少)
maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE);  //面
selection0->GetProperties()->SetSelectionFilter("SelectionFilter", action, maskArray);
                 
//当使用多类对象选择时 以下数组递增即可!
//maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_all_subtype, 2);  //直边
//maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_all_subtype, 3);  //圆弧边
//maskArray[0] = Selection::MaskTriple(UF_point_type, 0, 0);  //点
//maskArray[0] = Selection::MaskTriple(UF_line_type,0,0);       //直线
//maskArray[0] = Selection::MaskTriple(UF_circle_type, 0, 0);  //圆弧线
//maskArray[0] = Selection::MaskTriple(UF_spline_type, 0, 0);  //不规则曲线
//maskArray[0] = Selection::MaskTriple(UF_conic_type, UF_cone_subtype, 0);  //圆锥面
//maskArray[0] = Selection::MaskTriple(UF_cylinder_subtype, 0, 0);  //圆柱面
//maskArray[0] = Selection::MaskTriple(UF_sphere_subtype, 0, 0);   //球面/R面
//maskArray[0] = Selection::MaskTriple(UF_component_type,0,0);   //组件
//maskArray[0] = Selection::MaskTriple(UF_drafting_entity_type,0,0);  //制图对象
//maskArray[0] = Selection::MaskTriple(UF_datum_plane_type,0,0);     //基准面类型
//maskArray[0] = Selection::MaskTriple(UF_datum_axis_type,0,0);       //基准轴类型
//maskArray[0] = Selection::MaskTriple(UF_coordinate_system_type,0,0);  //坐标系类型//maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_PLANAR_FACE);  //平面
//

Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
std::vector<Selection::MaskTriple> maskArray(1);
maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_solid_body_subtype, 0); // 实体和片体	
selection0->GetProperties()->SetSelectionFilter("SelectionFilter", action, maskArray);
maskArray[0]=Selection::MaskTriple(UF_solid_type, UF_solid_body_subtype, UF_UI_SEL_FEATURE_SOLID_BODY);//实体
//maskArray[0]=Selection::MaskTriple(UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_CYLINDRICAL_FACE);//圆柱面
//maskArray[0]=Selection::MaskTriple(UF_solid_type, UF_solid_body_subtype, UF_UI_SEL_FEATURE_SHEET_BODY);//片体
maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_solid_body_subtype, UF_UI_SEL_FEATURE_SOLID_BODY); // 实体
maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_solid_body_subtype, UF_UI_SEL_FEATURE_SHEET_BODY); // 片实体
maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_FACE); // 面	
maskArray[0] = Selection::MaskTriple(UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_ANY_EDCE); // 边	
maskArray[0] = Selection::MaskTriple(UF_component_type, 0, 0); // 组件	
maskArray[0] = Selection::MaskTriple(UF_line_type, 0, 0); // 线	
maskArray[0] = Selection::MaskTriple(UF_drafting_type, 0, 0); // 制图对象	

通过filter_cb回调函数,根据条件判断,返回相应的值来确定是否可以选中

MySQL聚合函数是一组用于计算行数据的函数,它们返回单个值作为结果。常见的聚合函数包括SUM、AVG、COUNT、MAX和MIN。下面是一些高级使用聚合函数的技巧: 1. 使用DISTINCT关键字 在聚合函数使用DISTINCT关键字可以消除重复值。例如,如果您想计算不同城市中有多少个客户,可以这样写: ``` SELECT COUNT(DISTINCT city) FROM customers; ``` 2. 使用GROUP BY子句 GROUP BY子句将行分组为多个集合,并对每个组应用聚合函数。例如,如果您想找出每个城市的平均客户数,可以这样写: ``` SELECT city, AVG(customers) FROM sales GROUP BY city; ``` 3. 使用HAVING子句 HAVING子句与WHERE子句类似,但它用于过滤GROUP BY子句生成的结果集。例如,如果您想找出平均客户数大于10的城市,可以这样写: ``` SELECT city, AVG(customers) FROM sales GROUP BY city HAVING AVG(customers) > 10; ``` 4. 使用ORDER BY子句 ORDER BY子句用于按升序或降序对结果集进行排序。例如,如果您想按平均客户数降序排列城市,可以这样写: ``` SELECT city, AVG(customers) FROM sales GROUP BY city ORDER BY AVG(customers) DESC; ``` 5. 使用聚合函数嵌套 聚合函数可以嵌套在其他聚合函数中。例如,如果您想找出每个城市的最大客户数,可以这样写: ``` SELECT city, MAX(customers) FROM (SELECT city, COUNT(*) AS customers FROM sales GROUP BY city) AS subquery GROUP BY city; ``` 以上是一些高级使用聚合函数的技巧,它们可以帮助您更好地处理和分析数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

白雪公主的后妈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值