<%@ Language=VBScript %> <% Option Explicit Response.Expires = 720 Dim Flag Dim Height, Width, Length, FacadeHeight Dim iOpenings, iSideOpenings, iTypeDoors, iEndDoors Dim FrontStiles, SideStiles dim dFrontOpening, dSideOpening Const LamBeamThick = 1.5 Const LamWideBeamWidth = 4.5 Const LamNarrowBeamWidth = 2.25 Const cStockThick = .75 const LumberThick = .75 Const cStileWidth = 6.125 Const cRailWidth = 4 Const cStileRailWidthNarrow = 2.375 Const cRabbet = .375 Const FacadeOffset = .25 Const cTrimTopWide = 2 Const cTrimTopNarrow = .875 Const cTrimFluted = 4 Const cTrimFlutedThick = .5 Const cTrimBottom = 3 %> <% Flag = request.form("Flag") If IsEmpty(Flag) or Flag = "" or Flag = "0" then %>

 Build Your Own Aquarium Stand For Large Tanks

Here is a calculator that Scott Morell has developed to assist you in building your own aquarium stand for tanks up to approximately 500 gallons. This stand will have two parts, the frame and the removable facade. Enter the length and width of the tank, the height desired for the stand along with a few extra questions.  A materials list will be calculated and displayed on the following page for the stand frame and the facade along with assembly instructions for both.

The stand frame can be built using either 3/4 inch Plywood or MDF. We will be making "Lamination Beams" by cutting the plywood or MDF to size and laminating them together to make beams that are 1-1/2" thick and 2-1/2" or 4" wide. This makes a very strong beam that will not warp. The floor, top and all six sides will be wrapped with 3/4" MDF. We recommend painting all surfaces, inside and out, with an epoxy paint. This will protect the stand for years.

The facade will be made using a combination of lumber and plywood. The facade will be a three sided single unit that will slide over the front and sides giving a nice finished appearance. We like to make the facade high enough to cover the aquarium's trim and the substrate. This way you are not looking at the ugly part of the glass below the sand level.

Stand Calculator for tanks 10 to 125 gallons similar to stands found at your local stores.

Low Profile Canopy Calculator For canopies 7 to 14 inches tall with a hinged top.

High Profile Canopy Calculator for Canopies taller than 14 inches. This canopy has doors on the front with optional access doors on the ends. Option of full or partial back for hang on equipment.

Disclaimer:
Construct these stands at your own risk. The authors and GARF will not be responsible for any damage or injury caused by improper construction of the stands. The combination of wood and water can lead to serious consequences, so please use common sense or consult a professional carpenter if you do not have the proper experience.


Figure 1.
Completed Stand (Frame & Facade)

Figure 2.
Authors Completed Stand/Facade

Enter data in the form below

Tank Length
1/4" increments
Tank Width
1/4" increments
Stand Height
1/4" increments
Facade Height
1/4" increments
Number of Stand Openings(Front)
General rule of thumb for number of door openings for the length of stand/facade
20" to 36" - 1 opening
36" to 48" - 2 openings
49" to 72" - 3 openings
73" to 96" - 4 openings


<% End If If Flag = "1" then Height = request.form("txtHeight")' Height = Convert2Decimal(height) FacadeHeight = request.form("txtFacadeHeight")' FacadeHeight = Convert2Decimal(FacadeHeight) Width = request.form("txtWidth") Width = Convert2Decimal(Width) Length = request.form("txtLength") Length = Convert2Decimal(Length) iOpenings = request.form("txtOpenings") iSideOpenings = request.form("txtSideOpenings") ' Calculate the ratio to determine if we are going to use Single or Double doors. dFrontOpening = (facadeHeight - cRailWidth * 2) / ((Length - cStileWidth * (iOpenings +1)) / iOpenings) dSideOpening = (facadeHeight - cRailWidth * 2) / (Width - cStileWidth * 2) %>
Stand Dimensions
Stand Height = <%=getfraction(height)%>"
Stand Width = <%=getfraction(Width)%>"
Stand Length = <%=getfraction(Length)%>"

The materials list below uses a combination of lumber and MDF/plywood. If using plywood, we recommend using a marine or exterior grade plywood. Ensure the sheet stock is the correct 3/4" thickness and NOT 23/32" which is not the same. Using 23/32 will cause the stand to be too small for the tank. Plywood can be used in place of the lumber if desired. The frame of the stand uses what my brother-out-law calls "Lam-Beams". We will be making the beams by cutting two pieces of 3/4" sheet stock and gluing them together using a wood glue or Gorilla glue. The advantage of these beams is they are very strong and will resist warping.

