Changeset 1143 for trunk/GSASIIpwdGUI.py
- Timestamp:
- Nov 10, 2013 8:32:26 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwdGUI.py
r1107 r1143 63 63 def SetDefaultSample(): 64 64 'Needs a doc string' 65 return {'ranId':ran.randint(0,sys.maxint), 65 return { 66 'ranId':ran.randint(0,sys.maxint), 66 67 'Scale':[1.0,True],'Type':'Debye-Scherrer','Absorption':[0.0,False], 67 68 'DisplaceX':[0.0,False],'DisplaceY':[0.0,False],'Diffuse':[], 68 'Temperature':300.,'Pressure':1.0,'Humidity':0.0, 69 'Voltage':0.0,'Force':0.0,'Gonio. radius':200.0, 70 'Omega':0.0,'Chi':0.0,'Phi':0.0} 69 'Temperature':300.,'Pressure':1.0, 70 'FreePrm1':0.,'FreePrm2':0.,'FreePrm3':0., 71 'Gonio. radius':200.0, 72 'Omega':0.0,'Chi':0.0,'Phi':0.0 73 } 71 74 72 75 ################################################################################ … … 1239 1242 dlg.Destroy() 1240 1243 1244 def OnScaleRef(event): 1245 Obj = event.GetEventObject() 1246 data['Scale'][1] = Obj.GetValue() 1247 1248 def OnScaleVal(event): 1249 Obj = event.GetEventObject() 1250 try: 1251 scale = float(Obj.GetValue()) 1252 if scale > 0: 1253 data['Scale'][0] = scale 1254 except ValueError: 1255 pass 1256 Obj.SetValue("%.4f"%(data['Scale'][0])) #reset in case of error 1257 1258 def OnHistoType(event): 1259 Obj = event.GetEventObject() 1260 data['Type'] = Obj.GetValue() 1261 if data['Type'] == 'Bragg-Brentano' and 'Shift' not in data: #set up defaults for new type(s) 1262 data['Shift'] = [0.0,False] 1263 data['Transparency'] = [0.0,False] 1264 wx.CallAfter(UpdateSampleGrid,G2frame,data) 1265 1266 def SetNameVal(): 1267 inst = instNameVal.GetValue() 1268 data['InstrName'] = inst.strip() 1269 1270 def OnNameVal(event): 1271 event.Skip() 1272 wx.CallAfter(SetNameVal) 1273 1274 ######## DEBUG ####################################################### 1275 #import GSASIIpwdGUI 1276 #reload(GSASIIpwdGUI) 1277 #reload(G2gd) 1278 ###################################################################### 1241 1279 if G2frame.dataDisplay: 1242 1280 G2frame.dataFrame.Clear() … … 1250 1288 Status = G2frame.dataFrame.CreateStatusBar() 1251 1289 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1252 1290 Controls = G2frame.PatternTree.GetItemPyData( 1291 G2gd.GetPatternTreeItemId(G2frame,G2frame.root, 'Controls')) 1253 1292 #patch 1254 1293 if 'ranId' not in data: … … 1258 1297 if not 'Omega' in data: 1259 1298 data.update({'Omega':0.0,'Chi':0.0,'Phi':0.0}) 1299 if type(data['Temperature']) is int: 1300 data['Temperature'] = float(data['Temperature']) 1301 if 'FreePrm1' not in Controls: 1302 Controls['FreePrm1'] = 'Sample humidity (%)' 1303 if 'FreePrm2' not in Controls: 1304 Controls['FreePrm2'] = 'Sample voltage (V)' 1305 if 'FreePrm3' not in Controls: 1306 Controls['FreePrm3'] = 'Applied load (MN)' 1307 if 'FreePrm1' not in data: 1308 data['FreePrm1'] = 0. 1309 if 'FreePrm2' not in data: 1310 data['FreePrm2'] = 0. 1311 if 'FreePrm3' not in data: 1312 data['FreePrm3'] = 0. 1260 1313 #patch end 1261 1314 1262 parms = [['Gonio. radius',' Goniometer radius(mm): ','%.2f',]] 1315 parms = [] 1316 parms.append(['Scale','Histogram scale factor: ']) 1317 parms.append(['Gonio. radius','Goniometer radius (mm): ']) 1263 1318 if data['Type'] == 'Debye-Scherrer': 1264 parms += [['DisplaceX',u' Sample X displ. perp. to beam (\xb5m): ','%.2f',],1265 ['DisplaceY',u' Sample Y displ. || to beam (\xb5m): ','%.2f',],1266 ['Absorption',u' Sample absorption(\xb5r): ','%.4f',],]1319 parms += [['DisplaceX',u'Sample X displ. perp. to beam (\xb5m): '], 1320 ['DisplaceY',u'Sample Y displ. || to beam (\xb5m): '], 1321 ['Absorption',u'Sample absorption (\xb5\xb7r): '],] 1267 1322 elif data['Type'] == 'Bragg-Brentano': 1268 parms += [['Shift',u' Sample displacement(\xb5m): ','%.2f',], 1269 ['Transparency',u' Sample transparency(1/\xb5eff,cm): ','%.4f'],] 1270 parms.append(['Omega','Goniometer omega:','%.2f']) 1271 parms.append(['Chi','Goniometer chi:','%.2f']) 1272 parms.append(['Phi','Goniometer phi:','%.2f']) 1273 parms.append(['Temperature',' Sample temperature(K): ','%.2f']) 1274 parms.append(['Pressure',' Sample pressure(MPa): ','%.3f']) 1275 parms.append(['Humidity',' Sample humidity(%): ','%.1f']) 1276 parms.append(['Voltage',' Sample voltage(V): ','%.3f']) 1277 parms.append(['Force',' Applied load(MN): ','%.3f']) 1278 objList = {} 1279 1280 def OnScaleRef(event): 1281 Obj = event.GetEventObject() 1282 data['Scale'][1] = Obj.GetValue() 1283 1284 def OnScaleVal(event): 1285 Obj = event.GetEventObject() 1286 try: 1287 scale = float(Obj.GetValue()) 1288 if scale > 0: 1289 data['Scale'][0] = scale 1290 except ValueError: 1291 pass 1292 Obj.SetValue("%.4f"%(data['Scale'][0])) #reset in case of error 1293 1294 def OnHistoType(event): 1295 Obj = event.GetEventObject() 1296 data['Type'] = Obj.GetValue() 1297 if data['Type'] == 'Bragg-Brentano' and 'Shift' not in data: #set up defaults for new type(s) 1298 data['Shift'] = [0.0,False] 1299 data['Transparency'] = [0.0,False] 1300 wx.CallAfter(UpdateSampleGrid,G2frame,data) 1301 1302 def OnParmRef(event): 1303 Obj = event.GetEventObject() 1304 parm = objList[Obj.GetId()] 1305 data[parm][1] = Obj.GetValue() 1306 1307 def OnParmVal(event): 1308 Obj = event.GetEventObject() 1309 parm = objList[Obj.GetId()] 1310 try: 1311 if 'list' in str(type(data[parm[0]])): 1312 data[parm[0]][0] = float(Obj.GetValue()) 1313 else: 1314 data[parm[0]] = float(Obj.GetValue()) 1315 except ValueError: 1316 pass 1317 if 'list' in str(type(data[parm[0]])): 1318 Obj.SetValue(parm[2]%(data[parm[0]][0])) #reset in case of error 1319 else: 1320 Obj.SetValue(parm[2]%(data[parm[0]])) #reset in case of error 1321 1322 def SetNameVal(): 1323 inst = instNameVal.GetValue() 1324 data['InstrName'] = inst.strip() 1325 1326 def OnNameVal(event): 1327 event.Skip() 1328 wx.CallAfter(SetNameVal) 1323 parms += [['Shift',u'Sample displacement(\xb5m): '], 1324 ['Transparency',u'Sample transparency(1/\xb5eff, cm): '],] 1325 parms.append(['Omega','Goniometer omega:',]) 1326 parms.append(['Chi','Goniometer chi:',]) 1327 parms.append(['Phi','Goniometer phi:',]) 1328 parms.append(['Temperature','Sample temperature (K): ',]) 1329 parms.append(['Pressure','Sample pressure (MPa): ',]) 1329 1330 1330 1331 mainSizer = wx.BoxSizer(wx.VERTICAL) 1331 1332 topSizer = wx.BoxSizer(wx.HORIZONTAL) 1332 1333 topSizer.Add((-1,-1),1,wx.EXPAND,1) 1333 topSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' 1334 topSizer.Add(wx.StaticText(G2frame.dataDisplay,label='Sample and Experimental Parameters')) 1334 1335 topSizer.Add((-1,-1),1,wx.EXPAND,1) 1335 1336 mainSizer.Add(topSizer,0,wx.EXPAND,1) 1336 1337 nameSizer = wx.BoxSizer(wx.HORIZONTAL) 1337 nameSizer.Add(wx.StaticText(G2frame.dataDisplay,wx.ID_ANY,' Instrument Name'),1338 nameSizer.Add(wx.StaticText(G2frame.dataDisplay,wx.ID_ANY,' Instrument Name'), 1338 1339 0,wx.ALIGN_CENTER_VERTICAL) 1339 1340 nameSizer.Add((-1,-1),1,wx.EXPAND,1) … … 1343 1344 instNameVal.Bind(wx.EVT_CHAR,OnNameVal) 1344 1345 mainSizer.Add(nameSizer,0,wx.EXPAND,1) 1345 mainSizer.Add(( 0,5),0)1346 mainSizer.Add((5,5),0) 1346 1347 1347 mainSizer.Add((5,5),0) 1348 parmSizer = wx.FlexGridSizer(10,2,5,0) 1349 scaleRef = wx.CheckBox(G2frame.dataDisplay,label=' Histogram scale factor: ') 1350 scaleRef.SetValue(data['Scale'][1]) 1351 scaleRef.Bind(wx.EVT_CHECKBOX, OnScaleRef) 1352 parmSizer.Add(scaleRef,0,wx.ALIGN_CENTER_VERTICAL) 1353 scaleVal = wx.TextCtrl(G2frame.dataDisplay,wx.ID_ANY, 1354 '%.4f'%(data['Scale'][0]),style=wx.TE_PROCESS_ENTER) 1355 scaleVal.Bind(wx.EVT_TEXT_ENTER,OnScaleVal) 1356 scaleVal.Bind(wx.EVT_KILL_FOCUS,OnScaleVal) 1357 parmSizer.Add(scaleVal,0,wx.ALIGN_CENTER_VERTICAL) 1358 typeSizer = wx.BoxSizer(wx.HORIZONTAL) 1348 nameSizer = wx.BoxSizer(wx.HORIZONTAL) 1349 nameSizer.Add(wx.StaticText(G2frame.dataDisplay,wx.ID_ANY,' Diffractometer type: '), 1350 0,wx.ALIGN_CENTER_VERTICAL) 1359 1351 choices = ['Debye-Scherrer','Bragg-Brentano',] 1360 1352 histoType = wx.ComboBox(G2frame.dataDisplay,wx.ID_ANY,value=data['Type'],choices=choices, 1361 1353 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1362 1354 histoType.Bind(wx.EVT_COMBOBOX, OnHistoType) 1363 parmSizer.Add(histoType) 1364 parmSizer.Add((5,5),0) 1365 1366 for parm in parms: 1367 if 'list' in str(type(data[parm[0]])): 1368 parmRef = wx.CheckBox(G2frame.dataDisplay,label=parm[1]) 1369 objList[parmRef.GetId()] = parm[0] 1370 parmRef.SetValue(data[parm[0]][1]) 1371 parmRef.Bind(wx.EVT_CHECKBOX, OnParmRef) 1372 parmSizer.Add(parmRef,0,wx.ALIGN_CENTER_VERTICAL) 1373 parmVal = wx.TextCtrl(G2frame.dataDisplay,wx.ID_ANY, 1374 parm[2]%(data[parm[0]][0]),style=wx.TE_PROCESS_ENTER) 1355 nameSizer.Add(histoType) 1356 mainSizer.Add(nameSizer,0,wx.EXPAND,1) 1357 mainSizer.Add((5,5),0) 1358 1359 parmSizer = wx.FlexGridSizer(10,2,5,0) 1360 for key,lbl in parms: 1361 if 'list' in str(type(data[key])): 1362 parmRef = G2gd.G2CheckBox(G2frame.dataDisplay,' '+lbl,data[key],1) 1363 parmSizer.Add(parmRef,0,wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) 1364 parmVal = G2gd.ValidatedTxtCtrl(G2frame.dataDisplay,data[key],0,typeHint=float) 1375 1365 else: 1376 parmSizer.Add(wx.StaticText(G2frame.dataDisplay,label=parm[1]), 1377 0,wx.ALIGN_CENTER_VERTICAL) 1378 parmVal = wx.TextCtrl(G2frame.dataDisplay,wx.ID_ANY, 1379 parm[2]%(data[parm[0]]),style=wx.TE_PROCESS_ENTER) 1380 objList[parmVal.GetId()] = parm 1381 parmVal.Bind(wx.EVT_TEXT_ENTER,OnParmVal) 1382 parmVal.Bind(wx.EVT_KILL_FOCUS,OnParmVal) 1366 parmSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' '+lbl), 1367 0,wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) 1368 parmVal = G2gd.ValidatedTxtCtrl(G2frame.dataDisplay,data,key,typeHint=float) 1383 1369 parmSizer.Add(parmVal,1,wx.EXPAND) 1384 mainSizer.Add(parmSizer) 1370 for key in ('FreePrm1','FreePrm2','FreePrm3'): 1371 parmVal = G2gd.ValidatedTxtCtrl(G2frame.dataDisplay,Controls,key,typeHint=str, 1372 notBlank=False) 1373 parmSizer.Add(parmVal,1,wx.EXPAND) 1374 parmVal = G2gd.ValidatedTxtCtrl(G2frame.dataDisplay,data,key,typeHint=float) 1375 parmSizer.Add(parmVal,1,wx.EXPAND) 1376 mainSizer.Add(parmSizer,1,wx.EXPAND) 1385 1377 mainSizer.Add((0,5),0) 1386 1378
Note: See TracChangeset
for help on using the changeset viewer.