Rhino教程:Grasshopper小程序从等高线信息自动拟合地形

本篇教程主要针对景观设计。请不相关专业读者酌情选择阅读。

从等高线平面图自动拟合地形

在已绘制完成闭合等高线平面图,且该平面图中等高线未出现复杂的多处相互嵌套的的情况下,可利用Grasshopper小程序自动抬升相邻等高线间的高度,从而快速建立地形曲面。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图

实现自动抬升平面等高线并生成曲面的Grasshopper程序如下:

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图1

此Grasshopper程序的原理在于:以Length运算器提取出每根曲线的长度,用Sort List运算器筛选出等高线长度信息的列表。以Series运算器生成以指定等高距为公差的等差数列,并将相应位置的等高线与等差数列中相应的项数配对,分别沿着UnitZ运算器指定的Z轴方向,以Move运算器抬升不同的距离。注意Move运算器的Geometry输入端的数据结构需要设为Reverse. 最后,以patch运算器生成曲面。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图2

从三维等高线信息图自动拟合地形

Step1:

首先,将带有三维等高线信息的AutoCAD (或DXF等) 图纸导入Rhino.

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图3

切换到Perspective视图选取待生成地形的等高线范围。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图4

编写如下Grasshopper程序,可依据提取出的三维等高线信息,拟合出适合的地形。

此Grasshopper程序的原理在于:先按照指定距离提取出三维等高线上每隔相应距离的地形标高特征点,构成点云,然后依据点云生成拟合地形的mesh曲面。

首先,将这些三维等高线拾取进Curve对象。将Curve对象与Devide Curve运算器的Curve输入端相连。再将Curve对象与Length运算器相连,将Length运算器的输出结果输入Division运算器的A输入端,B输入端则输入一个距离数值,这个数值决定了在原有等高线上提取的相邻点之间的距离。然后,将Division运算器输出结果赋予Divide Curve运算器的Count输入端。将Divide Curve运算器输出端的数据结构拍平,输入至Delaunay Mesh 运算器的Points输入端,拟合出曲面。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图5

Step2:

Bake出所得mesh曲面。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图6

在TOP视图键入_DrapePt(生成幕帘点)命令,提取mesh曲面外接矩形范围内的曲面表面特征点。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图7

在任一侧视图选中并删去冗余点。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图8

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图9

将地形特征点_Patch成面,即可拟合出所求地形的nurbs曲面。

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图10

效果展示:

Rhino教程:Grasshopper小程序从等高线信息自动拟合地形插图11

文章源自微信公众号:闲渊斋

本文来源于互联网,版权归原作者所有,海南BIM-xycost.com仅作学习之用。

0

评论0

请先

没有账号? 注册  忘记密码?

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站
普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress