如何使用Grasshopper快速建立弧形楼梯结构分析模型

弧形楼梯其造型美观,极具装饰性,常常用于公共建筑的门厅、大堂等建筑空间,起着美化兼备疏散人流的功能,是一种常见的结构构件,由空间曲线梁组成的梁式楼梯或空间曲线板组成的板式楼梯两大类型。
弧形楼梯结构分析通常采用Sap2000、Midas等通用有限元软件进行分析,通过空间多折线或多折面单元来近似模拟空间弧形梁或曲面板,因此在建立结构分析模型时,通常耗时长,重复性工作比较多,一旦建筑效果发生调整,结构模型又需要重新建立,费时费力。本文以图1为例,主要介绍一种快速搭建任意弧形楼梯结构分析模型的方法,可供大家参考。
本例为某剧场一层大堂弧形楼梯,层高4.5m,外径弧长平面投影长度为14m,两跑楼梯,踏步高为150mm,踏步数为30个,拟采用钢结构梁式楼梯。


图1楼梯平面图 图1楼梯三维图
下面来介绍使用犀牛软件及Grasshopper插件来快速建立结构分析几何模型。
第一步:从犀牛软件中导入楼梯平面轮廓线CAD图,如图2所示。

编号 | 名称 | 在运算器面板中路径 | 注释 |
C1 | Curve | Params/Geometry/Curve | 选择第一跑楼梯两根平面曲线(注意曲线方向)L1、L2。 |
C2 | Number Slider | Params/Special/ Number Slider | 输入第一跑楼梯高度h1 |
C3 | Number Slider | Params/Special/ Number Slider | 输入第一跑楼梯踏步数n1 |
D1 | Divide Curve | Curve/Division/Divide Curve | 将曲线L1、L2等分成n1-1份 |
D2 | Subtraction | Maths/Operators/ Subtraction | 运算n1-1 |
D3/ D7 | Move | Transform/Eucliden/ Move | 将等分后的曲线上的点按照指定要求进行移动 |
D4/ D8 | Unit Z | Vector/ Vector/ Unit Z | 指定Z轴方向 |
D5 | Series | Sets/Sequence/ Series | 指定等差数列,起始高度h1/ n1,步高h1/ n1,次数n1次 |
D6 | Division | Maths/Operators/ Division | 运算h1/ n1 |
D9 | Series | Sets/Sequence/ Series | 指定等差数列,起始高度0,步高h1/ n1,次数n1次 |
D10 | Explode Tree | Sets/ Tree/ Explode Tree | 通过D3得到两组数据进行分组 |
D11 | Line | Curve/Primitive/ Line | 将D10分组后的数据分别连线形成踏板线 |
D12 | Line | Curve/Primitive/Line | 通过D3/ D7得到两组数据分别连线形成踢面线 |
D13 | Ployline | Curve/Spline/Ployline | 通过D7得到两组数据各自连线形成第一跑处曲面梁线 |
D14 | Split list | Sets/ list/ Split list | 将D7得到的点偏移1位 |
D15 | Number Slider | Params/Special/ Number Slider | 输入1 |
D16 | Line | Curve/Primitive/ Line | 将D3D14得到两组数据分别连线形成踏面线 |
D17 | Curve | Params/Geometry/Curve | 将D11D12D13D16得到的线形成集合 |
第三步:建立休息平台,程序界面如图4,该程序用到的所有运算器如表2。

