Changeset 3978


Ignore:
Timestamp:
May 14, 2019 12:00:08 PM (4 years ago)
Author:
vondreele
Message:

more cleanup of Absorb & Fprime; cursor shows values now

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Absorb.py

    r3976 r3978  
    322322        self.parent = parent
    323323        self.Lines = []
     324        self.Elems = []
    324325        self.linePicked = None
    325326
     
    353354            self.panel.Destroy()
    354355            self.DrawPanel()
     356            self.NewFPPlot = True
    355357            self.SetWaveEnergy(self.Wave)
    356358           
     
    372374                self.panel.Destroy()
    373375                self.DrawPanel()
     376                self.NewFPPlot = True
    374377                self.SetWaveEnergy(self.Wave)
    375378       
     
    491494        self.SpinText6.SetValue("%.2f" % (self.Pack))
    492495        self.SpinText6.Update()
    493         self.CalcFPPS()
    494         self.UpDateAbsPlot(Wave,rePlot=True)
     496        if len(self.Elems):
     497            self.CalcFPPS()
     498            self.UpDateAbsPlot(Wave,rePlot=True)
    495499
    496500    def CalcFPPS(self):
     
    561565            self.SpinText1.SetValue("%6.4f" % (self.Wave))
    562566            self.SpinText2.SetValue("%7.4f" % (self.Energy))
    563         self.CalcFPPS()
    564         self.UpDateAbsPlot(self.Wave,rePlot=False)
     567        if len(self.Elems):
     568            self.CalcFPPS()
     569            self.UpDateAbsPlot(self.Wave,rePlot=False)
    565570       
    566571    def OnKeyPress(self,event):
     
    629634       
    630635    def OnMotion(self,event):
     636        xpos = event.xdata
     637        if xpos and xpos>0.1:
     638            ypos = event.ydata
     639            if self.ifWave:
     640                Wave = xpos
     641            else:
     642                Wave = self.Kev/xpos
     643            Wave = min(max(Wave,self.Wmin),self.Wmax)
     644            self.parent.G2plotNB.status.SetStatusText('Wavelength: %.4f, Energy: %.3f, %sR: %.3f'%(Wave,self.Kev/Wave,Gkmu,ypos),1)
    631645        if self.linePicked:
    632             xpos = event.xdata
    633             if xpos and xpos>0.1:
    634                 if self.ifWave:
    635                     Wave = xpos
    636                 else:
    637                     Wave = self.Kev/xpos               
    638                 self.SetWaveEnergy(Wave)
     646            self.SetWaveEnergy(Wave)
    639647               
    640648    def OnRelease(self, event):
  • trunk/fprime.py

    r3976 r3978  
    8383    Wmin = 0.05        #wavelength range
    8484    Wmax = 3.0
    85     Wres = 0.004094    #plot resolution step size as const delta-lam/lam - gives 1000 steps for Wmin to Wmself.ax
     85    Wres = 0.004094    #plot resolution step size as const delta-lam/lam - gives 1000 steps for Wmin to Wmax
    8686    Eres = 1.5e-4      #typical energy resolution for synchrotron x-ray sources
    8787    ffpfignum = 1
     
    212212        def OnChoice2(event):
    213213            if event.GetString() == ' sin('+Gktheta+')/'+Gklambda:
    214                 self.FFxself.axis = 'S'
     214                self.FFxaxis = 'S'
    215215            elif event.GetString() == ' Q':
    216                 self.FFxself.axis = 'Q'
     216                self.FFxaxis = 'Q'
    217217            else:
    218                 self.FFxself.axis = 'T'
     218                self.FFxaxis = 'T'
    219219            self.UpDateFPlot(self.Wave,rePlot=False)
    220220           
     
    232232        self.parent = parent
    233233        self.Lines = []
     234        self.Elems = []
    234235        self.linePicked = None
    235236       
     
    257258                            Orbs = G2elem.GetXsectionCoeff(ElemSym)
    258259                            Elem = (ElemSym,Z,FormFac,Orbs)
    259                     Fprime.Elems.append(Elem)
     260                    self.Elems.append(Elem)
    260261            self.Delete.Enable(True)
    261262            self.CalcFPPS()
     
    384385            self.bx.set_title('%s%6.2f%s'%('Form factors  (E =',self.Energy,'keV)'),x=0,ha='left')
    385386        if self.FFxaxis == 'S':
     387            self.bxlabel = 'sin('+Gktheta+')/'+Gklambda
    386388            self.bx.set_xlabel(r'$\mathsf{sin(\theta)/\lambda}$',fontsize=14)
    387389        elif self.FFxaxis == 'T':
     390            self.bxlabel = '2'+Gktheta
    388391            self.bx.set_xlabel(r'$\mathsf{2\theta}$',fontsize=14)
    389392        else:
     393            self.bxlabel = 'Q, '+Angstr+Pwrm1
    390394            self.bx.set_xlabel(r'$Q, \AA$',fontsize=14)
    391395        self.bx.set_ylabel("f+f ', e-",fontsize=14)
     
    449453       
    450454    def OnMotion(self,event):
     455        xpos = event.xdata
     456        if xpos and xpos>0.1:
     457            ypos = event.ydata
     458            if self.ifWave:
     459                Wave = xpos
     460            else:
     461                Wave = self.Kev/xpos
     462            Wave = min(max(Wave,self.Wmin),self.Wmax)
     463            if event.inaxes == self.ax:
     464                self.parent.G2plotNB.status.SetStatusText("Wavelength: %.4f, Energy: %.3f, f'%s: %.3f"%(Wave,self.Kev/Wave,'f"',ypos),1)
     465            elif event.inaxes == self.bx:
     466                self.parent.G2plotNB.status.SetStatusText("%s: %.4f, f,f+f': %.3f"%(self.bxlabel,xpos,ypos),1)
    451467        if self.linePicked:
    452             xpos = event.xdata
    453             if xpos:
    454                 if self.ifWave:
    455                     Wave = xpos
    456                 else:
    457                     Wave = self.Kev/xpos               
    458                 self.SetWaveEnergy(Wave)
     468            self.SetWaveEnergy(Wave)
    459469               
    460470    def OnRelease(self, event):
     
    501511                    'Element= '+str(Els)," f'=",(r1[0]+r2[0])/2.0,
    502512                    ' f"=',(r1[1]+r2[1])/2.0,' '+Gkmu+'=',(r1[2]+r2[2])/2.0,'barns/atom')
    503         self.Results.SetValue(Text)
    504         self.Results.Update()
    505         self.UpDateFPlot(Wave)
     513        if len(self.Elems):
     514            self.Results.SetValue(Text)
     515            self.Results.Update()
     516            self.UpDateFPlot(Wave)
    506517
    507518    def CalcFPPS(self):
     
    551562            self.NewFPPlot = True
    552563            self.Wave = round(self.Wave,4)
    553             self.slider1.SetRange(int(1000.*self.Wmin),int(1000.*self.Wmself.ax))
     564            self.slider1.SetRange(int(1000.*self.Wmin),int(1000.*self.Wmax))
    554565            self.slider1.SetValue(int(1000.*self.Wave))
    555566            self.SpinText1.SetValue("%6.4f" % (self.Wave))
     
    558569            self.ifWave = False
    559570            self.NewFPPlot = True
    560             Emin = self.Kev/self.Wmself.ax
     571            Emin = self.Kev/self.Wmax
    561572            Emax = self.Kev/self.Wmin
    562573            self.Energy = round(self.Energy,4)
Note: See TracChangeset for help on using the changeset viewer.