Picture Frame Moulding Calculator

Picture Frame Moulding Calculator body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; max-width: 1200px; margin: 0 auto; padding: 20px; background-color: #f5f7fa; } .calculator-container { background: #ffffff; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.1); padding: 30px; margin-bottom: 40px; } .calculator-title { text-align: center; color: #2c3e50; margin-bottom: 25px; font-size: 28px; border-bottom: 2px solid #eee; padding-bottom: 15px; } .input-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 25px; } .input-group { display: flex; flex-direction: column; } .input-group label { font-weight: 600; margin-bottom: 8px; color: #555; font-size: 14px; } .input-group input { padding: 12px; border: 1px solid #ddd; border-radius: 6px; font-size: 16px; transition: border-color 0.3s; } .input-group input:focus { border-color: #3498db; outline: none; } .calc-btn { width: 100%; background-color: #3498db; color: white; border: none; padding: 15px; font-size: 18px; font-weight: bold; border-radius: 6px; cursor: pointer; transition: background-color 0.3s; margin-top: 10px; } .calc-btn:hover { background-color: #2980b9; } .results-section { background-color: #f8f9fa; border-radius: 8px; padding: 20px; margin-top: 25px; display: none; border: 1px solid #e9ecef; } .result-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid #e9ecef; } .result-row:last-child { border-bottom: none; } .result-label { color: #666; font-weight: 500; } .result-value { font-weight: 700; color: #2c3e50; font-size: 18px; } .result-value.highlight { color: #27ae60; font-size: 22px; } .content-section { background: white; padding: 40px; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); } .content-section h2 { color: #2c3e50; margin-top: 0; } .content-section h3 { color: #34495e; margin-top: 25px; } .info-box { background-color: #e8f4fd; border-left: 4px solid #3498db; padding: 15px; margin: 20px 0; font-size: 15px; } @media (max-width: 600px) { .input-grid { grid-template-columns: 1fr; } .content-section { padding: 20px; } }

Picture Frame Moulding Calculator

Calculation Results

Base Perimeter (Inside):
Miter Allowance (8 × Width):
Net Length Required:
Total Length with Waste:
Total Feet Needed:
Estimated Material Cost:
Outer Frame Dimensions:

Guide to Calculating Picture Frame Moulding

Calculating the correct amount of moulding (or molding) for a picture frame is critical to avoid running out of material during a project. Unlike simple linear measurements, picture framing requires additional length to account for the mitered corners and saw blade waste.

The Formula Explained

When you build a frame, the outside perimeter is significantly longer than the inside perimeter (the artwork size). The standard formula used by professional framers is:

Total Length = (2 × Artwork Width) + (2 × Artwork Height) + (8 × Moulding Width) + Waste Factor

Why 8 times the moulding width? Because a standard frame has four 90-degree corners, usually cut at 45-degree angles. At each corner, the outside edge of the frame extends past the inside edge by exactly two times the width of the moulding. Since there are four corners, we add 8 times the moulding width to the total length.

Understanding Waste Allowance

You should never order the exact mathematical length required. Professional framers always add a "Waste Factor" or "Chop Allowance" for several reasons:

  • Saw Kerf: The saw blade removes material (about 1/8 inch) with every cut.
  • Knots and Defects: Wood moulding often has imperfections that must be cut out.
  • Miter Errors: If a cut isn't perfect, you may need to recut the end, shortening the stick.

We recommend a waste allowance of 10% to 20% for standard projects. If you are a beginner or using a complex moulding pattern that requires pattern matching, consider adding 20-30%.

How to Measure

  1. Measure Artwork: Measure the width and height of the mat board, glass, or artwork you are framing. This is your "Glass Size."
  2. Determine Moulding Width: Measure the full width across the face of the moulding stick.
  3. Input Dimensions: Enter these values into the calculator above to get the linear footage required.

Buying Tips

Moulding is typically sold by the foot or in 8-10 foot "sticks." When purchasing, always round up to the nearest whole foot or full stick length. It is far better to have a foot of leftover scrap than to be one inch short on your final side.

function calculateMoulding() { // 1. Get DOM elements var widthInput = document.getElementById("artworkWidth"); var heightInput = document.getElementById("artworkHeight"); var mouldingInput = document.getElementById("mouldingWidth"); var wasteInput = document.getElementById("wastePercent"); var costInput = document.getElementById("costPerFoot"); var resultsDiv = document.getElementById("results"); // 2. Parse values var width = parseFloat(widthInput.value); var height = parseFloat(heightInput.value); var mouldingWidth = parseFloat(mouldingInput.value); var wastePercent = parseFloat(wasteInput.value); var costPerFoot = parseFloat(costInput.value); // 3. Validation if (isNaN(width) || isNaN(height) || isNaN(mouldingWidth)) { alert("Please enter valid numbers for Artwork Width, Height, and Moulding Width."); return; } if (isNaN(wastePercent)) { wastePercent = 0; } // 4. Calculation Logic // Inside Perimeter (Glass Size) var insidePerimeter = (2 * width) + (2 * height); // Miter Allowance: 8 x Moulding Width // This accounts for the 4 corners where the outer edge is longer than the inner edge var miterAllowance = 8 * mouldingWidth; // Net Length (Mathematical Minimum) var netLength = insidePerimeter + miterAllowance; // Waste Factor var wasteAmount = netLength * (wastePercent / 100); // Total Length needed var totalLengthInches = netLength + wasteAmount; var totalLengthFeet = totalLengthInches / 12; // Outer Dimensions var outerWidth = width + (2 * mouldingWidth); var outerHeight = height + (2 * mouldingWidth); // 5. Update UI document.getElementById("basePerimeter").innerText = insidePerimeter.toFixed(2) + '"'; document.getElementById("miterAllowance").innerText = miterAllowance.toFixed(2) + '"'; document.getElementById("netLength").innerText = netLength.toFixed(2) + '"'; document.getElementById("totalLengthInches").innerText = totalLengthInches.toFixed(2) + '"'; document.getElementById("totalLengthFeet").innerText = totalLengthFeet.toFixed(2) + ' ft'; document.getElementById("outerDims").innerText = outerWidth.toFixed(2) + '" x ' + outerHeight.toFixed(2) + '"'; // Cost Calculation var costRow = document.getElementById("costRow"); if (!isNaN(costPerFoot) && costPerFoot > 0) { var totalCost = totalLengthFeet * costPerFoot; document.getElementById("totalCost").innerText = "$" + totalCost.toFixed(2); costRow.style.display = "flex"; } else { costRow.style.display = "none"; } // Show results section resultsDiv.style.display = "block"; // Scroll to results for better UX on mobile resultsDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Reply

Your email address will not be published. Required fields are marked *