The materials list below will call for both plywood and lam-beams. When lam-beams are called for, multiply the quantity by 2, make the cuts, then glue then in sets of 2. This will give you a beam that is 1-1/2" thick.


<% dim Alpha dim Beta Alpha = 64 %> <% if (iOpenings - 1) * 2 > 0 then 'If there are any front and back support stiles then display them %> <% End If if (isideOpenings - 1) * 2 > 1 then 'If there are any side support stiles then display them %> <% End If %>
Stand Frame Materials List
Part Thickness Width Length Material Qty
<%=rAlpha(Alpha)%>. Front & Back Rails
(Top Frame)
<%=getfraction(LamBeamThick)%>" <%=getfraction(LamWideBeamWidth)%>" <%=getfraction(Length - cStockThick * 2)%>" Lam-Beam 2
<%=rAlpha(Alpha)%>. Front & Back Rails
(Bottom Frame)
<%=getfraction(LamBeamThick)%>" <%=getfraction(LamNarrowBeamWidth)%>" <%=getfraction(Length - cStockThick * 2)%>" Lam-Beam 2
<%=rAlpha(Alpha)%>. Front/Back Corner Stiles <%=getfraction(LamBeamThick)%>" <%=getfraction(LamWideBeamWidth)%>" <%=getfraction(Height - LamWideBeamWidth - LamNarrowBeamWidth - cStockThick * 2)%>" Lam-Beam 4
<%=rAlpha(Alpha)%>. End Corner Stiles <%=getfraction(LamBeamThick)%>" <%=getfraction(LamNarrowBeamWidth)%>" <%=getfraction(Height - LamWideBeamWidth - LamNarrowBeamWidth - cStockThick * 2)%>" Lam-Beam 4
<%=rAlpha(Alpha)%>. Front & Back Support Stiles <%=getfraction(LamBeamThick)%>" <%=getfraction(LamWideBeamWidth)%>" <%=getfraction(Height - LamWideBeamWidth - LamNarrowBeamWidth - cStockThick * 2)%>" Lam-Beam <%=(iOpenings - 1) * 2%>
<%=rAlpha(Alpha)%>. Side Support Stiles <%=getfraction(LamBeamThick)%>" <%=getfraction(LamNarrowBeamWidth)%>" <%=getfraction(Height - LamWideBeamWidth - LamNarrowBeamWidth - cStockThick * 2)%>" Lam-Beam <%=(iSideOpenings - 1) * 2%>
<%=rAlpha(Alpha)%>. Frame Cross Braces
(Top Frame)
<%=getfraction(LamBeamThick)%>" <%=getfraction(LamWideBeamWidth)%>" <%=getfraction(Width - LamBeamThick * 2 - cStockThick * 2)%>" Lam-Beam <%=iOpenings + 1%>
<%=rAlpha(Alpha)%>. Frame Cross Braces
(Top Center Optional)
<%=getfraction(LamBeamThick)%>" <%=getfraction(LamNarrowBeamWidth)%>" <%=getfraction(Width - LamBeamThick * 2 - cStockThick * 2)%>" Lam-Beam <%=iOpenings%>
<%=rAlpha(Alpha)%>. Frame Cross Braces
(Bottom Frame)
<%=getfraction(LamBeamThick)%>" <%=getfraction(LamNarrowBeamWidth)%>" <%=getfraction(Width - LamBeamThick * 2 - cStockThick * 2)%>" Lam-Beam 2
<%=rAlpha(Alpha)%>. Side Panels <%=getfraction(cStockThick)%>" <%=getfraction(Width - cStockThick * 2)%>" <%=getfraction(Height - cStockThick * 2)%>" Plywood 2
<%=rAlpha(Alpha)%>. Frame Front Panel <%=getfraction(cStockThick)%>" <%=getfraction(Height - cStockThick * 2)%>" <%=getfraction(length)%>" Plywood 1
<%=rAlpha(Alpha)%>. Frame Back Panel <%=getfraction(cStockThick)%>" <%=getfraction(Height - cStockThick * 2)%>" <%=getfraction(length)%>" Plywood 1
<%=rAlpha(Alpha)%>. Stand Top/Bottom <%=getfraction(cStockThick)%>" <%=getfraction(width)%>" <%=getfraction(length)%>" Plywood 2



