【NX二次开发】Block UI 选择对象
属性说明
| 属性 | 类型 | 描述 |
| 常规 | ||
| 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 选择对象的更多相关文章
- NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用
关于 在Block UI中UF_initialize();和UF_terminate();的使用 用Block UI作NX二次开发的时候,不需要在使用UFUN函数的时候加UF_initialize() ...
- NX二次开发-Block UI C++界面Enumeration(枚举)控件的获取(持续补充)
NX9+VS2012 public: void SetBlockUIShow(); void EnumInt::SetBlockUIShow() { //获取枚举控件 PropertyList* En ...
- NX二次开发-Block UI C++界面Toggle(开关)控件的获取(持续补充)
NX9+VS2012 public: void SetBlockUIShow(); void ToggleInt::SetBlockUIShow() { //获取开关控件 //获取枚举控件 Prope ...
- NX二次开发-Block UI C++界面Specify Point(指定点)控件的获取(持续补充)
Specify Point(指定点)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); / ...
- NX二次开发-Block UI C++界面Face Collector(面收集器)控件的获取(持续补充 )
Face Collector(面收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize() ...
- NX二次开发-Block UI C++界面Object Color Picker(对象颜色拾取器)控件的获取(持续补充)
Object Color Picker(对象颜色拾取器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_init ...
- NX二次开发-Block UI C++界面(表达式)控件的获取(持续补充)
Expression(表达式)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); // ...
- NX二次开发-Block UI C++界面Body Collector(体收集器)控件的获取(持续补充)
Body Collector(体收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize() ...
- 【NX二次开发】Block UI 目录
Block UI 目录 基本 标签/位图 切换开关 枚举 字符串 多行字符串 操作按钮 列表框 分割线 对象颜色选择器 RGB颜色选择器 绘图区 图层 ...
- 【NX二次开发】Block UI 选项卡控件
[NX二次开发]Block UI 选项卡控件
随机推荐
- .NET Core with 微服务 - 什么是微服务
微服务是这几年最流行的架构,说起架构不提微服务都不好意思跟人家打招呼.最近想要再梳理一下关于微服务的知识,并且结合本人的一些实践经验来做一些总结与分享.前面会分享一些概念性的东西,后面也会使用.net ...
- thymeleaf中[[${}]]与[(${})]的区别
[[-]]会被转义,[(-)]不会. 假设在后台传入msg的值为 <b>AAA</b> 在前台这样使用 [[${msg}]]___[(${msg})] 展示效果 官方参考文档
- Mac使用brew搭建LNMP
一. brew常用命令 安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/in ...
- 更好的滚动体验>better-scroll
认识better-scroll better-scroll是一款重点用于解决移动端(已支持PC)各种滚动场景需求的插件,可使页面滚动效果更加流畅且富有弹性 better-scroll是用纯JavaSc ...
- RabbitMQ一些实用方法
https://blog.csdn.net/vbirdbest/article/details/78670550
- Docker 部署阿里云RocketMQ 4.5.1
搜索镜像 docker search rocketmq 查看镜像版本 如果要查看其它的镜像,只需要将其中的镜像名称foxiswho/rocketmq替换为其它镜像即可 curl https://reg ...
- 如何实现一个简易版的 Spring - 如何实现 AOP(上)
前言 本文是「如何实现一个简易版的 Spring 系列」的第五篇,在之前介绍了 Spring 中的核心技术之一 IoC,从这篇开始我们再来看看 Spring 的另一个重要的技术--AOP.用过 Spr ...
- Unix下 压缩和解压缩命令
范例: .tar 解包:tar -xvf FileName.tar 打包:tar -cvf FileName.tar DirName (注:tar是打包,不是压缩!) ---------------- ...
- 【例 3】 修改 bols 文件的 atime 和 mtime。 [root@localhost ~]# touch -d "2017-05-04 15:44" bols
Linux touch命令:创建文件及修改文件时间戳 < Linux删除空目录(rmdir命令)Linux在文件之间建立软/硬链接(ln命令) > <Linux就该这么学>是一 ...
- mysql基础之mariadb galera集群(多主)
一.概念 galera集群多用于关键性业务,因为galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性. galera集群是基于wsrep协议(端口4 ...