首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >犀牛:不是所有在字符串格式化过程中转换的参数

犀牛:不是所有在字符串格式化过程中转换的参数
EN

Stack Overflow用户
提问于 2013-06-27 15:46:03
回答 1查看 346关注 0票数 1

我试图使用Rhino执行一段代码,下面的TypeError有一些问题:

消息:不是所有在字符串格式化期间转换的参数

我编写的代码旨在读取文件"newpoints.csv“中的点坐标,并将它们用作Rhino 'AddLine‘函数的参数。

代码语言:javascript
复制
#!/usr/bin/env python
import rhinoscriptsyntax as rs

file = open("C:\\Users\\Seshane Mahlo\\Documents\\MSc Thesis\\newpoints.csv", "r")
lines = file.readlines()
file.close()

ab = len(lines)
seq = range(0, ab-1, 2)
coordinates = []
startvals = []
stopvals = []

for line in lines:
    coords = line.split(',')
    xcoord = float(coords[0])
    ycoord = float(coords[1])
    point = (xcoord, ycoord)
    coordinates.append(point)

starts = range(0, ab-2, 2)
ends = range(1, ab+1, 2)

for i,j in zip(starts, ends):
   strt = coordinates[i]
   stp = coordinates[j]
   rs.AddLine(start=strt,end=stp)
EN

回答 1

Stack Overflow用户

发布于 2015-08-04 21:21:55

我认为您的代码中有一个小错误:

代码语言:javascript
复制
starts = range(0, ab-2, 2)
ends = range(1, ab-1, 2)

这应该是

代码语言:javascript
复制
starts = range(0, ab-1, 2)
ends = range(1, ab, 2)

因为从range函数得到的最后一个元素比stop参数少一个。

但是导致这个错误的原因是,您正在尝试添加一条线,它使用一个二元组(x,y)由两个3d点组成。

要修复此更改,请执行以下操作:

代码语言:javascript
复制
point = (xcoord, ycoord)

代码语言:javascript
复制
point = (xcoord, ycoord, 0)

或者任何你想要的z坐标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17347595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档