This NPM package provides a comprehensive solution for calculating the necessary materials for door installations, specifically tailored for both bi-fold and pre-hung doors. It includes calculations for frame and casing dimensions, material requirements, and checks for fitting within rough openings.
- Calculate frame dimensions for bi-fold or pre-hung doors.
- Determine casing cut lengths based on door type.
- Check if a door fits in a specified rough opening.
- Suggest adjustments or special-sized doors if necessary.
- Calculate and round up material lengths for order based on standard lumber sizes.
Install via npm:
npm install door-frame-calc
Here is a quick example to get you started:
const DoorInstallationCalculator = require('door-installation-calculator');
const calculator = new DoorInstallationCalculator(
"bi-fold", // Door type
34, // Rough opening width
82, // Rough opening height
4.5, // Wall thickness
0.75, // Frame thickness
2.25, // Casing width
30, // Door width
80 // Door height
);
try {
const results = calculator.getAllCalculations();
console.log(results);
} catch (error) {
console.error("Error:", error.message);
}
DoorInstallationCalculator(doorType, roughOpeningWidth, roughOpeningHeight, wallThickness, frameThickness, casingWidth, doorWidth, doorHeight)
- Initializes a new instance of the calculator with specified dimensions and preferences.
validateInput()
: Validates the necessary inputs are provided.calculateFrameDimensions()
: Returns frame dimensions for bi-fold doors.calculateCasingCutLengths()
: Calculates and returns casing cut lengths.checkFitInRoughOpening()
: Checks and returns if the door fits within the rough opening.determineDoorAdjustments()
: Returns a message indicating if the door size is appropriate or adjustments are needed.calculateFrameOrderLengths()
: Calculates and rounds up the frame material lengths required for order.calculateCasingOrderLengths()
: Calculates and rounds up the casing material lengths required for order.
Contributions are welcome! Please fork the repository and submit a pull request with your improvements.
This project is licensed under the MIT License - see the LICENSE file for details.