# Copyright (c) 2026 JSOL CORPORATION # # This script is released under the MIT License. # See the full license text at: # https://www.jmag-international.com/scriptlibrary/jmag_script_library_mit/ def setupWindingByTurnAndWireSize(targetWinding): """Set the coil item in the winding setting specified by turns and wire size""" # Set the Input Type to Turns/Wire Size targetWinding.SetInputType(u"TurnAndWireSize") # Set the Setting Type to Round Wire targetWinding.SetWireType(u"Round") targetWinding.SetTurns(40) targetWinding.SetWireDiameter(1) targetWinding.SetFilmThickness(0.1) targetWinding.SetStrands(1) targetWinding.SetInsulationThickness(0.2) targetWinding.SetCorrectionFactor(1.0) def setupWindingByFillFactorAndWireSize(targetWinding): """Set the coil item in the winding setting specified by wire size and slot fill factor""" # Set the Input Type to Wire Size/Slot Fill Factor targetWinding.SetInputType(u"WireSizeAndFillFactor") # Set the Setting Type to Rectangle Wire targetWinding.SetWireType(u"Rectangle") targetWinding.SetWireHeight(1.5) targetWinding.SetWireWidth(1) targetWinding.SetFilmThickness(0.1) targetWinding.SetStrands(1) targetWinding.SetInsulationThickness(0.2) targetWinding.SetSlotFillFactor(80) targetWinding.SetCorrectionFactor(1.0) app = designer.GetApplication() study = app.GetCurrentStudy() windingDef = study.GetWinding(u"Coil") setupWindingByTurnAndWireSize(windingDef) # Calculated slot fill factor fillFactor = windingDef.ActualSlotFillFactor() # Calculated phase resistance phaseResistance = windingDef.ActualResistance() print(u"---Specified by turns and wire size---") print(u"FillFactor:", fillFactor) print(u"Resistance:", phaseResistance) setupWindingByFillFactorAndWireSize(windingDef) # Calculated turns turns = windingDef.ActualTurn() # Calculated phase resistance phaseResistance = windingDef.ActualResistance() print(u"") print(u"---Specified by wire size and fill factor---") print(u"Turns:", turns) print(u"Resistance:", phaseResistance)