Source code for pyleecan.Methods.Slot.SlotM18.get_surface_active
# -*- coding: utf-8 -*-
from numpy import linspace, zeros
from ....Classes.Arc1 import Arc1
from ....Classes.Segment import Segment
from ....Classes.SurfLine import SurfLine
[docs]def get_surface_active(self, alpha=0, delta=0):
"""Return the full active surface
Parameters
----------
self : SlotM18
A SlotM18 object
alpha : float
float number for rotation (Default value = 0) [rad]
delta : complex
complex number for translation (Default value = 0)
Returns
-------
surf_act: Surface
Surface corresponding to the Active Area
"""
# get the name of the lamination
st = self.get_name_lam()
Rbo = self.get_Rbo()
point_dict = self._comp_point_coordinate()
ZM1 = point_dict["ZM1"]
ZM2 = point_dict["ZM2"]
ZM3 = point_dict["ZM3"]
ZM4 = point_dict["ZM4"]
curve_list = list()
curve_list.append(Segment(ZM1, ZM2))
if self.is_outwards():
curve_list.append(Arc1(ZM2, ZM3, (Rbo - self.Hmag), is_trigo_direction=True))
else:
curve_list.append(Arc1(ZM2, ZM3, (Rbo + self.Hmag), is_trigo_direction=True))
curve_list.append(Segment(ZM3, ZM4))
if self.is_outwards():
curve_list.append(Arc1(ZM4, ZM1, -Rbo, is_trigo_direction=False))
else:
curve_list.append(Arc1(ZM4, ZM1, -Rbo, is_trigo_direction=False))
Zmid = (abs(ZM1) + abs(ZM3)) / 2
surface = SurfLine(
line_list=curve_list, label="Wind_" + st + "_R0_T0_S0", point_ref=Zmid
)
# Apply transformation
surface.rotate(alpha)
surface.translate(delta)
# init prop_dict
for line in surface.line_list:
line.prop_dict = dict()
return surface