forked from linmingchih/HowtoSim_Script
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathShowSolution.py
72 lines (55 loc) · 2.15 KB
/
ShowSolution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
config='''import os, sys, re, clr
try:
dll_dir='C:/Program Files/AnsysEM/AnsysEM19.3/Win64/common/IronPython/DLLs'
if not os.path.isdir(dll_dir):
raise Exception
except:
m=re.search('(.*Win64)', __file__)
dll_dir=m.group(1)+'/common/IronPython/DLLs'
finally:
sys.path.append(dll_dir)
clr.AddReference('IronPython.Wpf')
import wpf
from System.Windows import Window
os.chdir(os.path.dirname(__file__))
'''
exec(config)
#Code Start-----------------------------------
class solutions():
def __init__(self):
oProject = oDesktop.GetActiveProject()
self.oDesign = oProject.GetActiveDesign()
def getReportType(self):
oModule=self.oDesign.GetModule("ReportSetup")
return oModule.GetAvailableReportTypes()
def getAvailableSolution(self, ReportType):
oModule=self.oDesign.GetModule("ReportSetup")
return oModule.GetAvailableSolutions(ReportType)
def getFrequency(self, Solution):
oModule=self.oDesign.GetModule("Solutions")
return oModule.GetSolveRangeInfo(Solution)
class MyWindow(Window):
def __init__(self, oDesktop):
wpf.LoadComponent(self, 'ShowSolution.xaml')
self.sol=solutions()
self.cb1.ItemsSource=self.sol.getReportType()
self.cb1.SelectedIndex = 0
def cb1_SelectionChanged(self, sender, e):
self.cb2.Items.Clear()
for i in self.sol.getAvailableSolution(self.cb1.SelectedItem):
if 'AdaptivePass' not in i:
self.cb2.Items.Add(i)
self.cb2.SelectedIndex = 0
def cb2_SelectionChanged(self, sender, e):
self.cb3.Items.Clear()
try:
for i in self.sol.getFrequency(self.cb2.SelectedItem):
f='{} GHz'.format(float(i)/1e9)
self.cb3.Items.Add(f)
self.cb3.SelectedIndex = 0
except:
pass
def cb3_SelectionChanged(self, sender, e):
pass
#Code End-------------------------------------
MyWindow(oDesktop).ShowDialog()