1
2 import empro
3 from empro.toolkit import _printexception
6 import empro
7 if not hasattr(empro.internal.analysis,"sipiEnvironmentStarted"):
8 return
9
12 import empro
13 if isinstance(selection, empro.analysis.SimulationContainer):
14 if selection.getData().isEmpty():
15 empro.gui.MessageBox.critical("Failed to Launch Simulation", "Failed to Launch Simulation.\nReason:\nEmpty Setup",0,0)
16 return
17 analysisType = selection.getData().analysisType
18 saveProject = "save" in nodeclass.lower()
19 waitForConfirmation = True
20 try:
21 if analysisType in [empro.toolkit.analysis.PIDC, empro.toolkit.analysis.THERMAL, empro.toolkit.analysis.ELECTRO_THERMAL]:
22 empro.toolkit.analysis.runDCSimulationFlow(selection.getData(),waitForConfirmation,saveProject)
23 elif analysisType==empro.toolkit.analysis.PIAC:
24 empro.toolkit.analysis.runACSimulationFlow(selection.getData(),waitForConfirmation,saveProject)
25 elif analysisType==empro.toolkit.analysis.PASI:
26 empro.toolkit.analysis.runPASISimulationFlow(selection.getData(),waitForConfirmation,saveProject)
27 elif analysisType==empro.toolkit.analysis.PPR:
28 empro.toolkit.analysis.runPPRSimulationFlow(selection.getData(),waitForConfirmation,saveProject)
29 elif analysisType in [empro.toolkit.analysis.EMFU, empro.toolkit.analysis.EMUD, empro.toolkit.analysis.EMSM, empro.toolkit.analysis.EMFUPE, empro.toolkit.analysis.EMUDPE]:
30 empro.toolkit.analysis.runEMExtractionSimulationFlow(selection.getData(),waitForConfirmation,saveProject)
31 except:
32 import sys
33 import traceback
34 traceback.print_exc()
35 empro.gui.MessageBox.critical("Failed to Launch Simulation", "Failed to Launch Simulation.\nReason:\n{}".format(sys.exc_info()[1]),0,0)
36 elif isinstance(selection, empro.analysis.ResultContainer):
37 resultType = selection.getType()
38 try:
39 if resultType==1:
40 empro.toolkit.analysis.viewVoltage(selection)
41 elif resultType==16:
42 empro.toolkit.analysis.viewTemperature(selection)
43 elif resultType==9:
44 empro.toolkit.analysis.viewCurrent(selection)
45 elif resultType==3:
46 empro.toolkit.analysis.viewPowerDensity(selection)
47 elif resultType==4:
48 empro.toolkit.analysis.viewImpedance([selection.getData()])
49 elif resultType==5:
50 empro.toolkit.analysis.viewSParameters([selection.getData()])
51 elif resultType==7:
52 empro.toolkit.analysis.viewDCOverview(selection.getData())
53 elif resultType==6:
54 empro.toolkit.analysis.generateTestBench(selection.getData())
55 elif resultType in [10,11,12,18]:
56 empro.toolkit.analysis.viewFemField(selection)
57 elif resultType in [13]:
58 empro.toolkit.analysis.generateSubCircuit(selection.getData())
59 elif resultType == 15:
60 empro.toolkit.analysis.viewPPROverview(selection.getData())
61 elif resultType == 17:
62 empro.toolkit.analysis.viewFarField(selection.getData())
63 elif resultType == 20:
64 empro.toolkit.analysis.generateVoltageSpikesTB(selection.getData())
65 elif resultType == 21:
66 empro.toolkit.analysis.generateConductedEmiTB(selection.getData())
67 except RuntimeError:
68 import sys
69 msg = str(sys.exc_info()[1])
70 empro.gui.MessageBox.warning("Failed to perform action", msg, 0, 0)
71
74 import empro
75 if hasattr(empro.internal.analysis,"sipiEnvironmentStarted"):
76 return
77
78 haveWorkflowWidget = False
79
80 empro.internal.analysis.sipiEnvironmentStarted = True
81
82 pl = empro.activeProject.parameters()
83 pl.setFormula("minFreq", "1 kHz")
84 pl.setFormula("maxFreq", "1 GHz")
85 empro.activeProject.displayUnits.setPreference(empro.units.unitByAbbreviation("MHz"))
86 empro.activeProject.displayUnits.setPreference(empro.units.unitByAbbreviation("A/mm**2"))
87
88 empro.activeProject.displayUnits.setPreference(empro.units.unitByAbbreviation("W/m**2"))
89 empro.activeProject.displayUnits.setPreference(empro.units.unitByAbbreviation("W/mm**3"))
90 empro.activeProject.displayUnits.setPreference(empro.units.unitByAbbreviation("MHz"))
91 empro.activeProject.displayUnits.setPreference(empro.units.unitByAbbreviation("ns"))
92
93 import os
94
95
96
97 empro.core.ApplicationPreferences.setPreference("ApplicationStyleName","NoStyle")
98 empro.core.ApplicationPreferences.setPreference("ApplicationButtonLayoutName","NoStyle")
99 empro.core.ApplicationPreferences.setPreference("Geometry/SkyVisible",False)
100 empro.core.ApplicationPreferences.setPreference("Geometry/SmoothViewTransitions",False)
101 empro.core.ApplicationPreferences.setPreference("Geometry/TextColor","#000000")
102 empro.core.ApplicationPreferences.setPreference("ShowTipOfTheDay",False)
103 empro.core.ApplicationPreferences.setPreference("SelectProjectTemplateDialog/ShowOnStartup",False)
104 empro.core.ApplicationPreferences.setPreference("ClearResultsOnProjectLoad",False)
105
106 if hasattr(empro.gui, "activeProjectView"):
107 pv = empro.gui.activeProjectView()
108
109 viewControl = empro.gui.AdvView2()
110
111 dockContainer = empro.gui.DockWidget()
112 dockContainer.objectName = "View"
113 dockContainer.windowTitle = "Visibility"
114 dockContainer.widget = viewControl
115 pv.addDockWidget(1,dockContainer)
116
117 pv.showGeometryView()
118
119
120 appName = getGuiDisplayName()
121 pv.windowTitle = appName
122
123
124 if hasattr(pv,"geometryViewWidget"):
125 gv = empro.gui.activeProjectView().geometryViewWidget()
126 gv.windowTitle = "Layout"
127 gv.windowFlags = gv.windowFlags & (~0x00001000)
128 gv.update()
129 if appName.startswith("(SI"):
130 pv.setWindowIcon(empro.gui.Icon(":/sipi/setup"))
131 elif appName.startswith("(RF"):
132 pv.setWindowIcon(empro.gui.Icon(":/rfpro/setup"))
133 elif appName.startswith("(PE"):
134 pv.setWindowIcon(empro.gui.Icon(":/pepro/setup"))
135 else:
136 pv.setWindowIcon(empro.gui.Icon(":/sipi/setup"))
137 pv.showGeometryView()
138
162
164 _requestAdsToShowHelp(topic="SIPro_PIPro")
165
167 _requestAdsToShowHelp(topic="RFPro")
168
170 _requestAdsToShowHelp(topic="pepromain")
171
173 _requestAdsToShowHelp(topic="view3d")
174
176 import empro.core, xml.dom, xml.dom.minidom
177
178 if not empro.core.CommunicationWithParent.wasActivated():
179 return
180
181 doc = xml.dom.minidom.Document()
182 callElement = doc.appendChild(doc.createElement("call"))
183 callElement.appendChild(doc.createElement("method")).appendChild(doc.createTextNode("showHelp"))
184 if topic is not None:
185 callElement.appendChild(doc.createElement("helpid")).appendChild(doc.createTextNode(topic))
186 empro.core.CommunicationWithParent.rpc().call(doc.toxml())
187