Пример #1
0
 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")
Пример #2
0
 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
Пример #3
0
 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()
Пример #4
0
 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")
Пример #5
0
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
Пример #6
0
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
Пример #7
0
 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")
Пример #8
0
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()
Пример #9
0
        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()