The IronPython script callbacks.py follows. This script defines
all functions executed by the callbacks in the steps for the Electronics Desktop wizard
Wizard Demo
.
# ---------------------------------------------- # Callbacks # ---------------------------------------------- oDesign = None oProject = None def OnUpdate1(step): global oDesign, oProject oProject = oDesktop.NewProject() oProject.InsertDesign("HFSS", "HFSSDesign1", "DrivenModal", "") oDesign = oProject.SetActiveDesign("HFSSDesign1") oEditor = oDesign.SetActiveEditor("3D Modeler") width = step.Properties["dim/width"].Value height = step.Properties["dim/height"].Value offset = step.Properties["offset/offset"].Value oEditor.CreateRectangle( [ "NAME:RectangleParameters", "IsCovered:=" , True, "XStart:=" , "0mm", "YStart:=" , "0mm", "ZStart:=" , "0mm", "Width:=" , str(width)+"mm", "Height:=" , str(height)+"mm", "WhichAxis:=" , "Z" ], [ "NAME:Attributes", "Name:=" , "Rectangle1", "Flags:=" , "", "Color:=" , "(128 255 255)", "Transparency:=" , 0.800000011920929, "PartCoordinateSystem:=", "Global", "UDMId:=" , "", "MaterialValue:=" , "\"vacuum\"", "SolveInside:=" , True ]) oEditor.DuplicateAlongLine( [ "NAME:Selections", "Selections:=" , "Rectangle1", "NewPartsModelFlag:=" , "Model" ], [ "NAME:DuplicateToAlongLineParameters", "CreateNewObjects:=" , True, "XComponent:=" , "0mm", "YComponent:=" , str(height+offset)+"mm", "ZComponent:=" , "0mm", "NumClones:=" , "2" ], [ "NAME:Options", "DuplicateAssignments:=", False ]) def OnReset1(step): global oProject oDesktop.CloseProject(oProject.GetName()) def OnUpdate2(step): global oDesign oModule = oDesign.GetModule("BoundarySetup") width = step.PreviousStep.Properties["dim/width"].Value height = step.PreviousStep.Properties["dim/height"].Value offset = step.PreviousStep.Properties["offset/offset"].Value resistance = step.Properties["bc/resistance"].Value reactance = step.Properties["bc/reactance"].Value oModule.AssignPerfectE( [ "NAME:PerfE1", "Objects:=" , ["Rectangle1_1","Rectangle1"], "InfGroundPlane:=" , False ]) oEditor = oDesign.SetActiveEditor("3D Modeler") oEditor.CreateRectangle( [ "NAME:RectangleParameters", "IsCovered:=" , True, "XStart:=" , "0mm", "YStart:=" , str(height)+"mm", "ZStart:=" , "0mm", "Width:=" , str(width)+"mm", "Height:=" , str(offset)+"mm", "WhichAxis:=" , "Z" ], [ "NAME:Attributes", "Name:=" , "Rectangle2", "Flags:=" , "", "Color:=" , "(128 255 255)", "Transparency:=" , 0.800000011920929, "PartCoordinateSystem:=", "Global", "UDMId:=" , "", "MaterialValue:=" , "\"vacuum\"", "SolveInside:=" , True ]) oModule.AssignLumpedPort( [ "NAME:1", "Objects:=" , ["Rectangle2"], "RenormalizeAllTerminals:=", True, "DoDeembed:=" , False, [ "NAME:Modes", [ "NAME:Mode1", "ModeNum:=" , 1, "UseIntLine:=" , True, [ "NAME:IntLine", "Start:=" , [str(width/2.)+"mm",str(height)+"mm","0mm"], "End:=" , [str(width/2.)+"mm",str(height+offset)+"mm","0mm"] ], "AlignmentGroup:=" , 0, "CharImp:=" , "Zpi", "RenormImp:=" , "50ohm" ] ], "ShowReporterFilter:=" , False, "ReporterFilter:=" , [True], "FullResistance:=" , str(resistance)+"ohm", "FullReactance:=" , str(reactance)+"ohm" ])