Changeset 3054
- Timestamp:
- Sep 7, 2017 4:13:57 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIconstrGUI.py
r3000 r3054 1505 1505 break 1506 1506 items = txtStr.split() 1507 rbXYZ = np.array(rbXYZ)-np.array(rbXYZ[0]) 1508 data['Residue'][rbId] = {'RBname':'UNKRB','rbXYZ':rbXYZ,'rbTypes':rbTypes, 1509 'atNames':atNames,'rbRef':[0,1,2,False],'rbSeq':[],'SelSeq':[0,0],'useCount':0} 1510 data['RBIds']['Residue'].append(rbId) 1511 print 'Rigid body UNKRB added' 1507 if len(atNames) < 3: 1508 G2G.G2MessageBox(G2frame,'Not enough atoms in rigid body; must be 3 or more') 1509 else: 1510 rbXYZ = np.array(rbXYZ)-np.array(rbXYZ[0]) 1511 data['Residue'][rbId] = {'RBname':'UNKRB','rbXYZ':rbXYZ,'rbTypes':rbTypes, 1512 'atNames':atNames,'rbRef':[0,1,2,False],'rbSeq':[],'SelSeq':[0,0],'useCount':0} 1513 data['RBIds']['Residue'].append(rbId) 1514 print 'Rigid body UNKRB added' 1512 1515 text.close() 1513 1516 UpdateResidueRB() … … 1524 1527 IndB = ma.nonzero(ma.masked_greater(dist-0.85*sumR,0.)) 1525 1528 for j in IndB[0]: 1526 if j != Orig :1529 if j != Orig and atTypes[j] != 'H': 1527 1530 Neigh.append(atNames[j]) 1528 1531 return Neigh … … 1827 1830 wx.CallAfter(UpdateResidueRB) 1828 1831 1832 def OnStripH(event): 1833 Obj = event.GetEventObject() 1834 rbId = Indx[Obj.GetId()] 1835 if rbId in data['Residue']: 1836 newNames = [] 1837 newTypes = [] 1838 newXYZ = [] 1839 for i,atype in enumerate(rbData['rbTypes']): 1840 if atype != 'H': 1841 newNames.append(rbData['atNames'][i]) 1842 newTypes.append(rbData['rbTypes'][i]) 1843 newXYZ.append(rbData['rbXYZ'][i]) 1844 rbData['atNames'] = newNames 1845 rbData['rbTypes'] = newTypes 1846 rbData['rbXYZ'] = newXYZ 1847 wx.CallAfter(UpdateResidueRB) 1848 1829 1849 def OnPlotRB(event): 1830 1850 Obj = event.GetEventObject() … … 1851 1871 delRB.Bind(wx.EVT_CHECKBOX,OnDelRB) 1852 1872 nameSizer.Add(delRB,0,wx.ALIGN_CENTER_VERTICAL) 1873 if 'H' in rbData['rbTypes']: 1874 stripH = wx.CheckBox(ResidueRBDisplay,-1,'Strip H-atoms?') 1875 Indx[stripH.GetId()] = rbId 1876 stripH.Bind(wx.EVT_CHECKBOX,OnStripH) 1877 nameSizer.Add(stripH,0,wx.ALIGN_CENTER_VERTICAL) 1853 1878 return nameSizer 1854 1879 … … 1891 1916 sel = Obj.GetValue() 1892 1917 ind = atNames.index(sel) 1918 if rbData['rbTypes'][ind] == 'H': 1919 G2G.G2MessageBox(G2frame,'You should not select an H-atom for rigid body orientation') 1893 1920 rbData['rbRef'][iref] = ind 1894 1921 FillRefChoice(rbId,rbData) … … 1940 1967 if rbData['rbRef'][3] or rbData['useCount']: 1941 1968 refAtmSizer.Add(wx.StaticText(ResidueRBDisplay,-1, 1942 'Orientation reference atoms A-B-C: %s, %s, %s'%(atNames[rbRef[0]], \1969 'Orientation reference non-H atoms A-B-C: %s, %s, %s'%(atNames[rbRef[0]], \ 1943 1970 atNames[rbRef[1]],atNames[rbRef[2]])),0) 1944 1971 else: 1945 1972 refAtmSizer.Add(wx.StaticText(ResidueRBDisplay,-1, 1946 'Orientation reference atoms A-B-C: '),0,wx.ALIGN_CENTER_VERTICAL)1973 'Orientation reference non-H atoms A-B-C: '),0,wx.ALIGN_CENTER_VERTICAL) 1947 1974 refObj = [0,0,0] 1948 1975 for i in range(3): … … 2063 2090 for rbId in data['RBIds']['Residue']: 2064 2091 rbData = data['Residue'][rbId] 2092 if len(rbData['rbXYZ']) < 3: #patch - skip around bad RBs with too few atoms 2093 continue 2065 2094 FillRefChoice(rbId,rbData) 2066 2095 ResidueRBSizer.Add(rbNameSizer(rbId,rbData),0) -
trunk/GSASIIphsGUI.py
r3048 r3054 7650 7650 resultsSizer.Add(resultsGrid,0,wx.EXPAND) 7651 7651 return resultsSizer 7652 7653 def OnSelect(event): 7654 rbId = rbids[select.GetSelection()] 7655 wx.CallLater(100,RepaintRBInfo,rbId) 7656 7657 def RepaintRBInfo(rbId,Scroll=0): 7658 oldFocus = wx.Window.FindFocus() 7659 G2frame.bottomSizer.DeleteWindows() 7660 Indx.clear() 7661 rbObj = data['MCSA']['Models'][rbId] 7662 G2frame.bottomSizer.Insert(0,rbSizer(rbObj)) 7663 mainSizer.Layout() 7664 G2frame.dataWindow.Refresh() 7665 G2frame.dataWindow.SendSizeEvent() 7666 wx.CallAfter(oldFocus.SetFocus) 7652 7667 7653 7668 # UpdateMCSA executable code starts here … … 7675 7690 mainSizer.Add(wx.StaticText(G2frame.MCSA,-1,'MC/SA models:'),0,WACV) 7676 7691 mainSizer.Add((5,5),0) 7677 for model in data['MCSA']['Models']: 7678 Xsize = 500 7692 rbNames = [] 7693 rbids = [] 7694 for im,model in enumerate(data['MCSA']['Models']): 7679 7695 if model['Type'] == 'MD': 7680 7696 mainSizer.Add(MDSizer(model)) … … 7682 7698 Asizer = atomSizer(model) 7683 7699 mainSizer.Add(Asizer) 7684 Xsize = max(Asizer.GetMinSize()[0],Xsize)7685 7700 else: 7686 Rsizer = rbSizer(model) 7687 mainSizer.Add(Rsizer) 7688 Xsize = max(Rsizer.GetMinSize()[0],Xsize) 7689 G2G.HorizontalLine(mainSizer,G2frame.MCSA) 7701 rbNames.append(model['name']) 7702 rbids.append(im) 7703 G2G.HorizontalLine(mainSizer,G2frame.MCSA) 7704 if len(rbNames): 7705 rbName = rbNames[0] 7706 select = wx.ListBox(G2frame.MCSA,choices=rbNames,style=wx.LB_SINGLE,size=(-1,65)) 7707 select.SetSelection(rbNames.index(rbName)) 7708 select.SetFirstItem(rbNames.index(rbName)) 7709 select.Bind(wx.EVT_LISTBOX,OnSelect) 7710 mainSizer.Add(select,0,WACV) 7711 G2frame.bottomSizer = wx.BoxSizer(wx.VERTICAL) 7712 G2frame.bottomSizer.Add(rbSizer(data['MCSA']['Models'][rbids[0]])) 7713 mainSizer.Add(G2frame.bottomSizer) 7690 7714 7691 7715 if not data['MCSA']['Results']: -
trunk/GSASIIstrIO.py
r3046 r3054 1883 1883 SGData = General['SGData'] 1884 1884 Atoms = Phase['Atoms'] 1885 AtLookup = [] 1885 1886 if Atoms and not General.get('doPawley'): 1886 1887 cx,ct,cs,cia = General['AtomPtrs']
Note: See TracChangeset
for help on using the changeset viewer.