def METHOD_NAME(self):
    sx, y, h = self.sx, self.y, self.h
    t = self.thickness
    x = sum(sx) + (len(sx) - 1) * t
    o = max(0, min(self.opening, 100))
    sides = x * (1-o/100) / 2
    b = self.edges.get(self.bottom_edge, self.edges["F"])
    if self.bottom_edge == "s":
        b2 = HalfStackableEdge(self, self.edges["s"].settings,
                               self.edges["f"].settings)
        b3 = self.edges["h"]
    else:
        b2 = b
        b3 = b
    b4 = Edge(self, None)
    b4.startwidth = lambda: b3.startwidth()
    with self.saved_context():
        self.rectangularWall(y, h, [b, "F", "e", "F"],
                             ignore_widths=[1, 6], move="right")
        # front walls
        if self.opening == 0.0:
            self.rectangularWall(x, h, [b, "f", "e", "f"],
                                 ignore_widths=[1, 6], move="right")
        else:
            self.rectangularWall(sx[0] * (1-o/100) / 2, h,
                                 [b2, "e", "e", "f"],
                                 ignore_widths=[1, 6], move="right")
            for ix in range(len(sx)-1):
                left = sx[ix] * (1-o/100) / 2
                right = sx[ix+1] * (1-o/100) / 2
                h_e = t
                bottom_edge = CompoundEdge(
                    self, [b3, b4, b3], [left, t, right])
                self.rectangularWall(
                    left+right+t, h,
                    [bottom_edge, "e", "e", "e"],
                    callback=[lambda: self.fingerHolesAt(left+t/2, 0, h, 90)],
                    move="right")
            self.rectangularWall(sx[-1] * (1-o/100) / 2, h,
                                 [b2, "e", "e", "f"],
                                 ignore_widths=[1, 6], move="right mirror")
    self.rectangularWall(x, h, [b, "F", "e", "F"],
                         ignore_widths=[1, 6], move="up only")
    with self.saved_context():
        self.rectangularWall(y, h, [b, "F", "e", "F"], ignore_widths=[1, 6], move="right")
        self.rectangularWall(x, h, [b, "f", "e", "f"],
                             callback=[self.fingerHoleCB(sx, h)],
                             ignore_widths=[1, 6], move="right")
    self.rectangularWall(y, h, [b, "F", "e", "F"], move="up only")
    if self.bottom_edge != "e":
        if self.opening == 0.0:
            self.rectangularWall(x, y, ["f", "f", "f", "f"], move="up")
        else:
            u_edge = USlotEdge(self, o)
            print([l for x in sx for l in (x, t)])
            front = CompoundEdge(
                self,
                ([u_edge, "e"]*len(sx))[:-1],
                ([l for x in sx for l in (x, t)])[:-1])
            self.rectangularWall(x, y, [front, "f", "f", "f"],
                                 callback=[self.fingerHoleCB(sx, y)],
                                 move="up")
    # innner walls
    for i in range(len(sx)-1):
        self.rectangularWall(
            y, h, ("e" if self.bottom_edge=="e" else "f") + "fef",
            move="right")