属性说明

属性   类型   描述
  常规         
   BlockID    String    控件ID
   Enable    Logical    是否可操作
   Group    Logical    是否分组
   Show    Logical    是否可见
  对齐         
   PointOverlay    Logical    是否显示捕捉点
   SmartUpdateOption    Enum    智能更新选项
   SnapPointTypesEnabled    Bits    设置捕捉点类型的可见性
   SnapPointTypesOnByDefault    Bits    设置捕捉点内容被启用
  其他         
   附件         
    Bottom    Attachment    底部
    Left    Attachment    左
    Right    Attachment    右
    Top    Attachment    顶部
  特定于块         
   AllowConvergentObject    Logical    允许选择收敛体
   AutomaticProgression    Logical    自动跳到下一个控件
   BalloonTooltipImage    String    标题气泡提示图片
   BalloonTooltipLayout    Enum    标题气泡提示类型
   BalloonTooltipText    Utfstring    标题气泡提示文本
   Bitmap    String    控件位图
   BlendVirtualCurveOverlay    Logical    是否显示虚拟交线
   CreateInterpartLink    Logical    部件间连接图标在选择条
   Cue    Utfstring    提示
   InterpartSelection    Enum    部件间选择设置
   LabelString    Utfstring    标签标题
   MaximumScope    Enum    设置选择范围
   SelectMode    Enum    设置单选/多选 
   StepStatus    Enum    设置确定和应用按钮高亮
   ToolTip    Utfstring    动态提示文本标题
     

单选模式  Multiple=多选,Single=单选

selection0->GetProperties()->SetEnum("SelectMode",0);
//设置多选还是单选,Multiple=多选,Single=单选
selection0->SetSelectModeAsString("Multiple");    
//设置选择范围:3-整个装配   10-仅工作部件   11-装配和工作
selection0->GetProperties()->SetEnum("MaximumScope", 10);
//设置选择对象控件停在当前,不自动跳到下一个选择控件
selection_Track->Focus();

自动推进到下一个
selection0->GetProperties()->SetLogical("AutomaticProgression",true);

对象选择过滤 只能选组件

1 std::vector< NXOpen::Selection::MaskTriple > maskTriple;
2 Selection::MaskTriple mask1(UF_component_type, 0, 0);
3 maskTriple.push_back(mask1);
4 selection0->GetProperties()->SetSelectionFilter("SelectionFilter", Selection::SelectionActionClearAndEnableSpecific, maskTriple);

对象选择过滤 只能选体上圆柱面

std::vector< NXOpen::Selection::MaskTriple > maskTriple;
Selection::MaskTriple mask1(UF_solid_type, UF_solid_body_subtype, UF_UI_SEL_FEATURE_CYLINDRICAL_FACE);
maskTriple.push_back(mask1);
selection0->GetProperties()->SetSelectionFilter("SelectionFilter", Selection::SelectionActionClearAndEnableSpecific, maskTriple);

对象选择过滤 只能选基准坐标

std::vector< NXOpen::Selection::MaskTriple > maskTriple;
Selection::MaskTriple mask1( UF_coordinate_system_type, 0, 0);
maskTriple.push_back(mask1);
selection0->GetProperties()->SetSelectionFilter("SelectionFilter", Selection::SelectionActionClearAndEnableSpecific, maskTriple);

选择片体

https://www.cnblogs.com/KMould/p/14888582.html

选择实体

https://www.cnblogs.com/KMould/p/14888582.html

1 SelectionActionEnableAll/** Include objects in selection 在选择中包含对象*/,
2 SelectionActionEnableSpecific/** Include selected objects in selection 在选择中包括选定的对象 */,
3 SelectionActionDisableSpecific/** Remove selected objects from selection 从选择中删除选定的对象 */,
4 SelectionActionClearAndEnableSpecific/** Clear selection and include selected objects 清除选择并包括选定的对象*/,
5 SelectionActionAllAndDisableSpecific/** Select all objects except for selected objects 选择除已选对象外的所有对象*/

获取控件选择的对象转为tag_t类型

vector<tag_t>vecSelectFaces;
std::vector<TaggedObject*>objects = this->selection0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
for (int i = 0; i < objects.size(); i++)
{
vecSelectFaces.push_back(objects[i]->Tag());
}

设置控件选择的对象。清空选择

1 vector< NXOpen::TaggedObject * > objectVector;
2 objectVector.clear();
3 this->selection0->SetSelectedObjects(objectVector);

设置控件隐藏

this->selection0->SetShow(false);
selection0->AddFilter(UF_component_type,0,0); 

所需头文件

#include <NXOpen/BlockStyler_SelectObject.hxx>

定义

