Python --- 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, 下载次数: 19)

取点算法疑问2.jpg

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

11.png

python取点.rar

47.12 KB, 下载次数: 170

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
关于大陆地区Rhino原厂培训中心
Jorin 发表于 2014-3-30 12:14:00
2
类型异常,你A端输出的变量处理本身就是错误的。
 楼主| 沉默的乌鸦 发表于 2014-3-30 17:10:55
3
Jorin 发表于 2014-3-30 12:14
类型异常,你A端输出的变量处理本身就是错误的。

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

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

python取点.rar

47.12 KB, 下载次数: 176

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

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

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

不过输入列表数据 ...

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

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

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

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

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

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

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

取点算法疑问3.jpg
Jorin 发表于 2014-3-31 14:42:18
6
沉默的乌鸦 发表于 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:13
7
Jorin 发表于 2014-3-31 14:42
抱歉,你写的代码我完全没看懂。我重写了一个,长了点。

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

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

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

搜狗截图14年03月31日1459_1.png
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则