Index: calculatorview/src/sans/perspectives/calculator/gen_scatter_panel.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/gen_scatter_panel.py	(revision 46be5e696d6248a735277047b8fbd81961bb88af)
+++ calculatorview/src/sans/perspectives/calculator/gen_scatter_panel.py	(revision dbc5dc9b21e953e43e7d6a054b2231a04fd6ae84)
@@ -39,5 +39,4 @@
 from sans.perspectives.calculator.load_thread import GenReader
 #import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import Axes3D
 from danse.common.plottools.arrow3d import Arrow3D
 #from danse.common.plottools.toolbar import NavigationToolBar
@@ -141,4 +140,5 @@
         self.omfreader = sans_gen.OMFReader()
         self.sldreader = sans_gen.SLDReader()
+        self.pdbreader = sans_gen.PDBReader()
         self.model = sans_gen.GenSAS()
         self.param_dic = self.model.params
@@ -428,4 +428,5 @@
         omf_type = self.omfreader.type
         sld_type = self.sldreader.type
+        pdb_type = self.pdbreader.type
         wildcard = []
         for type in sld_type:
@@ -433,4 +434,6 @@
         for type in omf_type:
             wildcard.append(type)
+        #for type in pdb_type:
+        #    wildcard.append(type)
         wildcard = '|'.join(wildcard)
         dlg = wx.FileDialog(self, "Choose a file", location,
@@ -465,4 +468,6 @@
             elif self.ext in self.sldreader.ext:
                 loader = self.sldreader
+            elif self.ext in self.pdbreader.ext:
+                loader = self.pdbreader
             else:
                 loader = None
@@ -480,5 +485,4 @@
         except:
             self.ext = None
-            raise
             if self.parent.parent is None:
                 return 
@@ -517,4 +521,6 @@
                 self.sld_data = gen.get_magsld()
             elif self.ext in self.sldreader.ext:
+                self.sld_data = data
+            elif self.ext in self.pdbreader.ext:
                 self.sld_data = data
                 #omf_data = None
@@ -596,5 +602,9 @@
                 logging.error("PlotPanel could not import Axes3D")
                 raise
-
+        marker = ','
+        m_size = 2
+        if output.pix_type != 'pixel':
+            marker = 'o'
+            m_size = 2
         pos_x = output.pos_x
         pos_y = output.pos_y
@@ -603,5 +613,5 @@
         sld_my = output.sld_my
         sld_mz = output.sld_mz  
-         
+
         sld_tot = (numpy.fabs(sld_mx) + numpy.fabs(sld_my) + 
                    numpy.fabs(sld_mz) + numpy.fabs(output.sld_n))
@@ -609,6 +619,7 @@
         is_zero = sld_tot == 0.0  
         if is_zero.any():
-            ax.plot(pos_x[is_zero], pos_y[is_zero], pos_z[is_zero], ',', c="y", 
-                        alpha=0.5, markeredgecolor='y', markersize=3) 
+            ax.plot(pos_x[is_zero], pos_y[is_zero], pos_z[is_zero], marker, 
+                        c="y", alpha=0.5, markeredgecolor='y', 
+                        markersize=m_size) 
             pos_x = pos_x[is_nonzero]
             pos_y = pos_y[is_nonzero]
@@ -617,7 +628,8 @@
             sld_my = sld_my[is_nonzero]
             sld_mz = sld_mz[is_nonzero]
+
         ax.plot(pos_x, pos_y, 
-                pos_z, ',', c="k", 
-                alpha=0.5, markeredgecolor='k', markersize=3) 
+                pos_z, marker, c="k", 
+                alpha=0.5, markeredgecolor="k", markersize=m_size) 
         
         if has_arrow and len(pos_x) > 0:     
@@ -763,5 +775,5 @@
             self.set_est_time()
         except:
-           flag =  _set_error(self, self.npt_ctl)
+            flag =  _set_error(self, self.npt_ctl)
         try:
             qmax_val = float(self.qmax_ctl.GetValue()) 
@@ -1030,6 +1042,7 @@
         """
         val = 1
-        for lst in self.stepsize:
-            val *= float(lst[1].GetValue())
+        if self.sld_data.pix_type == 'pixel':
+            for lst in self.stepsize:
+                val *= float(lst[1].GetValue())
         
         return numpy.fabs(val)
@@ -1365,4 +1378,5 @@
                     ctr_list[1].SetValue(format_number(mean_val, True))
                     ctr_list[1].Enable(enable)
+                    ctr_list[2].SetLabel("[" + sld_data.sld_unit + "]")
                     break   
 
@@ -1450,5 +1464,6 @@
                     npts = -1
                     break
-                npts *= int(n_val)
+                if numpy.isfinite(n_val):
+                    npts *= int(n_val)
             if npts > 0:
                 nop = self.set_npts_from_slddata()
@@ -1676,7 +1691,5 @@
             return
         self.sld_data = data
-        
         enable = (not data==None)
-        #print "main mx", data.sld_mx
         self._set_omfpanel_sld_data(self.sld_data)
         self.omfpanel.bt_save.Enable(enable)
@@ -1815,5 +1828,4 @@
             frame.Show(True)
         except:
-            raise
             frame.Destroy() 
             msg = 'Display Error\n'
Index: calculatorview/src/sans/perspectives/calculator/load_thread.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/load_thread.py	(revision 318b5bbbcb046db18a8e953dccae04fc7b8a71e0)
+++ calculatorview/src/sans/perspectives/calculator/load_thread.py	(revision dbc5dc9b21e953e43e7d6a054b2231a04fd6ae84)
@@ -3,4 +3,5 @@
 """
 import time
+import wx
 from data_util.calcthread import CalcThread
 from sans.dataloader.loader import Loader
