Changeset 164


Ignore:
Timestamp:
Oct 18, 2010 1:25:18 PM (12 years ago)
Author:
vondreele
Message:

more parameters

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r163 r164  
    267267        if pltNum >= 0:                         #to avoid the startup with no plot!
    268268            pltPage = self.G2plotNB.nb.GetPage(pltNum)
    269 #            pltPlot = pltPage.figure.gca()
    270269            pltPlot = pltPage.figure
    271270        item = event.GetItem()
     
    302301                    DataType = DataType.strip()[0:3]                                #just 1st 3 chars
    303302                    wx.BeginBusyCursor()
     303                    Sample = {'Scale':[1.0,True],'Type':'Debye-Scherrer','Absorption':[0.0,False],'DisplaceX':[0.0,False],
     304                        'DisplaceY':[0.0,False],'Diffuse':[]}
    304305                    try:
    305306                        for Item in Data:
     
    342343                                codes.extend([0,0,0,0,0,0,0])
    343344                            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),[tuple(data),data,codes,names])
     345                            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Sample Parameters'),Sample)
    344346                            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Peak List'),[])
    345347                            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[])
     
    680682                        Id = self.PatternTree.AppendItem(parent=self.root,text=outname)
    681683                    if Id:
     684                        Sample = {'Scale':[1.0,True],'Type':'Debye-Scherrer','Absorption':[0.0,False],'DisplaceX':[0.0,False],
     685                            'DisplaceY':[0.0,False],'Diffuse':[]}
    682686                        self.PatternTree.SetItemPyData(Id,[[''],[Xsum,Ysum,Wsum,YCsum,YBsum,YDsum]])
    683687                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),Comments)                   
     
    685689                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Background'),[['chebyschev',1,3,1.0,0.0,0.0]])
    686690                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),Inst)
     691                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Sample Parameters'),Sample)
    687692                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Peak List'),[])
    688693                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[])
  • trunk/GSASIIIO.py

    r163 r164  
    88import cPickle
    99import sys
     10import random as ran
    1011import GSASIIpath
    1112import GSASIIgrid as G2gd
     13import GSASIIspc as G2spc
     14import GSASIIlattice as G2lat
     15import GSASIIElem as G2el
    1216import os.path as ospath
    1317
     
    732736        Y = self.Integrate[0][i]
    733737        W = np.sqrt(Y)
     738        Sample = {'Scale':[1.0,True],'Type':'Debye-Scherrer','Absorption':[0.0,False],'DisplaceX':[0.0,False],
     739            'DisplaceY':[0.0,False],'Diffuse':[]}
    734740        if Id:
    735741            self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id, 'Comments'),Comments)                   
     
    737743            self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Background'),[['chebyschev',1,3,1.0,0.0,0.0]])
    738744            self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Instrument Parameters'),[tuple(parms),parms,codes,names])
     745            self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Sample Parameters'),Sample)
    739746            self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Peak List'),[])
    740747            self.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(self,Id,'Index Peak List'),[])
     
    746753            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Background'),[['chebyschev',1,3,1.0,0.0,0.0]])
    747754            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),[tuple(parms),parms,codes,names])
     755            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(self,Id,'Sample Parameters'),Sample)
    748756            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Peak List'),[])
    749757            self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[])
     
    845853   
    846854def ReadEXPPhase(self,filename):
    847     import GSASIIspc as G2spc
    848     import GSASIIlattice as G2lat
    849     import GSASIIElem as G2el
    850855    file = open(filename, 'Ur')
    851856    Phase = {}
     
    915920                    XYZ = Atom[3:6]
    916921                    Atom[7],Atom[8] = G2spc.SytSym(XYZ,SGData)
     922                    Atom.append(ran.randint(0,sys.maxint))
    917923                    Atoms.append(Atom)
    918924    elif Ptype == 'macromolecular':
     
    926932                XYZ = Atom[6:9]
    927933                Atom[10],Atom[11] = G2spc.SytSym(XYZ,SGData)
     934                Atom.append(ran.randint(0,sys.maxint))
    928935                Atoms.append(Atom)
    929936    Volume = G2lat.calc_V(G2lat.cell2A(abc+angles))
     
    936943       
    937944def ReadPDBPhase(filename):
    938     import GSASIIspc as G2spc
    939     import GSASIIlattice as G2lat
    940     import GSASIIElem as G2el
    941945    EightPiSq = 8.*math.pi**2
    942946    file = open(filename, 'Ur')
     
    988992                Atom[12] = 'A'
    989993                S = file.readline()
     994            Atom.append(ran.randint(0,sys.maxint))
    990995            Atoms.append(Atom)
    991996        else:           
  • trunk/GSASIIgrid.py

    r163 r164  
    234234    def setSizePosLeft(self,Width):
    235235        screenSize = wx.DisplaySize()
     236        Width[1] = min(Width[1],screenSize[1]-300)
    236237        self.SetSize(Width)
    237238        self.SetPosition(wx.Point(screenSize[0]-Width[0],250))
     
    622623        G2pdG.UpdateInstrumentGrid(self,data)
    623624        G2plt.PlotPeakWidths(self)
     625    elif self.PatternTree.GetItemText(item) == 'Sample Parameters':
     626        self.PatternId = self.PatternTree.GetItemParent(item)
     627        self.PickId = item
     628        data = self.PatternTree.GetItemPyData(item)
     629        G2pdG.UpdateSampleGrid(self,data)
     630        G2plt.PlotPatterns(self)
    624631    elif self.PatternTree.GetItemText(item) == 'Index Peak List':
    625632        self.PatternId = self.PatternTree.GetItemParent(item)
  • trunk/GSASIIlattice.py

    r162 r164  
    3131    else:
    3232        return np.array([[1,0,0],[0,cosd(angle),-sind(angle)],[0,sind(angle),cosd(angle)]])
    33 
     33       
     34def rotdMat4(angle,axis=0):
     35    '''Prepare rotation matrix for angle in degrees about axis(=0,1,2) with scaling for OpenGL
     36    Returns numpy 4,4 array
     37    '''
     38    Mat = rotdMat(angle,axis)
     39    return np.concatenate((np.concatenate((Mat,[[0],[0],[0]]),axis=1),[[0,0,0,1],]),axis=0)
     40   
    3441def fillgmat(cell):
    3542    '''Compute lattice metric tensor from unit cell constants
  • trunk/GSASIIphsGUI.py

    r163 r164  
    66import copy
    77import time
     8import sys
     9import random as ran
    810import cPickle
    911import GSASIIpath
     
    3234        self.SGData = SGData
    3335        self.New = New
    34         self.OpSelected = [0,0,0,0,0,0]
     36        self.OpSelected = [0,0,0,[0,0,0],False]
    3537        mainSizer = wx.BoxSizer(wx.VERTICAL)
    3638        mainSizer.Add((5,5),0)
     
    9698
    9799    def OnOpSelect(self,event):
    98         self.OpSelected = [0,0,0,[]]
    99100        if self.SGData['SGInv']:
    100101            self.OpSelected[0] = self.inv.GetSelection()
     
    103104        self.OpSelected[2] = self.oprs.GetSelection()
    104105        for i in range(3):
    105             self.OpSelected[3].append(float(self.cell[i].GetValue()))
     106            self.OpSelected[3][i] = float(self.cell[i].GetValue())
    106107        if self.New:
    107             self.OpSelected.append(self.new.GetSelection())
     108            self.OpSelected[4] = self.new.GetSelection()
    108109
    109110    def GetSelection(self):
     
    222223                Text += line+'\n'
    223224            wx.MessageBox(Text,caption=msg,style=Style)
    224             dataDisplay.Destroy()           #needed to clear away bad cellSizer, etc.
     225            dataDisplay.DestroyChildren()           #needed to clear away bad cellSizer, etc.
    225226            UpdateGeneral()
    226227           
     
    596597                        Atoms.SetCellValue(r,c,parms)
    597598            elif Atoms.GetColLabelValue(c) in ['Name']:
    598                 atomData[r][c] = Atoms.GetCellValue(r,c)
     599                value = Atoms.GetCellValue(r,c)
     600                atomData[r][c] = value
     601                ID = [atomData[r][-1],]
     602                if 'Atoms' in data['Drawing']:
     603                    DrawAtomsReplaceByIDs(data['Drawing'],atomData[r],ID)
    599604            elif Atoms.GetColLabelValue(c) in ['x','y','z']:
    600605                atomData[r][c] = float(Atoms.GetCellValue(r,c))
     
    705710                SetupGeneral()
    706711                FillAtomsGrid()
     712                value = Atoms.GetCellValue(r,c)
     713                atomData[r][c] = value
     714                ID = [atomData[r][-1],]
     715                if 'Atoms' in data['Drawing']:
     716                    DrawAtomsReplaceByIDs(data['Drawing'],atomData[r],ID)
    707717            else:
    708718                event.Skip()
     
    768778        generalData = data['General']
    769779        Ncol = Atoms.GetNumberCols()
     780        atId = ran.randint(0,sys.maxint)
    770781        E,SGData = G2spc.SpcGroup(generalData['SGData']['SpGrp'])
    771782        Sytsym,Mult = G2spc.SytSym([x,y,z],SGData)
    772783        if generalData['Type'] == 'macromolecular':
    773             atomData.append([0,'UNK','','UNK','H','',x,y,z,1,Sytsym,Mult,'I',0.10,0,0,0,0,0,0])
     784            atomData.append([0,'UNK','','UNK','H','',x,y,z,1,Sytsym,Mult,'I',0.10,0,0,0,0,0,0,atId])
    774785        elif generalData['Type'] == 'nuclear':
    775             atomData.append(['UNK','H','',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0])
     786            atomData.append(['UNK','H','',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId])
    776787        elif generalData['Type'] == 'magnetic':
    777             atomData.append(['UNK','H','',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,0,0,0])
     788            atomData.append(['UNK','H','',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,0,0,0,atId])
    778789        SetupGeneral()
     790        if 'Drawing' in data:           
     791            DrawAtomAdd(data['Drawing'],atomData[-1])
     792            G2plt.PlotStructure(self,data)
    779793
    780794    def OnAtomInsert(event):
     
    784798       
    785799    def OnAtomTestInsert(event):
    786         try:
     800        if 'Drawing' in data:
    787801            drawData = data['Drawing']
    788802            x,y,z = drawData['testPos']
    789803            AtomAdd(x,y,z)
    790         except:
    791             AtomAdd(0,0,0)
    792         FillAtomsGrid()
     804            FillAtomsGrid()
    793805        event.StopPropagation()
    794806           
     
    802814            E,SGData = G2spc.SpcGroup(generalData['SGData']['SpGrp'])
    803815            Sytsym,Mult = G2spc.SytSym([0,0,0],SGData)
     816            atId = ran.randint(0,sys.maxint)
    804817            if generalData['Type'] == 'macromolecular':
    805                 atomData.insert(indx,[0,'UNK','','UNK','UNK','',x,y,z,1,Sytsym,Mult,'I',0.10,0,0,0,0,0,0])
     818                atomData.insert(indx,[0,'UNK','','UNK','UNK','',x,y,z,1,Sytsym,Mult,'I',0.10,0,0,0,0,0,0,atId])
    806819            elif generalData['Type'] == 'nuclear':
    807                 atomData.insert(indx,['UNK','UNK','',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0])
     820                atomData.insert(indx,['UNK','UNK','',x,y,z,1,Sytsym,Mult,'I',0.01,0,0,0,0,0,0,atId])
    808821            elif generalData['Type'] == 'magnetic':
    809                 atomData.insert(indx,['UNK','UNK','',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,0,0,0])
     822                atomData.insert(indx,['UNK','UNK','',x,y,z,1,Sytsym,Mult,0,'I',0.01,0,0,0,0,0,0,0,0,0,atId])
    810823            SetupGeneral()
    811824
    812825    def AtomDelete(event):
    813826        indx = Atoms.GetSelectedRows()
     827        IDs = []
    814828        if indx:
    815829            atomData = data['Atoms']
     
    817831            for ind in indx:
    818832                atom = atomData[ind]
     833                IDs.append(atom[-1])
    819834                del atomData[ind]
    820             FillAtomsGrid()
     835            if 'Atoms' in data['Drawing']:
     836                DrawAtomsDeleteByIDs(IDs)
     837                FillAtomsGrid()
     838                G2plt.PlotStructure(self,data)
    821839        event.StopPropagation()
    822840
     
    868886                    cent = SGData['SGCen'][Cent]
    869887                    M,T = SGData['SGOps'][Opr]
    870                     print M,T
    871888                    for ind in indx:
    872889                        XYZ = np.array(atomData[ind][cx:cx+3])
     
    917934            drawingData = copy.copy(defaultDrawing)
    918935            drawingData['Atoms'] = []
     936        cx,ct,cs = [0,0,0]
     937        if generalData['Type'] == 'nuclear':
     938            cx,ct,cs = [2,1,6]         #x, type & style
     939        elif generalData['Type'] == 'macromolecular':
     940            cx,ct,cs = [5,4,9]         #x, type & style
     941        elif generalData['Type'] == 'magnetic':
     942            cx,ct,cs = [2,1,6]         #x, type & style
     943#        elif generalData['Type'] == 'modulated':
     944#           ?????   for future
    919945        if not drawingData['Atoms']:
    920946            for atom in atomData:
    921                 if generalData['Type'] == 'nuclear':
    922                     atomInfo = [atom[:2]+atom[3:6]+['1',]+['vdW balls',]+
    923                         ['',]+[[255,255,255],]+atom[9:17]+[[]]][0]
    924                     cx,ct,cs = [2,1,6]         #x, type & style
    925                 elif generalData['Type'] == 'macromolecular':
    926                     try:
    927                         oneLetter = AA3letter.index(atom[1])
    928                     except ValueError:
    929                         oneLetter = -1
    930                     atomInfo = [[atom[1].strip()+atom[0],]+
    931                         [AA1letter[oneLetter]+atom[0],]+atom[2:5]+
    932                         atom[6:9]+['1',]+['sticks',]+['',]+[[255,255,255],]+atom[12:20]+[[]]][0]
    933                     cx,ct,cs = [5,4,9]         #x, type & style
    934                 elif generalData['Type'] == 'magnetic':
    935                     atomData = [atom[:2]+atom[3:6]+['vdW balls',]+['',]+atom[9:20]+[[]]][0]
    936                     cx,ct,cs = [2,1,6]         #x, type & style
    937 #                elif generalData['Type'] == 'modulated':
    938 #                   ?????   for future
    939                 atNum = generalData['AtomTypes'].index(atom[ct])
    940                 atomInfo[cs+2] = list(generalData['Color'][atNum])
    941                 drawingData['Atoms'].append(atomInfo)
     947                DrawAtomAdd(drawingData,atom)
    942948            drawingData['atomPtrs'] = [cx,ct,cs]
    943949            data['Drawing'] = drawingData
    944 
     950           
     951    def MakeDrawAtom(atom,oldatom=None):
     952        AA3letter = ['ALA','ARG','ASN','ASP','CYS','GLN','GLU','GLY','HIS','ILE',
     953            'LEU','LYS','MET','PHE','PRO','SER','THR','TRP','TYR','VAL','MSE','HOH','WAT','UNK']
     954        AA1letter = ['A','R','N','D','C','Q','E','G','H','I',
     955            'L','K','M','F','P','S','T','W','Y','V','M',' ',' ',' ']
     956        generalData = data['General']
     957        if generalData['Type'] == 'nuclear':
     958            if oldatom:
     959                atomInfo = [atom[:2]+oldatom[2:]][0]
     960            else:
     961                atomInfo = [atom[:2]+atom[3:6]+['1',]+['vdW balls',]+
     962                    ['',]+[[255,255,255],]+atom[9:]+[[]]][0]
     963            ct,cs = [1,8]         #type & color
     964        elif generalData['Type'] == 'macromolecular':
     965            try:
     966                oneLetter = AA3letter.index(atom[1])
     967            except ValueError:
     968                oneLetter = -1
     969            atomInfo = [[atom[1].strip()+atom[0],]+
     970                [AA1letter[oneLetter]+atom[0],]+atom[2:5]+
     971                atom[6:9]+['1',]+['sticks',]+['',]+[[255,255,255],]+atom[12:]+[[]]][0]
     972            ct,cs = [4,11]         #type & color
     973        elif generalData['Type'] == 'magnetic':
     974            if oldatom:
     975                atomInfo = [atom[:2]+oldatom[3:]][0]
     976            else:
     977                atomInfo = [atom[:2]+atom[3:6]+['vdW balls',]+['',]+atom[9:]+[[]]][0]
     978            ct,cs = [1,8]         #type & color
     979#        elif generalData['Type'] == 'modulated':
     980#           ?????   for future
     981        atNum = generalData['AtomTypes'].index(atom[ct])
     982        atomInfo[cs] = list(generalData['Color'][atNum])
     983        return atomInfo
     984           
     985    def DrawAtomAdd(drawingData,atom):
     986        drawingData['Atoms'].append(MakeDrawAtom(atom))
     987       
     988    def DrawAtomsReplaceByIDs(drawingData,atom,IDs):
     989        atomData = drawingData['Atoms']
     990        indx = FindAtomIndexByIDs(atomData,IDs)
     991        for ind in indx:
     992            atomData[ind] = MakeDrawAtom(atom,atomData[ind])
     993           
    945994    def UpdateDrawAtoms():
    946995        generalData = data['General']
     
    11321181                drawAtoms.SetColAttr(c,attr)
    11331182        self.dataFrame.setSizePosLeft([600,300])
     1183       
    11341184        FindBonds()
    11351185        G2plt.PlotStructure(self,data)
     
    12321282            try:
    12331283                if dlg.ShowModal() == wx.ID_OK:
    1234                     Inv,Cent,Opr,Cell = dlg.GetSelection()
     1284                    Inv,Cent,Opr,Cell,New = dlg.GetSelection()
    12351285                    Cell = np.array(Cell)
    12361286                    cent = SGData['SGCen'][Cent]
     
    12741324            try:
    12751325                if dlg.ShowModal() == wx.ID_OK:
    1276                     Inv,Cent,Opr,Cell = dlg.GetSelection()
     1326                    Inv,Cent,Opr,Cell,New = dlg.GetSelection()
    12771327                    Cell = np.array(Cell)
    12781328                    cent = SGData['SGCen'][Cent]
     
    13361386            data['Drawing']['Atoms'] = atomData
    13371387            UpdateDrawAtoms()
    1338             FindBonds()
    13391388            G2plt.PlotStructure(self,data)
    13401389           
     
    14181467        import numpy.ma as ma
    14191468        cx,ct,cs = data['Drawing']['atomPtrs']
     1469        hydro = data['Drawing']['showHydrogen']
    14201470        atomData = data['Drawing']['Atoms']
    14211471        generalData = data['General']
     
    14321482        Indx = range(len(atomData))
    14331483        Atoms = []
    1434         Types = []
     1484        Styles = []
    14351485        Radii = []
    14361486        for atom in atomData:
    14371487            Atoms.append(np.array(atom[cx:cx+3]))
    1438             Types.append(atom[cs])
    1439             Radii.append(radii[atomTypes.index(atom[ct])])
     1488            Styles.append(atom[cs])
     1489            try:
     1490                if not hydro and atom[ct] == 'H':
     1491                    Radii.append(0.0)
     1492                else:
     1493                    Radii.append(radii[atomTypes.index(atom[ct])])
     1494            except ValueError:          #changed atom type!
     1495                Radii.append(0.20)
    14401496        Atoms = np.array(Atoms)
    14411497        Radii = np.array(Radii)
    1442         IATR = zip(Indx,Atoms,Types,Radii)
    1443         for atomA in IATR:
     1498        IASR = zip(Indx,Atoms,Styles,Radii)
     1499        for atomA in IASR:
    14441500            if atomA[2] in ['lines','sticks','ellipsoids','balls & sticks','polyhedra']:
    14451501                Dx = Atoms-atomA[1]
     
    14501506                for j in IndB[0]:
    14511507                    if j > i:
    1452                         if Types[i] == 'polyhedra':
     1508                        if Styles[i] == 'polyhedra':
    14531509                            atomData[i][-1].append(np.inner(Amat,Dx[j]))
    1454                         elif Types[j] != 'polyhedra':
     1510                        elif Styles[j] != 'polyhedra':
    14551511                            atomData[i][-1].append(Dx[j]*Radii[i]/sumR[j])
    14561512                            atomData[j][-1].append(-Dx[j]*Radii[j]/sumR[j])
     
    14631519            indx.reverse()
    14641520            for ind in indx:
    1465                 atom = atomData[ind]
    14661521                del atomData[ind]
    14671522            UpdateDrawAtoms()
    14681523            G2plt.PlotStructure(self,data)
    14691524        event.StopPropagation()
    1470 
     1525       
     1526    def FindAtomIndexByIDs(atomData,IDs):
     1527        indx = []
     1528        for i,atom in enumerate(atomData):
     1529            if atom[-2] in IDs:
     1530                indx.append(i)
     1531        return indx
     1532       
     1533    def DrawAtomsDeleteByIDs(IDs):
     1534        atomData = data['Drawing']['Atoms']
     1535        indx = FindAtomIndexByIDs(atomData,IDs)
     1536        indx.reverse()
     1537        for ind in indx:
     1538            del atomData[ind]
     1539           
     1540    def ChangeDrawAtomsByIDs(colName,IDs,value):
     1541        atomData = data['Drawing']['Atoms']
     1542        cx,ct,cs = data['Drawing']['atomPtrs']
     1543        if colName == 'Name':
     1544            col = ct-1
     1545        elif colName == 'Type':
     1546            col = ct
     1547        elif colName == 'I/A':
     1548            col = cs
     1549        indx = FindAtomIndexByIDs(atomData,IDs)
     1550        for ind in indx:
     1551            atomData[ind][col] = value
     1552               
    14711553    def UpdateDrawOptions():
    14721554        import copy
     
    15311613        def OnShowHyd(event):
    15321614            drawingData['showHydrogen'] = showHydrogen.GetValue()
     1615            FindBonds()
    15331616            G2plt.PlotStructure(self,data)
    15341617
     
    16791762        Indx = {}
    16801763       
     1764        def OnShowData(event):
     1765            Obj = event.GetEventObject()
     1766            hist = Indx[Obj.GetId()]
     1767            UseList[hist]['Show'] = Obj.GetValue()
     1768            UpdateDData()
     1769       
    16811770        def OnScaleRef(event):
    16821771            Obj = event.GetEventObject()
     
    17181807            Obj = event.GetEventObject()
    17191808            hist,pid = Indx[Obj.GetId()]
     1809            axis = np.array(UseList[hist]['Size'][3])
    17201810            UseList[hist]['Size'][3][pid] = Obj.GetValue()
    1721            
     1811            new = np.array(UseList[hist]['Size'][3])
     1812            if not np.any(new):
     1813                UseList[hist]['Size'][3] += new-axis
     1814            Obj.SetValue(UseList[hist]['Size'][3][pid])
     1815                       
    17221816        def OnStrainType(event):
    17231817            Obj = event.GetEventObject()
     
    17361830            try:
    17371831                strain = float(Obj.GetValue())
    1738                 if strain > 0:
     1832                if strain >= 0:
    17391833                    UseList[hist]['Mustrain'][1][pid] = strain
    17401834            except ValueError:
     
    17451839            Obj = event.GetEventObject()
    17461840            hist,pid = Indx[Obj.GetId()]
     1841            axis = np.array(UseList[hist]['Mustrain'][3])
    17471842            UseList[hist]['Mustrain'][3][pid] = Obj.GetValue()
    1748        
     1843            new = np.array(UseList[hist]['Mustrain'][3])
     1844            if not np.any(new):
     1845                UseList[hist]['Mustrain'][3] += new-axis
     1846            Obj.SetValue(UseList[hist]['Mustrain'][3][pid])
     1847
     1848        def OnMDRef(event):
     1849            Obj = event.GetEventObject()
     1850            hist = Indx[Obj.GetId()]
     1851            UseList[hist]['MDtexture'][1][pid] = Obj.GetValue()
     1852           
     1853        def OnMDVal(event):
     1854            Obj = event.GetEventObject()
     1855            hist = Indx[Obj.GetId()]
     1856            try:
     1857                mdVal = float(Obj.GetValue())
     1858                if mdVal > 0:
     1859                    UseList[hist]['MDtexture'][0] = mdVal
     1860            except ValueError:
     1861                pass
     1862            Obj.SetValue("%.3f"%(UseList[hist]['MDtexture'][0]))          #reset in case of error
     1863           
     1864        def OnMDAxis(event):
     1865            Obj = event.GetEventObject()
     1866            hist,pid = Indx[Obj.GetId()]
     1867            axis = np.array(UseList[hist]['MDtexture'][2])
     1868            UseList[hist]['MDtexture'][2][pid] = Obj.GetValue()
     1869            new = np.array(UseList[hist]['MDtexture'][2])
     1870            if not np.any(new):
     1871                UseList[hist]['MDtexture'][2] += new-axis
     1872            Obj.SetValue(UseList[hist]['MDtexture'][2][pid])
     1873           
     1874        def OnExtRef(event):
     1875            Obj = event.GetEventObject()
     1876            UseList[Indx[Obj.GetId()]]['Extinction'][1] = Obj.GetValue()
     1877           
     1878        def OnExtVal(event):
     1879            Obj = event.GetEventObject()
     1880            try:
     1881                ext = float(Obj.GetValue())
     1882                if ext >= 0:
     1883                    UseList[Indx[Obj.GetId()]]['Extinction'][0] = ext
     1884            except ValueError:
     1885                pass
     1886            Obj.SetValue("%.4f"%(UseList[Indx[Obj.GetId()]]['Extinction'][0]))          #reset in case of error
     1887           
     1888        def checkAxis(axis):
     1889            if not np.any(np.array(axis)):
     1890                return False
     1891            return axis
     1892           
    17491893        DData.DestroyChildren()
    17501894        dataDisplay = wx.Panel(DData)
     
    17551899            mainSizer.Add(wx.StaticText(dataDisplay,-1,50*'_'))               
    17561900            mainSizer.Add((5,5),0)
    1757             mainSizer.Add(wx.StaticText(dataDisplay,-1,'  '+item),0,wx.ALIGN_CENTER_VERTICAL)
     1901            showData = wx.CheckBox(dataDisplay,label=' Show '+item)
     1902            showData.SetValue(UseList[item]['Show'])
     1903            Indx[showData.GetId()] = item
     1904            showData.Bind(wx.EVT_CHECKBOX, OnShowData)
     1905            mainSizer.Add(showData,0,wx.ALIGN_CENTER_VERTICAL)
    17581906            mainSizer.Add((0,5),0)
    1759             scaleSizer = wx.BoxSizer(wx.HORIZONTAL)
    1760             scaleRef = wx.CheckBox(dataDisplay,label=' Scale factor: ')
    1761             scaleRef.SetValue(UseList[item]['Scale'][1])
    1762             Indx[scaleRef.GetId()] = item
    1763             scaleRef.Bind(wx.EVT_CHECKBOX, OnScaleRef)
    1764             scaleSizer.Add(scaleRef,0,wx.ALIGN_CENTER_VERTICAL)
    1765             scaleVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,
    1766                 '%.4f'%(UseList[item]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
    1767             Indx[scaleVal.GetId()] = item
    1768             scaleVal.Bind(wx.EVT_TEXT_ENTER,OnScaleVal)
    1769             scaleVal.Bind(wx.EVT_KILL_FOCUS,OnScaleVal)
    1770             scaleSizer.Add(scaleVal,0,wx.ALIGN_CENTER_VERTICAL)
    1771             mainSizer.Add(scaleSizer)
    1772             mainSizer.Add((0,5),0)
     1907            if UseList[item]['Show']:
     1908                scaleSizer = wx.BoxSizer(wx.HORIZONTAL)
     1909                scaleRef = wx.CheckBox(dataDisplay,label=' Scale factor: ')
     1910                scaleRef.SetValue(UseList[item]['Scale'][1])
     1911                Indx[scaleRef.GetId()] = item
     1912                scaleRef.Bind(wx.EVT_CHECKBOX, OnScaleRef)
     1913                scaleSizer.Add(scaleRef,0,wx.ALIGN_CENTER_VERTICAL)
     1914                scaleVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,
     1915                    '%.4f'%(UseList[item]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
     1916                Indx[scaleVal.GetId()] = item
     1917                scaleVal.Bind(wx.EVT_TEXT_ENTER,OnScaleVal)
     1918                scaleVal.Bind(wx.EVT_KILL_FOCUS,OnScaleVal)
     1919                scaleSizer.Add(scaleVal,0,wx.ALIGN_CENTER_VERTICAL)
     1920                mainSizer.Add(scaleSizer)
     1921                mainSizer.Add((0,5),0)
    17731922               
    1774             if item[:4] == 'PWDR':
     1923            if item[:4] == 'PWDR' and UseList[item]['Show']:
    17751924                sizeSizer = wx.BoxSizer(wx.HORIZONTAL)
    17761925                choices = ['isotropic','uniaxial',]
     
    18972046                        strainSizer.Add(strainVal,0,wx.ALIGN_CENTER_VERTICAL)
    18982047                    mainSizer.Add(strainSizer)
    1899             elif item[:4] == 'HKLF':
     2048                #MD texture  'MDtexture':[1.0,False,[0,0,1]]
     2049                mdSizer = wx.BoxSizer(wx.HORIZONTAL)
     2050                mdRef = wx.CheckBox(dataDisplay,label=' March-Dollase texture ratio: ')
     2051                mdRef.SetValue(UseList[item]['MDtexture'][1])
     2052                Indx[mdRef.GetId()] = item
     2053                mdRef.Bind(wx.EVT_CHECKBOX, OnMDRef)
     2054                mdSizer.Add(mdRef,0,wx.ALIGN_CENTER_VERTICAL)
     2055                mdVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,
     2056                    '%.3f'%(UseList[item]['MDtexture'][0]),style=wx.TE_PROCESS_ENTER)
     2057                Indx[mdVal.GetId()] = item
     2058                mdVal.Bind(wx.EVT_TEXT_ENTER,OnMDVal)
     2059                mdVal.Bind(wx.EVT_KILL_FOCUS,OnMDVal)
     2060                mdSizer.Add(mdVal,0,wx.ALIGN_CENTER_VERTICAL)
     2061                mdSizer.Add(wx.StaticText(dataDisplay,-1,' Unique axis: '),0,wx.ALIGN_CENTER_VERTICAL)
     2062                axes = zip(['H:','K:','L:'],UseList[item]['MDtexture'][2],range(3))                   
     2063                for ax,H,i in axes:                           
     2064                    Axis = wx.SpinCtrl(dataDisplay,wx.ID_ANY,ax,min=-3,max=3,size=wx.Size(40,20))
     2065                    Axis.SetValue(H)
     2066                    Indx[Axis.GetId()] = [item,i]
     2067                    mdSizer.Add(Axis)
     2068                    Axis.Bind(wx.EVT_SPINCTRL, OnMDAxis)
     2069                mainSizer.Add(mdSizer)
     2070                mainSizer.Add((0,5),0)
     2071               
     2072                #Extinction  'Extinction':[0.0,False]
     2073                extSizer = wx.BoxSizer(wx.HORIZONTAL)
     2074                extRef = wx.CheckBox(dataDisplay,label=' Extinction: ')
     2075                extRef.SetValue(UseList[item]['Extinction'][1])
     2076                Indx[extRef.GetId()] = item
     2077                extRef.Bind(wx.EVT_CHECKBOX, OnExtRef)
     2078                extSizer.Add(extRef,0,wx.ALIGN_CENTER_VERTICAL)
     2079                extVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,
     2080                    '%.4f'%(UseList[item]['Extinction'][0]),style=wx.TE_PROCESS_ENTER)
     2081                Indx[extVal.GetId()] = item
     2082                extVal.Bind(wx.EVT_TEXT_ENTER,OnExtVal)
     2083                extVal.Bind(wx.EVT_KILL_FOCUS,OnExtVal)
     2084                extSizer.Add(extVal,0,wx.ALIGN_CENTER_VERTICAL)
     2085                mainSizer.Add(extSizer)
     2086                mainSizer.Add((0,5),0)
     2087            elif item[:4] == 'HKLF' and UseList[item]['Show']:
    19002088                pass
    1901             else:
    1902                 print 'error - unknown histogram type'      #place holder - never invoked
    19032089        mainSizer.Add((5,5),0)
    1904 
    19052090
    19062091        dataDisplay.SetSizer(mainSizer)
    19072092        Size = mainSizer.Fit(self.dataFrame)
    1908         Size[0] = max(Size[0],300)
    1909         Size[1] += 26                           #compensate for status bar
    1910         DData.Fit()
     2093        Size[0] = max(Size[0],300)+20
     2094        Size[1] += 30                           #compensate for status bar
     2095        DData.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-10)
     2096        self.dataFrame.setSizePosLeft(Size)
    19112097        dataDisplay.SetSize(Size)
    1912         self.dataFrame.setSizePosLeft(Size)
    19132098       
    19142099    def OnHklfAdd(event):
     
    19292114                    for i in result:
    19302115                        histoName = TextList[i]
    1931                         UseList[histoName] = {'Histogram':histoName,'Scale':[1.0,True],
     2116                        UseList[histoName] = {'Histogram':histoName,'Show':False,'Scale':[1.0,True],
    19322117                            'Extinction':['Lorentzian','Secondary Type I',{'Eg':[0.0,False]},]}                       
    19332118                    data['Histograms'] = UseList
     
    19532138                    for i in result:
    19542139                        histoName = TextList[i]
    1955                         UseList[histoName] = {'Histogram':histoName,'Scale':[1.0,False],
     2140                        UseList[histoName] = {'Histogram':histoName,'Show':False,
     2141                            'Scale':[1.0,False],'MDtexture':[1.0,False,[0,0,1]],
    19562142                            'Size':['isotropic',[10000.,0,],[False,False],[0,0,1]],
    1957                             'Mustrain':['isotropic',[0.0,0,],[False,False],[0,0,1]],
    1958                             'MDtexture':[[0,0,1],1.0,False],
     2143                            'Mustrain':['isotropic',[0.0,0,],[False,False],[0,0,1]],                           
    19592144                            'Extinction':[0.0,False]}
    19602145                    data['Histograms'] = UseList
     
    20422227        self.dataDisplay.AddPage(PawleyRefl,'Pawley reflections')
    20432228    else:
    2044         DData = wx.Window(self.dataDisplay)
     2229        DData = wx.ScrolledWindow(self.dataDisplay)
    20452230        self.dataDisplay.AddPage(DData,'Data')
    20462231        Atoms = G2gd.GSGrid(self.dataDisplay)
  • trunk/GSASIIplot.py

    r163 r164  
    13041304        drawingData['Rotation'] = [anglex,angley,anglez,oldxy]
    13051305       
    1306     def SetRotationZ(newxy):
    1307         def sign(x):
    1308             if x < 0:
    1309                 return -1
    1310             else:
    1311                 return 1
    1312                        
     1306    def SetRotationZ(newxy):                       
    13131307        anglex,angley,anglez,oldxy = drawingData['Rotation']
    13141308        dxy = newxy-oldxy
     
    13191313    def RenderBox():
    13201314        glEnable(GL_COLOR_MATERIAL)
    1321         glLineWidth(3)
     1315        glLineWidth(2)
    13221316        glEnable(GL_BLEND)
    13231317        glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)
     
    14141408        glMultMatrixf(B4mat.T)
    14151409        for face,norm in Faces:
    1416             glPolygonMode(GL_FRONT,GL_FILL)
     1410            glPolygonMode(GL_FRONT_AND_BACK,GL_FILL)
     1411            glFrontFace(GL_CW)
    14171412            glNormal3fv(norm)
    14181413            glBegin(GL_TRIANGLES)
     
    14751470        glMatrixMode(GL_MODELVIEW)
    14761471        glLoadIdentity()
     1472#        Mz = G2lat.rotdMat4(anglez,2)
     1473#        My = G2lat.rotdMat4(angley,1)
     1474#        Mx = G2lat.rotdMat4(anglex,0)
     1475#        Myz = np.inner(Mz,My)
     1476#        Mxyz = np.inner(Myz,Mx)
     1477#        glMultMatrixf(Mz)
     1478#        glMultMatrixf(My)
     1479#        glMultMatrixf(Mx)
    14771480        glRotate(anglez,0,0,1)
    14781481        glRotate(anglex,cosd(anglez),-sind(anglez),0)
     
    14911494            x,y,z = atom[cx:cx+3]
    14921495            Bonds = atom[-1]
    1493             atNum = generalData['AtomTypes'].index(atom[ct])
     1496            try:
     1497                atNum = generalData['AtomTypes'].index(atom[ct])
     1498            except ValueError:
     1499                atNum = -1
    14941500            CL = atom[cs+2]
    1495 #            CL = list(generalData['Color'][atNum])
    1496 #            CL.extend([255,])
    14971501            color = np.array(CL)/255.
    14981502            if iat in Ind:
     
    15021506                vdwScale = drawingData['vdwScale']
    15031507                ballScale = drawingData['ballScale']
    1504                 if 'H' == atom[ct]:
     1508                if atNum < 0:
     1509                    radius = 0.2
     1510                elif 'H' == atom[ct]:
    15051511                    if drawingData['showHydrogen']:
    1506                         if 'vdW' in atom[cs]:
     1512                        if 'vdW' in atom[cs] and atNum >= 0:
    15071513                            radius = vdwScale*generalData['vdWRadii'][atNum]
    15081514                        else:
     
    15201526            elif 'ellipsoids' in atom[cs]:
    15211527                RenderBonds(x,y,z,Bonds,bondR,color)
    1522                 if atom[cs+2] == 'A':                   
    1523                     Uij = atom[cs+4:cs+10]
     1528                if atom[cs+3] == 'A':                   
     1529                    Uij = atom[cs+5:cs+11]
    15241530                    U = np.multiply(G2spc.Uij2U(Uij),GS)
    15251531                    U = np.inner(Amat,np.inner(U,Amat).T)
     
    15291535                    RenderEllipsoid(x,y,z,ellipseProb,E,R4,color)
    15301536                else:
    1531                     radius = ellipseProb*math.sqrt(abs(atom[cs+3]))
     1537                    radius = ellipseProb*math.sqrt(abs(atom[cs+4]))
    15321538                    RenderSphere(x,y,z,radius,color)
    15331539            elif 'lines' in atom[cs]:
     
    15441550                    for face in FaceGen:
    15451551                        vol = nl.det(face)
    1546                         if abs(vol) > 1.:
     1552                        if abs(vol) > 1. or len(Bonds) == 3:
    15471553                            if vol < 0.:
    15481554                                face = [face[0],face[2],face[1]]
  • trunk/GSASIIpwdGUI.py

    r150 r164  
    88import GSASIIpeak as G2pk
    99import GSASIIlattice as G2lat
     10import GSASIIspc as G2spc
    1011import GSASIIindex as G2indx
    1112import GSASIIplot as G2plt
     
    229230       
    230231def UpdateBackgroundGrid(self,data):
    231 #    if self.dataDisplay:
    232     self.dataFrame.Clear()
     232    if self.dataDisplay:
     233        self.dataFrame.Clear()
    233234    BackId = G2gd.GetPatternTreeItemId(self,self.PatternId, 'Background')
    234235    maxTerm = 9
     
    261262            self.dataDisplay.ProcessTableMessage(msg)
    262263        self.PatternTree.SetItemPyData(BackId,data)
     264        event.StopPropagation()
    263265                 
    264266    self.BackTable = []
     
    286288    if self.dataDisplay:
    287289        self.dataFrame.Clear()
    288     LimitId = G2gd.GetPatternTreeItemId(self,self.PatternId, 'Limits')
    289290    def RefreshLimitsGrid(event):
    290291        data = self.LimitsTable.GetData()
     
    322323        Ka2 = True
    323324    self.dataFrame.SetMenuBar(self.dataFrame.BlankMenu)
    324     InstId = G2gd.GetPatternTreeItemId(self,self.PatternId, 'Instrument Parameters')
    325325   
    326326    def RefreshInstrumentGrid(event,doAnyway=False):
     
    398398    self.dataDisplay.SetSizer(mainSizer)
    399399    self.dataFrame.setSizePosLeft(mainSizer.Fit(self.dataFrame))
     400   
     401def UpdateSampleGrid(self,data):
     402    if self.dataDisplay:
     403        self.dataFrame.Clear()
     404    self.dataFrame.SetMenuBar(self.dataFrame.BlankMenu)
     405    if not self.dataFrame.GetStatusBar():
     406        Status = self.dataFrame.CreateStatusBar()   
     407    self.dataDisplay = wx.Panel(self.dataFrame)
     408   
     409    if data['Type'] == 'Debye-Scherrer':
     410        parms = [['DisplaceX',' Sample X displacement: ','%.4f',],
     411            ['DisplaceY',' Sample Y displacement: ','%.4f',],
     412            ['Absorption',' Sample absorption: ','%.4f',],]
     413    elif data['Type'] == 'Bragg-Brentano':
     414        parms = [['Shift',' Sample displacement: ','%.4f',],
     415            ['Transparency',' Sample transparency: ','%.4f'],]
     416    objList = {}
     417
     418    def OnScaleRef(event):
     419        Obj = event.GetEventObject()
     420        data['Scale'][1] = Obj.GetValue()
     421       
     422    def OnScaleVal(event):
     423        Obj = event.GetEventObject()
     424        try:
     425            scale = float(Obj.GetValue())
     426            if scale > 0:
     427                data['Scale'][0] = scale
     428        except ValueError:
     429            pass
     430        Obj.SetValue("%.4f"%(data['Scale'][0]))          #reset in case of error
     431       
     432    def OnHistoType(event):
     433        Obj = event.GetEventObject()
     434        data['Type'] = Obj.GetValue()
     435        if data['Type'] == 'Bragg-Brentano' and 'Shift' not in data:    #set up defaults for new type(s)
     436            data['Shift'] = [0.0,False]
     437            data['Transparency'] = [0.0,False]
     438        self.dataDisplay.Destroy()
     439        UpdateSampleGrid(self,data)
     440       
     441    def OnParmRef(event):
     442        Obj = event.GetEventObject()
     443        parm = objList[Obj.GetId()]
     444        data[parm][1] = Obj.GetValue()
     445       
     446    def OnParmVal(event):
     447        Obj = event.GetEventObject()
     448        parm = objList[Obj.GetId()]
     449        try:
     450            data[parm[0]][0] = float(Obj.GetValue())
     451        except ValueError:
     452            pass
     453        Obj.SetValue(parm[2]%(data[parm[0]][0]))          #reset in case of error
     454               
     455    mainSizer = wx.BoxSizer(wx.VERTICAL)
     456    mainSizer.Add(wx.StaticText(parent=self.dataDisplay,label=' Sample parameters: '),0,wx.ALIGN_CENTER_VERTICAL)
     457    mainSizer.Add((5,5),0)
     458    scaleSizer = wx.BoxSizer(wx.HORIZONTAL)
     459    scaleRef = wx.CheckBox(self.dataDisplay,label=' Histogram scale factor: ')
     460    scaleRef.SetValue(data['Scale'][1])
     461    scaleRef.Bind(wx.EVT_CHECKBOX, OnScaleRef)
     462    scaleSizer.Add(scaleRef,0,wx.ALIGN_CENTER_VERTICAL)
     463    scaleVal = wx.TextCtrl(self.dataDisplay,wx.ID_ANY,
     464        '%.4f'%(data['Scale'][0]),style=wx.TE_PROCESS_ENTER)
     465    scaleVal.Bind(wx.EVT_TEXT_ENTER,OnScaleVal)
     466    scaleVal.Bind(wx.EVT_KILL_FOCUS,OnScaleVal)
     467    scaleSizer.Add(scaleVal,0,wx.ALIGN_CENTER_VERTICAL)
     468    mainSizer.Add(scaleSizer)
     469    mainSizer.Add((0,5),0)
     470    typeSizer = wx.BoxSizer(wx.HORIZONTAL)
     471    choices = ['Debye-Scherrer','Bragg-Brentano',]
     472    histoType = wx.ComboBox(self.dataDisplay,wx.ID_ANY,value=data['Type'],choices=choices,
     473        style=wx.CB_READONLY|wx.CB_DROPDOWN)
     474    histoType.Bind(wx.EVT_COMBOBOX, OnHistoType)
     475    typeSizer.Add(histoType)
     476    mainSizer.Add(typeSizer)
     477    mainSizer.Add((0,5),0)
     478   
     479    for parm in parms:
     480        parmSizer = wx.BoxSizer(wx.HORIZONTAL)
     481        parmRef = wx.CheckBox(self.dataDisplay,label=parm[1])
     482        objList[parmRef.GetId()] = parm[0]
     483        parmRef.SetValue(data[parm[0]][1])
     484        parmRef.Bind(wx.EVT_CHECKBOX, OnParmRef)
     485        parmSizer.Add(parmRef,0,wx.ALIGN_CENTER_VERTICAL)
     486        parmVal = wx.TextCtrl(self.dataDisplay,wx.ID_ANY,
     487            parm[2]%(data[parm[0]][0]),style=wx.TE_PROCESS_ENTER)
     488        objList[parmVal.GetId()] = parm
     489        parmVal.Bind(wx.EVT_TEXT_ENTER,OnParmVal)
     490        parmVal.Bind(wx.EVT_KILL_FOCUS,OnParmVal)
     491        parmSizer.Add(parmVal,0,wx.ALIGN_CENTER_VERTICAL)
     492        mainSizer.Add(parmSizer)
     493        mainSizer.Add((0,5),0)   
     494   
     495    mainSizer.Layout()   
     496    self.dataDisplay.SetSizer(mainSizer)
     497    Size = mainSizer.Fit(self.dataFrame)
     498    self.dataDisplay.SetSize(Size)
     499    self.dataFrame.setSizePosLeft(Size)
     500   
     501   
    400502               
    401503def UpdateIndexPeaksGrid(self, data):
     
    480582    bravaisSymb = ['Fm3m','Im3m','Pm3m','R3-H','P6/mmm','I4/mmm',
    481583        'P4/mmm','Fmmm','Immm','Cmmm','Pmmm','C2/m','P2/m','P1']
    482     spaceGroups = ['F m 3 m','I m 3 m','P m 3 m','R 3- H','P 6/m m m','I 4/m m m',
    483         'P 4/m m m','F m m m','I m m m','C m m m','P m m m','C 2/m','P 2/m','P 1']
     584    spaceGroups = ['F m 3 m','I m 3 m','P m 3 m','R -3 H','P 6/m m m','I 4/m m m',
     585        'P 4/m m m','F m m m','I m m m','C m m m','P m m m','C 2/m','P 2/m','P -1']
    484586       
    485587    def SetLattice(controls):
     
    692794        cell = Cell[2:10]       
    693795        sub = self.PatternTree.AppendItem(parent=sub,text=PhaseName)
    694         SGData = {'SpGrp':spaceGroups[cell[0]]}
     796        E,SGData = G2spc.SpcGroup(spaceGroups[cell[0]])
    695797        self.PatternTree.SetItemPyData(sub, \
    696             {'General':{'Name':'phase name','Type':'nuclear','SGData':SGData,'Cell':[False,]+cell[1:],
    697             'Scale':[False,1.0],'Pawley dmin':0.25},'Atoms':[]})
     798            {'General':{'Name':'phase name','Type':'nuclear','SGData':SGData,
     799            'Cell':[False,]+cell[1:],
     800            'Pawley dmin':0.25},'Atoms':[],'Drawing':{},'Histograms':{}})
    698801        Status.SetStatusText('Change space group if needed')
    699802           
Note: See TracChangeset for help on using the changeset viewer.