假设有一个TopoDS_Face,记为aFace
fbp = ShapeAnalysis_FreeBoundsProperties(aFace, True, True)
fbp.Perform() # 分析闭合曲线
close_nb = fbp.NbClosedFreeBounds() # 闭合曲线的数目
# print("close_nb: ", close_nb)
polygon_container = []
for i in range(close_nb):
# polygon_container.append(fbp.ClosedFreeBound(i + 1)) # 这里放进去的是 ShapeAnalysis_FreeBoundData 的句柄
polygon_container.append(fbp.ClosedFreeBound(i + 1).FreeBound()) # 放进去的是TopoDS_Wire类型的闭合曲线(contour)
注释:
1. ShapeAnalysis_FreeBoundsProperties的ClosedFreeBound方法返回的是ShapeAnalysis_FreeBoundData 的句柄
2. ShapeAnalysis_FreeBoundData 类的FreeBound方法返回的是TopoDS_Wire类型的闭合曲线(contour)