因为工作原因需要使用OCC库解析模型文件,分享下过程中遇到的知识点。
但是python OCC的资料比较少,所以一般只能参考下官方或者其他人的案例,然后浏览一些相关书籍。关于里面的API其实都可以查找OCC的C++网站查找,懂C++的很好看懂,不懂的也不会说特别难看懂,下面是API网站
OCC C++ API
好,直接进入正题,在上面那个网站搜索brep,stl,step都可以查找到对应的api。读取step的代码如下,执行函数后回直接返回一个TopoDS_Shape类型
def read_STEP_file(filename):
""" read the STEP file and returns a compound
"""
# 生成一个step模型类
reader = STEPControl_Reader()
# 加载一个文件并且返回一个状态枚举值
status = reader.ReadFile(filename)
# 如果正常执行且有模型
if status == IFSelect_RetDone: # check status
failsonly = False
# 如果存在无效或者不完整步骤实体,会显示错误信息
reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)
reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)