def add_wing(self,wing,nSurfPts=25,opacity=1.0,color=(0.49,1,0.83)): nSeg = wing.nSeg nSec2 = 2*nSeg+1 xMesh = np.zeros([nSec2,nSurfPts]) yMesh = np.zeros([nSec2,nSurfPts]) zMesh = np.zeros([nSec2,nSurfPts]) for i in range(nSeg+1): afPts = wing.airfoils[i].redim(nSurfPts,overwrite=False) section = afPts*wing.chords[i] axis1 = np.array([wing.chords[i]*0.25, 0.0]) section = rotate_2d(section,axis1,wing.secAngles[i]) secX = section[:,0] + wing.secApex[i,0] secY = np.zeros(nSurfPts) + wing.secApex[i,1] secZ = section[:,1] + wing.secApex[i,2] if i==0: xMesh[nSeg] = np.copy(secX) yMesh[nSeg] = np.copy(secY) zMesh[nSeg] = np.copy(secZ) else: xMesh[nSeg-i] = np.copy(secX) xMesh[nSeg+i] = np.copy(secX) yMesh[nSeg-i] = np.copy(-secY) yMesh[nSeg+i] = np.copy(secY) zMesh[nSeg-i] = np.copy(secZ) zMesh[nSeg+i] = np.copy(secZ) self.xMesh.append(xMesh) self.yMesh.append(yMesh) self.zMesh.append(zMesh) self.meshOpacity.append(opacity) self.meshColor.append(color)
def write_curve(fid1, nConnect, pts, apex, chord, angle, rotAxis=0.25, rev=False): if rev: pts = np.flipud(pts) apex = np.array([apex[0],apex[2],apex[1]]) pts = rotate_2d(pts, [rotAxis,0], angle) *chord pts = np.hstack([pts,np.zeros([len(pts),1])]) pts += apex for pt in pts: fid1.write(' $_TMP(PW_%d) addPoint {%.10f %.10f %.10f}\n'%(nConnect,pt[0], pt[1], pt[2]))