BIMBase自从2021年发布以来获得了众多关心国产BIM和业务数字化转型的圈内老法师的关注,除了是国内首款完全自主知识产权的的BIMBase系统,实现建筑信息模型(BIM)关键核心技术自主研发安全可控。

同时开创了BIM X PYthon的技术跨界混搭风,得以让建模可以通过快速编程实现。

So!

BIMBase团队为了在功能和场景上

帮助大家了解BIMBase

学习建模小技巧

开设了技术专栏

【BIMBase之python建模宝典】

今日分享第九弹

今天分享的建模案例是风力发电机叶片。

风力发电机叶片是使风电发电机风轮旋转并产生气动力的部件,是水平轴风电发电机的核心部件之一。

建模思路

BIMBase风力发电机叶片

风力发电机叶片的外型是由一系列的标准翼型点进行坐标变换,再按照截面位置排布得到外形曲线,最后通过叶根向叶尖的放样,完成叶片造型。

由于风力发电机叶片截面线条数据点较多,故可采用numpy.loadtxt()获取和处理数据。

图文教程

BIMBase风力发电机叶片

① 获取翼型点数据

导入numpy模块,用loadtxt函数装填txt文件路径与参数usecols、comment,其中参数usecols表示仅导入0,1,2列,参数comment表示行的开头为“#”就会跳该行;新建空列表points、secs_points、secs、secs_height_temp、sec_height备用,定义num备用。

def replace(self):

data_txt = np.loadtxt('D:/风力发电机叶

片.txt', usecols=(0, 1, 2), comments='#')

points = []

secs_points = []

secs = []

secs_height_temp = []

secs_height = []

num = 35

② 初处理翼型点数据

data_txt是一个列表,包含了多个翼型点坐标。故对data_txt中元素进行遍历,将翼型点的xyz轴坐标通过append属性分装到列表point_x、point_y、point_z中;point_x和point_y通过Vec2函数转为二维坐标点,利用append属性,将xy二维坐标填入列表points中。

point_z直接通过append追加入列表secs_height_temp。

for i in data_txt:

point_x = i[0]

point_y = i[1]

point_z = i[2]

points.append(Vec2(point_x, point_y))

secs_height_temp.append(point_z)

③ 再处理翼型点数据

通过len函数获取points长度,使用range函数创建列表,步长为num;对上述列表进行遍历,把points[i:i num]通过append属性装填入列表secs_points中,此时points[i:i num]即为一个叶片截面上的翼型点的二维坐标,把secs_height_temp[i]通过append属性添加入列表secs_height中,此时secs_height_temp[i]即为对应叶片截面上的z轴坐标。

for i in range(0, len(points), num):

secs_points.append(points[i:i num])

secs_height.append(secs_height_temp[i]

④ 叶片建模

用int对len(point)与num的除数向下取整,使用range函数进行遍历;在遍历过程中,将secs_point的点转化成Line装填入Section函数生成截面,同时将截面以translate方法进行排布,形成叶根、叶中、叶尖, 通过Loft函数装填截面,从叶根向叶尖进行放样,即可得到叶片blade,设置blade的属性smooth,使模型在线框模式下更加光滑、平整。

这样,一个风力发电叶片就完成了。

for i in range(int(len(points)/num)):

secs.append(trans(0, 0, secs_height[i])*

Section(Line(secs_points[i])))

blade = Loft(secs)

blade.smooth = True

self['风力发电机叶片'] = blade

bim机电建模教程(风力发电机叶片)(1)

bim机电建模教程(风力发电机叶片)(2)

在上述建模过程中,我们基于对numpy的应用,导入txt格式的数据文件完成了建模工作,希望这会对各位朋友有所启发。

以上就是风力发电机叶片的BIMBase-python的建模啦,敬请期待BIMBase-python更多建模案例的分享~

,