尝试使用类BRepLProp_CLProps

问题描述

我有一个“圆柱面”,它以一定角度与“圆锥面”相交,从而产生TopoDS_Edge;如下图所示。生成的边缘被涂成白色。对于此操作,我使用了“ BRepAlgoAPI_Section()”类。

enter image description here

此后,我成功使用GCPnts_UniformAbscissa()找出了该边缘上等距的点,如下图所示:

enter image description here

现在,我想在这些点的每一个上找到法线向量,但是我遇到了错误,因此我使用以下代码

hatch_curve = BRepAdaptor_Curve(TopoDS_Edge)
properties = BRepLProp_CLProps( hatch_curve,BRepLProp_Curvetool.FirstParameter(hatch_curve),3,0.005)

我对最后一个参数'Resolution'有点困惑,但它的值为0.005

normal = gp_Dir()
properties.normal(normal)

运行上述功能时,出现以下错误

LProp_CLProps::normal(...):Curvature is null or infinity
wrapper details:

symname: BRepLProp_CLProps_normal
wrapname: _wrap_BRepLProp_CLProps_normal 
fulldecl: void BRepLProp_CLProps::normal(gp_Dir &)

因此,我使用以下方法检查了曲率:

properties.Curvature()

曲率是0.0

所以我对于如何找到该共同边缘的法线感到困惑?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)