<% Beta = 48 Alpha = 64 %>
Stand Frame Construction Procedure

<%=rAlpha(Alpha)%>. Multiply all Lam-Beam parts by two and cut them to size.


<%=rAlpha(Alpha)%>. Laminate the Lam-Beam parts together(Glue them) ensuring they are even and square. I like to use either Titebond III or gorilla glue and clamps to laminate them and fasten them with a pneumatic stapler. Refer to Figure <%=rBeta(Beta)%>.


Figure <%=chr(Beta)%>.
Lam-Beams


<%=rAlpha(Alpha)%>. Inspect all pieces for rough or flawed edges. Clean any excess glue off of the Lam-Beams. Sand as needed.


<%=rAlpha(Alpha)%>. Inspect all pieces for rough or flawed edges. Clean any excess glue off of the Lam-Beams. Sand as needed.


<%=rAlpha(Alpha)%>. Lay out the Rails and Cross Braces for the the top and bottom as shown in Figure <%=rBeta(Beta)%>. Using glue, and the 4" exterior wood screws, fasten the top and bottom frames.


Figure <%=chr(Beta)%>.
Top & Bottom Frames


<%=rAlpha(Alpha)%>. Attach the Top and Bottom frames together with the Support Stiles using glue and screws as shown in Figure <%=rBeta(Beta)%>. The last few stands I have made, I have used pocket holes with Titebond III wood glue. This provides a quick simple method to attach all the pieces together.

Figure <%=chr(Beta) & "a" %>.
Top & Bottom Frames


<%=rAlpha(Alpha)%>. Attach the Side panels to the Frame as shown in Figure <%=rBeta(Beta)%>.



<%=rAlpha(Alpha)%>. Attach the Front and Back panels to the Frame as shown in Figure <%=chr(Beta)%>.

Figure <%=chr(Beta)%>.
Attaching the Sides, Front, & Back


<%=rAlpha(Alpha)%>. Attach the Top to the Frame as shown in Figure <%=rBeta(Beta)%>.

Figure <%=chr(Beta)%>.
Attaching the Sides



<%=rAlpha(Alpha)%>. Drill 3/4" holes in the front, sides, and back panels. Using a router with a flush trim bit, route out the openings.

Figure <%=chr(Beta)%>.
Marking the Doors



<%=rAlpha(Alpha)%>. At this time, finish both the inside and outside of the stand with a durable exterior paint. Epoxy paint works very well for this.

