You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rhino Python绘制重复矩形脚本报错:'NoneType'不可下标访问,如何修复?

问题修复方案

核心错误原因

  • list.append()方法没有返回值(返回None),你写的c = c.append(...)会把列表c直接覆盖成None,后续执行c[i]时,自然会抛出'NoneType' object is not subscriptable的错误。
  • 代码里的x、y、u三个变量没有定义赋值,运行时会先触发未定义错误。
  • 循环内的旋转逻辑可能不符合需求:i+2.0会让每次旋转角度递增(2°、3°、4°...),如果是要均匀旋转,应该用固定角度值。

修复后的完整代码

import rhinoscriptsyntax as rs

# 定义必要参数:矩形尺寸、重复次数、每次旋转角度
x = 5  # 矩形宽度
y = 3  # 矩形高度
u = 10  # 重复次数
rotate_angle = 2.0  # 每次旋转的角度(单位:度)

# 初始化工作平面
plane = rs.WorldXYPlane()

# 存储所有矩形ID的列表
rect_ids = []

for i in range(u):
    # 旋转工作平面
    plane = rs.RotatePlane(plane, rotate_angle, [0,0,1])
    # 创建矩形并记录ID
    rect_id = rs.AddRectangle(plane, x, y)
    rect_ids.append(rect_id)
    # 移动矩形(每次沿Z轴向上移动1单位,累计叠加可改成(0,0,i+1))
    rs.MoveObject(rect_id, (0,0,1))

# 可选:选中所有创建的矩形
rs.SelectObjects(rect_ids)

额外说明

  1. 如果你需要每次旋转的角度是递增的(比如第1次2°,第2次4°...),可以把rotate_angle换成(i+1)*2.0。
  2. 移动逻辑如果是要让每个矩形沿Z轴叠加,把移动向量改成(0,0,i+1)即可,避免所有矩形都移到同一Z高度。

内容的提问来源于stack exchange,提问作者Zahra Ramezani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:58:17