pythonocc 如何把TopoDS_Edge转换成Geom_Curve

在网上查了很久没有查到相关资料,所以本人来记录下如何做的。先附代码。

from OCC.Core.BRep import BRep_Tool

aPnt1 = gp_Pnt(1, 1, 1)
aPnt2 = gp_Pnt(1, 2, 1)

aEdge1 = BRepBuilderAPI_MakeEdge(aPnt1, aPnt2).Edge()

aCurve = BRep_Tool.Curve(aEdge1 )[0]

以上。

需要注意的是,BRep_Tool.Curve(aEdge1 )返回的是一个元组,第一个元素是Geom_Curve,第二个元素和第三个元素是这条曲线的起始点和终止点。

附一个如何把TopoDS_Face转换成Geom_Surface的代码,网上有,来自网上看到的。

from OCC.Core.gp import gp_Pnt, gp_Pln, gp_Dir
from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakePolygon, BRepBuilderAPI_MakeFace
from OCC.Core.BRep import BRep_Tool

p0 = gp_Pnt()
vnorm = gp_Dir(0, 1, 0)
aPlane = gp_Pln(p0, vnorm)
x0 = -2
x1 = 2
x2 = 1
x3 = -1
z0 = 1
z1 = 2
aP1 = gp_Pnt(x0, 0.0, z0)
aP2 = gp_Pnt(x1, 0.0, z0)
aP3 = gp_Pnt(x2, 0.0, z1)
aP4 = gp_Pnt(x3, 0.0, z1)
aPolygon = BRepBuilderAPI_MakePolygon(aP1, aP2, aP3, aP4, True)
print("type polygon: ", aPolygon)
aTrapeZoid = BRepBuilderAPI_MakeFace(aPlane, aPolygon.Wire()).Shape()
print("type aTrapeZoid: ", aTrapeZoid)
test = BRep_Tool.Surface(aTrapeZoid)
print("type test: ", test)

最后,在写代码的时候遇到for i in range(1, 1),提醒一下,这个循环是不会进入的,一定要for i in range(1, 2)。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值