Skip to content
This repository has been archived by the owner on Aug 2, 2019. It is now read-only.

Spring 2019 Capstone project for the Glass Size Estimator

Notifications You must be signed in to change notification settings

rthugh02/Glass_Size_Estimator

Repository files navigation

Configuration File

Example Input

Example types of inputs that may be utilized between all of the product lines

Name Type Description
Opening Width FLOAT Width measurement in inches
Opening Height FLOAT Height measurement in inches
Series ENUM Customer requested series:
{ATE, ASE, ETE, ESE, HATE, HASE, HGTE, HGSE, LETE, LESE, PTE, PSE, PTETE, PTESE, PRETE, PRESE, SE, TE, TTE, TSE, TETE, TESE}
Towel Bar ENUM Customer requested towel bar:
{18", 24"}
Finger Pull ENUM Customer requested finger pull:
{STANDARD, RECESSED}
Clear Sweep BOOLEAN Customer requested for clear sweep
Configuration ENUM Customer requested configuration (Names not official):
{ONE INLINE PANEL, TWO INLINE PANEL, TWO PARTIAL INLINE PANEL, 90 DEGREE RETURN PANEL, 135 DEGREE RETURN PANEL, NOTCHED INLINE PANEL, NEO PANEL}
Item Number INT Customer requested item number

Example Outputs

Example types of output that may be calculated between all of the product lines

Name Type Description
Resulting Width FLOAT Resulting width after calculations
Resulting Height FLOAT Resulting height after calcuations
In Stock BOOLEAN Whether or not the resulting dimensions are available in a stock piece
Hole Placement COORDINATE[] A list of locations of holes (x,y) to be placed
Hole Size FLOAT The size of holes to be placed
Wall Jamb ENUM Resulting wall jamb piece to be used:
{ZD1028, ZD1006}

Stock Glass Lines

A separate configuration file is used to store all measurements of stock glass for each product line.

When defining a product line, the user must also define which lines of stock glass it should compare its resulting measurements with. Once the glass size estimations are completed, a seperate checkbox will be used to indicate whether a stock piece can be used instead.

States

All states of operations that will be utilized in the logic for all product lines

