首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在pythonocc中访问边缘维度?

如何在pythonocc中访问边缘维度?
EN

Stack Overflow用户
提问于 2020-11-25 19:58:15
回答 1查看 210关注 0票数 0

我正在尝试使用PythonOCC读取IGES或STEP格式的线框数据(请参阅this link),以便最终用于构建FE梁单元模型。

在PythonOCC的什么地方,我可以实际提取有关边和曲线的属性?我已经构建了这个示例,它打印出文件中的所有顶点:

代码语言:javascript
运行
复制
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()

也就是说,我真正想知道的是,一条曲线是否是一条直线,而不是一条圆弧,如果是一条圆弧,它的中心点和半径是多少。

EN

回答 1

Stack Overflow用户

发布于 2021-11-18 14:46:22

我正在尝试做一些类似的事情。如果这可能有用,我将使用以下代码片段来获取Curve的类型,然后提取顶点:

代码语言:javascript
运行
复制
    # given and Edge edge
    curv = BRepAdaptor_Curve(edge).Curve()
    a = 0.0
    b = 0.0
    [curve_handle, a, b] = OCC.BRep.BRep_Tool.Curve(edge)
    print(curve_handle.GetObject().DynamicType().GetObject().Name())
    initial_point = OCC.gp.gp_Pnt()
    final_point = OCC.gp.gp_Pnt()
    
    curve_handle.GetObject().D0(a, initial_point)
    curve_handle.GetObject().D0(b, final_point)
    
    print(f'init: ({initial_point.X()}, {initial_point.Y()}), end ({final_point.X()}, {final_point.Y()})')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65004266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档