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

标题: python取点问题更新 [打印本页]

作者: 沉默的乌鸦    时间: 2014-3-30 02:41
标题: python取点问题更新
本帖最后由 沉默的乌鸦 于 2014-3-30 20:43 编辑

原帖地址http://bbs.rhino3d.asia/forum.php?mod=viewthread&tid=23883&page=1&extra=#pid289959更新算法解释图片

取点算法疑问2.jpg (513.3 KB, 下载次数: 26)

取点算法疑问2.jpg

11.png (104.59 KB, 下载次数: 23)

11.png

python取点.rar

47.12 KB, 下载次数: 178


作者: Jorin    时间: 2014-3-30 12:14
类型异常,你A端输出的变量处理本身就是错误的。
作者: 沉默的乌鸦    时间: 2014-3-30 17:10
Jorin 发表于 2014-3-30 12:14
类型异常,你A端输出的变量处理本身就是错误的。

谢谢Jorin, 我是只小白,因为设计时间紧,又刚好必须用到代码,所以只看了一天rhinopython101就硬着头皮上了,各种低级错误。我不太理解你说的
类型异常,你A端输出的变量处理本身就是错误的。

A端输出点集不是list类型的数据吗?能帮我改一下吗?这个不到10行的代码已经快把我折腾死了,谢谢!

python取点.rar

47.12 KB, 下载次数: 182


作者: Jorin    时间: 2014-3-30 23:24
原来的代码错误比较多,很难看出每行代码的意图,我重写了其中一个,楼主可以参考下。

不过输入列表数据时,一定要记得在输入端点击右键,选择List Access


作者: 沉默的乌鸦    时间: 2014-3-31 02:07
本帖最后由 沉默的乌鸦 于 2014-3-31 10:09 编辑
Jorin 发表于 2014-3-30 23:24
原来的代码错误比较多,很难看出每行代码的意图,我重写了其中一个,楼主可以参考下。

不过输入列表数据 ...

感动到眼泪掉下来,谢谢jorin!我看了你的代码,好像只能取出一条线,而我希望通过两次循环取出一个方向所有的线。算法我知道,但当我尝试去改我那个错误非常多的代码时,又出现了类型错误等各种bug,所以能不能再麻烦jorin帮我改一下?抱歉,大半夜提这种无理要求

如何取出图中所有的线.jpg (667.73 KB, 下载次数: 16)

如何取出图中所有的线.jpg

搜狗截图14年03月31日0200_4.png (82.29 KB, 下载次数: 20)

红色部分的命令总是出现问题

红色部分的命令总是出现问题

取点算法疑问3.jpg (317.73 KB, 下载次数: 22)

取点算法疑问3.jpg

作者: Jorin    时间: 2014-3-31 14:42
沉默的乌鸦 发表于 2014-3-31 02:07
感动到眼泪掉下来,谢谢jorin!我看了你的代码,好像只能取出一条线,而我希望通过两次循环取出一个方向所 ...

抱歉,你写的代码我完全没看懂。我重写了一个,长了点。

[mw_shl_code=python,true]import rhinoscriptsyntax as rs
def creatIndex(n):
    n=int(n)
    outIndex=[]
    rp=[]
    tmp=[]
    for i in range(0,n*(n+1),n+1):
        rp.append(i)
    for i in range(n):
        tmp.append(i)
        for j in range(n-i):
            tmp.append((i+j+1)+j*(n+1))
            tmp.append((i+j+1)+(j+1)*(n+1))
        outIndex.append(tmp)
        tmp=[]
    count=n
    for i in rp:
        for j in range(count):
            tmp.append(i+j*(n+2))
            tmp.append(i+j*(n+2)+(n+1))
        tmp.append(i+(j+1)*(n+2))
        outIndex.append(tmp)
        tmp=[]
        count-=1
    return outIndex
index=creatIndex(n)
pts=[]
cvs=[]
for i in index:
    for j in i:
        pts.append(A[j])
    cvs.append(rs.AddCurve(pts,2))
    pts=[]
curve=cvs[/mw_shl_code]

作者: 沉默的乌鸦    时间: 2014-3-31 15:02
Jorin 发表于 2014-3-31 14:42
抱歉,你写的代码我完全没看懂。我重写了一个,长了点。

[mw_shl_code=python,true]import rhinoscrip ...

跪谢!应该抱歉的是我,问题没描述清楚,浪费你这么多时间。在无法自动取点的这段时间里,我手动画出线做出了第一版,各种没有力量。不过在被这个形体折磨的一周里,真的学到了很多东西,谢谢jorin版主!

搜狗截图14年03月31日1459_1.png (214.71 KB, 下载次数: 25)

搜狗截图14年03月31日1459_1.png





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