C# OCCT Winform 选中模型改变状态

选中状态设置

  _context  = new AIS_InteractiveContext(_viewer);

  var selectionDrawer = new Prs3d_Drawer();
  selectionDrawer.SetColor(Colors.Selection);
  selectionDrawer.SetDisplayMode(1);
  selectionDrawer.SetTransparency(0.1f);

  _context.SetSelectionStyle(selectionDrawer);
  _context.SetHighlightStyle(Prs3d_TypeOfHighlight.Selected, selectionDrawer);
  _context.SetHighlightStyle(Prs3d_TypeOfHighlight.LocalSelected, selectionDrawer);
  _context.SetHighlightStyle(Prs3d_TypeOfHighlight.SubIntensity, selectionDrawer);

  var hilightLocalDrawer = new Prs3d_Drawer();
  hilightLocalDrawer.SetColor(Colors.Highlight);
  hilightLocalDrawer.SetDisplayMode(1);

  _context.SetHighlightStyle(Prs3d_TypeOfHighlight.LocalDynamic, hilightLocalDrawer);

其中,selectionDrawer 是设置鼠标点击选中颜色和样式,hilightLocalDrawer 是设置鼠标移动选中的颜色样式。

选择选中类型

在添加模型后使用 _context 的 Activate()函数才有作用

向场景添加 一个立方体 和 球 模型,在Display后进行选择模式设置,这样对立方体进行Face 选择,对球进行Wire 选择。还可以在所有模型添加完后整体设置

   _context.Activate(AIS_Shape.SelectionMode(TopAbs_ShapeEnum.WIRE));

这样在之前添加的模型都会设置为选中Wire。

 // 立方体
 var box = new BRepPrimAPI_MakeBox(100.0, 100.0, 100.0).Shape();
 var aisShape = new AIS_Shape(box);

 //_context.Display(aisShape, true); // 线框
 _context.Display(aisShape, 1, 2, true,true, PrsMgr_DisplayStatus.AIS_DS_Displayed); // 实体
 _context.Activate(aisShape, AIS_Shape.SelectionMode(TopAbs_ShapeEnum.FACE));
 
 // 球
 var sphere = new BRepPrimAPI_MakeSphere(new Pnt(100,100,150),30).Shape();
 var aissphere = new AIS_Shape(sphere);

 //_context.Display(aissphere, true); // 线框
 _context.Display(aissphere,1, 3, true, true, PrsMgr_DisplayStatus.AIS_DS_Displayed); // 实体                                                                 
 _context.Activate(aissphere, AIS_Shape.SelectionMode(TopAbs_ShapeEnum.WIRE));

 // 调整视图
 _view.FitAll();
 _view.MustBeResized();
 _view.Redraw();

1.Shape

  _context.Activate(AIS_Shape.SelectionMode(TopAbs_ShapeEnum.SHAPE));

2.Face

   _context.Activate(AIS_Shape.SelectionMode(TopAbs_ShapeEnum.FACE));

3.Wire

    _context.Activate(AIS_Shape.SelectionMode(TopAbs_ShapeEnum.WIRE));

4.Edge

  _context.Activate(AIS_Shape.SelectionMode(TopAbs_ShapeEnum.EDGE));

5.Vertex

  _context.Activate(AIS_Shape.SelectionMode(TopAbs_ShapeEnum.VERTEX));

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值