grasshopper运用丨自动识别CAD信息生成三维地形与建筑体量 您所在的位置:网站首页 城市道路建模图纸 grasshopper运用丨自动识别CAD信息生成三维地形与建筑体量

grasshopper运用丨自动识别CAD信息生成三维地形与建筑体量

2024-07-11 03:30| 来源: 网络整理| 查看: 265

1

前期概括

在实际项目中甲方爸爸提供给我们的前期CAD测绘图中往往都是以下这样的

这样的

或者这样的

并且刚好他们都有着相同点

第一:图层混乱(小编已经无力吐槽)

第二:信息混乱(有些有层数,有些没有,有些多个层数值)

第三:干扰的无效信息过多

总之,能有多乱有多乱

如果基地范围较小,建筑数量不多,地块又都是平地,那基地建模基本没难度了

但是一旦范围过大,比如规划的上万平,建筑数量极其庞大,地形又都是山地,那.....保重

2

思路简介

建模的方法有很多种,本文只简单介绍运用grasshopper如何处理此类问题,望轻喷

一、基地模型的建立:通过CAD标高文字生成地形

1.rhino中识别并筛选出标高文字(通过grasshopper相关插件horster、human、seg、或者自带的编程语言C#、python等都可识别)

2.将识别后的标高文字转换为空间中三维的点

3.通过三维的点生成三维地形

二、建筑体量模型的生成

1.识别并筛选出为建筑轮廓的曲线

2.判断建筑轮廓线与内部层数文字的包含与被包含的逻辑关系

3.将建筑轮廓推拉出内部选定的相符合的层数高度

三、将建筑体量放置于三维地形表面

1.判断建筑体量的底平面与三维地形的距离

2.将建筑体量移动相应的距离至地形表面

3

一、基地模型的建立:通过CAD标高文字生成地形

读取报告文字(用的为horster中的read text objects)

输出端一个为所在文字的空间坐标(XYZ,所有Z均为0,可以也可以知道为二维的CAD,没有高度),一个为显示的值(即点的Z值)

因为汉字(砼等)、层数(3等)信息也被读取,所以我们需要进行简单的筛选

然后将信息转换为空间的三维的点

最后通过delaunay mesh将三维的点生成三维地形

最后将其bake至rhino中即可

二、建筑体量模型的生成

先SelClosedCrv识别出封闭的建筑轮廓曲线(有些为道路,或标志等)

如果建筑轮廓也未闭合则需选出开放曲线,判断起点终点再进行连接join即可

再筛选掉面积较小的封闭曲线(明显不是建筑体量的)

然后简单筛选出层数信息便于后面匹配建筑轮廓

判断文字与曲线(建筑轮廓)的包含关系(重点)

point in curves 一个输出为包含关系(0表示没有曲线包含该文字,1表示在线上,2表示包含),一个为表示第几根曲线包含,例如:第一个表示被第92根曲线包含

找出每一根建筑轮廓线所对应的包含文字(及建筑层数)关系

最后输出表示前面四根曲线没有包含任何文字,第五根曲线内部包含层数为3和4,以此类推(注在rhino6.0后的版本,其中set中的电池在输入端需要连接panel才有用,算是个bug吧)

我们将没有内部层数的建筑轮廓赋予一个层数,比如1层(我们要保证每个建筑轮廓最后推拉的高度有且只有一个)

对于包含多个层数的建筑轮廓我们选择取第二大的数值(最大的数值多为屋顶楼梯间的高度)

在grasshopper中0为第一个,-1为最后一个,-2为倒数第二个

最后只需要将对应的建筑轮廓推拉出相应的高度即可(层数*层高)在此单位为米,设层高为3米

到此建筑体量就批量生成了,不论是100个体量还是10000个都是一起生成的

三、将建筑体量放置于三维地形表面

由于原CAD曲线(建筑轮廓线)方向存在差异,无法直接通过listitem找出体量的底平面,对于此类情况我们可以通过判断体量每个面的中心点的Z轴坐标从而找出底平面

计算出底平面中心点到三维地形的正投影距离长度

最后向下移动相对应的长度即可

若有道路曲线,最后亦可把道路曲线在rhino中投影至三维地形

4

源文件及grasshopper脚本课程文件下载:

链接:https://pan.baidu.com/s/1wfbj2Ur9DhMlIPsSWVrcsA 

提取码:jtxh 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有