在Rhino下节点化编程平台Grasshopper上编写程序实现土方量计算功能

作者:小傅 , 分类:土方计算软件FastTFT , 浏览:4473 , 评论:1

      土方工程量计算是规划总图工程设计过程中非常重要的一个环节,又是投资预算和施工组织设计的依据。目前市面上已经有成熟的商业软件或插件如飞时达土方计算软件FastTFT、CASS、鸿业ECS等可供我们使用。本文尝试在Rhino下节点化编程平台Grasshopper上编写程序实现土方量计算功能。

      想要编程、首先要选对方法,明确思路,我们需要解决如下几个问题:

      1、目标;2、算法;3、程序的输入;4、程序输出;

      先说目标:

      回想下上学时的专业课程,对施工图阶段的土方计算的首要要求就是精确!

      再看算法:

      要计算精准,那就基于DTM模型完成计算;

      要方便出图,就选择网格法来统计逐一区域内的体积变化量;

      之前的几篇文章,讲了三角剖分法建立地形的方法,地形表面其实是一个由众多平面三角形组合而成的多面体,那我们计算两个表面间的体积差其实就可以简化为计算上下两个三角形面垂直围合而成的空间体积,如下图蓝色部分所示,要么是增加量,要么是减少量。

      理论上我们只需要将每个网格范围内的所有蓝色区域体积加和,就得出土方变化量。

640.webp.jpg

       但理论永远是理论,实际永远是实际。

       实际的过程要复杂的多。

       理论与实际之间的鸿沟需要我们来跨越。

       我们圈定一个计算区域,那么这个区域之外的体积变化量就无需计算,而区域边线是无法沿着三角形边线走的,所以要先筛选出全在区域内的三角形,然后再把被区域边线穿越的三角形修剪一下,保留区域内部的部分。

      然后才能获得完整而准确的统计区域:

640.webp (2).jpg

       这样就够精准了,统计范围外的土方变化量绝对不会被统计进来!!

       但这样问题就解决了么?

640.webp (3).jpg

       由于设计过程中修改了地形,面的数量发生了变化,裁切后的Mesh的面数不一致了,这就意味着如果上下两个三角形面之间可能出现了错位:

640.webp (4).jpg

       所以不能单纯的累加上面的空间体积变化量,否则有重复计算或者缺失。

       那怎么办,只能改算法啊,换一种统计方式,比如:


 640.webp (5).jpg

       好了,这个问题解决了。

       程序输入:

       在场地设计过程中,我们即会用到1等高线,也会用到2地形模型(DTM),所以我们的程序输入必然要能兼容这两种输入;

       土方计算,要想精度高,就要尽可能的细分计算区域,所以需要一个3细分参数;

       我们不一定需要对整个场地进行计算,所以我们的程序应该能让用户4自定义计算的范围;

       5放线网格的尺寸是要能修改的,满足不同尺度场地的需求;

       等高线或地形模型的单位不一定是m,又可能是mm,但最终的土方量单位是m³,所以我们需要输入一个6换算系数;

       比例尺一般都是1:1啦,但在极特殊的情况下这个比例尺不一定是1:1(后续文章会介绍),所以7比例尺也要输入下。

640.webp.jpg

640.webp (1).jpg

       输入的问题都很愉快的解决了,当然后面要跟一点处理流程的,比如这些封装的Cluster内都是一小段小程序。由于功能相同并且多次使用,为了整个程序的整洁和便于排错,我把这些单一重复功能的程序打包了。

640.webp (2).jpg

      下面是未打包的程序,用于放线网格的筛选和单位换算:

640.webp (3).jpg

       之后经过下列模块的计算,我们就得到计算结果了

640.webp (4).jpg

      依旧是打包程序:

640.webp (5).jpg

       封装模块里的程序是这样子的:

640.webp (5).jpg

       最后输出:

       输出要有网格格线、每个方格网内的土方变化量,网格格线交点处要有高程标注:原高程、修改后高程、高程变化量,以及场地总的土方变化量。

       看下最终的结果,注意角点是没有数据的,因为这些点在统计范围外,并没有参与计算。

640.webp (6).jpg

        网格角点三组数据从上至下依次为原高程值,修改后高程值,高程变化量。

640.webp (7).jpg

       剩下的就是将结果Bake到Rhino里,另存为dwg或者Pdf格式就可以了~

       来个程序全貌,上半部分封装过,下半部分未封装,对比下:

640.webp (8).jpg

     除非注明,小傅博客文章均为原创,转载请以链接形式标明本文地址

     本文地址:http://www.co120.com/post/133.html

 

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

已有1位网友发表了看法:

1#TOM  2018-12-25 14:30:55 回复该评论
您好,文章里的电池组可以发给我么?谢谢
搜索
推荐资源

热文排行

最近发表
智能推荐
标签列表
小傅博客