<% Alpha = 64 length = length + cStockThick * 2 + FacadeOffset Width = Width + FacadeOffset + cStockThick facadeheight = facadeheight - cStockThick %>
Facade Dimensions
Facade Height = <%=getfraction(facadeheight + cStockThick)%> (with top molding)"
Facade Width = <%=getfraction(Width)%>" (without molding)
Facade Length = <%=getfraction(Length)%> (without molding)"
<% 'If the height width ration is >= .75 then use single doors. if dFrontOpening >= .75 then %> <% Else %> <% End if %>
Stand Facade Materials List
Part Thickness Width Length Material Qty
<%=rAlpha(Alpha)%>. Front Rails <%=getfraction(cStockThick)%>" <%=getfraction(cRailWidth)%>" <%=getfraction((Length - cStileWidth * (iOpenings +1)) / iOpenings)%>" Lumber <%=2 * iOpenings%>
<%=rAlpha(Alpha)%>. Front Stiles <%=getfraction(cStockThick)%>" <%=getfraction(cStileWidth)%>" <%=getfraction(FacadeHeight)%>" Lumber <%=(iOpenings + 1)%>
<%=rAlpha(Alpha)%>. Side Panels <%=getfraction(cStockThick)%>" <%=getfraction(width - LumberThick)%>" <%=getfraction(FacadeHeight)%>" Plywood <%=2%>
<%=rAlpha(Alpha)%>. Top Molding Front(Wide)** <%=getfraction(cStockThick)%>" <%=getfraction(cTrimTopWide)%>" <%=getfraction(Length + cTrimTopWide * 2)%>" Lumber 1
<%=rAlpha(Alpha)%>. Top Molding Sides (Wide)** <%=getfraction(cStockThick)%>" <%=getfraction(cTrimTopWide)%>" <%=getfraction(width + cTrimTopWide)%>" Lumber 2
<%=rAlpha(Alpha)%>. Top Molding Front(Narrow)** <%=getfraction(cStockThick)%>" <%=getfraction(cTrimTopNarrow)%>" <%=getfraction(Length + cTrimTopNarrow * 2)%>" Lumber 1
<%=rAlpha(Alpha)%>. Top Molding Sides (Narrow)** <%=getfraction(cStockThick)%>" <%=getfraction(cTrimTopNarrow)%>" <%=getfraction(width + cTrimTopNarrow )%>" Lumber 2
<%=rAlpha(Alpha)%>. Bottom Molding Front** <%=getfraction(cStockThick)%>" <%=getfraction(cTrimBottom )%>" <%=getfraction(length + cStockThick * 2 )%>" Lumber 1
<%=rAlpha(Alpha)%>. Bottom Molding Sides** <%=getfraction(cStockThick)%>" <%=getfraction(cTrimBottom )%>" <%=getfraction(width + cStockThick * 3 )%>" Lumber 2
<%=rAlpha(Alpha)%>. Fluted Molding Front <%=getfraction(cTrimFlutedThick )%>" <%=getfraction(cTrimFluted)%>" <%=getfraction(facadeheight - cTrimBottom - cStockThick)%>" Lumber 2
<%=rAlpha(Alpha)%>. Fluted Molding Sides <%=getfraction(cTrimFlutedThick )%>" <%=getfraction(cTrimFluted - cTrimFlutedThick)%>" <%=getfraction(facadeheight - cTrimBottom - cStockThick)%>" Lumber 2
<%=rAlpha(Alpha)%>. Door(s) <%=getfraction(cStockThick)%>" <%=getfraction((Length - cStileWidth * (iOpenings +1)) / iOpenings + 1.5)%>" <%=getfraction(facadeheight - cRailWidth * 2 + 1.5)%>" Plywood <%=iOpenings%>
<%=rAlpha(Alpha)%>. Door(s)* <%=getfraction(cStockThick)%>" <%=getfraction((((Length - cStileWidth * (iOpenings +1)) / iOpenings) + 1.5) / 2)%>" <%=getfraction(Facadeheight - cRailWidth * 2 + 1.5)%>" Plywood <%=iOpenings * 2%>
*Raised/Flat Panel Door Calculator
**Top and bottom molding length is only an approximate. It will need to be cut at a 45 at one or both ends. It is recommended to cut the molding to fit.
<% Beta = 48 Alpha = 64 %>
Facade Construction Procedure

<%=rAlpha(Alpha)%>. Cut all pieces in the material list, except for molding, to size

<%=rAlpha(Alpha)%>. Inspect all pieces for rough or flawed edges. Sand as needed.

<%=rAlpha(Alpha)%>. Lay out Stiles and Rails for the Front of the facade.

<%=rAlpha(Alpha)%>. Assemble the facade front using the Front Rail and Stile parts as shown in figure <%=rBeta(Beta)%>.

Figure <%=chr(Beta)%>.
Front Frame


<%=rAlpha(Alpha)%>. Using bar or pipe clamps, fasten the Front frame and Sides together.

Figure <%=rBeta(Beta)%>.
Front & Side Frames


<%=rAlpha(Alpha)%>. Cut the bottom molding to fit and install. I prefer to cut the molding at a 45 angle rather than doing butt joints so the end grain does not show.


Figure <%=rBeta(Beta)%>.
Bottom Molding


<%=rAlpha(Alpha)%>. I routered the top molding peices using 3/8" Roundover and 5/32" Roman Ogee router bits. The wide molding was routered on both sides.

Cut the top molding to fit and install. Figure <%=rBeta(Beta)%> shows where the molding is installed. The Top Molding(Wide) covers the top of the facade. The Top Molding(Narrow) is installed just under the wide.

Figure <%=chr(Beta)%>.
How the Molding Fits


Figure <%=rBeta(Beta)%>.
Installing Top Molding


Figure <%=rBeta(Beta)%>.
Installing Top Molding


<%=rAlpha(Alpha)%>. The fluted molding is fairly easy to make if you use a router table with a 1/2" Core Box bit. You will cut 3 groves in to the molding at 1" intervals.

  1. Adjust the router height to 1/8".
  2. Set the table fence 1" from the center of the bit.
  3. Run all four sections of the molding through face down.
  4. Adjust the fence to 2 and 3 inches from the bit, running the molding through each time.

