Python如何排序曲面


这个排序多重曲面用代码怎么写?有例子吗?

以后发帖可以把GH文件直接上传到论坛,没必要单独给我。

说说你的代码问题,希望对你有帮助:
1:写代码的时候,没必要按GH的数据运行逻辑写,不然有时候代码会臃肿很多。(比如你这个案例,根本就用不着树形数据)
2:不需要导入的模块就不要导入了,影响效率。
3:能在一个for循环里解决的问题,就不要放到几个for循环里来回求解了。

#没必要导入的模块就不要导入了

sort_Brep = []
"""
我看你的意思应该是用曲面去排序多重曲面
"""
for Srf in S_Srf:
    #这里没必要去用循环,因为曲面就一个face,直接取第一个数据就行
    face = Srf.Faces[0]
    srf_Pt = face.PointAt(face.Domain(0).Mid, face.Domain(1).Mid)
    
    #直接求最近点去排序
    index = 0 #每个点最近的序号
    distance = int.MaxValue
    for i in xrange(len(Brep)):
        closest_pt = Brep[i].ClosestPoint(srf_Pt)
        closest_dist = closest_pt.DistanceTo(srf_Pt)
        #查找最小值
        if(closest_dist < distance):
            distance = closest_dist
            index = i
    sort_Brep.append(Brep[index])


代码排序求解答.rar (80.7 KB)

2 个赞