States Description
float SetValue(float value) Set the current value in the pipeline to the given value
float SetEnum(string value, string category) Set the current value in the pipeline to the given value
float SetConditional(bool value) Set the current value in the pipeline to the given value
float Addition(float value) Add the given value to the current value in the pipeline
float Subtraction(float value) Subtract the given value from the current value in the pipeline
float Multiplication(float value) Multiply the given value by the current value in the pipeline
float Division(float value) Divide the given value to the desired value by the current value in the pipeline
float RoundUp(Float Interval) Round up the current value in the pipeline to the next available cutoff (i.e. Next 1/2" or next whole number)
float RoundDown(Float Interval) Round down the current value in the pipeline to the next available cutoff (i.e. Next 1/2" or next whole number)
void Branch(int nextStep) Branch to another path
void BranchConditional(string ConditionalName, bool qualifier, int nextStep) Branch to another path if the current boolean in the pipeline is true/false in the list
void BranchSeries(String[] Series, bool qualifier, int nextStep) Branch to another path if the current series in the pipeline is included/not included in the list
void BranchConfiguration(String[] Configuration, bool qualifier, int nextStep) Branch to another path if the current configuration in the pipeline is included/not included in the list
void BranchValue(float minimum, float maximum, bool qualifier, int nextStep) Branch to another path if the current value in the pipeline is included /not included within the given range (inclusive)
void BranchFractionalValue(float minimum, float maximum, bool qualifier, int nextStep) Branch to another path if the current value's fractional value in the pipeline is included /not included within the given range (inclusive)
float Truncate() Truncate the current value in the pipeline
void End() Signals the end of the logic and flags the current value in the pipeline to be final

UI Generation

All types and their corresponding UI element

Type Corresponding Element
FLOAT Text Area
INT Text Area
ENUM Dropdown List (input) / Text Area (output)
BOOLEAN Checkbox

Example PRODUCT LINE JSON CONFIGURATION

{
  "ProductLines": [
    {
      "Name": "Stock Cardinal Series Semi-frameless Single Doors",
      "Input": [
        {
          "Name": "OpeningWidth",
          "Type": "Float"
        },
        {
          "Name": "OpeningHeight",
          "Type": "Float"
        },
        {
          "Name": "ClearSweep",
          "Type": "Boolean"
        },
        {
          "Name": "TwoHoles",
          "Type": "Boolean"
        }
      ],
      "Output": [
        {
          "Name": "ResultingWidth",
          "Type": "Float",
          "Input": "OpeningWidth"
        },
        {
          "Name": "ResultingHeight",
          "Input": "OpeningHeight",
          "Type": "Float"
        },
        {
          "Name": "WallJamb",
          "Input": "OpeningWidth",
          "Type": "Enum"
        }
      ],
      "Logic": {
        "ResultingWidth": [
          {
            "Operation": "BranchInputValue",
            "Minimum": 66.625,
            "Maximum": 66.625,
            "NextState": 4,
            "Qualifier": true,
            "InputName": "OpeningHeight"
          },
          {
            "Operation": "BranchInputValue",
            "Minimum": 69.625,
            "Maximum": 69.625,
            "NextState": 4,
            "Qualifier": true,
            "InputName": "OpeningHeight"
          },
          {
            "Operation": "BranchInputValue",
            "Minimum": 72.625,
            "Maximum": 72.625,
            "NextState": 4,
            "Qualifier": true,
            "InputName": "OpeningHeight"
          },
          {
            "Operation": "Branch",
            "NextState": 16
          },
          {
            "Operation": "BranchFractionalValue",
            "Minimum": 0,
            "Maximum": 0.125,
            "NextState": 7,
            "Qualifier": true
          },
          {
            "Operation": "BranchFractionalValue",
            "NextState": 9,
            "Minimum": 0.1875,
            "Maximum": 0.6875,
            "Qualifier": true
          },
          {
            "Operation": "BranchFractionalValue",
            "NextState": 11,
            "Minimum": 0.75,
            "Maximum": 1,
            "Qualifier": true
          },
          {
            "Operation": "RoundDown",
            "Interval": 1
          },
          {
            "Operation": "Branch",
            "NextState": 13
          },
          {
            "Operation": "Truncate"
          },
          {
            "Operation": "Branch",
            "NextState": 13
          },
          {
            "Operation": "RoundUp",
            "Interval": 1
          },
          {
            "Operation": "Branch",
            "NextState": 13
          },
          {
            "Operation": "Subtraction",
            "Value": 4
          },
          {
            "Operation": "Addition",
            "Value": 0.8125
          },
          {
            "Operation": "Branch",
            "NextState": 17
          },
          {
            "Operation": "Subtraction",
            "Value": 3.5
          },
          {
            "Operation": "End"
          }
        ],
        "ResultingHeight": [
          {
            "Operation": "Subtraction",
            "Value": 1.625
          },
          {
            "Operation": "BranchConditional",
            "ConditionalName": "ClearSweep",
            "Qualifier": false,
            "NextState": 3
          },
          {
            "Operation": "Addition",
            "Value": 0.75
          },
          {
            "Operation": "End"
          }
        ],
        "WallJamb": [
          {
            "Operation": "BranchInputValue",
            "Minimum": 66.625,
            "Maximum": 66.625,
            "NextState": 4,
            "Qualifier": true,
            "InputName": "OpeningHeight"
          },
          {
            "Operation": "BranchInputValue",
            "Minimum": 69.625,
            "Maximum": 69.625,
            "NextState": 4,
            "Qualifier": true,
            "InputName": "OpeningHeight"
          },
          {
            "Operation": "BranchInputValue",
            "Minimum": 72.625,
            "Maximum": 72.625,
            "NextState": 4,
            "Qualifier": true,
            "InputName": "OpeningHeight"
          },
          {
            "Operation": "Branch",
            "NextState": 9
          },
          {
            "Operation": "BranchFractionalValue",
            "NextState": 7,
            "Minimum": 0,
            "Maximum": 0.125,
            "Qualifier": true
          },
          {
            "Operation": "BranchFractionalValue",
            "Minimum": 0.1875,
            "Maximum": 0.6875,
            "NextState": 9,
            "Qualifier": true
          },
          {
            "Operation": "BranchFractionalValue",
            "Minimum": 0.75,
            "Maximum": 1,
            "NextState": 7,
            "Qualifier": true
          },
          {
            "Operation": "SetEnum",
            "Value": "ZD1028",
            "Category": "WallJamb"
          },
          {
            "Operation": "Branch",
            "NextState": 11
          },
          {
            "Operation": "SetEnum",
            "Value": "ZD1006",
            "Category": "WallJamb"
          },
          {
            "Operation": "Branch",
            "NextState": 11
          },
          {
            "Operation": "End"
          }
        ]
      },
      "Category": "Door"
    }
  ]
}

Example STOCK GLASS LINE JSON Configuration

"Door_Glass_69_Stall_3/16_Clear": [
    {
      "Width": 18.8125,
      "Height": 65
    },
    {
      "Width": 19.8125,
      "Height": 65
    },
    {
      "Width": 20.8125,
      "Height": 65
    },
    {
      "Width": 21.8125,
      "Height": 65
    },
    {
      "Width": 22.8125,
      "Height": 65
    },
    {
      "Width": 23.8125,
      "Height": 65
    },
    {
      "Width": 24.8125,
      "Height": 65
    },
    {
      "Width": 25.8125,
      "Height": 65
    },
    {
      "Width": 26.8125,
      "Height": 65
    },
    {
      "Width": 27.8125,
      "Height": 65
    },
    {
      "Width": 28.8125,
      "Height": 65
    },
    {
      "Width": 29.8125,
      "Height": 65
    },
    {
      "Width": 30.8125,
      "Height": 65
    },
    {
      "Width": 31.8125,
      "Height": 65
    },
    {
      "Width": 32.8125,
      "Height": 65
    }
  ]

About

Spring 2019 Capstone project for the Glass Size Estimator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published