freecad2 交面的一些操作

1. 基本几何信息

shape.Volume         # 交集体积
shape.Area           # 总表面积
shape.Length         # 总边长(线长度)
shape.BoundBox       # 边界盒(min/max的坐标范围)
shape.CenterOfMass   # 质心坐标
shape.BoundBox.XMin  # 具体边界坐标

2. 拓扑信息

你可以按结构遍历交集中的各个元素:

shape.Faces          # 获取所有面 (list of TopoShapeFace)
shape.Edges          # 获取所有边 (list of TopoShapeEdge)
shape.Vertexes       # 获取所有顶点 (list of TopoShapeVertex)

示例:输出每个面面积

for i, face in enumerate(shape.Faces):
    print(f"Face {i+1} area: {face.Area}")

3. 获取交线(交集中的边)

交线就是交集物体中的 边(Edges),可以遍历查看坐标信息:

for i, edge in enumerate(shape.Edges):
    print(f"Edge {i+1}: Length = {edge.Length}")
    pts = edge.discretize(5)  # 将曲线离散为点
    for p in pts:
        print(f"  Point: {p}")

4. 拓扑结构类型

你还可以检查每个子形状的类型,例如面是平面还是圆面等:

for face in shape.Faces:
    surf = face.Surface
    print(f"Surface type: {type(surf)}")

5. 判断交集是否为空

判断是否真的有交集(避免空交情况):

if shape.Volume == 0:
    print("⚠️ 没有实际交集")

6. 导出相交结果

你可以把交集导出为 .STEP.BREP 文件:

Part.export([common], "/your/path/intersection.step")

 

posted @ 2025-04-24 15:29  驼七  阅读(23)  评论(0)    收藏  举报