diff --git a/AmpScan/ampVis.py b/AmpScan/ampVis.py
index 3a13a99eb312c5622c4d1372c5402fd72726b6a6..b33ab416f7e56f45c566a7d906a3ecbf5e3ca86b 100644
--- a/AmpScan/ampVis.py
+++ b/AmpScan/ampVis.py
@@ -289,7 +289,7 @@ class visMixin(object):
     def genIm(self, size=[512, 512], views=[[0, -1, 0]], 
               background=[1.0, 1.0, 1.0], projection=True,
               shading=True, mag=10, out='im', fh='test.tiff', 
-              zoom=1.0, az = 0, crop=False):
+              zoom=1.0, az = 0, crop=False, cam=None):
         r"""
         Creates a temporary off screen vtkRenWin which is then either returned
         as a numpy array or saved as a .png file
@@ -326,6 +326,7 @@ class visMixin(object):
             self.addActor()
         # Generate a renderer window
         win = vtkRenWin()
+        win.OffScreenRenderingOn()
         # Set the number of viewports
         win.setnumViewports(len(views))
         # Set the background colour
@@ -334,13 +335,15 @@ class visMixin(object):
         win.setProjection(projection)
         win.SetSize(size[0], size[1])
         win.Modified()
-        win.OffScreenRenderingOn()
+        
         for i, view in enumerate(views):
 #            win.addAxes([self.actor,], color=[0.0, 0.0, 0.0], viewport=i)
             win.setView(view, i)
 #            win.setProjection(projection, viewport=i)
             win.renderActors([self.actor,], zoom=zoom)
         win.rens[0].GetActiveCamera().Azimuth(az)
+        if cam is not None:
+            win.rens[0].SetActiveCamera(cam)
         win.Render()
         if out == 'im':
             im = win.getImage()
@@ -351,7 +354,7 @@ class visMixin(object):
                 mask = np.all(im == 1, axis=2)
                 mask = ~np.all(mask, axis=0)
                 im = im[:, mask, :]
-            return im
+            return im, win
         elif out == 'fh':
             win.getScreenshot(fh)
             return
diff --git a/AmpScan/trim.py b/AmpScan/trim.py
index 3e198b8e2d7c8ae1c4b39797df5f1cd654f89fdb..4a31d59df107fdec8753a9d8876ea40624b77fe5 100644
--- a/AmpScan/trim.py
+++ b/AmpScan/trim.py
@@ -30,25 +30,26 @@ class trimMixin(object):
         >>> amp.planarTrim(100, 2)
 
         """
-        if type(height)==float:
+#        if isinstance(height, float):
             # planar values for each vert on face 
-            fv = self.vert[self.faces, plane]
-            # Number points on each face are above cut plane
-            fvlogic = (fv > height).sum(axis=1)
-            # Faces with points both above and below cut plane
-            adjf = self.faces[np.logical_or(fvlogic == 2, fvlogic == 1)]
-            # Get adjacent vertices
-            adjv = np.unique(adjf)
-            # Get vert above height and set to height
-            abvInd = adjv[self.vert[adjv, plane] > height]
-            self.vert[abvInd, plane] = height
-            # Find all verts above plane
-            delv = self.vert[:, plane] > height
-            # Reorder verts to account for deleted one
-            vInd = np.cumsum(~delv) - 1
-            self.faces = self.faces[fvlogic != 3, :]
-            self.faces = vInd[self.faces]
-            self.vert = self.vert[~delv, :]
-            self.calcStruct()
-        else:
-            raise TypeError("height arg must be a float")
\ No newline at end of file
+        fv = self.vert[self.faces, plane]
+        # Number points on each face are above cut plane
+        fvlogic = (fv > height).sum(axis=1)
+        # Faces with points both above and below cut plane
+        adjf = self.faces[np.logical_or(fvlogic == 2, fvlogic == 1)]
+        # Get adjacent vertices
+        adjv = np.unique(adjf)
+        # Get vert above height and set to height
+        abvInd = adjv[self.vert[adjv, plane] > height]
+        self.vert[abvInd, plane] = height
+        # Find all verts above plane
+        delv = self.vert[:, plane] > height
+        # Reorder verts to account for deleted one
+        vInd = np.cumsum(~delv) - 1
+        self.faces = self.faces[fvlogic != 3, :]
+        self.faces = vInd[self.faces]
+        self.vert = self.vert[~delv, :]
+        self.values = self.values[~delv]
+        self.calcStruct()
+#        else:
+#            raise TypeError("height arg must be a float")
\ No newline at end of file