Source code for pyleecan.Methods.Slot.HoleM50.check

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

from numpy import arcsin, pi

from ....Methods.Slot.Slot import SlotCheckError
from ....Methods.Slot.HoleM50 import *


[docs]def check(self): """Check that the HoleM50 object is correct Parameters ---------- self : HoleM50 A HoleM50 object Returns ------- None Raises _______ S50_W01CheckError You must have W1 < W0 S50_H23CheckError You must have H2 < H3 S50_H01CheckError You must have H1 < H0 S50_W5CheckError You must have W5 >=0 S50_SpCheckError Slot pitch too small for the slot, reduce Zh, W3 or W0 """ Rext = self.get_Rext() # Check that everything is set if self.W0 is None: raise S50_NoneError("You must set W0 !") elif self.W1 is None: raise S50_NoneError("You must set W1 !") elif self.W2 is None: raise S50_NoneError("You must set W2 !") elif self.W3 is None: raise S50_NoneError("You must set W3 !") elif self.W4 is None: raise S50_NoneError("You must set W4 !") elif self.H0 is None: raise S50_NoneError("You must set H0 !") elif self.H1 is None: raise S50_NoneError("You must set H1 !") elif self.H2 is None: raise S50_NoneError("You must set H2 !") elif self.H3 is None: raise S50_NoneError("You must set H3 !") elif self.H4 is None: raise S50_NoneError("You must set H4 !") if self.W0 <= self.W1: raise S50_W01CheckError("You must have W1 < W0") if self.H3 <= self.H2: raise S50_H23CheckError("You must have H2 < H3") if self.H0 <= self.H1: raise S50_H01CheckError("You must have H1 < H0") if self.comp_W5() < 0: raise S50_W5CheckError("You must have W5 >=0") alpha_0 = 2 * arcsin(self.W0 / (2 * (Rext - self.H1))) # W0 in rad alpha_3 = 2 * arcsin(self.W3 / (2 * (Rext - self.H1))) # W3 in rad if alpha_0 + alpha_3 > 2 * pi / self.Zh: raise S50_SpCheckError("Slot pitch too small for the slot, reduce Zh, W3 or W0") point_dict = self._comp_point_coordinate() if abs(point_dict["Z1"]) > abs(point_dict["Z11"]): raise S50_W3CheckError( "Points are colliding: unable to fulfill W3 constraints, for instance try increasing W3" ) if abs(point_dict["Z2"]) > abs(point_dict["Z1"]): raise S50_W3CheckError( "Points are colliding: unable to fulfill W3 constraints, for instance try increasing W3" )