def bwf_constraint_constructor(ai_parser):
    """ Add the argparse switches relative to the box_wood_frame
  """
    r_parser = ai_parser
    r_parser.add_argument('--box_width', '--bw', action='store', type=float,
        default=400.0, help='It sets the width of the box of the grid.')
    r_parser.add_argument('--box_depth', '--bd', action='store', type=float,
        default=400.0, help=
        'It sets the depth of the box of the grid. Per default, it is set to box_width value.'
        )
    r_parser.add_argument('--box_height', '--bh', action='store', type=
        float, default=400.0, help=
        'It sets the height of the box of the grid. Per default, it is set to box_width value.'
        )
    r_parser.add_argument('--fitting_height', '--fh', action='store', type=
        float, default=30.0, help=
        'It sets the height of the fitting that pile up vertically two modules.'
        )
    r_parser.add_argument('--h_plank_width', '--hpw', action='store', type=
        float, default=50.0, help=
        'It sets the width of the horizontal planks. Note that the total width of the horizontal plank is plank_width+fitting_height.'
        )
    r_parser.add_argument('--v_plank_width', '--vpw', action='store', type=
        float, default=30.0, help='It sets the width of the vertical planks.')
    r_parser.add_argument('--plank_height', '--ph', action='store', type=
        float, default=20.0, help=
        'It sets the height of the vertical and horizontal planks.')
    r_parser.add_argument('--d_plank_width', '--dpw', action='store', type=
        float, default=30.0, help=
        'It sets the width of the diagonal planks. Per default the value is set to v_plank_width.'
        )
    r_parser.add_argument('--d_plank_height', '--dph', action='store', type
        =float, default=10.0, help=
        'It sets the height of the diagonal planks. If the vaue is zero, the plank_height value will be used. Set a lower value than plank_height to give space for the slab.'
        )
    r_parser.add_argument('--crenel_depth', '--cd', action='store', type=
        float, default=5.0, help=
        'It sets the depth of the crenels of the coplanar planks.')
    r_parser.add_argument('--wall_diagonal_size', '--wdz', action='store',
        type=float, default=50.0, help=
        'It sets the size of the diagonal lining of the four vertical walls.')
    r_parser.add_argument('--tobo_diagonal_size', '--tbdz', action='store',
        type=float, default=100.0, help=
        'It sets the size of the diagonal lining of the top and bottom faces.')
    r_parser.add_argument('--diagonal_lining_top_height', '--dlth', action=
        'store', type=float, default=20.0, help=
        'It sets the distance between the plank border and the holes for the horizontal top planks.'
        )
    r_parser.add_argument('--diagonal_lining_bottom_height', '--dlbh',
        action='store', type=float, default=20.0, help=
        'It sets the distance between the plank border and the holes for the horizontal bottom planks.'
        )
    r_parser.add_argument('--module_width', '--mw', action='store', type=
        int, default=1, help=
        'It sets the width of the module in number of box_width.')
    r_parser.add_argument('--router_bit_radius', '--rr', action='store',
        type=float, default=2.0, help=
        'It sets the radius of the router_bit of the cnc.')
    r_parser.add_argument('--cutting_extra', '--ce', action='store', type=
        float, default=2.0, help=
        'It sets the cutting_extra used to see better the fitting in the assembly view.'
        )
    r_parser.add_argument('--slab_thickness', '--st', action='store', type=
        float, default=5.0, help=
        'If not zero (the default value), it generates the slabs with this thickness.'
        )
    return r_parser
