Source code for pyleecan.Methods.Slot.VentilationPolar.build_geometry

# -*- coding: utf-8 -*-

from numpy import exp, pi

from ....Classes.PolarArc import PolarArc
from ....Methods.Slot.VentilationPolar import *
from ....Functions.labels import VENT_LAB


[docs]def build_geometry(self, alpha=0, delta=0): """Compute the curve needed to plot the ventilations Parameters ---------- self : VentilationPolar A VentilationPolar object alpha : float Angle for rotation (Default value = 0) [rad] delta : complex Complex for translation (Default value = 0) Returns ------- surf_list: list A list of PolarArc Raises _______ PolarArcBuildGeometryError The parameter 'sym' must be an integer > 0 The parameter 'alpha' must be an int or float The parameter 'delta' must be a complex or float or int number """ lam_label = self.parent.get_label() R_id, surf_type = self.get_R_id() RTS_id = "R" + str(R_id) + "-T0-S0" vent_label = lam_label + "_" + surf_type + "_" + RTS_id # checking if the param have good type if type(alpha) not in [int, float]: raise PolarArcBuildGeometryError( "The parameter 'alpha' must be an int or float" ) if type(delta) not in [complex, int, float]: raise PolarArcBuildGeometryError( "The parameter 'delta' must be a complex or float or int number" ) surf_list = list() # Modulo on Alpha for sym Alpha0 = self.Alpha0 % (2 * pi / self.Zh) Zc = (self.H0 + (self.D0 / 2)) * exp(1j * Alpha0) surf_list.append( PolarArc( point_ref=Zc, label=vent_label, angle=self.W1, height=self.D0, ) ) return surf_list