程序用到的所有运算器 表2
编号 | 名称 | 在运算器面板中路径 | 注释 |
C4 | Curve | Params/Geometry/Curve | 选择休息平台两根平面曲线(注意曲线方向)L3、L4。 |
C5 | Number Slider | Params/Special/ Number Slider | L3、L4划分单元数n2 |
D18 | Divide Curve | Curve/Division/ Divide Curve | 将曲线L3、L4等分n2段 |
D19 | Move | Transform/Eucliden/ Move | 将等分后的曲线上的点按照指定要求进行移动 |
D20 | Unit Z | Vector/ Vector/ Unit Z | 指定向Z轴方向移动h1 |
D21 | Ployline | Curve/Spline/ Ployline | 通过D19得到两组数据各自连线形成休息平台处曲面梁线 |
D22 | Explode Tree | Sets/ Tree/Explode Tree | 通过D19得到两组数据进行分组 |
D23 | Line | Curve/Primitive/ Line | 将D22分组后的数据分别连线形成划分单元线 |
D24 | Curve | Params/Geometry/Curve | 将D21D23得到的线形成集合 |
第四步:建立第二跑楼梯,程序界面如图5,该程序用到的所有运算器如表3。


编号 | 名称 | 在运算器面板中路径 | 注释 |
C6 | Curve | Params/Geometry/Curve | 选择第二跑楼梯两根平面曲线(注意曲线方向)L5、L6。 |
C7 | Number Slider | Params/Special/ Number Slider | 输入第一跑楼梯高度h2 |
C8 | Number Slider | Params/Special/ Number Slider | 输入第一跑楼梯踏步数n3 |
D25 | Divide Curve | Curve/Division/ Divide Curve | 将曲线L5、L6等分成n3-1份 |
D26 | Subtraction | Maths/Operators/ Subtraction | 运算n3-1 |
D27/ D32 | Move | Transform/Eucliden/ Move | 将等分后的曲线上的点按照指定要求进行移动 |
D28/ D33 | Unit Z | Vector/ Vector/ Unit Z | 指定Z轴方向 |
D29 | Series | Sets/Sequence/ Series | 指定等差数列,起始高度h1+h2/ n3,步高h2/ n3,次数n3次 |
D30 | Division | Maths/Operators/ Division | 运算h2/ n3 |
D31 | Addition | Maths/Operators/ Division | 运算h1+h2/ n3 |
D34 | Series | Sets/Sequence/ Series | 指定等差数列,起始高度h1,步高h2/ n3,次数n3次 |
D35 | Explode Tree | Sets/ Tree/ Explode Tree | 通过D27得到两组数据进行分组 |
D36 | Line | Curve/Primitive/ Line | 将D35分组后的数据分别连线形成踏板线 |
D37 | Line | Curve/Primitive/ Line | 通过D27/ D32得到两组数据分别连线形成踢面线 |
D38 | Ployline | Curve/Spline/ Ployline | 通过D32得到两组数据各自连线形成第一跑处曲面梁线 |
D39 | Split list | Sets/ list/ Split list | 将D32得到的点偏移1位 |
D40 | Number Slider | Params/Special/ Number Slider | 输入1 |
D41 | Line | Curve/Primitive/ Line | 将D27D32得到两组数据分别连线形成踏面线 |
D42 | Curve | Params/Geometry/Curve | 将D36D37D38D41得到的线形成集合 |

编号 | 名称 | 在运算器面板中路径 | 注释 |
C9 | Curve | Params/Geometry/Curve | 选择休息平台两根平面曲线(注意曲线方向)L7、L8。 |
C10 | Number Slider | Params/Special/ Number Slider | L7、L8划分单元数n4 |
D43 | Divide Curve | Curve/Division/ Divide Curve | 将曲线L7、L8等分n4段 |
D44 | Move | Transform/Eucliden/ Move | 将等分后的曲线上的点按照指定要求进行移动 |
D45 | Addition | Maths/Operators/ Division | 运算h1+h2 |
D46 | Unit Z | Vector/ Vector/ Unit Z | 指定向Z轴方向移动h1+h2 |
D47 | Ployline | Curve/Spline/ Ployline | 通过D44得到两组数据各自连线形成休息平台处曲面梁线 |
D48 | Explode Tree | Sets/ Tree/ Explode Tree | 通过D44得到两组数据进行分组 |
D49 | Line | Curve/Primitive/ Line | 将D48分组后的数据分别连线形成划分单元线 |
D50 | Curve | Params/Geometry/Curve | 将D47D49得到的线形成集合 |
弧形楼梯全部程序界面如图7。


