基于OCC,将IGES模型文件转换为STL,进而在VTK中显示。网上别的一般都是错的。

网上方法基本全是错的,模型读进去就直接用VTK显示了,那不扯淡吗,一堆样条线面方程数据,就能直接变成polydata了????纯粹的胡说八道,还互相抄来抄去,只要百度就铺天盖地全是一样的垃圾。
IGES模型是连续的样条线面集合,而VTK应该是只能显示离散的点线面的集合,同样STL文件也是点和拓扑组成的离散化模型,所以想要转格式,必须要进行离散化,也就是网格化。

std::string inputFilename = filename.toStdString();
    IGESControl_Reader reader;
    reader.ReadFile(inputFilename.c_str());
    reader.TransferRoots();
    TopoDS_Shape Shape = reader.OneShape();
    const Standard_Real deflection = 0.1;
    BRepMesh_IncrementalMesh(Shape,deflection,Standard_True);
    StlAPI_Writer writer;
    writer.Write(Shape,"temp.stl");

deflection这个参数是精度,可能需要自己调整,这个我也还没弄明白,反正这样就好使。
得到STL模型文件,后续VTK显示STL模型就比较简单,就不说了。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
occ(Open Cascade Technology)是一个强大的计算机辅助设计(CAD)开发工具包(SDK),具有读取和处理各种CAD文件格式的能力。它支持IGES(Initial Graphics Exchange Specification)文件的读取。 IGES是一种立的CAD数据交换格式,用于在不同的CAD软件之间共享和转换CAD模型IGES文件保存了几何、拓扑和其他相关信息,以便在不同的CAD系统之间进行传输和处理。 利用occ,我们可以使用其提供的IGES存取功能来读取IGES文件。使用occ读取IGES文件的步骤如下: 1. 创建一个IGES读取器对象:使用occIGESControl_Reader类创建一个IGES读取器对象。 2. 打开IGES文件:使用读取器对象的ReadFile()方法打开指定的IGES文件。 3. 检查读取状态:使用IGES读取器对象的TransferStatus()方法来检查文件的读取状态。如果读取成功,状态将返回为True,否则为False。 4. 获取读取结果:如果读取成功,可以使用IGES读取器对象的NbShapes()方法获取读取的形状数量。然后,可以使用IGES读取器对象的LoadedShapes()方法获取读取的形状列表。 5. 处理读取的形状:可以使用occ提供的各种几何和拓扑算法对读取的形状进行进一步处理和操作。 通过以上步骤,我们可以使用occ读取IGES文件并获取其的几何和拓扑信息。除了IGESocc还支持其他许多CAD格式,如STEP、STL、BREP等。这些功能使occ成为一个广泛应用于CAD领域的开发工具包。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值