import rhinoscriptsyntax as rs
def ptMtx(XMAX,YMAX,ZMAX):
ptDict={}
ptList=[]
for i in range(XMAX):
for j in range(YMAX):
for k in range(ZMAX):
x=i*5
y=j*5
z=k*5
ptDict[(i,j,k)]=(x,y,z)
ptList.append((x,y,z))
rs.AddPoint(x,y,z)
for i in range(len(ptList)):
rs.AddTextDot(i,ptList[i])
def main():
xmax=rs.GetInteger("input number in x direction",10)
ymax=rs.GetInteger("input number in y direction",10)
zmax=rs.GetInteger("input number in z direction",10)
ptMtx(xmax,ymax,zmax)
main()
需要注意的是,此时三维点阵是按照List的结构进行存储和显示的,因此看到显示顺序为0,1,2,3......124
如果希望是按照x,y,z三个维度进行数据存储和显示,修改代码如下:
import rhinoscriptsyntax as rs
def ptMtx(XMAX,YMAX,ZMAX):
ptDict={}
ptList=[]
for i in range(XMAX):
for j in range(YMAX):
for k in range(ZMAX):
x=i*5
y=j*5
z=k*5
ptDict[(i,j,k)]=(x,y,z)
ptList.append((x,y,z))
rs.AddPoint(x,y,z)
for i in range (XMAX):
for j in range(YMAX):
for k in range(ZMAX):
rs.AddTextDot((i,j,k),ptDict[(i,j,k)])
# for i in range(len(ptList)):
# rs.AddTextDot(i,ptList[i])
def main():
xmax=rs.GetInteger("input number in x direction",10)
ymax=rs.GetInteger("input number in y direction",10)
zmax=rs.GetInteger("input number in z direction",10)
ptMtx(xmax,ymax,zmax)
main()