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

标题: 分享个脚本 [打印本页]

作者: kietsuc    时间: 2015-7-9 03:49
标题: 分享个脚本
各位大神好:
       发个按照最短距离给曲线编号的小脚本,由于写代码我都是自学的,所以难免会有很多常识性的错误,希望各位大神不要笑我哦,请多多指教



#coding=utf-8
import rhinoscriptsyntax as rs

def panduan(curve, lines,i):
    if len(lines) == 0:
        return
    else:
        ds = rs.CurveClosestObject(curve, lines)
        poi = rs.CurveStartPoint(ds[0])
        rs.AddTextDot(i,poi)
        lines.remove(ds[0])
        panduan(curve,lines,i+1)

if( __name__ == "__main__" ):
    poi = rs.GetPoint("拾取一个点")
    rs.AddPoint(poi)
    lines = rs.GetObjects("选取要编号的曲线",rs.filter.curve)
    curve = rs.AddCircle(poi,0.01)
    panduan(curve,lines,0)
    rs.DeleteObject(curve)


U8$7UU25GH74%8QESD`P`Q3.png (23.47 KB, 下载次数: 13)

U8$7UU25GH74%8QESD`P`Q3.png

(YN7$R(`B{]3_@483`{~VY7.png (23.18 KB, 下载次数: 31)

(YN7$R(`B{]3_@483`{~VY7.png

作者: Jorin    时间: 2015-7-9 19:37
不错的递归
作者: kietsuc    时间: 2015-7-10 12:10
Jorin 发表于 2015-7-9 19:37
不错的递归

拔了好多头发才想出来的,jorin大神
作者: Jorin    时间: 2015-7-16 15:33
kietsuc 发表于 2015-7-10 12:10
拔了好多头发才想出来的,jorin大神

不需要画个圆然后删掉的,有个函数是 rs.PointClosestObject,可以删掉好几行。
作者: kietsuc    时间: 2015-7-17 01:12
Jorin 发表于 2015-7-16 15:33
不需要画个圆然后删掉的,有个函数是 rs.PointClosestObject,可以删掉好几行。

对哦,换个函数至少能删掉三行




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