def genstl(curve, filename): STLgen.STL_Gen(curve[0].T[0], curve[0].T[1], 'new_slat.stl') STLgen.STL_Gen(curve[1].T[0], curve[1].T[1], 'me.stl') STLgen.STL_Gen(curve[2].T[0], curve[2].T[1], 'new_flap.stl') #BELOW LINE TAKES THREE ARGUMENTS FIRST:SLAT FILE, SECOND: AIRFOIL FILE , THIRD: COMBINED FILE PATH along with name STLgen.combine('new_slat.stl', 'me.stl', 'new_flap.stl', filename) print("profile stl generated and saved")
def transform_slat(target, sep_dist, prim_angle, sec_angle): # making blade horizontal target1 = copy.deepcopy(target[0].transpose()) target2 = copy.deepcopy(target[1].transpose()) target1[0] -= trail1[0] target2[0] -= lead2[0] target1[1] -= trail1[1] target2[1] -= lead2[1] slope1 = math.degrees( math.atan(abs((lead1[1] - trail1[1]) / (lead1[0] - trail1[0])))) slope2 = math.degrees( math.atan(abs((lead2[1] - trail2[1]) / (lead2[0] - trail2[0])))) target1 = target1.transpose() target2 = target2.transpose() target1 = STLgen.rotate(target1, slope1, [0, 0, 1]) target2 = STLgen.rotate(target2, slope2, [0, 0, 1]) # transforming target1 = STLgen.rotate(target1, prim_angle, [0, 0, 1]) target2 = STLgen.rotate(target2, sec_angle, [0, 0, 1]) target1 = target1.transpose() target2 = target2.transpose() # print("SSSSSSSSSSSSSSSS",target1) target1[1] += 0.2 target2[1] += 0.2 target1[0] -= sep_dist / 2 target2[0] += sep_dist / 2 target1 = target1.transpose() target2 = target2.transpose() target = [target1, target2] return target
def transform_slat(target, gap, overhang, deflection, lead, trail, cpoints): """# making slat horizontal slope = math.degrees( math.atan(abs((lead[1] - trail[1]) / (lead[0] - trail[0])))) print(target) target = STLgen.rotate(target, slope, [0, 0, 1])""" """# getting tail to origin ysub = target[np.argmax(target, axis=0)[0]][1] target = target.transpose() target[0] = target[0] - target.max(1)[0] target[1] = target[1] - ysub""" #getting head to origin target = target.transpose() print(cpoints[0][0]) target[0] -= 6.9961086 - cpoints[0][0] target[1] -= -5.54978974 + cpoints[0][1] # providing deflection target = STLgen.rotate(target.transpose(), deflection, [0, 0, 1]) # providing gap and overhang target = target.transpose() height = gap #height = (abs(gap**2 - overhang**2))**0.5 target[0] = target[0] - overhang target[1] = target[1] + height """# providing angle of attack target = STLgen.rotate(target.transpose(), 13)""" return target.transpose()
def genstl(curve, filename): mesh1 = STLgen.STL_Gen(curve[0].transpose()[0], curve[0].transpose()[1], 'turbine1.stl') mesh2 = STLgen.STL_Gen(curve[1].transpose()[0], curve[1].transpose()[1], 'turbine2.stl') blade1mesh = STLgen.combine('turbine1.stl', 'turbine2.stl') blade2mesh = STLgen.combine('turbine1.stl', 'turbine2.stl') blade3mesh = STLgen.combine('turbine1.stl', 'turbine2.stl') # rotating blade2 and 3 blade2mesh.rotate([0.0, 0.0, 0.5], math.radians(120)) blade3mesh.rotate([0.0, 0.0, 0.5], math.radians(240)) blade1mesh.save(filename + 'VAWT1.stl', mode=stl.Mode.ASCII) blade2mesh.save(filename + 'VAWT2.stl', mode=stl.Mode.ASCII) blade3mesh.save(filename + 'VAWT3.stl', mode=stl.Mode.ASCII) # blademesh = mesh.Mesh(np.concatenate( # [blade1mesh.data, blade2mesh.data, blade3mesh.data])) # blademesh.save(filename, mode=stl.Mode.ASCII) print("profile stl generated and saved")
def transform_flap(flap_prof, angle, overhang, vert): overhang /= 100 vert /= 100 min, j = 100000, 0 for i in range(flap_prof.shape[0]): if (flap_prof[i][0] < min): min = flap_prof[i][0] j = i fin = copy.deepcopy(flap_prof[j]) flap_prof.T[0] -= fin[0] #rotate start flap_prof.T[1] -= fin[1] flap_prof = np.append(flap_prof, np.zeros((flap_prof.shape[0], 1)), axis=1) flap_prof = stlgen.rotate(flap_prof, angle - 30) flap_prof.T[0] += trailing_edge_me[0] + overhang flap_prof.T[1] += trailing_edge_me[1] - vert #rotate end flap_prof = np.delete(flap_prof, 2, 1) return flap_prof
def transform_slat(slat_prof, angle, overhang, vert): overhang /= 100 vert /= 100 max = -1000 j = 0 for i in range(slat_prof.shape[0]): if (slat_prof[i][0] > max): max = slat_prof[i][0] j = i fin = copy.deepcopy(slat_prof[i]) slat_prof.T[0] -= fin[0] slat_prof.T[1] -= fin[1] slat_prof = np.append(slat_prof, np.zeros((slat_prof.shape[0], 1)), axis=1) slat_prof = stlgen.rotate(slat_prof, angle + 30) slat_prof.T[0] += leading_edge_me[0] + overhang slat_prof.T[1] += leading_edge_me[1] - vert #rotate end slat_prof = np.delete(slat_prof, 2, 1) return slat_prof
def genstl(curve, filename): STLgen.STL_Gen(curve.transpose()[0], curve.transpose()[1], 'new_slat.stl') #BELOW LINE TAKES THREE ARGUMENTS FIRST:SLAT FILE, SECOND: AIRFOIL FILE , THIRD: COMBINED FILE PATH along with name STLgen.combine('new_slat.stl', 'ClarkY_airfoil_surf.STL', filename) print("profile stl generated and saved")
lead1=[-0.012054612,0.196694492,0] lead2=[0.050003115,0.200079,0] trail1=[0.036167406,0.209908331,0] trail2=[0.1,0.200079,0] target1=bladecoordinates.blade1 target2=bladecoordinates.blade2 target1=target1.transpose() target2=target2.transpose() print(target1[0]) target1[0] -= trail1[0] target2[0] -= lead2[0] target1[1] -= trail1[1] target2[1] -= lead2[1] slope1 = math.degrees(math.atan(abs((lead1[1] - trail1[1]) / (lead1[0] - trail1[0])))) slope2 = math.degrees(math.atan(abs((lead2[1] - trail2[1]) / (lead2[0] - trail2[0])))) target1=target1.transpose() target2=target2.transpose() target1 = STLgen.rotate(target1,slope1, [0, 0, 1]) target2 = STLgen.rotate(target2,slope2, [0, 0, 1]) target1 = STLgen.rotate(target1,-19, [0, 0, 1]) target2 = STLgen.rotate(target2,19, [0, 0, 1]) target1=target1.transpose() target2=target2.transpose() target1[0] -= 0.01 target1=target1.transpose() target2=target2.transpose() plt.plot(target1.transpose()[0],target1.transpose()[1]) plt.plot(target2.transpose()[0],target2.transpose()[1]) plt.axes().set_aspect('equal') plt.show()
j = i print("SS", b[j]) #slat c = transform_slat(c, -29.41167918, -2.25, -2.2) # print("slat",c) # c.T[0]+=4.3*2.95/100 # c.T[1]+=1.8*2.5/100 # c.T[0]-=0.11 plt.plot(c.T[0], c.T[1], '-') plt.axes().set_aspect("equal") plt.show() # import STLgen as stlgen stlgen.STL_Gen(a.T[0], a.T[1], "flap_601.stl") np.save("flap_601.npy", a / 4) # stlgen.STL_Gen(b.T[0],b.T[1],"me.stl") stlgen.STL_Gen(c.T[0], c.T[1], "slat_601.stl") np.save("slat_601.npy", c / 4) # stlgen.plot("flap.stl") # stlgen.plot("me.stl") # stlgen.plot("slat.stl") # flap_mesh = mesh.Mesh.from_file("flap.stl") # me_mesh = mesh.Mesh.from_file("me.stl") # slat_mesh = mesh.Mesh.from_file("slat.stl") # final= mesh.Mesh(np.concatenate([flap_mesh.data, me_mesh.data,slat_mesh.data])) # final.save("30p30n.stl", mode=stl.Mode.ASCII) # stlgen.plot("30p30n.stl") # plt.show()