今天想完成项目保存建模结果的功能,但是在把所有的数据导出到外部文件保存成为".sta"格式的文件后再次打开该数据文件时发现数据框架里完整地恢复了保存之前的所有数据,而且调用函数把模型显示出来时点和网格,边等等这些由点或者线形成的实体都能正确地显示,但是面或者正方体,长方体这些需要填充的实体却只有边框而不能恢复到保存前模型的状态,一开始以为是视图的显示边框或者模型的模式设置问题,可是点击OCC应用程序框架里的视图菜单转换成模型模式也完全没有变化;
于是又想到了实体的材料问题,会不会是导出文件后没有保存到实体的材料的数据,可是改了材料还是完全没有变化,而仔细观察显示出来的边框把鼠标移动到面得中心时,边框却能准确地被选中,于是鬼使神差地遍历每一个面获得面的显示属性:
Handle(TPrsStd_AISPresentation) prs;
if (!L.FindAttribute(TPrsStd_AISPresentation::GetID(),prs))
prs = TPrsStd_AISPresentation::Set(L,TNaming_NamedShape::GetID());
然后设置每一个面得显示模式:
/*设置面得显示模式为实体的而不是边框的*/
prs->SetMode(1);
最后问题终于解决了,但就不知道为什么导出了外部文件后显示模式会改变,原因不得而知。