Rhino(犀牛)中国技术支持与推广中心

标题: 关于利用BrepClosestPoint找到多重曲面最近点所在面的讨论 [打印本页]

作者: GMF    时间: 2015-1-28 18:11
标题: 关于利用BrepClosestPoint找到多重曲面最近点所在面的讨论
利用BrepClosestPoint命令的主要目的是,想高效率地来找到多重曲面上分布点对应的单个曲面(3);但是当点处于多重曲面边缘处时,其返回值为边(2);这个情况和函数描述的用法倒基本是吻合的,在边(属一个面)的时候返回边的值。
所以想请教下各位,如果我想在这种情况下也得到所在面的值,有什么比较好的办法?
谢谢



TEST.zip (13.61 KB, 下载次数: 69)



作者: 筑梦NARUTO    时间: 2015-1-28 18:55
可以根据上面的uv来判断类型吧
作者: Jorin    时间: 2015-1-28 21:43
本帖最后由 Jorin 于 2015-1-28 21:46 编辑

楼主理解的有点误区,当得到的最近点在 BREP 边缘上的时候,得到该边缘的序号并不是该边缘在所在 BREP 面上的序号,而是在整个 Brep 物件上所有边缘中的序号。

这个需要用 RhinoCommon 中的方法来解决,这里仅提供一个最简单的例子,没有考虑更多情况,其他情况请参考下面的做法。如图所示:



[mw_shl_code=python,true]clo=brep.ClosestPoint(point, 0.0)
type=int(clo[2].ComponentIndexType)
if type==3:
    i=clo[2].Index
    faceIndex=i
if type==2:
    i=clo[2].Index
    faceIndex=brep.Edges.AdjacentFaces()
index=faceIndex[/mw_shl_code]

作者: GMF    时间: 2015-1-29 09:24
Jorin 发表于 2015-1-28 21:43
楼主理解的有点误区,当得到的最近点在 BREP 边缘上的时候,得到该边缘的序号并不是该边缘在所在 BREP 面上 ...

非常感谢J大。




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2