Cut the fluted molding to size and install as shown in Figure <%=rBeta(Beta)%>.

Figure <%=rBeta(Beta)%>.
Installing Fluted Molding

<%=rAlpha(Alpha)%>. Stain the facade as desired and seal it a marine finish or prime and paint it. I like to seal the inside of the facade with an epoxy paint for extra protection.

Figure <%=rBeta(Beta)%>.
Facade and Stand without the doors

<%=rAlpha(Alpha)%>. I finish and install the doors separately. The doors deminsions are designed to overlap each opening by 3/4" on all sides. I like to use European style cup hinges to mount the doors. The figure below will give you a rough idea of what the Facade will look like along with the frame.

Figure <%=chr(Beta)%>.
Completed Stand and Facade

Any problems or questions? Please contact Scott Morell at smorell@cableone.net


<% End If function GetFraction(fraction) dim period, sInteger, sFraction period = instr(1,fraction,".") if period <> 0 then sInteger = left(fraction,period -1) if sinteger = 0 then sinteger = "" end if sfraction = right(fraction,len(fraction) - period) sfraction = ConvertFraction(sFraction) else sfraction = fraction end if getfraction = sInteger & sFraction end function function ConvertFraction(temp) 'Converts the decimal to a fraction select case temp case "0625" ConvertFraction = " 1/16" case "125" ConvertFraction = " 1/8" case "1825" ConvertFraction = " 3/16" case "25" ConvertFraction = " 1/4" case "3125" ConvertFraction = " 5/16" case "375" ConvertFraction = " 3/8" case "4375" ConvertFraction = " 7/16" case "5" ConvertFraction = " 1/2" case "5625" ConvertFraction = " 9/16" case "625" ConvertFraction = " 5/8" case "6875" ConvertFraction = " 11/16" case "75" ConvertFraction = " 3/4" case "8125" ConvertFraction = " 13/16" case "875" ConvertFraction = " 7/8" case "9375" ConvertFraction = " 15/16" case else if clng("1." & temp) < 1.0625 and clng("1." & temp) > 1.01 then ConvertFraction = " 1/16" elseif clng("1." & temp) < 1.125 then ConvertFraction = " 1/8" elseif clng("1." & temp) < 1.1825 then ConvertFraction = " 3/16" elseif clng("1." & temp) < 1.25 then ConvertFraction = " 1/4" elseif clng("1." & temp) < 1.3125 then ConvertFraction = " 5/16" elseif clng("1." & temp) < 1.375 then ConvertFraction = " 3/8" elseif clng("1." & temp) < 1.4375 then ConvertFraction = " 7/16" elseif clng("1." & temp) < 1.5 then ConvertFraction = " 1/2" elseif clng("1." & temp) < 1.5625 then ConvertFraction = " 9/16" elseif clng("1." & temp) < 1.625 then ConvertFraction = " 5/8" elseif clng("1." & temp) < 1.6875 then ConvertFraction = " 11/16" elseif clng("1." & temp) < 1.75 then ConvertFraction = " 3/4" elseif clng("1." & temp) < 1.8125 then ConvertFraction = " 13/16" elseif clng("1." & temp) < 1.875 then ConvertFraction = " 7/8" elseif clng("1." & temp) < 1.9375 then ConvertFraction = " 15/16" end if end select end function function Convert2Decimal(temp) dim dFraction if instr(1,temp," ") > 1 and instr(1,temp,"/") > 1 then 'response.Write(right(temp, len(temp) - instr(1,temp," ")) & " - ") select case right(temp, len(temp) - instr(1,temp," ")) case "1/8" dFraction = ".125" case "1/4" dFraction = ".25" case "3/8" dFraction = ".375" case "1/2" dFraction = ".5" case "5/8" dFraction = ".625" case "3/4" dFraction = ".75" case "7/8" dFraction = ".875" case else dFraction = temp end select Convert2Decimal = cdbl(trim(left(temp, instr(1,temp," "))) & dFraction) else Convert2Decimal = temp end if ' response.Write(trim(left(temp, instr(1,temp," "))) & dFraction & "
") end function Function rAlpha(sAlpha) alpha = salpha + 1 rAlpha = chr(alpha) end function Function rBeta(sBeta) Beta = sBeta + 1 rBeta = chr(Beta) end function %>