Changeset 854
- Timestamp:
- Feb 20, 2013 9:51:42 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIconstrGUI.py
r852 r854 1271 1271 def ChangeAngle(event): 1272 1272 Obj = event.GetEventObject() 1273 rbId,Seq = Indx[Obj.GetId()] 1273 rbId,Seq = Indx[Obj.GetId()][:2] 1274 1274 val = Seq[2] 1275 1275 try: … … 1301 1301 seqSizer.Add(bond,0,wx.ALIGN_CENTER_VERTICAL) 1302 1302 Indx[radBt.GetId()] = [Seq,iSeq,ang.GetId()] 1303 Indx[ang.GetId()] = [rbId,Seq ]1303 Indx[ang.GetId()] = [rbId,Seq,ang] 1304 1304 ang.Bind(wx.EVT_TEXT_ENTER,ChangeAngle) 1305 1305 ang.Bind(wx.EVT_KILL_FOCUS,ChangeAngle) … … 1338 1338 for seq in rbData['rbSeq']: 1339 1339 for i in seq[3]: 1340 choiceIds.remove(i) 1340 try: 1341 choiceIds.remove(i) 1342 except ValueError: 1343 pass 1341 1344 rbRef = rbData['rbRef'] 1342 1345 for i in range(3): 1343 choiceIds.remove(rbRef[i]) 1346 try: 1347 choiceIds.remove(rbRef[i]) 1348 except ValueError: 1349 pass 1344 1350 refChoice[rbId] = [choiceIds[:],choiceIds[:],choiceIds[:]] 1345 1351 for i in range(3): -
trunk/GSASIIphsGUI.py
r853 r854 1641 1641 rbId = ran.randint(0,sys.maxint) 1642 1642 RBData['Residue'][rbId] = {'RBname':'UNKRB','rbXYZ':rbXYZ,'rbTypes':rbType, 1643 'atNames':atNames,'rbRef':[0,1,2 ],'rbSeq':[],'SelSeq':[0,0],'useCount':0}1643 'atNames':atNames,'rbRef':[0,1,2,False],'rbSeq':[],'SelSeq':[0,0],'useCount':0} 1644 1644 G2frame.dataFrame.SetStatusText('New rigid body UNKRB added to set of Residue rigid bodies') 1645 1645 … … 3187 3187 refName.append(reftype+' '+str(rbRef[0])) 3188 3188 atNames = [{},{},{}] 3189 AtNames = {} 3189 3190 for iatm,atom in enumerate(atomData): 3191 AtNames[atom[ct-1]] = iatm 3190 3192 for i,reftype in enumerate(refType): 3191 3193 if atom[ct] == reftype: 3192 3194 atNames[i][atom[ct-1]] = iatm 3193 3195 data['testRBObj']['atNames'] = atNames 3196 data['testRBObj']['AtNames'] = AtNames 3194 3197 data['testRBObj']['rbObj'] = {'Orig':[[0,0,0],False],'Orient':[[0,0,0,1.],' '], 3195 'RBId':rbId,'Torsions':[],'numChain':'','RBname':rbData[rbType][rbId]['RBname']} 3198 'RBId':rbId,'Torsions':[],'numChain':'','RBname':rbData[rbType][rbId]['RBname']} 3199 data['testRBObj']['torAtms'] = [] 3196 3200 for item in rbData[rbType][rbId].get('rbSeq',[]): 3197 data['testRBObj']['rbObj']['Torsions'].append([0.0,False]) 3201 data['testRBObj']['rbObj']['Torsions'].append([item[2],False]) 3202 data['testRBObj']['torAtms'].append([-1,-1,-1]) 3198 3203 Draw() 3199 3204 … … 3273 3278 data['testRBObj']['rbObj']['Orig'][0] = Nxyz-Oxyz 3274 3279 Draw() 3280 3281 def OnTorAngle(event): 3282 Obj = event.GetEventObject() 3283 tor = Indx[Obj.GetId()] 3284 Tors = data['testRBObj']['rbObj']['Torsions'][tor] 3285 try: 3286 value = Obj.GetValue() 3287 except ValueError: 3288 value = Tors[0] 3289 Tors[0] = value 3290 Obj.SetValue('%8.3f'%(value)) 3291 G2plt.PlotStructure(G2frame,data) 3292 3293 def OnTorAtPick(event): 3294 Obj = event.GetEventObject() 3295 tor,ind = Indx[Obj.GetId()] 3296 atName = Obj.GetValue() 3297 data['testRBObj']['torAtms'][tor][ind] = AtNames[atName] 3298 if all([i > -1 for i in data['testRBObj']['torAtms'][tor]]): 3299 rbObj = data['testRBObj']['rbObj'] 3300 rbId = rbObj['RBId'] 3301 rbXYZ = rbData['Residue'][rbId]['rbXYZ'] 3302 Oatm,Patm,Ratm = data['testRBObj']['torAtms'][tor] 3303 Seq = rbData['Residue'][rbId]['rbSeq'][tor] 3304 Tors = data['testRBObj']['rbObj']['Torsions'][tor] 3305 VBR = rbXYZ[Oatm]-rbXYZ[Patm] 3306 VAR = rbXYZ[Ratm]-rbXYZ[Patm] 3307 VAC = np.inner(Amat,atomData[Seq[3][0]][cx:cx+3])-np.inner(Amat,atomData[Seq[1]][cx:cx+3]) 3308 QuatA,D = G2mth.makeQuat(VAR,VAC,VBR) 3309 angle = 180.*D/np.pi 3310 Tors[0] = angle 3311 G2plt.PlotStructure(G2frame,data) 3312 Draw() 3275 3313 3276 3314 if len(data['testRBObj']): … … 3286 3324 Osizers = [] 3287 3325 OriSizer = wx.FlexGridSizer(1,6,5,5) 3288 Orig = data['testRBObj']['rbObj']['Orig'][0] 3289 Orien = data['testRBObj']['rbObj']['Orient'][0] 3326 rbObj = data['testRBObj']['rbObj'] 3327 rbId = rbObj['RBId'] 3328 Orig = rbObj['Orig'][0] 3329 Orien = rbObj['Orient'][0] 3290 3330 rbRef = data['testRBObj']['rbRef'] 3331 Torsions = rbObj['Torsions'] 3291 3332 refName = [] 3292 3333 for ref in rbRef: … … 3333 3374 mainSizer.Add(OriSizer) 3334 3375 mainSizer.Add((5,5),0) 3335 3376 if Torsions: 3377 AtNames = data['testRBObj']['AtNames'] 3378 rbAtTypes = data['testRBObj']['rbAtTypes'] 3379 TorSizer = wx.FlexGridSizer(1,9,5,5) 3380 TorAtms = data['testRBObj']['torAtms'] 3381 rbSeq = rbData['Residue'][rbId]['rbSeq'] 3382 for t,[torsion,seq] in enumerate(zip(Torsions,rbSeq)): 3383 torName = [] 3384 for item in [seq[0],seq[1],seq[3][0]]: 3385 torName.append(data['testRBObj']['rbAtTypes'][item]+str(item)) 3386 TorSizer.Add(wx.StaticText(RigidBodies,-1,'Side chain torsion: Select match to:'),0,wx.ALIGN_CENTER_VERTICAL) 3387 for i,item in enumerate([seq[0],seq[1],seq[3][0]]): 3388 atChoice = [] 3389 for at in AtNames.keys(): 3390 if rbAtTypes[item] in at: 3391 atChoice.append(at) 3392 Value = '' 3393 if TorAtms[t][i] > -1: 3394 Value = atomData[TorAtms[t][i]][ct-1] 3395 TorSizer.Add(wx.StaticText(RigidBodies,-1,torName[i]),0,wx.ALIGN_CENTER_VERTICAL) 3396 torPick = wx.ComboBox(RigidBodies,-1,value=Value, 3397 choices=atChoice,style=wx.CB_READONLY|wx.CB_DROPDOWN) 3398 torPick.Bind(wx.EVT_COMBOBOX,OnTorAtPick) 3399 Indx[torPick.GetId()] = [t,i] 3400 TorSizer.Add(torPick,0,wx.ALIGN_CENTER_VERTICAL) 3401 TorSizer.Add(wx.StaticText(RigidBodies,-1,' Angle: '),0,wx.ALIGN_CENTER_VERTICAL) 3402 ang = wx.TextCtrl(RigidBodies,-1,value='%8.3f'%(torsion[0]),style=wx.TE_PROCESS_ENTER) 3403 ang.Bind(wx.EVT_TEXT_ENTER,OnTorAngle) 3404 ang.Bind(wx.EVT_KILL_FOCUS,OnTorAngle) 3405 Indx[ang.GetId()] = t 3406 TorSizer.Add(ang,0,wx.ALIGN_CENTER_VERTICAL) 3407 3408 mainSizer.Add(TorSizer) 3409 else: 3410 mainSizer.Add(wx.StaticText(RigidBodies,-1,'No side chain torsions'),0,wx.ALIGN_CENTER_VERTICAL) 3336 3411 else: 3337 3412 topSizer = wx.BoxSizer(wx.HORIZONTAL) … … 3354 3429 btnSizer.Add((20,20),1) 3355 3430 mainSizer.Add(btnSizer,0,wx.EXPAND|wx.BOTTOM|wx.TOP, 10) 3356 RigidBodies.SetSizer(mainSizer)3357 3431 mainSizer.FitInside(RigidBodies) 3358 3432 Size = mainSizer.GetMinSize() 3433 RigidBodies.SetSizer(mainSizer) 3359 3434 Size[0] += 40 3360 3435 Size[1] = max(Size[1],290) + 35 3361 3436 RigidBodies.SetSize(Size) 3362 3437 RigidBodies.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 3363 Size[1] = min(Size[1],450)3364 3438 G2frame.dataFrame.setSizePosLeft(Size) 3365 3366 3439 Draw() 3367 3440 -
trunk/GSASIIplot.py
r853 r854 3521 3521 for Atype in rbTypes: 3522 3522 Radii.append(AtInfo[Atype][0]) 3523 if Atype == 'H': 3524 Radii[-1] = 0.5 3523 3525 Radii = np.array(Radii) 3524 3526 Bonds = [[] for i in range(len(Radii))]
Note: See TracChangeset
for help on using the changeset viewer.