Source code for pyleecan.GUI.Dialog.DMachineSetup.SWSlot.WWSlotOut.WWSlotOut
from PySide2.QtCore import QSize
from PySide2.QtWidgets import QGroupBox, QLabel, QVBoxLayout, QWidget
from ......GUI import gui_option
[docs]class WWSlotOut(QGroupBox):
"""Setup of QGroupBox for output for Winding Slot"""
def __init__(self, parent=None):
"""Initialize the widget"""
QGroupBox.__init__(self, parent)
# Set main widget
self.setTitle(self.tr("Output"))
self.setMinimumSize(QSize(200, 0))
self.setObjectName("g_output")
self.layout = QVBoxLayout(self)
self.layout.setObjectName("layout")
# The widget is composed of several QLabel in a vertical layout
self.out_Wlam = QLabel(self)
self.out_Wlam.setObjectName("out_Wlam")
self.layout.addWidget(self.out_Wlam)
self.out_slot_height = QLabel(self)
self.out_slot_height.setObjectName("out_slot_height")
self.layout.addWidget(self.out_slot_height)
self.out_yoke_height = QLabel(self)
self.out_yoke_height.setObjectName("out_yoke_height")
self.layout.addWidget(self.out_yoke_height)
self.out_wind_surface = QLabel(self)
self.out_wind_surface.setObjectName("out_wind_surface")
self.layout.addWidget(self.out_wind_surface)
self.out_tot_surface = QLabel(self)
self.out_tot_surface.setObjectName("out_tot_surface")
self.layout.addWidget(self.out_tot_surface)
self.out_op_angle = QLabel(self)
self.out_op_angle.setObjectName("out_op_angle")
self.layout.addWidget(self.out_op_angle)
# self.layout.addWidget(self)
[docs] def comp_output(self):
"""Update the Output with the computed values
Parameters
----------
self : WWSlotOut
A WWSlotOut object
"""
obj = self
while not hasattr(obj.parent(), "lamination") or obj.parent() is None:
obj = obj.parent()
parent = obj.parent()
lam = parent.lamination
if hasattr(parent, "is_notch"):
is_notch = parent.is_notch
else:
is_notch = False
if lam.is_stator:
lam_name = "Stator"
else:
lam_name = "Rotor"
if is_notch:
AO_txt = self.tr("Opening angle: ")
WS_txt = ""
self.out_wind_surface.hide()
TS_txt = self.tr("Notch surface: ")
SH_txt = self.tr("Notch height: ")
YH_txt = ""
self.out_yoke_height.hide()
else:
AO_txt = self.tr("Opening angle: ")
WS_txt = self.tr("Active surface: ")
TS_txt = self.tr("Slot surface: ")
SH_txt = self.tr("Slot height: ")
YH_txt = self.tr("Yoke height: ")
Wlam = format(gui_option.unit.get_m(lam.Rext - lam.Rint), ".4g")
self.out_Wlam.setText(
self.tr(lam_name + " width: ")
+ Wlam
+ " ["
+ gui_option.unit.get_m_name()
+ "]"
)
if parent.check(lam) is None:
# Compute all the needed output as string
w_surf = format(
gui_option.unit.get_m2(lam.slot.comp_surface_active()), ".4g"
)
tot_surf = format(gui_option.unit.get_m2(lam.slot.comp_surface()), ".4g")
op_angle = "%.4g" % lam.slot.comp_angle_opening()
slot_height = format(gui_option.unit.get_m(lam.slot.comp_height()), ".4g")
yoke_height = format(gui_option.unit.get_m(lam.comp_height_yoke()), ".4g")
# Update the GUI to display the Output
self.out_wind_surface.setText(
WS_txt + w_surf + " [" + gui_option.unit.get_m2_name() + "]"
)
self.out_tot_surface.setText(
TS_txt + tot_surf + " [" + gui_option.unit.get_m2_name() + "]"
)
self.out_op_angle.setText(AO_txt + op_angle + " [rad]")
self.out_slot_height.setText(
SH_txt + slot_height + " [" + gui_option.unit.get_m_name() + "]"
)
self.out_yoke_height.setText(
YH_txt + yoke_height + " [" + gui_option.unit.get_m_name() + "]"
)
else:
# We can't compute the output => We erase the previous version
# (that way the user know that something is wrong)
self.out_wind_surface.setText(WS_txt + "?")
self.out_tot_surface.setText(TS_txt + "?")
self.out_op_angle.setText(AO_txt + "?")
self.out_slot_height.setText(SH_txt + "?")
self.out_yoke_height.setText(YH_txt + "?")