CATIA V6二次开发——多层结构树遍历之指哪打哪


摘要:本文提供方法可用于多层结构树遍历,将结构树遍历和人机交互相结合,达到指哪打哪的效果。
(PS:感谢 隔壁老曹的指导)

话不多说,先上效果:

人机交互遍历结构树演示

在这里插入图片描述
当用户选择树上某个零件时,即可拿到当前VPMOccurrence,然后就是熟悉的配方、熟悉的套路,从此节点开始向下遍历,为了验证程序完成了当前节点的遍历,点击OK按钮后将弹窗显示该零件下名为666的几何图形集名称。

实现方法

1.利用Selection选择零件读取当前VPMOccurrence
Selection sel = ActiveEditor.Selection;

sel.Clear();

Array filter = Array.CreateInstance(typeof(object), 1);
filter.SetValue("VPMOccurrence", 0);

string status = sel.SelectElement(filter, "选择对象", false);

if (status == "Cancel" || status == "Undo")
{
  // do nothing
  sel.Clear();
}
else if (status == "Redo")
{
  // do nothing
  sel.Clear();
}
else
{
  // do something
  mainWinVM.VpmOcc = sel.Item(1).Value as VPMOccurrence;
  sel.Clear();
}
2.从当前VPMOccurrence向下遍历拿到零件内部元素
VPMReference vPMRefOnRoot = VpmOcc.InstanceOccurrenceOf.ReferenceInstanceOf;

var vpmInstsL1 = vPMRefOnRoot.RepInstances; //根节点子级 3DShape集合

VPMRepInstance vpmInstL1 = vpmInstsL1.Item(1) as VPMRepInstance;//获取第一个3DShape

var vpmRefInstL1 = vpmInstL1.ReferenceInstanceOf;//获取第一个3DShape参考

Part activePart = vpmRefInstL1.GetItem("Part") as Part;//获取到当前零件

HybridBody firstHB = activePart.HybridBodies.Item(1);

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值