Changeset 2163 for trunk/GSASIIphsGUI.py
- Timestamp:
- Mar 7, 2016 3:03:10 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIphsGUI.py
r2162 r2163 423 423 if 'Layers' not in data: 424 424 data['Layers'] = {'Laue':'-1','Cell':[False,1.,1.,1.,90.,90.,90,1.], 425 'Width':[[10.,10.],[False,False]],'Toler':0.01, 425 'Width':[[10.,10.],[False,False]],'Toler':0.01,'AtInfo':{}, 426 426 'Layers':[],'Stacking':[],'Transitions':[]} 427 427 G2frame.layerData = wx.ScrolledWindow(G2frame.dataDisplay) … … 2397 2397 transTypes = [wg.GRID_VALUE_FLOAT+':10,3',]+3*[wg.GRID_VALUE_FLOAT+':10,5',]+ \ 2398 2398 [wg.GRID_VALUE_CHOICE+": ,P,PX,PY,PZ,PXY,PXZ,PYZ,PXYZ,X,Y,Z,XY,XZ,YZ,XYZ",wg.GRID_VALUE_BOOL,] 2399 2399 plotDefaults = {'oldxy':[0.,0.],'Quaternion':[0.,0.,0.,1.],'cameraPos':30.,'viewDir':[0,0,1],} 2400 2400 2401 def OnLaue(event): 2401 2402 Obj = event.GetEventObject() … … 2510 2511 widthSizer = wx.BoxSizer(wx.HORIZONTAL) 2511 2512 for i in range(2): 2512 widthSizer.Add(wx.StaticText(layerData,label=' layer width(%s) : '%(Labels[i])),0,WACV)2513 widthSizer.Add(wx.StaticText(layerData,label=' layer width(%s) \xb5m: '%(Labels[i])),0,WACV) 2513 2514 widthVal = wx.TextCtrl(layerData,value='%.3f'%(widths[i]),style=wx.TE_PROCESS_ENTER) 2514 2515 widthVal.Bind(wx.EVT_TEXT_ENTER,OnWidthChange) … … 2525 2526 def OnNewLayer(event): 2526 2527 data['Layers']['Layers'].append({'Name':'Unk','SameAs':'','Symm':'None','Atoms':[]}) 2528 Trans = data['Layers']['Transitions'] 2529 if len(Trans): 2530 Trans.append([[0.,0.,0.,0.,''] for trans in Trans]) 2531 for trans in Trans: 2532 trans.append([0.,0.,0.,0.,'']) 2533 else: 2534 Trans = [[1.,0.,0.,0.,''],] 2527 2535 #modify transition probability matrix as well - add new row/column 2528 2536 UpdateLayerData() … … 2550 2558 PE = G2elemGUI.PickElement(G2frame) 2551 2559 if PE.ShowModal() == wx.ID_OK: 2552 if PE.Elem != 'None': 2553 Layer['Atoms'][r][c] = PE.Elem.strip() 2560 if PE.Elem != 'None': 2561 atType = PE.Elem.strip() 2562 Layer['Atoms'][r][c] = atType 2554 2563 name = Layer['Atoms'][r][c] 2555 2564 if len(name) in [2,4]: … … 2557 2566 else: 2558 2567 Layer['Atoms'][r][c-1] = name[:1]+'%d'%(r+1) 2568 if atType not in data['Layers']['AtInfo']: 2569 data['Layers']['AtInfo'][atType] = G2elem.GetAtomInfo(atType) 2559 2570 PE.Destroy() 2560 2571 UpdateLayerData() … … 2564 2575 def OnDrawLayer(event): 2565 2576 drawLayer.SetValue(False) 2566 pass2577 G2plt.PlotLayers(G2frame,Layers,[il,],plotDefaults) 2567 2578 2568 2579 def OnSameAs(event): … … 2628 2639 if Xi >= 0 and c == 5: #plot column 2629 2640 Obj.SetCellValue(Xi,5,'') 2630 print 'plot %s - %s'%(Names[Yi],Names[Xi])2641 G2plt.PlotLayers(G2frame,Layers,[Yi,Xi,],plotDefaults) 2631 2642 2632 2643 transSizer = wx.BoxSizer(wx.VERTICAL) … … 2659 2670 return transSizer 2660 2671 2672 def PlotSizer(): 2673 2674 def OnPlotSeq(event): 2675 vals = plotSeq.GetValue().split() 2676 try: 2677 vals = [int(val)-1 for val in vals] 2678 except ValueError: 2679 plotSeq.SetValue('Error in string '+vals) 2680 plotSeq.SetValue('') 2681 G2plt.PlotLayers(G2frame,Layers,vals,plotDefaults) 2682 2683 Names = [' %s: %d,'%(layer['Name'],iL+1) for iL,layer in enumerate(Layers['Layers'])] 2684 plotSizer = wx.BoxSizer(wx.VERTICAL) 2685 Str = ' Using sequence nos. from:' 2686 for name in Names: 2687 Str += name 2688 plotSizer.Add(wx.StaticText(layerData,label=Str[:-1]),0,WACV) 2689 lineSizer = wx.BoxSizer(wx.HORIZONTAL) 2690 lineSizer.Add(wx.StaticText(layerData,label=' Enter sequence of layers to plot:'),0,WACV) 2691 plotSeq = wx.TextCtrl(layerData,value = '',style=wx.TE_PROCESS_ENTER) 2692 plotSeq.Bind(wx.EVT_TEXT_ENTER,OnPlotSeq) 2693 plotSeq.Bind(wx.EVT_KILL_FOCUS,OnPlotSeq) 2694 lineSizer.Add(plotSeq,0,WACV) 2695 plotSizer.Add(lineSizer,0,WACV) 2696 return plotSizer 2697 2661 2698 def StackSizer(): 2662 2699 … … 2678 2715 def OnSeqType(event): 2679 2716 Layers['Stacking'][1] = seqType.GetValue() 2717 2718 def OnStackList(event): 2719 stack = stackList.GetValue() 2720 stack = stack.replace('\n',' ').strip().strip('\n') 2721 nstar = stack.count('*') 2722 if nstar: 2723 try: 2724 newstack = '' 2725 Istar = 0 2726 for star in range(nstar): 2727 Istar = stack.index('*',Istar+1) 2728 iB = stack[:Istar].rfind(' ') 2729 if iB == -1: 2730 mult = int(stack[:Istar]) 2731 else: 2732 mult = int(stack[iB:Istar]) 2733 pattern = stack[Istar+2:stack.index(')',Istar)]+' ' 2734 newstack += mult*pattern 2735 stack = newstack 2736 except ValueError: 2737 stack += ' Error in string' 2738 Layers['Stacking'][2] = stack 2739 stackList.SetValue(stack) 2680 2740 2681 2741 stackChoice = ['recursive','explicit',] … … 2708 2768 stackSizer.Add(topLine,0,WACV) 2709 2769 if Layers['Stacking'][1] == 'list': 2710 stackSizer.Add(wx.StaticText(layerData,label=' Explicit layer sequence;'),0,WACV) 2711 2770 Names = [' %s: %d,'%(layer['Name'],iL+1) for iL,layer in enumerate(Layers['Layers'])] 2771 stackSizer.Add(wx.StaticText(layerData,label=' Explicit layer sequence; enter space delimited list of numbers:'),0,WACV) 2772 Str = ' Use sequence nos. from:' 2773 for name in Names: 2774 Str += name 2775 stackSizer.Add(wx.StaticText(layerData,label=Str[:-1]+' Repeat sequences can be used: e.g. 6*(1 2) '),0,WACV) 2776 stackSizer.Add(wx.StaticText(layerData,label=' Zero probability sequences not allowed'),0,WACV) 2777 stackList = wx.TextCtrl(layerData,value=Layers['Stacking'][2],size=(600,-1), 2778 style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER) 2779 stackList.SetValue(Layers['Stacking'][2]) 2780 stackList.Bind(wx.EVT_TEXT_ENTER,OnStackList) 2781 stackList.Bind(wx.EVT_KILL_FOCUS,OnStackList) 2782 stackSizer.Add(stackList,0,wx.ALL|wx.EXPAND|WACV,8) 2712 2783 return stackSizer 2713 2784 2714 generalData = data['General']2715 2785 Layers = data['Layers'] 2716 2786 layerNames = [] … … 2719 2789 G2frame.dataFrame.SetStatusText('') 2720 2790 layerData = G2frame.layerData 2721 SGData = generalData['SGData']2722 2791 if layerData.GetSizer(): 2723 2792 layerData.GetSizer().Clear(True) … … 2754 2823 for il,layer in enumerate(Layers['Layers']): 2755 2824 topSizer.Add(LayerSizer(il,layer)) 2825 G2G.HorizontalLine(topSizer,layerData) 2756 2826 mainSizer.Add(topSizer) 2827 bottomSizer.Add(TransSizer()) 2757 2828 G2G.HorizontalLine(bottomSizer,layerData) 2758 bottomSizer.Add( TransSizer())2829 bottomSizer.Add(PlotSizer(),0,WACV) 2759 2830 G2G.HorizontalLine(bottomSizer,layerData) 2760 2831 bottomSizer.Add(StackSizer()) … … 6903 6974 # Stacking faults 6904 6975 if data['General']['Type'] == 'faulted': 6905 print 'set bind'6906 6976 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataFrame.LayerData) 6907 6977 G2frame.dataFrame.Bind(wx.EVT_MENU, OnLoadDIFFaX, id=G2gd.wxID_LOADDIFFAX)
Note: See TracChangeset
for help on using the changeset viewer.