Source code for pyleecan.GUI.Dialog.DMachineSetup.SWindParam.SWindParam

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

from PySide2.QtCore import Signal
from PySide2.QtWidgets import QMessageBox, QWidget

from .....GUI.Dialog.DMachineSetup.SWindParam.Gen_SWindParam import Gen_SWindParam


[docs]class SWindParam(Gen_SWindParam, QWidget): """Step to define the winding parameters""" # Signal to DMachineSetup to know that the save popup is needed saveNeeded = Signal() # Information for DMachineSetup nav step_name = "Winding (2)" def __init__(self, machine, matlib, is_stator=False): """Initialize the GUI according to machine Parameters ---------- self : SWindParam A SWindParam widget machine : Machine current machine to edit matlib : MatLib Material Library is_stator : bool To adapt the GUI to set either the stator or the rotor """ # Build the interface according to the .ui file QWidget.__init__(self) self.setupUi(self) # Saving arguments self.machine = machine self.matlib = matlib self.is_stator = is_stator # Fill the fields with the machine values (if they're filled) if self.is_stator: self.obj = machine.stator else: self.obj = machine.rotor if self.obj.winding.Ntcoil is None: self.si_Ntcoil.clear() else: self.si_Ntcoil.setValue(self.obj.winding.Ntcoil) # Adapt GUI for rotor WRSM if not is_stator and machine.type_machine == 9: self.in_Zs.hide() self.in_Nlay.hide() self.obj.winding.Npcpp = 1 # Enforce the value self.si_Npcpp.setEnabled(False) if self.obj.winding.Npcpp is None: self.obj.winding.Npcpp = 1 # Default value self.comp_output() self.si_Npcpp.setValue(self.obj.winding.Npcpp) # Connect the widget self.si_Ntcoil.editingFinished.connect(self.set_Ntcoil) self.si_Npcpp.editingFinished.connect(self.set_Npcp)
[docs] def set_Ntcoil(self): """Signal to update the value of Ntcoil according to the line edit Parameters ---------- self : SWindParam A SWindParam object """ self.obj.winding.Ntcoil = self.si_Ntcoil.value() self.comp_output() # Notify the machine GUI that the machine has changed self.saveNeeded.emit()
[docs] def set_Npcp(self): """Signal to update the value of Npcp according to the line edit Parameters ---------- self : SWindParam A SWindParam object """ self.obj.winding.Npcpp = self.si_Npcpp.value() self.comp_output() # Notify the machine GUI that the machine has changed self.saveNeeded.emit()
[docs] def comp_output(self): """Compute and display the winding output Parameters ---------- self : SWindParam A SWindParam object """ Zs = self.obj.slot.Zs qs = self.obj.winding.qs try: Ntspc = str(self.obj.winding.comp_Ntspc(Zs)) except: Ntspc = "?" try: Ncspc = str(self.obj.winding.comp_Ncspc(Zs)) except: Ncspc = "?" try: (Nrad, Ntan) = self.obj.winding.get_dim_wind() Nlay = str(Nrad * Ntan) except: Nlay = "?" self.in_Zs.setText(self.tr("Zs: ") + str(Zs)) self.in_qs.setText(self.tr("qs: ") + str(qs)) self.out_Ncspc.setText(self.tr("Ncspc: ") + Ncspc) self.out_Ntspc.setText(self.tr("Ntspc: ") + Ntspc) self.in_Nlay.setText(self.tr("Nlay: ") + str(Nlay))
[docs] @staticmethod def check(lamination): """Check that the current lamination have all the needed field set Parameters ---------- lamination : Lamination Lamination to check Returns ------- error: str Error message (return None if no error) """ try: obj = lamination.winding # For readibility # Check that everything is set if obj.Ntcoil is None: return "You must set Ntcoil !" if obj.Npcpp is None: return "You must set Npcpp !" except Exception as e: return str(e)