Changeset 2450 for trunk/GSASIIgrid.py
- Timestamp:
- Aug 25, 2016 12:22:04 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIgrid.py
r2435 r2450 75 75 wxID_DRAWVIEWPOINT, wxID_DRAWTRANSFORM, wxID_DRAWDELETE, wxID_DRAWFILLCELL, 76 76 wxID_DRAWADDEQUIV, wxID_DRAWFILLCOORD, wxID_DRAWDISAGLTOR, wxID_DRAWPLANE, 77 wxID_DRAWDISTVP, 78 ] = [wx.NewId() for item in range(1 3)]77 wxID_DRAWDISTVP, wxID_DRAWADDSPHERE, 78 ] = [wx.NewId() for item in range(14)] 79 79 80 80 [ wxID_DRAWRESTRBOND, wxID_DRAWRESTRANGLE, wxID_DRAWRESTRPLANE, wxID_DRAWRESTRCHIRAL, … … 324 324 325 325 ################################################################################ 326 class SphereEnclosure(wx.Dialog): 327 ''' Add atoms within sphere of enclosure to drawing 328 329 :param wx.Frame parent: reference to parent frame (or None) 330 :param general: general data (includes drawing data) 331 :param atoms: drawing atoms data 332 333 ''' 334 def __init__(self,parent,general,drawing,indx): 335 wx.Dialog.__init__(self,parent,wx.ID_ANY,'Setup phase transformation', 336 pos=wx.DefaultPosition,style=wx.DEFAULT_DIALOG_STYLE) 337 self.panel = wx.Panel(self) #just a dummy - gets destroyed in Draw! 338 self.General = general 339 self.Drawing = drawing 340 self.indx = indx 341 self.Sphere = 1.0 342 self.centers = [] 343 344 self.Draw() 345 346 def Draw(self): 347 348 def OnRadius(event): 349 event.Skip() 350 try: 351 val = float(radius.GetValue()) 352 if val < 0.5: 353 raise ValueError 354 self.Sphere = val 355 except ValueError: 356 pass 357 radius.SetValue('%.3f'%(self.Sphere)) 358 359 self.panel.Destroy() 360 self.panel = wx.Panel(self) 361 mainSizer = wx.BoxSizer(wx.VERTICAL) 362 mainSizer.Add(wx.StaticText(self.panel,label=' Sphere of enclosure controls:'),0,WACV) 363 topSizer = wx.BoxSizer(wx.HORIZONTAL) 364 atoms = [] 365 if len(self.indx): 366 topSizer.Add(wx.StaticText(self.panel,label=' Sphere centered at atoms: '),0,WACV) 367 cx,ct,cs = self.Drawing['atomPtrs'][:3] 368 # print self.Drawing.keys() 369 for id in self.indx: 370 atom = self.Drawing['Atoms'][id] 371 self.centers.append(atom[cx:cx+3]) 372 atoms.append('%s(%s)'%(atom[ct-1],atom[cs-1])) 373 topSizer.Add(wx.ComboBox(self.panel,choices=atoms,value=atoms[0], 374 style=wx.CB_READONLY|wx.CB_DROPDOWN),0,WACV) 375 else: 376 topSizer.Add(wx.StaticText(self.panel,label=' Sphere centered at drawing view point'),0,WACV) 377 self.centers.append(self.Drawing['viewPoint'][0]) 378 mainSizer.Add(topSizer,0,WACV) 379 sphereSizer = wx.BoxSizer(wx.HORIZONTAL) 380 sphereSizer.Add(wx.StaticText(self.panel,label=' Sphere radius: '),0,WACV) 381 radius = wx.TextCtrl(self.panel,value='%.3f'%(self.Sphere),style=wx.TE_PROCESS_ENTER) 382 radius.Bind(wx.EVT_TEXT_ENTER,OnRadius) 383 radius.Bind(wx.EVT_KILL_FOCUS,OnRadius) 384 sphereSizer.Add(radius,0,WACV) 385 mainSizer.Add(sphereSizer,0,WACV) 386 387 OkBtn = wx.Button(self.panel,-1,"Ok") 388 OkBtn.Bind(wx.EVT_BUTTON, self.OnOk) 389 cancelBtn = wx.Button(self.panel,-1,"Cancel") 390 cancelBtn.Bind(wx.EVT_BUTTON, self.OnCancel) 391 btnSizer = wx.BoxSizer(wx.HORIZONTAL) 392 btnSizer.Add((20,20),1) 393 btnSizer.Add(OkBtn) 394 btnSizer.Add((20,20),1) 395 btnSizer.Add(cancelBtn) 396 btnSizer.Add((20,20),1) 397 398 mainSizer.Add(btnSizer,0,wx.EXPAND|wx.BOTTOM|wx.TOP, 10) 399 self.panel.SetSizer(mainSizer) 400 self.panel.Fit() 401 self.Fit() 402 403 def GetSelection(self): 404 return self.centers,self.Sphere 405 406 def OnOk(self,event): 407 parent = self.GetParent() 408 parent.Raise() 409 self.EndModal(wx.ID_OK) 410 411 def OnCancel(self,event): 412 parent = self.GetParent() 413 parent.Raise() 414 self.EndModal(wx.ID_CANCEL) 415 416 ################################################################################ 326 417 class TransformDialog(wx.Dialog): 327 ''' Pha ae transformation418 ''' Phase transformation 328 419 329 420 :param wx.Frame parent: reference to parent frame (or None) … … 2054 2145 self.DrawAtomEdit.Append(id=wxID_DRAWADDEQUIV, kind=wx.ITEM_NORMAL,text='Add atoms', 2055 2146 help='Add symmetry & cell equivalents to drawing set from selected atoms') 2147 self.DrawAtomEdit.Append(id=wxID_DRAWADDSPHERE, kind=wx.ITEM_NORMAL,text='Add sphere of atoms', 2148 help='Add atoms within sphere of enclosure') 2056 2149 self.DrawAtomEdit.Append(id=wxID_DRAWTRANSFORM, kind=wx.ITEM_NORMAL,text='Transform draw atoms', 2057 2150 help='Transform selected atoms by symmetry & cell translations')
Note: See TracChangeset
for help on using the changeset viewer.