我正在尝试使用 PythonOCC 读取 IGES 或 STEP 格式的线框数据(请参阅此链接),以最终用于构建 FE 梁单元模型。
在 PythonOCC 中,我实际上可以在哪里提取有关边缘和曲线的属性?我已经构建了这个示例,可以打印出文件中的所有顶点:
from OCC.Extend.DataExchange import read_iges_file
from OCC.Core.TopExp import (TopExp_Explorer,
topexp_MapShapesAndAncestors,
topexp_FirstVertex,
topexp_LastVertex)
from OCC.Core.TopAbs import *
from OCC.Core.TopoDS import TopoDS_Shape, topods
from OCC.Core.BRep import BRep_Tool, BRep_Tool_Pnt, BRep_Tool_IsGeometric, BRep_Tool_Parameter, BRep_Tool_Curve
from OCC.Core.BRepAdaptor import BRepAdaptor_Curve
from OCC.Core.GeomTools import GeomTools_CurveSet
shape = read_iges_file('tubes.iges')
topExp = TopExp_Explorer()
topExp.Init(shape, TopAbs_EDGE)
def print_vertex(va):
print(BRep_Tool().Pnt(va).Coord(1), BRep_Tool().Pnt(va).Coord(2), BRep_Tool().Pnt(va).Coord(3))
while topExp.More():
edge = topExp.Current()
first, last = topexp_FirstVertex(edge), topexp_LastVertex(edge)
curv = BRepAdaptor_Curve(edge).Curve()
print_vertex(first)
print_vertex(last)
topExp.Next()
print()
也就是说,我真正想知道曲线是直线还是弧,如果是弧,中心点和半径是多少。