Cutter Project Live 1.6
by Kaevonz
HTML
<body>
<meta name="viewport" content="width=device-width, initial-scale=1">
<div class="container">
<p id="error"></p>
<p id="error2"></p>
<p id="error3"></p>
<p id="error4"></p>
<p id="error5"></p>
<div class="div1brother">
<span>Cutter O.D.</span>
</div>
<div class="elem div1"></div>
<div class="elem div2">
<div class="elem div3"><span>Pipe O.D.</span>
<div class="div5container">
<div class="elem div5">
</div>
<div class="elem div5brother">
<span>Min. Cutter Travel</span>
</div>
</div>
<div class="elem div4">
</div>
</div>
</div>
</div>
<input type="number" id="field_2w269" placeholder="Enter Cutter O.D."> <br>
<input type="number" id="field_wg4s2" placeholder="Enter Outer Diameter"> <br>
<input type="number" id="field_d6hwp" placeholder="Enter Thickness"> <br>
<input type="button" id="bttn" name="calculate" value="Calculate">
</body>
CSS
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: start;
height: 800px;
border: 1px solid gray;
}
.elem {
box-sizing: border-box;
}
/* Cutter O.D. Visual */
.div1 {
border-top: 3px solid #0DA8AA;
border-left: 1px solid #0DA8AA;
border-right: 1px solid #0DA8AA;
height: 0px;
background: white;
}
/* Cutter O.D. Measurement Label */
.div1brother {
position: relative;
width: 172.5px;
height: 25px;
border-left: 0.01px solid black;
border-right: 0.01px solid black;
border-top: 0.01px solid black;
margin-bottom: 3px;
}
/* Cutter O.D. Text */
.div1brother span {
position: absolute;
left: 15%;
right: 15%;
top: -3px;
display: block;
background-color: #FFF;
padding-left: 0px;
font-size: 9px;
text-transform: uppercase;
text-align: center;
}
/* Pipe O.D. Visual */
.div2 {
border: 1px solid #0DA8AA;
border-radius: 50%;
width: 0px;
height: 0px;
background: white;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
/* Pipe I.D. Visual */
.div3 {
border: 1px solid #0DA8AA;
border-radius: 50%;
width: 0px;
height: 0px;
background: white;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
/* Pipe O.D. Text */
.div3 > span {
transform: translate(-10%, -55%) rotate(-10deg);
font-size: 10px;
text-transform: uppercase;
}
/* Pipe O.D. Label */
.div4 {
border-top: 0.5px dashed black;
width: 100%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%) rotate(-10deg);
}
/* Min. Cutter Travel Label */
.div5 {
border: 0.5px dashed black;
width: 120px;
height: 90px;
position: absolute;
top: 0;
transform: translateX(-50%);
left: 50%;
}
/* Min. Cutter Travel Measurement Label */
.div5brother {
position: absolute;
top: 0;
right: -80px;
width: 80px;
height: 50px;
border-top: 0.5px solid black;
...
JavaScript
jQuery(document).ready(function($) {
$(function() {
$('.div3 span').hide();
$('.div5').hide();
$('.div5brother').hide();
$('.div1brother').hide();
function hideObjects($) {
$('.div1').hide();
$('.div2').hide();
$('.div3').hide();
$('.div5brother').hide();
$('.div1brother').hide();
}
function hideErrors($) {
$('#error').hide();
$('#error2').hide();
$('#error3').hide();
$('#error4').hide();
$('#error5').hide();
}
function errorStatements($){
}
$(document).on('change', '#field_2w269, #field_wg4s2, #field_d6hwp', function() {
mainCode()
})
function mainCode() {
//Declare Variables for User Inputs
const $outer_diameter = parseFloat($("#field_wg4s2").val());
const $wall_thickness = parseFloat($("#field_d6hwp").val());
const $cutter_diameter = parseFloat($("#field_2w269").val());
//Convert diameters to radii
const $cutter_radius = ($cutter_diameter / 2);
const $pipeOutsideRadius = ($outer_diameter / 2);
const $pipeInsideRadius = ($pipeOutsideRadius - $wall_thickness);
//Find Cutter Travel
const $cutterTravel = ($pipeOutsideRadius - (Math.sqrt(Math.pow($pipeInsideRadius, 2) - Math.pow($cutter_radius, 2))));
//Convert sizes for Visual Representation
//const $multiplier = 7.5; //pixel sizing multiplier for user inputs
const $multiplier = (750 / ($cutterTravel + $outer_diameter)); //pixel sizing multiplier for user inputs
const $visualPipeOD = ($outer_diameter * $multiplier);
const $visualWallThk = ($wall_thickness * $multiplier);
const $visualPipeID = ($visualPipeOD - (2 * $visualWallThk));
const $visualCutDia = ($cutter_diameter * $multiplier);
const $visualCutTravel = ($cutterTravel * $multiplier);
if ($cutter_diameter > $outer_diameter) {
$('#error').text('Cutter cannot be larger than Pipe O.D.').show();
...