NXOpen::BlockStyler::SelectObject* selection0;// Block type: Selection

初始化

selection0 = dynamic_cast<NXOpen::BlockStyler::SelectObject*>(theDialog->TopBlock()->FindBlock("selection0"));

控件更新回调

    else if (block == selection0)
{
//---------Enter your code here-----------
}

【NX二次开发】Block UI 选择对象的更多相关文章

  1. NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用

    关于 在Block UI中UF_initialize();和UF_terminate();的使用 用Block UI作NX二次开发的时候,不需要在使用UFUN函数的时候加UF_initialize() ...

  2. NX二次开发-Block UI C++界面Enumeration(枚举)控件的获取(持续补充)

    NX9+VS2012 public: void SetBlockUIShow(); void EnumInt::SetBlockUIShow() { //获取枚举控件 PropertyList* En ...

  3. NX二次开发-Block UI C++界面Toggle(开关)控件的获取(持续补充)

    NX9+VS2012 public: void SetBlockUIShow(); void ToggleInt::SetBlockUIShow() { //获取开关控件 //获取枚举控件 Prope ...

  4. NX二次开发-Block UI C++界面Specify Point(指定点)控件的获取(持续补充)

    Specify Point(指定点)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); / ...

  5. NX二次开发-Block UI C++界面Face Collector(面收集器)控件的获取(持续补充 )

    Face Collector(面收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize() ...

  6. NX二次开发-Block UI C++界面Object Color Picker(对象颜色拾取器)控件的获取(持续补充)

    Object Color Picker(对象颜色拾取器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_init ...

  7. NX二次开发-Block UI C++界面(表达式)控件的获取(持续补充)

    Expression(表达式)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); // ...

  8. NX二次开发-Block UI C++界面Body Collector(体收集器)控件的获取(持续补充)

    Body Collector(体收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize() ...

  9. 【NX二次开发】Block UI 目录

    Block UI 目录  基本   标签/位图   切换开关   枚举   字符串   多行字符串   操作按钮   列表框   分割线   对象颜色选择器   RGB颜色选择器   绘图区   图层 ...

  10. 【NX二次开发】Block UI 选项卡控件

    [NX二次开发]Block UI 选项卡控件

随机推荐

  1. 【JavaScript】Leetcode每日一题-平方数之和

    [JavaScript]Leetcode每日一题-平方数之和 [题目描述] 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c . 示例1: 输入:c = 5 ...

  2. [BUUCTF-Pwn]hitcontraining_uaf

    [BUUCTF-Pwn]hitcontraining_uaf 以此题作为对Pwn中堆利用的学习的开始.堆题初见,肯定有许多地方理解不恰当,希望师傅们能多多指教. 0x00.简述 成因 应用程序调用fr ...

  3. mysql-.frm,.myd,myi备份如何导入mysql

    .frm..myd..myi文件,也就是说是MySQL的原始数据文件,这三个文件分别是: .frm 表结构文件 .myd 表数据文件 .myi 表索引文件 方法,如下: 新建一个数据库 在my.ini ...

  4. killable thread的python实现

    python没有为内置的threading.Thread类提供一个kill接口,可以通过使用CPython API向线程抛出一个SystemExit异常来终止线程.如果线程没有被系统调用阻塞(slee ...

  5. solidworks中 toolbox调用出现未配置的解决方法

    解决步骤:1:win7卸载安全补丁:KB3072630 WIN10,忽略.2:关闭所有Solidworks的进程3:CMD命令行进入:cd c:\program files\solidwokrs co ...

  6. Redis6.x学习笔记(一)

    前言 最近学习Redis6.x,特做笔记以备忘,与大家共学.课程是从私塾在线下载的,他们把架构师课程都放出来了,大家可以去下载学习,不要钱的,地址是http://t.hk.uy/eac,课程很不错,值 ...

  7. 【Azure Developer】使用Microsoft Graph API 批量创建用户,先后遇见的三个错误及解决办法

    问题描述 在先前的一篇博文中,介绍了如何使用Microsoft Graph API来创建Azure AD用户(博文参考:[Azure Developer]使用Microsoft Graph API 如 ...

  8. 【BUAA软工】Beta阶段测试报告

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:Beta阶段测试报告 测试报告 发现的bug Beta阶段的bug [已解决]CPP项目无法进行调试 [已解决] 注册界面注册后不能够自 ...

  9. oo——第三单元总结

    前言 第三单元是我们学习oo以来第一次接触JML.这一单元的三次作业和以前一样,采用了难度递进的方式,而且前一次作业的设计思路在下一次作业都多多少少有些体现(或者说是在其基础上做出的改进).而且本单元 ...

  10. [时间模块、random模块]

    [时间模块.random模块] time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏 ...