NX二次开发 BlockUI 选择 06、体收集器

文章详细介绍了NX二次开发中BlockUI控件的配置,包括体收集器设置、控件的启用与禁用、可见性控制以及各种选择模式的设定。此外,还涉及到交互式特性如动态提示、部件间选择和对象颜色设定等,为定制用户界面提供了技术参考。
摘要由CSDN通过智能技术生成

NX二次开发 BlockUI 选择 06、体收集器
06、体收集器

常规
BlockID 控件id
Enable 是否可选/禁用控件
Group 组
Show 是否可见

其它
附着
Bottom 底
Left 左
Right 右
Top 顶

特定于块
AutomaticProgression 选择后焦点是否自动跳到下一个控件
BalloonTooltipImage 动态提示图片(鼠标移动到控件是显示图片)
BalloonTooltipLayout 动态提示布局
BalloonTooltipText 动态提示文本内容
Bitmap 指定图片
BlendVirtualCurveOverlay 是否显示虚拟交线
CreateInterpartLink 是否显示部件间连接图标在选择条上
Cue 提示

InterpartSelection 部件间选择设置
Simple 简单
Non-associative Interpart Copy Only 只复制部件间非关联
Associative and Non-associative Interpart Copy 复制部件间关联和非关联
Associative Interpart Copy 复制部件间关联

LabelString 标签标题

SelectMode 设置单选/多选
Single 单选
Multiple 多选

StepStatus 设置确定和应用按钮什么时候高亮(Required 必需的时候)(Optional 可选的时候)(Satisfied 满意/满足的时候)
Tooltip 动态提示文本标题(Bitmap指定图片时,鼠标移动到图片时提示文字)

选择意图
BodyRules 体类型
DefaultBodyRules 默认体规则
EntityType 实体类型
IncludeSheetBodies 包括片体
PopupMenuEnabled 是否启用右键弹出菜单

——————————————————————————————————————————
/单选多选/
bodySelect0->GetProperties()->SetEnumAsString(“SelectMode”, “Single”);
——————————————————————————————————————————
/获得选择的对象/
std::vector<TaggedObject*>objects = this->bodySelect0->GetProperties()->GetTaggedObjectVector(“SelectedObjects”);
for (int i = 0; i < (int)objects.size(); i++)
{
UF_OBJ_set_color(objects[i]->Tag(), 1);
}

————————————————————————————————————————————
/对象加入到选择控件的对象列表/
tag_t body_tag = NULL_TAG;
Body body1(dynamic_cast<Body >(NXObjectManager::Get(body_tag)));
std::vector<TaggedObject
>objects;
objects.push_back(body1);
bodySelect0->GetProperties()->SetTaggedObjectVector(“SelectedObjects”, objects);
————————————————————————————————————————————
/清除 对象/
std::vector<TaggedObject
>objects;
objects.clear();
bodySelect0->GetProperties()->SetTaggedObjectVector(“SelectedObjects”, objects);

双向搜索算法是一种从起点和终点同时进行搜索的算法,可以有效地减少搜索的时间和空间复杂度。在MATLAB中,可以使用双向搜索算法来解决一些图论问题,如最短路径问题等。 双向搜索算法的基本思路是从起点和终点同时开始搜索,每次从两个方向中选择一个距离当前节点最近的节点进行扩展,直到两个搜索方向相遇。在搜索过程中,需要记录每个节点的前驱节点和到起点/终点的距离,以便在搜索结束后回溯出最短路径。 以下是一个简单的MATLAB实现示例: ```matlab function [path, dist] = bidirectional_search(graph, start, goal) % graph: 图的邻接矩阵 % start: 起点 % goal: 终点 n = size(graph, 1); % 节点数 visited1 = false(n,1); % 起点方向已访问的节点 visited2 = false(n, 1); % 终点方向已访问的节点 pred1 = zeros(n, 1); % 起点方向每个节点的前驱节点 pred2 = zeros(n, 1); % 终点方向每个节点的前驱节点 dist1 = inf(n, 1); % 起点方向每个节点到起点的距离 dist2 = inf(n, 1); % 终点方向每个节点到终点的距离 queue1 = start; % 起点方向的队列 queue2 = goal; % 终点方向的队列 visited1(start) = true; visited2(goal) = true; dist1(start) = 0; dist2(goal) = 0; while ~isempty(queue1) && ~isempty(queue2) % 从起点方向扩展节点 curr1 = queue1(1); queue1(1) = []; for i = 1:n if graph(curr1, i) > 0 && ~visited1(i) visited1(i) = true; pred1(i) = curr1; dist1(i) = dist1(curr1) + graph(curr1, i); queue1(end+1) = i; if visited2(i) % 相遇,回溯路径 path = backtrack_path(pred1, pred2, i); dist = dist1(i) + dist2(i); return; end end end % 从终点方向扩展节点 curr2 = queue2(1); queue2(1) = []; for i = 1:n if graph(i, curr2) > 0 && ~visited2(i) visited2(i) = true; pred2(i) = curr2; dist2(i) = dist2(curr2) + graph(i, curr2); queue2(end+1) = i; if visited1(i) % 相遇,回溯路径 path = backtrack_path(pred1, pred2, i); dist = dist1(i) + dist2(i); return; end end end end % 没有找到路径 path = []; dist = inf; function path = backtrack_path(pred1, pred2, i) % 回溯路径 path = [i]; while pred1(i) > 0 i = pred1(i); path = [i, path]; end i = pred2(path(end)); while i > 0 path = [path, i]; i = pred2(i); end end end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梅雷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值