diff --git a/examples/trayinsert.svg b/examples/trayinsert.svg
new file mode 100644
index 0000000..84e1759
--- /dev/null
+++ b/examples/trayinsert.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/trayinsert.py b/trayinsert.py
new file mode 100755
index 0000000..83e3b1c
--- /dev/null
+++ b/trayinsert.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python
+# Copyright (C) 2013-2014 Florian Festi
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+from boxes import *
+
+class TrayInsert(Boxes):
+ def __init__(self, x, y, h, **kw):
+ self.x, self.y, self.h = x, y, h
+ t = kw.get("thickness", 4.0)
+ Boxes.__init__(self, width=max(sum(x)+len(x)*t, sum(y)+len(y)*t)+2*t,
+ height=(len(x)+len(y)-2)*(h+t)+2*t, **kw)
+
+ def render(self):
+ x = sum(self.x) + self.thickness * (len(self.x)-1)
+ y = sum(self.y) + self.thickness * (len(self.y)-1)
+ h = self.h
+ t = self.thickness
+
+ self.moveTo(t, t)
+
+ # Inner walls
+ for i in range(len(self.x)-1):
+ e = [SlottedEdge(self, self.y, slots=0.5*h), "e", "e", "e"]
+ self.rectangularWall(y, h, e,
+ move="up")
+ for i in range(len(self.y)-1):
+ e = ["e", "e",
+ SlottedEdge(self, self.x[::-1], "e", slots=0.5*h), "e"]
+ self.rectangularWall(x, h, e,
+ move="up")
+ self.close()
+
+
+# Calculate equidistant section
+x = 260 # width
+nx = 3
+y = 300 # depth
+ny = 4
+thickness=4.0
+dx = (x+thickness)/nx-thickness
+dy = (y+thickness)/ny-thickness
+
+sx = [dx] * nx
+sy = [dy] * ny
+
+# Or give sections by hand
+#sx = [80, 100, 80]
+#sy = [80, 120, 200]
+
+b = TrayInsert(sx, sy, 80, thickness=thickness, burn=0.1)
+b.render()