GHPython中rs.CurveDiscontinuity函数结果数据缺失

同样的过程,在Python中复现的过程中,用到rs.CurveDiscontinuity这个命令的时候,结果值相比用电池组接出来的要少了一个。曲线是闭合曲线,两个连续性都选的是C1。

import rhinoscriptsyntax as rs

s_border_list=[]
p_discon_list=[]

for i in range(len(surface)):
#    s_border=rs.DuplicateSurfaceBorder(surface[i])
    s_edge=rs.DuplicateEdgeCurves(surface[1])
    s_border=rs.CloseCurve(rs.JoinCurves(s_edge))
    ss=rs.IsCurveClosed(s_border)
    p_discon=rs.CurveDiscontinuity(s_border,2)   
    s_border_list.append(s_border)
    p_discon_list.append(p_discon)

test.3dm (131.7 KB)
test-gh.gh (7.2 KB)

通过代码调用PointGroups的方法得到的数据结构没有进行分组,希望得到的结果是像在grasshopper中调用电池那样分好组的。


test.3dm (136.5 KB)
test-gh.gh (12.9 KB)

如果曲线的封闭的,要做一个判断,判断起点或者终点的位置是不是不连续的。这个需要再判断一次。GH 里的电池也做了相应的判断。

用下面这个直接把嵌套的列表转成 tree 就可以了。

from ghpythonlib import treehelpers
# 
treehelpers.list_to_tree(嵌套的列表)

噢!谢谢! :+1: :+1: :+1:

想问一下,在ghpython里调用PointGroups,得到的数据结构不像grasshopper里面一样有嵌套关系,论坛上说用“treehelps.list_to_list(嵌套的列表)”转换成tree。但因为他本身就没有嵌套关系所以不起作用,还看到英文论坛上16年有人回答,但现在不起作用了

感谢群里群友的回答
image

1 个赞