@@ -9794,6 +9794,25 @@ def OnAddShell(event):
97949794 G2plt.PlotStructure(G2frame,data)
97959795 wx.CallAfter(FillRigidBodyGrid,True,spnId=rbId)
97969796
9797+ def OnSymSel(event):
9798+ Obj = event.GetEventObject()
9799+ iSh = Indx[Obj.GetId()]
9800+ RBObj['RBsym'][iSh] = Obj.GetValue()
9801+ RBObj['SHC'][iSh] = SetSHCoef(iSh,RBObj['nSH'][iSh])
9802+ G2plt.PlotStructure(G2frame,data)
9803+ wx.CallAfter(FillRigidBodyGrid,True,spnId=rbId)
9804+
9805+ def SetSHCoef(iSh,Order):
9806+ Sytsym = RBObj['SytSym']
9807+ cofNames,cofSgns = G2lat.GenRBCoeff(Sytsym,RBObj['RBsym'][iSh],Order)
9808+ cofTerms = [[0.0,val,False] for val in cofSgns]
9809+ newSHcoef = dict(zip(cofNames,cofTerms))
9810+ SHcoef = RBObj['SHC'][iSh]
9811+ for cofName in SHcoef: #transfer old values to new set
9812+ if cofName in newSHcoef:
9813+ newSHcoef[cofName] = SHcoef[cofName]
9814+ return newSHcoef
9815+
97979816 def SHsizer():
97989817 def OnSHOrder(event):
97999818 Obj = event.GetEventObject()
@@ -9803,17 +9822,6 @@ def OnSHOrder(event):
98039822 G2plt.PlotStructure(G2frame,data)
98049823 wx.CallAfter(FillRigidBodyGrid,True,spnId=rbId)
98059824
9806- def SetSHCoef(iSh,Order):
9807- Sytsym = RBObj['SytSym']
9808- cofNames,cofSgns = G2lat.GenRBCoeff(Sytsym,RBObj['RBsym'][iSh],Order)
9809- cofTerms = [[0.0,val,False] for val in cofSgns]
9810- newSHcoef = dict(zip(cofNames,cofTerms))
9811- SHcoef = RBObj['SHC'][iSh]
9812- for cofName in SHcoef: #transfer old values to new set
9813- if cofName in newSHcoef:
9814- newSHcoef[cofName] = SHcoef[cofName]
9815- return newSHcoef
9816-
98179825 def OnSchRef(event):
98189826 Obj = event.GetEventObject()
98199827 iSh,name = Indx[Obj.GetId()]
@@ -9849,8 +9857,13 @@ def OnDelShell(event):
98499857 RBObj['atColor'][iSh] = G2elem.GetAtomInfo(RBObj['atType'][iSh])['Color'] #correct atom color for shell
98509858 if iSh:
98519859 subLine = wx.BoxSizer(wx.HORIZONTAL)
9852- subLine.Add(wx.StaticText(RigidBodies,label='Shell %d: Name: %s Atom type: %s RB sym: %s ' \
9853- %(iSh,RBObj['RBname'][iSh],RBObj['atType'][iSh],RBObj['RBsym'][iSh])),0,WACV)
9860+ subLine.Add(wx.StaticText(RigidBodies,label='Shell %d: Name: %s Atom type: %s RB sym: ' \
9861+ %(iSh,RBObj['RBname'][iSh],RBObj['atType'][iSh])),0,WACV)
9862+ simsel = wx.ComboBox(RigidBodies,choices=symchoice,value=RBObj['RBsym'][iSh],
9863+ style=wx.CB_READONLY|wx.CB_DROPDOWN)
9864+ Indx[simsel.GetId()] = iSh
9865+ simsel.Bind(wx.EVT_COMBOBOX,OnSymSel)
9866+ subLine.Add(simsel,0,WACV)
98549867 delShell = wx.Button(RigidBodies,label='Delete shell',style=wx.BU_EXACTFIT)
98559868 Indx[delShell.GetId()] = iSh
98569869 delShell.Bind(wx.EVT_BUTTON,OnDelShell)
@@ -9916,6 +9929,8 @@ def OnFadeShell(event):
99169929 RBObj['fadeSh'] = not RBObj['fadeSh']
99179930 G2plt.PlotStructure(G2frame,data)
99189931
9932+ symchoice = ['53m','m3m','-43m','6/mmm','-6m2','-3m','3m','32','-3','3','4/mmm','-42m',
9933+ 'mmm','2/m','2','m','-1','1']
99199934 RBObj['hide'] = RBObj.get('hide',[False for i in range(len(RBObj['atType']))])
99209935 rbId = RBObj['RBId'][0]
99219936 atId = RBObj['Ids'][0]
@@ -9926,6 +9941,11 @@ def OnFadeShell(event):
99269941 topLine = wx.BoxSizer(wx.HORIZONTAL)
99279942 topLine.Add(wx.StaticText(RigidBodies,label='Shell 0: Name: %s Atom name: %s Atom type: %s RB sym: %s '%
99289943 (RBObj['RBname'][0],atName,RBObj['atType'][0],RBObj['RBsym'][0])),0,WACV)
9944+ simsel = wx.ComboBox(RigidBodies,choices=symchoice,value=RBObj['RBsym'][0],
9945+ style=wx.CB_READONLY|wx.CB_DROPDOWN)
9946+ Indx[simsel.GetId()] = 0
9947+ simsel.Bind(wx.EVT_COMBOBOX,OnSymSel)
9948+ topLine.Add(simsel,0,WACV)
99299949 rbId = RBObj['RBId']
99309950 if len(RBObj['nSH']) == 1:
99319951 delRB = wx.Button(RigidBodies,wx.ID_ANY,'Delete',style=wx.BU_EXACTFIT)
0 commit comments