Electronics Desktop Function Definition

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"
        ])