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

Python调用ETABS API迭代嵌套坐标列表绘梁报TypeError解决方法

报错原因

zip(XCoordsList,YCoordsList)迭代得到的m、n是嵌套结构里的内层列表(比如第一次迭代m就是[0,5.5,11],n就是[5,6.1,5.7]),不是整数索引。原代码直接用m[m]、n[n]的写法,相当于把列表本身作为下标去访问列表元素,完全不符合列表索引的取值规则,因此触发类型错误。

修正代码

你的坐标对应规则是:同位置的两个内层列表为同一组梁的控制点集,同组内相邻控制点连线生成梁,所有梁的Z坐标固定为3,修正后的可运行代码如下:

Z = 3
# 逐组遍历一一对应的X、Y坐标子集
for x_coords, y_coords in zip(XCoordsList, YCoordsList):
    # 遍历组内相邻点,逐段绘制梁
    for point_idx in range(len(x_coords) - 1):
        # 提取梁段两端点坐标
        x1, y1 = x_coords[point_idx], y_coords[point_idx]
        x2, y2 = x_coords[point_idx+1], y_coords[point_idx+1]
        # 调用ETABS API绘制梁
        SapModel.FrameObj.AddByCoord(x1, y1, Z, x2, y2, Z, "name", "section")
补充说明
  • 按你给出的示例数据,3组坐标每组3个点,总共会生成3*2=6段梁,和你举例的点对应关系完全匹配。
  • 实际使用时建议给每段梁生成唯一的name值、匹配对应section属性,避免构件重名导致的API调用报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:18:19