OpenCasCade打开sta文件造成面或实体只显示边框的解决办法

今天想完成项目保存建模结果的功能,但是在把所有的数据导出到外部文件保存成为".sta"格式的文件后再次打开该数据文件时发现数据框架里完整地恢复了保存之前的所有数据,而且调用函数把模型显示出来时点和网格,边等等这些由点或者线形成的实体都能正确地显示,但是面或者正方体,长方体这些需要填充的实体却只有边框而不能恢复到保存前模型的状态,一开始以为是视图的显示边框或者模型的模式设置问题,可是点击OCC应用程序框架里的视图菜单转换成模型模式也完全没有变化;


于是又想到了实体的材料问题,会不会是导出文件后没有保存到实体的材料的数据,可是改了材料还是完全没有变化,而仔细观察显示出来的边框把鼠标移动到面得中心时,边框却能准确地被选中,于是鬼使神差地遍历每一个面获得面的显示属性:

Handle(TPrsStd_AISPresentation) prs;
if (!L.FindAttribute(TPrsStd_AISPresentation::GetID(),prs))
prs = TPrsStd_AISPresentation::Set(L,TNaming_NamedShape::GetID());


然后设置每一个面得显示模式:

          /*设置面得显示模式为实体的而不是边框的*/
       prs->SetMode(1);


最后问题终于解决了,但就不知道为什么导出了外部文件后显示模式会改变,原因不得而知。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值